1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn Máy học và ứng dụng TÌM HIỂU MẠNG NEURAL VÀ ỨNG DỤNG NHẬN DẠNG CHỮ SỐ VIẾT TAY BẰNG GIẢI THUẬT LAN TRUYỀN NGƯỢC

29 788 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 865,94 KB

Nội dung

Mạng neural nhân tạo là một mô phỏng xử lý thông tin, được nghiên cứu ra từ hệ thống thần kinh của sinh vật, giống như bộ não để xử lý thông tin.. Các nghiên cứu ứng dụng đã được thực hi

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

SỐ VIẾT TAY BẰNG GIẢI THUẬT LAN TRUYỀN NGƯỢC

Giảng viên : PGS.TS Vũ Thanh Nguyên Học viên: Trịnh Đồng Thạch Trúc MSHV: CH1301068

Lớp: Cao Học Khóa 8

TP.HCM, Tháng 3 năm 2014

Trang 2

MỤC LỤC

GIỚI THIỆU 1

CHƯƠNG 1: TỔNG QUAN VỀ MÔ HÌNH MẠNG NEURAL 2

1 Giới thiệu về mạng neural nhân tạo 2

1.1 Mạng neural nhân tạo là gì? 2

1.2 Lịch sử phát triển mạng neural 2

2 Neural sinh học và neural nhân tạo 5

2.1 Neural sinh học 5

2.2 Neural nhân tạo 6

2.3 Mô hình mạng neural 8

2.3.1 Các kiểu mô hình mạng neural 9

2.3.2 Perceptron 11

2.3.3 Mạng nhiều tầng truyền thẳng (MLP) 12

CHƯƠNG 2: HUẤN LUYỆN VÀ XÂY DỰNG MẠNG NEURAL 13

2.1 Huấn luyện mạng Neural 13

2.1.1 Các phương pháp học 13

2.1.2 Học có giám sát trong các mạng neural 14

2.1.3 Thuật toán lan truyền ngược 15

2.2 Các vấn đề trong xây dựng mạng MLP 16

2.2.1 Chuẩn bị dữ liệu 17

2.2.2 Xác định các tham số cho mạng 18

2.2.3 Vấn đề lãng quên (catastrophic forgetting) 20

2.2.4 Vấn đề quá khớp 21

CHƯƠNG 3: CHƯƠNG TRÌNH NHẬN DẠNG SỐ VIẾT TAY 23

3.1 Giới thiệu bài toán 23

3.2 Giao diện chương trình 23

Trang 3

3.3 Kết quả thử nghiệm 23 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 25 TÀI LIỆU THAM KHẢO 26

Trang 4

GIỚI THIỆU

Bên cạnh việc nỗ lực đưa các ứng dụng vào thực tế cuộc sống, các chuyên gia hàng đầu về công nghệ thông tin vẫn không quên đi giấc mơ, đó là tạo ra một máy tính tương đương với bộ não con người

Một trong những tiếp cận đầu tiên mà chúng ta có thể làm quen là mạng neural nhân tạo Mạng neural nhân tạo là một mô phỏng xử lý thông tin, được nghiên cứu ra

từ hệ thống thần kinh của sinh vật, giống như bộ não để xử lý thông tin Nó bao gồm

số lượng lớn các mối gắn kết cấp cao để xử lý các yếu tố làm việc trong mối liên hệ giải quyết vấn đề rõ ràng ANNs giống như con người, được học bởi kinh nghiệm, lưu những kinh nghiệm hiểu biết và sử dụng trong những tình huống phù hợp

Đầu tiên ANN được giới thiệu năm 1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits Nhưng với những kỹ thuật trong thời gian này chưa cho phép họ nghiên cứu được nhiều Những năm gần đây mô phỏng ANN xuất hiện và phát triển Các nghiên cứu ứng dụng đã được thực hiện trong các ngành: điện, điện tử, kỹ thuật chế tạo, y học, quân sự, kinh tế…

Đề tài này sẽ giới thiệu tóm tắt lý thuyết mạng neural nhân tạo một cách cơ bản nhất Bên cạnh đó, đề tài này cũng giới thiệu một chương trình ứng dụng giúp nhận dạng số viết tay

Chỉ là một tiếp cận rất nhỏ bé và trong một phạm vi hẹp, nhưng đề tài mong muốn mang lại những hiểu biết đơn giản về một mạng neural hoạt động Mong rằng

đề tài này sẽ luôn được quan tâm và phát triển ngày càng hiệu quả

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ MÔ HÌNH MẠNG NEURAL

1 Giới thiệu về mạng neural nhân tạo

1.1 Mạng neural nhân tạo là gì?

Định nghĩa: Mạng neural nhân tạo, Artificial Neural Network (ANN) gọi tắt là

mạng neural, neural network, là một mô hình xử lý thông tin phỏng theo cách thức xử

lý thông tin của các hệ neural sinh học Nó được tạo lên từ một số lượng lớn các phần

tử (gọi là phần tử xử lý hay neural) kết nối với nhau thông qua các liên kết (gọi là

trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào

đó

Một mạng neural nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng

mẫu, phân loại dữ liệu, ) thông qua một quá trình học từ tập các mẫu huấn luyện Về

bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các neural

1.2 Lịch sử phát triển mạng neural

Các nghiên cứu về bộ não con người đã được tiến hành từ hàng nghìn năm nay Cùng với sự phát triển của khoa học kĩ thuật đặc biệt là những tiến bộ trong ngành điện tử hiện đại, việc con người bắt đầu nghiên cứu các neural nhân tạo là hoàn toàn tự nhiên Sự kiện đầu tiên đánh dấu sự ra đời của mạng neural nhân tạo diễn ra vào năm

1943 khi nhà thần kinh học Warren McCulloch và nhà toán học Walter Pitts viết bài báo mô tả cách thức các neural hoạt động Họ cũng đã tiến hành xây dựng một mạng neural đơn giản bằng các mạch điện Các neural của họ được xem như là các thiết bị nhị phân với ngưỡng cố định Kết quả của các mô hình này là các hàm logic đơn giản chẳng hạn như “ a OR b” hay “a AND b”

Tiếp bước các nghiên cứu này, năm 1949 Donald Hebb cho xuất bản cuốn sách

Organization of Behavior Cuốn sách đã chỉ ra rằng các neural nhân tạo sẽ trở lên hiệu

quả hơn sau mỗi lần chúng được sử dụng

Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô hình hóa các nguyên lý của những lý thuyết liên quan tới cách thức con người suy nghĩ đã trở thành hiện thực Nathanial Rochester sau nhiều năm làm việc tại các phòng thí nghiệm

Trang 6

nghiên cứu của IBM đã có những nỗ lực đầu tiên để mô phỏng một mạng neural Trong thời kì này tính toán truyền thống đã đạt được những thành công rực rỡ trong khi đó những nghiên cứu về neural còn ở giai đoạn sơ khai Mặc dù vậy những người ủng hộ triết lý “thinking machines” (các máy biết suy nghĩ) vẫn tiếp tục bảo vệ cho lập trường của mình

Năm 1956 dự án Dartmouth nghiên cứu về trí tuệ nhân tạo (Artificial Intelligence) đã mở ra thời kỳ phát triển mới cả trong lĩnh vực trí tuệ nhân tạo lẫn mạng neural Tác động tích cực của nó là thúc đẩy hơn nữa sự quan tâm của các nhà khoa học về trí tuệ nhân tạo và quá trình xử lý ở mức đơn giản của mạng neural trong

bộ não con người

Những năm tiếp theo của dự án Dartmouth, John von Neumann đã đề xuất việc

mô phỏng các neural đơn giản bằng cách sử dụng rơle điện áp hoặc đèn chân không Nhà sinh học chuyên nghiên cứu về neural Frank Rosenblatt cũng bắt đầu nghiên cứu

về Perceptron Sau thời gian nghiên cứu này Perceptron đã được cài đặt trong phần

cứng máy tính và được xem như là mạng neural lâu đời nhất còn được sử dụng đến ngày nay Perceptron một tầng rất hữu ích trong việc phân loại một tập các đầu vào có giá trị liên tục vào một trong hai lớp Perceptron tính tổng có trọng số các đầu vào, rồi trừ tổng này cho một ngưỡng và cho ra một trong hai giá trị mong muốn có thể Tuy nhiên Perceptron còn rất nhiều hạn chế, những hạn chế này đã được chỉ ra trong cuốn sách về Perceptron của Marvin Minsky và Seymour Papert viết năm 1969

Năm 1959, Bernard Widrow và Marcian Hoff thuộc trường đại học Stanford đã xây dựng mô hình ADALINE (ADAptive LINear Elements) và MADALINE

(Multiple ADAptive LINear Elements) Các mô hình này sử dụng quy tắc học

Least-Mean-Squares (LMS: Tối thiểu bình phương trung bình) MADALINE là mạng neural

đầu tiên được áp dụng để giải quyết một bài toán thực tế Nó là một bộ lọc thích ứng

có khả năng loại bỏ tín hiệu dội lại trên đường dây điện thoại Ngày nay mạng neural này vẫn được sử dụng trong các ứng dụng thương mại

Năm 1974 Paul Werbos đã phát triển và ứng dụng phương pháp học lan truyền ngược ( back-propagation) Tuy nhiên phải mất một vài năm thì phương pháp này mới

Trang 7

trở lên phổ biến Các mạng lan truyền ngược được biết đến nhiều nhất và được áp dụng rộng dãi nhất nhất cho đến ngày nay

Thật không may, những thành công ban đầu này khiến cho con người nghĩ quá lên về khả năng của các mạng neural Chính sự cường điệu quá mức đã có những tác động không tốt đến sự phát triển của khoa học và kỹ thuật thời bấy giờ khi người ta lo

sợ rằng đã đến lúc máy móc có thể làm mọi việc của con người Những lo lắng này khiến người ta bắt đầu phản đối các nghiên cứu về mạng neuron Thời kì tạm lắng này kéo dài đến năm 1981

Năm 1982 trong bài báo gửi tới viện khoa học quốc gia, John Hopfield bằng sự phân tích toán học rõ ràng, mạch lạc, ông đã chỉ ra cách thức các mạng neural làm việc

và những công việc chúng có thể thực hiện được Cống hiến của Hopfield không chỉ ở giá trị của những nghiên cứu khoa học mà còn ở sự thúc đẩy trở lại các nghiên cứu về mạng neuron

Cũng trong thời gian này, một hội nghị với sự tham gia của Hoa Kỳ và Nhật Bản bàn về việc hợp tác/cạnh tranh trong lĩnh vực mạng neural đã được tổ chức tại Kyoto, Nhật Bản Sau hội nghị, Nhật Bản đã công bố những nỗ lực của họ trong việc tạo ra máy tính thế hệ thứ 5 Tiếp nhận điều đó, các tạp chí định kỳ của Hoa Kỳ bày tỏ

sự lo lắng rằng nước nhà có thể bị tụt hậu trong lĩnh vực này Vì thế, ngay sau đó, Hoa

Kỳ nhanh chóng huy động quĩ tài trợ cho các nghiên cứu và ứng dụng mạng neuron

Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm về mạng neuron ứng dụng trong tin học (Neural Networks for Computing)

Năm 1987, hội thảo quốc tế đầu tiên về mạng neuron của Viện các kỹ sư điện

và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã thu hút hơn 1800 người tham gia

Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu ứng dụng mạng neural để giải quyết các bài toán thực tế được diễn ra ở khắp mọi nơi Các ứng dụng mạng neural ra đời ngày càng nhiều và ngày càng hoàn thiện hơn Điển hình

là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng kí tự (Character

Trang 8

Recognition), nhận dạng tiếng nói (Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ liệu (Data Filtering),…

2 Neural sinh học và neural nhân tạo

2.1 Neural sinh học

Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con người bao gồm khoảng 1011 neural tham gia vào khoảng 1015 kết nối trên các đường truyền Mỗi đường truyền này dài khoảng hơn một mét Các neural có nhiều đặc điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng mà các tế bào khác không có được, đó là khả năng nhận, xử lý và truyền các tín hiệu điện hóa trên các đường mòn neural, các con đường này tạo nên hệ thống giao tiếp của bộ não

Hình 1: Cấu trúc của một neural sinh học điển hình

Mỗi neural sinh học có 3 thành phần cơ bản:

• Các nhánh vào hình cây ( dendrites)

• Thân tế bào (cell body)

• Sợi trục ra (axon)

Các nhánh hình cây truyền tín hiệu vào đến thân tế bào Thân tế bào tổng hợp

và xử lý cho tín hiệu đi ra Sợi trục truyền tín hiệu ra từ thân tế bào này sang neural

Trang 9

khác Điểm liên kết giữa sợi trục của neural này với nhánh hình cây của neural khác

gọi là synapse Liên kết giữa các neural và độ nhạy của mỗi synapse được xác định bởi

quá trình hóa học phức tạp Một số cấu trúc của neural được xác định trước lúc sinh ra Một số cấu trúc được phát triển thông qua quá trình học Trong cuộc đời cá thể, một số liên kết mới được hình thành, một số khác bị hủy bỏ

Như vậy neural sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu vào,

xử lý các tín hiệu này và cho ra một tín hiệu output Tín hiệu output này sau đó được

truyền đi làm tín hiệu đầu vào cho các neural khác

Dựa trên những hiểu biết về neural sinh học, con người xây dựng neural nhân tạo với hy vọng tạo nên một mô hình có sức mạnh như bộ não

2.2 Neural nhân tạo

Một neural là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng neural Cấu trúc của một neural được mô tả trên hình dưới

Hình 2: Neural nhân tạo

Các thành phần cơ bản của một neural nhân tạo bao gồm:

♦ Tập các đầu vào: Là các tín hiệu vào (input signals) của neural, các tín hiệu

này thường được đưa vào dưới dạng một vector N chiều

♦ Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số

liên kết – Synaptic weight) Trọng số liên kết giữa tín hiệu vào thứ j với neural k

Trang 10

thường được kí hiệu là w

kj Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng

♦ Bộ tổng (Summing function): Thường dùng để tính tổng của tích các đầu vào

với trọng số liên kết của nó

♦ Ngưỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa vào

như một thành phần của hàm truyền

♦ Hàm truyền (Transfer function) : Hàm này được dùng để giới hạn phạm vi

đầu ra của mỗi neural Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho Thông thường, phạm vi đầu ra của mỗi neural được giới hạn trong đoạn [0,1] hoặc [-1, 1] Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinh nghiệm của người thiết kế mạng Một số hàm truyền thường sử dụng trong các mô hình mạng neural được đưa ra trong bảng 1

♦ Đầu ra: Là tín hiệu đầu ra của một neural, với mỗi neural sẽ có tối đa là một

số liên kết của neural thứ k; u

k là hàm tổng; b

k là một ngưỡng; f là hàm truyền và y

k là tín hiệu đầu ra của neural

Như vậy tương tự như neural sinh học, neural nhân tạo cũng nhận các tín hiệu đầu vào, xử lý ( nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền), và cho một tín hiệu đầu ra ( là kết quả của hàm truyền)

Bảng 1: Một số hàm truyền thông dụng

Trang 11

Về bản chất một mạng neural có chức năng nhƣ là một hàm ánh xạ F: X → Y,

trong đó X là không gian trạng thái đầu vào (input state space) và Y là không gian

Trang 12

trạng thái đầu ra (output state space) của mạng Các mạng chỉ đơn giản là làm nhiệm

vụ ánh xạ các vector đầu vào x ∈ X sang các vector đầu ra y ∈ Y thông qua “bộ lọc”

(filter) các trọng số Tức là y = F(x) = s(W, x), trong đó W là ma trận trọng số liên kết

Hoạt động của mạng thường là các tính toán số thực trên các ma trận

2.3.1 Các kiểu mô hình mạng neural

Cách thức kết nối các neural trong mạng xác định kiến trúc (topology) của mạng Các neural trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗi neural đều được kết nối với tất cả các neural khác, hoặc kết nối cục bộ (partially connected)

chẳng hạn chỉ kết nối giữa các neural trong các tầng khác nhau Người ta chia ra hai loại kiến trúc mạng chính:

♦ Tự kết hợp (autoassociative): là mạng có các neural đầu vào cũng là các

neural đầu ra Mạng Hopfield là một kiểu mạng tự kết hợp

Hình 3: Mạng tự kết hợp

♦ Kết hợp khác kiểu (heteroassociative): là mạng có tập neural đầu vào và đầu

ra riêng biệt Perceptron, các mạng Perceptron nhiều tầng (MLP: MultiLayer Perceptron), mạng Kohonen, … thuộc loại này

Trang 13

Hình 4: Mạng kết hợp khác kiểu

Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback connections) từ

các neural đầu ra tới các neural đầu vào hay không, người ta chia ra làm 2 loại kiến trúc mạng

♦ Kiến trúc truyền thẳng (feedforward architechture): là kiểu kiến trúc mạng

không có các kết nối ngược trở lại từ các neural đầu ra về các neural đầu vào; mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt của neural Các mạng neural truyền thẳng cho phép tín hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ không ảnh hưởng tới tầng đó Các mạng kiểu Perceptron là mạng truyền thẳng

Hình 5: Mạng truyền thẳng

♦ Kiến trúc phản hồi (Feedback architecture): là kiểu kiến trúc mạng có các kết

nối từ neural đầu ra tới neural đầu vào Mạng lưu lại các trạng thái trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc vào các trạng thái trước đó của mạng Mạng Hopfield thuộc loại này

Trang 14

Hình 6: Mạng phản hồi 2.3.2 Perceptron

Perceptron là mạng neural đơn giản nhất, nó chỉ gồm một neural, nhận đầu vào

là vector có các thành phần là các số thực và đầu ra là một trong hai giá trị +1 hoặc -1

Hình 7: Perceptron

Đầu ra của mạng đƣợc xác định nhƣ sau: mạng lấy tổng có trọng số các thành phần của vector đầu vào, kết quả này cùng ngƣỡng b đƣợc đƣa vào hàm truyền (Perceptron dùng hàm Hard-limit làm hàm truyền) và kết quả của hàm truyền sẽ là đầu

Ngày đăng: 21/05/2015, 12:50

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w