i
BẢN CAM KẾT
Tên tôi là: Chu Hoàng Hà
Lớp: Cao học Công nghệ thông tin K10A
Khoá học: 2011 - 2013
Chuyên ngành:Khoa học máy tính
Mã số chuyên ngành: 60 48 01
Cơ sở đào tạo: Trường Đại học Công nghệ thông tin và Truyền thông
Thái Nguyên
Giáo viên hướng dẫn: PGS-TS Ngô Quốc Tạo
Cơ quan công tác: Trường Đại học Sư phạm Kỹ Thuật Nam Định
Tôi xin cam đoan toàn bộ nội dung được trình bày trong bản luận văn
này là kết quả tìm hiểu và nghiên cứu của riêng tôi, trong quá trình nghiên cứu
luận văn “Nghiên cứu mạng nơron và ứng dụng trong nhận dạng chữ viết
tay trực tuyến” các kết quả và dữ liệu được nêu ra là hoàn toàn trung thực.
Mọi thông tin trích dẫn đều được tuân theo luật sở hữu trí tuệ, có liệt kê rõ ràng
các tài liệu tham khảo.
Tôi xin chịu hoàn toàn trách nhiệm với những nội dung được viết trong
luận văn này.
Thái Nguyên, ngày 08 tháng 06 năm 2013
HỌC VIÊN
CHU HOÀNG HÀ
ii
LỜI CẢM ƠN
Luận văn được thực hiện tại Trường Đại học Công nghệ Thông tin và
Truyền Thông - Đại học Thái Nguyên dưới sự hướng dẫn của thầy PGS-TS
Ngô Quốc Tạo.
Trước hết em xin bày tỏ lòng biết ơn sâu sắc tới thầy PGS-TS Ngô Quốc
1.2.2. Tính chất tương ứng đầu vào, đầu ra........................................................16
1.2.3. Tính chất thích nghi.................................................................................16
1.2.4. Tính chất đưa ra lời giải có bằng chứng...................................................16
1.2.5. Tính chất chấp nhận sai sót......................................................................16
1.2.6. Khả năng tích hợp VLSI (Very-Large-Scale-Intergrated)........................17
1.2.7. Tính chất tương tự trong phân tích và thiết kế..........................................17
1.3. Phân loại mạng nơron nhân tạo..................................................................17
1.3.1. Phân loại theo kiểu liên kết nơron............................................................17
1.3.2. Một số loại mạng nơron điển hình[20].....................................................18
1.3.2.1. Mạng dẫn tiến (feedforward)..............................................................18
1.3.2.1. Mạng quy hồi (recurrent network)......................................................20
1.4. Xây dựng mạng nơron[8]...........................................................................21
1.5. Huấn luyện mạng nơron.............................................................................22
1.5.1. Phương pháp học.....................................................................................22
iv
1.5.1.1. Học có giám sát...................................................................................22
1.5.1.2. Học không giám sát.............................................................................23
1.5.1.3. Học tăng cường...................................................................................23
1.5.2. Thuật toán học.........................................................................................23
1.6. Thu thập dữ liệu cho mạng nơron..............................................................24
1.7. Biểu diễn tri thức cho mạng nơron............................................................26
1.8. Ứng dụng của mạng nơron.........................................................................28
Chương 2..........................................................................................................30
ỨNG DỤNG MẠNG NƠRON TRONG NHẬN DẠNG CHỮ VIẾT TAY
TRỰC TUYẾN.................................................................................................30
2.1. Giới thiệu bài toán nhận dạng kí tự...........................................................30
2.1.1. Giới thiệu sơ lược về nhận dạng..............................................................30
2.1.2. Giới thiệu về nhận dạng chữ viết tay........................................................31
3.4.2. Xây dựng mạng nơron Kohonen..............................................................56
3.5. Chương trình minh họa..............................................................................59
3.5.1. Các chức năng của chương trình..............................................................59
3.5.2. Kết quả nhận dạng...................................................................................60
3.6. Đánh giá, nhận xét.....................................................................................62
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.......................................................64
1. Những kết quả mà luận văn đã đạt được.......................................................64
2. Hướng phát triển tiếp theo............................................................................64
TÀI LIỆU THAM KHẢO................................................................................65
vi
DANH MỤC CÁC HÌNH
Hình 1.1 Sơ đồ nơron sinh học..........................................................................7
Hình 1.2 Mạng nơron sinh học........................................................................10
Hình 1.3 Mô hình một nơron nhân tạo.............................................................11
Hình 1.4 Sự tương đương giữa nơron sinh học và nơron nhân tạo[16]...........12
Hình 1.5 Mô hình phi tuyến thứ hai của một mạng nơron...............................14
Hình 1.6 Sơ đồ đơn giản về một mạng nơron nhân tạo[8]...............................15
...........................................................................................................................18
Hình 1.7 Mạng truyền thẳng............................................................................18
Hình 1.8 Mạng quy hồi....................................................................................18
Hình 1.9 Mạng tiến với một mức nơron..........................................................19
Hình 1.10 Mạng tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra.......20
Hình 1.11 Mạng hồi quy không có nơron ẩn và không có vòng lặp tự phản hồi
...........................................................................................................................20
Hình 1.12 Mạng hồi quy có các nơron ẩn........................................................21
Hình 1.13 Sơ đồ đồ thị có hướng đơn giản......................................................21
Hình 2.1 Mô hình chung trong nhận dạng chữ viết.........................................34
Hình 2.2 Mô hình tổng quát của mạng nơron Perceptron................................37
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ế...
Một trong những ứng dụng kinh điển của mạng nơron là bài toán nhận dạng
mẫu, ở đó mỗi một mẫu là một tập hợp (hay một vector) các tham số biểu thị
các thuộc tính của quá trình vật lý nào đó. Ngoài sức mạnh vốn có, mạng
nơron còn thể hiện ưu điểm của mình trong việc nhận dạng thông qua khả năng
mềm dẻo, dễ thích nghi với môi trường. Chính vì vậy, có thể coi mạng nơron
trước tiên là một công cụ để nhận dạng.
Các bài toán nhận dạng được nghiên cứu nhiều nhất hiện nay bao gồm
nhận dạng các mẫu hình học (vân tay, mặt người, hình khối,…), nhận dạng
tiếng nói và nhận dạng ký tự viết. Nhận dạng ký tự viết bao gồm hai kiểu chính
là nhận dạng ký tự in và nhận dạng ký tự viết tay. Cho đến nay bài toán nhận
dạng ký tự in đã được giải quyết khá trọn vẹn với sự ra đời của nhiều hệ thống
nhận dạng đạt tới độ chính xác gần như tuyệt đối. Nhận dạng ký tự viết tay
đang là vấn đề thách thức lớn đối với các nhà nghiên cứu, bài toàn này chưa
thể giải quyết trọn vẹn được vì nó phụ thuộc quá nhiều vào người viết và sự
biến đổi quá đa dạng trong cách viết và trạng thái tinh thần của từng người
viết. Đặc biệt đối với việc nhận dạng ký tự viết tay tiếng Việt lại càng gặp
nhiều khó khăn hơn do bộ ký tự tiếng Việt có nhiều ký tự có hình dáng rất
giống nhau, chỉ khác nhau chút ít về phần dấu.
2
Chính vì các lý do nêu trên cùng với sự gợi ý của thầy giáo tôi nhận thấy
nghiên cứu về mạng nơron là một hướng nghiên cứu quan trọng, mới mẻ và có
nhiều triển vọng. Đồng thời áp dụng mạng nơron để giải quyết bài toán nhận
dạng chữ viết tay tiếng Việt là một hướng tiếp cận khoa học có hiệu quả, góp
phần giải quyết bài toán nhận dạng chữ viết tay tiếng Việt hiện còn chưa được
giải quyết trọn vẹn. Do đó tôi chọn đề tài: “Nghiên cứu mạng nơron và ứng
dụng trong nhận dạng chữ viết tay trực tuyến”.
Tuy nhiên do hạn chế về mặt thời gian cũng như độ phức tạp của bài
Do thời gian và trình độ còn hạn chế nên luận văn khó tránh khỏi những
thiếu sót, kính mong nhận được sự đóng góp, chỉ bảo của các thầy giáo, cô
giáo và các bạn đồng nghiệp.
Cuối cùng, tác giả xin chân thành bày tỏ lòng biết ơn sâu sắc đến thầy
giáo PGS-TS Ngô Quốc Tạo - Viện Công nghệ thông tin, Viện Khoa học và
Công nghệ Việt Nam đã tận tình hướng dẫn, chỉ bảo, giúp đỡ, khích lệ tác giả
trong suốt quá trình làm luận văn. Đồng thời, tác giả xin chân thành cảm ơn
các thầy cô trong trường ĐH CNTT & TT Thái Nguyên đã tạo điều kiện thuận
lợi, giúp đỡ tác giả hoàn thành luận văn này.
Học viên
Chu Hoàng Hà
4
Chương 1
KHÁI QUAN VỀ MẠNG NƠRON
1.1. Khái niệm mạng nơron
1.1.1. Giới thiệu
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 nơron
nhân tạo là hoàn toàn tự nhiên. Có thể tính từ nghiên cứu của William (1890)
về tâm lý học với sự liên kết các noron thần kinh. Sự kiện đầu tiên đánh dấu sự
ra đời của mạng nơron 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 nơron hoạt động. Họ cũng đã tiến hành xây dựng một mạng nơron đơn
giản bằng các mạch điện. Các nơron 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”[12]
(Massachurehs Insritute of Technology) viết năm 1969 đã chứng minh nó
không dùng được cho các hàm logic phức.
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 nơron đầ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 nơron này vẫn được sử dụng trong
các ứng dụng thương mại.
Năm 1973 Von der Marlsburg: đưa ra quá trình học cạnh tranh và self –
organization. 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 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.
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. Có thể tính vào khoảng đầu thập
niên 80. Những đóng góp lớn cho mạng noron trong giai đoạn này phải kể đến
Grossberg, Kohonen, Rumelhart và Hopfield. Kohonen là mạng SOM (Self
6
Organizing Map), Grossberg là mạng ART (Adaptive Resonance Theory).
Trong đó đóng góp lớn của Hopfield gồm hai mạng phản hồi: Mạng rời rạc
năm 1982 và mạng liên tục năm 1984. Đặc biệt, ông đã dự kiến nhiều khả năng
tính toán lớn của mạng mà một nơron không có khả năng đó. 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 nơron 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
1.1.1.1. Nơron
Nơron là phần tử cơ bản tạo nên bộ não. Cấu tạo và hoạt động của nơron
như sau:
a) Cấu tạo
Một nơron điển hình có 3 phần chính:
- Phần thứ nhất: Thân phần tử hay soma (hoặc cell body). Nhân của
nơron được đặt ở đây.
- Phần thứ hai: Các dendrite. Đây chính là các mạng dạng cây của các
dây thần kinh để nối các soma với nhau.
- Phần thứ ba: axon. Đây là một nối kết, hình trụ dài và mang các tín
hiệu từ đó ra ngoài. Phần cuối của axon được chia thành nhiều nhánh nhỏ. Mỗi
nhánh nhỏ (cả của dendrite và axon) kết thúc trong một cơ quan nhỏ hình củ
hành được gọi là synapte mà tại đây các nơron đưa các tín hiệu của nó vào các
nơron khác. Những điểm tiếp nhận với các synapte trên các nơron khác có thể
ở các dendrite hay chính soma.
Hình 1.1 Sơ đồ nơron sinh học
8
b) Hoạt động
Các tín hiệu được đưa ra bởi một synapte và được nhận bởi các dendrite
là các kích thích điện tử. Việc truyền tín hiệu như trên liên quan đến một quá
trình hóa học phức tạp mà trong đó các chất truyền đặc trưng được giải phóng
từ phía gửi của nơi tiếp nối. Điều này làm tăng hoặc giảm điện thế bên trong
thân của nơron nhận. Nơron nhận tín hiệu sẽ được kích hoạt (fire) nếu điện thế
vượt khỏi một ngưỡng nào đó. Một xung (hoặc điện thế hoạt động) với cường
độ mạnh và thời gian tồn tại cố định sẽ được gửi ra ngoài thông qua axon tới
phần nhánh của nơron đó, rồi tới các chỗ nối synapte của các nơron khác. Sau
khi kích hoạt, nơron sẽ chờ một khoảng thời gian được gọi là chu kỳ
Mặc dù mỗi nơron (có thể xem như phần tử xử lý hay phần tử tính) có
tốc độ rất chậm so với tốc độ các cổng logic silicon trong các vi chip 10-3 giây
so với 10-10 giây, nhưng do mỗi nơron liên kết với khoảng 104 nơron khác,
cho nên, khi hoạt động thì bộ não hoạt động một cách tổng lực và đạt hiệu quả
cao. Nói một cách khác là phần tử của não hoạt động một cách song song và
tương tác hết sức tinh vi phức tạp. Hiệu quả hoạt động thường rất cao, nhất là
trong các vấn đề phức tạp.
Tóm lại, bộ não có chức năng hết sức quan trọng đối với đời sống của
con người. Cấu tạo của bộ não rất phức tạp, tinh vi bởi được tạo thành từ mạng
nơron có hàng chục tỉ tế bào với mức độ liên kết giữa các nơron là rất cao. Hơn
nữa, bộ não còn được chia thành các vùng và các lớp khác nhau. Bộ não hoạt
động dựa trên cơ chế hoạt động song song của các nơron tạo nên bộ não đó.
Lý thuyết về mạng nơron nhân tạo, hay gọi tắt là “mạng nơron”, được
xây dựng xuất phát từ một thực tế là bộ não con người luôn luôn thực hiện các
tính toán một cách hoàn toàn khác so với các máy tính số. Có thể coi bộ não là
một máy tính hay một hệ thống xử lý thông tin song song, phi tuyến và cực kỳ
phức tạp. Nó có khả năng tự tổ chức các bộ phận cấu thành của nó, như là các
tế bào thần kinh (neuron) hay các khớp nối thần kinh (synapse), nhằm thực
hiện một số tính toán như nhận dạng mẫu và điều khiển vận động nhanh hơn
nhiều lần các máy tính nhanh nhất hiện nay. Sự mô phỏng bộ não con người
của mạng nơron là dựa trên cơ sở một số tính chất đặc thù rút ra từ các nghiên
cứu về thần kinh sinh học.
10
Hình 1.2 Mạng nơron sinh học
1.1.1.3. So sánh mạng nơron với máy tính truyền thống
Các mạng nơron có cách tiếp cận khác trong giải quyết vấn đề so với
máy tính truyền thống. Các máy tính truyền thống sử dụng cách tiếp cận theo
phi tuyến chuyển đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín
hiệu đầu ra. Hàm kích hoạt này đảm bảo tính chất phi tuyến cho tính toán của
mạng nơron.
Hình 1.3 Mô hình một nơron nhân tạo
12
Hình 1.4 Sự tương đương giữa nơron sinh học và nơron nhân tạo[16]
Các thành phần cơ bản của một nơron 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 nơron, 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 nơron k thường được kí hiệu là wkj. 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. Các trọng số liên kết chính là các tham số tự do
cơ bản của mạng nơron. Các trọng số này có thể được thay đổi nhằm thích
nghi với môi trường xung quanh.
♦ 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ệ số điều chỉnh b có tác dụng
tăng lên hoặc giảm đi đầu vào thực của hàm truyền tùy theo hàm truyền dương
hay âm.
♦ Hàm truyền (Transfer function): Hay còn được gọi là hàm kích
hoạt, hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơron. 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
m
v k = ∑ wkj x j
(1.3)
y k = ϕ ( vk )
(1.4)
j =0
và
Trong công thức (1.3), chúng ta đã thêm một synapse mới. Đầu vào của nó là:
x0=+1
(1.5)
wk0=bk
(1.6)
và trọng số của nó là:
Như vậy chúng ta vẽ lại mô hình của neuron k như trong hình 1.5. Trong
hình này, nhiệm vụ của hệ số hiệu chỉnh là thực hiện hai việc: (1) thêm một tín
14
hiệu đầu vào cố định là (1), và (2) thêm một trọng số synapse mới bằng giá trị
Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong
lớp ẩn. Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc.
1.2. Đặc trưng của mạng nơron[5]
1.2.1. Tính phi tuyến
Một nơron có thể tính toán một cách tuyến tính hay phi tuyến. Một mạng
nơron cấu thành bởi các nơron phi tuyến thì cũng sẽ có tính phi tuyến. Hơn
nữa, điều đặc biệt là tính phi tuyến này được phân tán trên toàn mạng. Tính phi
tuyến là một thuộc tính rất quan trọng, nhất là khi các cơ chế vật lý sinh ra các
tín hiệu đầu vào (ví dụ tín hiệu tiếng nói) vốn là phi tuyến.
16
1.2.2. Tính chất tương ứng đầu vào, đầu ra
Mặc dù khái niệm “học” (hay “huấn luyện”) chưa được bàn đến nhưng
để hiểu được mối quan hệ đầu vào-đầu ra của mạng nơron, chúng ta sẽ đề cập
sơ qua về khái niệm này. Một mô hình học phổ biến được gọi là “học có thầy”
(hay “học có giám sát”), liên quan đến việc thay đổi các trọng số liên kết của
mạng nơron bằng việc áp dụng một tập hợp các mẫu tích luỹ. Mỗi một mẫu
bao gồm một tín hiệu đầu vào và một đầu ra mong muốn tương ứng. Các trọng
số liên kết của mạng được biến đổi sao cho có thể cực tiểu hoá sự sai khác giữa
đầu ra mong muốn và đầu ra thực sự của mạng theo một tiêu chuẩn thống kê
thích hợp. Sự tích luỹ của mạng được lặp lại với nhiều ví dụ trong tập hợp cho
tới khi mạng đạt tới một trạng thái ổn định mà ở đó không có một sự thay đổi
đáng kể nào của các trọng số liên kết. Các ví dụ tích luỹ được áp dụng trước có
thể được áp dụng lại trong thời gian của phiên tích luỹ nhưng theo một thứ tự
khác. Như vậy, mạng nơron học từ các ví dụ bằng cách xây dựng nên một
tương ứng đầu vào - đầu ra cho vấn đề cần giải quyết.
1.2.3. Tính chất thích nghi
Các mạng nơron có một khả năng mặc định là có thể biến đổi các trọng số
liên kết tuỳ theo sự thay đổi của môi trường xung quanh. Đặc biệt, một mạng nơron
tin. Điều này áp dụng cho tất cả các lĩnh vực có liên quan tới việc ứng dụng
mạng nơron. Đặc tính này thể hiện ở một số điểm như sau:
Các nơron, dưới dạng này hoặc dạng khác, biểu diễn một thành phần
chung cho tất cả các mạng nơron.
Tính thống nhất này đem lại khả năng chia sẻ các lý thuyết và các
thuật toán học trong nhiều ứng dụng khác nhau của mạng nơron.
Các mạng tổ hợp (modular) có thể được xây dựng thông qua một sự
tích hợp các mô hình khác nhau.
1.3. Phân loại mạng nơron nhân tạo
1.3.1. Phân loại theo kiểu liên kết nơron
Ta có mạng nơron truyền thẳng và nơron mạng quy hồi[17].
- Mạng truyền thẳng, các nơron đi theo một hướng nhất định tạo thành
đồ thị không có chu trình như trong hình 1.7. Chu trình có các đỉnh là các
nơron, còn các cạnh là các liên kết giữa chúng.
18
Hình 1.7 Mạng truyền thẳng
- Mạng quy hồi: cho phép các liên kết nơron tạo thành chu trình như trong
hình 1.8. Các thông tin ra của các nơron được truyền lại cho các nơron đã góp
phần kích hoạt chúng. Vì thế nên mạng quy hồi còn có khả năng lưu giữ trạng
thái trong dưới dạng các ngưỡng kích hoạt ngoài các trọng số liên kết nơron.
Hình 1.8 Mạng quy hồi
1.3.2. Một số loại mạng nơron điển hình[20]
1.3.2.1. Mạng dẫn tiến (feedforward)
Có thể nói mạng nơron dẫn tiến là một kiểu mạng đơn giản trong việc
sắp đặt mạng. Trong mạng này thông tin chỉ truyền trên một hướng duy nhất:
từ lớp đầu vào xuyên qua lớp ẩn (nếu có) và kết thúc tại lớp đầu ra. Mạng dẫn