LỜI CẢM ƠN
Để hoàn thành đề tài này và có kiến thức nhƣ ngày hôm nay, đầu tiên
em xin gửi lời cảm ơn đến ban Giám hiệu cùng toàn thể thầy cô giáo khoa
Công nghệ thông tin – Trƣờng đại học sƣ phạm Hà Nội 2 đã tận tình giảng
dạy, truyền đạt kiến thức cũng nhƣ những kinh nghiệm quý báu cho em
trong suốt quá trình học tập và nghiên cứu tại trƣờng.
Em cũng chân thành cảm ơn cô Ths. Lƣu Thị Bích Hƣơng đã tận tình
hƣớng dẫn và quan tâm, động viên em trong quá trình thực hiện khóa luận.
Em cũng bày tỏ lòng biết ơn sâu sắc đến những ngƣời thân trong gia
đình, bạn bè đã động viên và tạo mọi điều kiện giúp em trong quá trình học
tập cũng nhƣ trong cuộc sống.
Mặc dù em đã cố gắng hoàn thành tốt khóa luận nhƣng cũng không
thể tránh khỏi những sai sót nhất định, rất mong đƣợc sự thông cảm và chia
sẻ cùng quý thầy cô và bạn bè.
Em xin gửi lời chúc sức khỏe và thành đạt tới tất cả quý thầy cô cùng
các bạn.
Sinh viên thực hiện
ĐỖ THANH BA
1
LỜI CAM ĐOAN
Tên tôi là: ĐỖ THANH BA
Sinh viên lớp: K34-CNTT, Trƣờng ĐH Sƣ Phạm Hà Nội 2
Tôi xin cam đoan:
1. Đề tài “Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài
toán nhận dạng ảnh ký tự” là kết quả nghiên cứu của riêng tôi, dƣới sự
hƣớng dẫn của cô giáo Th.s LƢU THỊ BÍCH HƢƠNG và tham khảo một số
nguồn tài liệu trong nƣớc và nƣớc ngoài trên Internet.
1.4.4. Tính chất đƣa ra lời giải có bằng chứng ........................................... 22
1.4.5. Tính chất chấp nhận sai xót............................................................... 23
1.4.6. Khả năng cài đặt VLSI (Very-large-scale-intergrated)..................... 23
1.4.7. Tính chất đồng dạng trong phân tích và thiết kế............................... 23
1.5. Một số vấn đề của mạng nơron ................................................................ 24
1.6. Ứng dụng của mạng nơron ....................................................................... 25
CHƢƠNG 2 BIỂU DIỄN TRI THỨC BẰNG MẠNG NƠRON ................... 27
2.1. Các kiến trúc mạng................................................................................... 27
3
2.1.1. Mạng một tầng .................................................................................. 27
2.1.2. Mạng đa tầng ..................................................................................... 29
2.2. Các hình trạng của mạng .......................................................................... 31
2.2.1. Mạng truyền thẳng ............................................................................ 31
2.2.2. Mạng hồi quy .................................................................................... 33
2.3. Xây dựng mạng nơron.............................................................................. 34
2.4. Huấn luyện mạng nơron ........................................................................... 35
2.4.1. Phƣơng pháp học ............................................................................... 35
2.4.2. Thuật toán học ................................................................................... 36
2.5. Thu thập dữ liệu cho mạng nơron ............................................................ 42
2.6. Biểu diễn tri thức cho mạng nơron .......................................................... 44
CHƢƠNG 3 XÂY DỰNG ỨNG DỤNG ....................................................... 47
3.1. Phát biểu bài toán ..................................................................................... 47
3.2. Giải quyết bài toán ................................................................................... 47
3.2.1. Xây dựng mạng nơron ...................................................................... 47
3.2.2. Xử lý dữ liệu (phân tích ảnh) ............................................................ 49
3.2.3. Huấn luyện mạng nơron .................................................................... 54
3.2.4. Nhận dạng ảnh kí tự .......................................................................... 58
3.3. Bảng mã ASCII ........................................................................................ 60
loại. Mạng nơron nhân tạo đã ra đời từ những nỗ lực đó. Nó thực sự đƣợc chú
ý và nhanh chóng trở thành một hƣớng nghiên cứu đầy triển vọng trong mục
đích xây dựng các máy thông minh tiến gần tới trí tuệ con ngƣời. Chính vì
vậy em đã chọn đề tài: “Nghiên cứu mạng nơron nhân tạo và ứng dụng vào
bài toán nhận dạng ảnh ký tự” với mục đích chuyển đổi ảnh văn bản thành
văn bản có thể sửa đổi đƣợc trong máy vi tính.
1.2. Mục đích
Mục đích của đề tài nghiên cứu này là tạo ra một nguồn tài liệu cơ sở
trong lĩnh vực nhận dạng ký tự, từ đó có cái nhìn tổng quan về phƣơng thức
5
thực hiện hay các vấn đề gặp phải trong bài toán nhận dạng ký tự, kích thích
sự đam mê và khả năng nghiên cứu khoa học của sinh viên nhằm phát triển
đƣợc nhiều ứng dụng thực tiễn hơn nữa liên quan tới ký tự chữ in nhƣ: Nhận
dạng CMTND, hộ chiếu, biển số xe...
2. Nhiệm vụ, yêu cầu
2.1. Nhiệm vụ
- Nghiên cứu về lý thuyết nhận dạng.
- Nghiên cứu các khái niệm và thành phần cơ bản của mạng nơron.
Tập trung nghiên cứu mạng perceptron nhiều lớp MLP (MultiLayer
Perceptron) là một trong những loại mạng truyền thẳng điển hình, đƣợc sử
dụng rộng rãi trong các hệ thống nhận dạng nhƣ nhận dạng ảnh ký tự, chữ viết
tay, nhận dạng tiếng nói…
- Nghiên cứu ngôn ngữ c# để tiến hành cài đặt chƣơng trình nhận dạng
ảnh ký tự.
2.2. Yêu cầu
- Xây dựng chƣơng trình nhận dạng ảnh ký tự bằng mạng nơron nhân
tạo.
7
CHƢƠNG 1
TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO
1.1. Giới thiệu mạng nơron
1.1.1. Lịch sử phát triển của mạng nơron
Mạng nơron nhân tạo đƣợc xây dựng từ những năm 1940 nhằm mô
phỏng một số chức năng của bộ não ngƣời. Dựa trên quan điểm cho rằng bộ
não ngƣời là bộ điều khiển. Mạng nơron nhân tạo đƣợc thiết kế tƣơng tự nhƣ
nơron sinh học sẽ có khả năng giải quyết hàng loạt các bài toán nhƣ tính toán
tối ƣu, điều khiển, công nghệ robot…
Quá trình nghiên cứu và phát triển nơron nhân tạo có thể chia thành 4
giai đoạn nhƣ sau:
- Giai đoạn 1: 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 nơron thần kinh. Năm 1940 Mc Culloch và Pitts đã cho
biết nơron có thể mô hình hoá nhƣ thiết bị ngƣỡng (Giới hạn) để thực hiện các
phép tính logic và mô hình mạng nơron của Mc Culloch và Pitts cùng với
giải thuật huấn luyện mạng của Hebb ra đời năm 1943.
- Giai đoạn 2: Vào khoảng gần những năm 1960, một số mô hình
nơron hoàn thiện hơn đã đƣợc đƣa ra nhƣ: Mô hình Perceptron của
Rosenblatt (1958), Adalile của Widrow (1962). Trong đó mô hình
Perceptron rất đƣợc quan tâm vì nguyên lý đơn giản, nhƣng nó cũng có
hạn chế vì nhƣ Marvin Minsky và Seymour papert của MIT (Massachurehs
Insritute of Technology) đã chứng minh nó không dùng đƣợc cho các hàm
logic phức (1969). Còn Adaline là mô hình tuyến tính, tự chỉnh, đƣợc dùng
rộng rãi trong điều khiển thích nghi, tách nhiễu và phát triển cho đến nay.
- Giai đoạn 3: Vào khoảng đầu thập niên 80. Những đóng góp lớn
cho mạng nơron trong giai đoạn này phải kể đến Grossberg, Kohonen,
Rumelhart và Hopfield. Trong đó đóng góp lớn của Hopfield gồm hai mạng
thần kinh vào và chúng bao phủ một diện tích rất lớn (0,25mm2). Đầu dây
9
thần kinh ra đƣợc rẽ nhánh nhằm chuyển giao tín hiệu từ thân nơron tới nơron
khác. Các nhánh của đầu dây thần kinh đƣợc nối với các khớp thần kinh
(synapse). Các khớp thần kinh này đƣợc nối với thần kinh vào của các nơron
khác. Các nơron có thể sửa đổi tín hiệu tại các khớp. Hình ảnh đơn giản của
một nơron thể hiện trong hình 1.1.
Hình 1.1: Mô hình nơron sinh học
Hoạt động của nơron sinh học có thể đƣợc mô tả nhƣ sau:
Mỗi nơron nhận tín hiệu vào từ các tế bào thần kinh khác. Chúng tích
hợp các tín hiệu vào, khi tổng tín hiệu vƣợt quá một ngƣỡng nào đó chúng tạo
tín hiệu ra và gửi tín hiệu này tới các nơron khác thông qua dây thần kinh.
Các nơron liên kết với nhau thành mạng. Mức độ bền vững của các
liên kết này xác định một hệ số gọi là trọng số liên kết.
1.1.3. Nơron nhân tạo
Nơron nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra,
mỗi đầu vào đến từ một liên kết. Đặc trƣng của nơron là một hàm kích hoạt
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.
10
y1
Bộ cộng dùng để tính tổng các tín hiệu đầu vào của nơron, đã đƣợc
nhân với các trọng số liên kết tƣơng ứng. Phép toán đƣợc mô tả ở đây tạo nên
một bộ hợp tuyến tính.
Hàm kích hoạt hay còn gọi hàm kích hoạt phi tuyến, chuyển đổi một 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 mạng nơron. Nó đƣợc xem
nhƣ là một hàm giới hạn, nó giới hạn phạm vi biên độ cho phép của tín hiệu
đầu ra trong một khoảng giá trị hữu hạn. Mô hình nơron trong hình 2 còn bao
11
gồm một hệ số điều chỉnh b tác động từ bên ngoài. 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 kích hoạt, tùy theo nó
dƣơng hay âm.
1.1.4. Các thành phần của một nơron nhân tạo
Phần này mô tả một số thành phần cơ bản của một nơron nhân tạo.
Những thành phần này là giống nhau cho dù nơron đó dùng trong tầng vào,
tầng ra hay là ở trong tầng ẩn.
Thành phần 1. Các nhân tố trọng số: Một nơron thƣờng nhận nhiều
đầu vào cùng lúc. Mỗi đầu vào có trọng số liên quan của riêng nó, trọng số
này giúp cho đầu vào có ảnh hƣởng cần thiết lên hàm tổng của đơn vị xử lý
(thành phần xử lý). Những trọng số này có chức năng giống nhƣ sức mạnh
của các synapes khác nhau trong nơron sinh học. Trong cả hai trƣờng hợp
(nhân tạo và sinh học), một số đầu vào quan trọng hơn những đầu vào khác do
vậy chúng có ảnh hƣởng lớn hơn tới thành phần xử lý để rồi chúng kết hợp lại
để tạo ra sự phản ứng của nơron (neural response).
Các trọng số là những hệ số thích nghi bên trong một mạng, chúng xác
định cƣờng độ (sức mạnh hay là sức ảnh hƣởng) của tín hiệu vào lên nơron
nhân tạo. Những sức mạnh này có thể đƣợc điều chỉnh theo những tập đào tạo
cho ra đầu ra 0 và 1, 1 và -1, hay con số kết hợp nào đó.
Thành phần 4. Hàm ra: Mỗi thành phần xử lý cho phép một tín hiệu
đầu ra mà đầu ra này có thể đi tới hàng trăm nơron khác. Điều này giống với
nơron sinh học trong đó có rất nhiều đầu vào và chỉ có một hành động ra.
Thƣờng thì đầu ra tƣơng đƣơng với kết quả của hàm chuyển đổi. Tuy nhiên,
một số kiến trúc mạng chỉnh sửa kết quả của hàm chuyển đổi để kết hợp với
những thành phần xử lý lân cận. Các nơron cho phép cạnh tranh với những
nơron khác, khi này chúng hạn chế các thành phần xử lý khác trừ các thành
phần xử lý có sức mạnh rất lớn. Sự cạnh tranh có thể xảy ra ở một hay là cả
hai mức. Đầu tiên sự cạnh tranh quyết định xem nơron nhân tạo nào sẽ là tích
13
cực, hay là cung cấp một đầu ra. Tiếp theo các đầu ra cạnh tranh giúp xác
định thành phần xử lý nào sẽ tham gia và quá trình học hay là quá trình thích
nghi.
Thành phần 5. Giá trị truyền ngƣợc và hàm lỗi: Trong hầu hết các
mạng học sự khác biệt giữa đầu ra hiện tại và đầu ra mong muốn đƣợc tính
toán, sự khác biệt có thể đƣợc gọi là lỗi thô. Sau khi đƣợc tính toán, lỗi thô đó
đƣợc chuyển đổi bởi hàm lỗi để làm cho phù hợp với một kiến trúc mạng cụ
thể nào đó. Các kiến trúc mạng cơ sở nhất sử dụng lỗi này một cách trực tiếp
nhƣng một số khác bình phƣơng lỗi đó trong khi vẫn giữ lại dấu của nó, một
số tính bậc ba của lỗi, một số khác lại hiệu chỉnh lỗi thô đó để đạt đƣợc mục
đích cụ thể nào đó. Lỗi của nơron nhân tạo thƣờng đƣợc truyền vào hàm học
của một thành phần xử lý khác. Số hạng lỗi này đôi khi còn đƣợc gọi là lỗi
hiện thời.
Lỗi hiện thời thƣờng đƣợc truyền ngƣợc về một tầng trƣớc đó. Nhƣng
giá trị truyền ngƣợc này có thể là lỗi hiện thời hay là lỗi hiện thời đã đƣợc
điều chỉnh theo một cách nào đó (thƣờng sử dụng đạo hàm của hàm chuyển
Hình 1.3: Sơ đồ đơn giản về một mạng nơron nhân tạo
Mô hình mạng nơron ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn (hidden)
và lớp xuất (output). Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập
và chuyển vào mạng.
15
Dữ liệu từ tất cả các nút trong lớp nhập đƣợc tích hợp – ta gọi là tổng
trọng số – và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút
trong lớp này chỉ liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có
ngƣời thiết kế mạng mới biết lớp này (ngƣời sử dụng không biết lớp này).
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. Đơn vị xử lý
Một đơn vị xử lý (Hình 1.4), cũng đƣợc gọi là một nơron hay một nút
(node), thực hiện một công việc rất đơn giản: nó nhận tín hiệu vào từ các đơn
vị phía trƣớc hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ
đƣợc lan truyền sang các đơn vị khác.
Hình 1.4: Đơn vị xử lý (Processing unit)
Trong đó:
Xj : các đầu vào
wji : các trọng số tƣơng ứng với các đầu vào
θj : độ lệch (bias)
aj : đầu vào mạng (net-input)
zj : đầu ra của nơron
g(x): hàm chuyển (hàm kích hoạt).
Rất nhiều hàm kết hợp sử dụng một "độ lệch" hay "ngƣỡng" để tính net
input tới đơn vị. Đối với một đơn vị đầu ra tuyến tính, thông thƣờng, j đƣợc
chọn là hằng số và trong bài toán xấp xỉ đa thức j = 1.
1.3.2. Hàm kích hoạt (hàm chuyển)
Phần lớn các đơn vị trong mạng nơron chuyển net input bằng cách
sử dụng một hàm vô hƣớng (scalar-to-scalar function) gọi là hàm kích hoạt,
kết quả của hàm này là một giá trị gọi là mức độ kích hoạt của đơn vị (unit's
activation). Loại trừ khả năng đơn vị đó thuộc lớp ra, giá trị kích hoạt đƣợc
đƣa vào một hay nhiều đơn vị khác. Các hàm kích hoạt thƣờng bị ép vào
một khoảng giá trị xác định, do đó thƣờng đƣợc gọi là các hàm bẹp
(squashing). Các hàm kích hoạt hay đƣợc sử dụng là:
1) Hàm đồng nhất (Linear function, Identity function )
g(x) = x
Nếu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này. Đôi khi
một hằng số đƣợc nhân với net-input để tạo ra một hàm đồng nhất.
g(x)
1
-1
0
-1
1
x
Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng đƣợc huấn
luyện (trained) bởi thuật toán Lan truyền ngược (back-propagation), bởi vì
nó dễ lấy đạo hàm, do đó có thể giảm đáng kể tính toán trong quá trình
19
huấn luyện. Hàm này đƣợc ứng dụng cho các chƣơng trình ứng dụng mà các
đầu ra mong muốn rơi vào khoảng [0,1].
g(x)
1
-6
-4
0
-2
2
4
6
x
diễn sự phi tuyến vào trong mạng. Lý do là hợp thành của các hàm đồng
nhất là một hàm đồng nhất. Mặc dù vậy nhƣng nó mang tính chất phi tuyến
(nghĩa là, khả năng biểu diễn các hàm phi tuyến) làm cho các mạng nhiều
tầng có khả năng rất tốt trong biểu diễn các ánh xạ phi tuyến. Tuy nhiên, đối
với luật học lan truyền ngƣợc, hàm phải khả vi (differentiable) và sẽ có
ích nếu nhƣ hàm đƣợc gắn trong một khoảng nào đó. Do vậy, hàm sigmoid
là lựa chọn thông dụng nhất.
Đối với các đơn vị đầu ra (output units), các hàm chuyển cần đƣợc
chọn sao cho phù hợp với sự phân phối của các giá trị đích mong muốn.
Chúng ta đã thấy rằng đối với các giá trị ra trong khoảng [0,1], hàm sigmoid
là có ích; đối với các giá trị đích mong muốn là liên tục trong khoảng đó
thì hàm này cũng vẫn có ích, nó có thể cho ta các giá trị ra hay giá trị đích
đƣợc căn trong một khoảng của hàm kích hoạt đầu ra. Nhƣng nếu các giá
trị đích không đƣợc biết trƣớc khoảng xác định thì hàm hay đƣợc sử dụng
nhất là hàm đồng nhất. Nếu giá trị mong muốn là dƣơng nhƣng không biết
cận trên thì nên sử dụng một hàm kích hoạt dạng mũ.
1.4. Đặc trƣng của mạng nơron
1.4.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 sự kết nối các nơron phi tuyến thì tự nó 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.
21
1.4.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ơ
chấp nhận lỗi, hay khả năng tính toán thô, với ý nghĩa là tính năng của nó chỉ
thoái hoá khi có những điều kiện hoạt động bất lợi. Ví dụ, nếu một nơron hay
các liên kết kết nối của nó bị hỏng, việc nhận dạng lại một mẫu đƣợc lƣu trữ
sẽ suy giảm về chất lƣợng.
1.4.6. Khả năng cài đặt VLSI (Very-large-scale-intergrated)
Bản chất song song đồ sộ của một mạng nơron làm cho nó rất nhanh
trong tính toán đối với một số công việc. Đặc tính này cũng tạo ra cho một
mạng nơron khả năng phù hợp cho việc cài đặt sử dụng kỹ thuật Very-largescale-intergrated (VLSI). Kỹ thuật này cho phép xây dựng những mạch cứng
tính toán song song quy mô lớn. Chính vì vậy mà ƣu điểm nổi bật của VLSI
là mang lại những phƣơng tiện hữu hiệu để có thể xử lý đƣợc những hành vi
có độ phức tạp cao.
1.4.7. Tính chất đồng dạng trong phân tích và thiết kế
Về cơ bản, các mạng nơron có tính chất chung nhƣ là các bộ xử lý thông
tin. Chúng ta nêu ra điều này với cùng ý nghĩa 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.
23
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.5. Một số vấn đề của mạng nơron
Khi xây dựng một ứng dụng mạng nơron chúng ta cần quan tâm một số
vấn đề sau:
Vấn đề về kiến trúc mạng nơron: nơron nào nối với nơron nào? Đây
liệu và huấn luyện lại để tìm các mạng mới.
1.6. Ứng dụng của mạng nơron
Kể từ khi ra đời và phát triển mạng nơron đã đƣợc ứng dụng trong
rất nhiều lĩnh vực. Do vậy, liệt kê đƣợc tất cả các ứng dụng của mạng
nơron là không thực tế. Tuy nhiên, ta có thể đƣa ra một số ứng dụng điển
hình của mạng nơron nhƣ sau:
Xử lý ảnh, nhìn máy: Gồm trùng khớp ảnh, tiền xử lý ảnh, phân
đoạn và phân tích ảnh, nén ảnh,...
Xử lý tín hiệu: Phân tích tín hiệu địa chấn và hình thái học.
Nhận dạng mẫu: Gồm việc tách các nét đặc biệt của mẫu,
phân loại và phân tích tín hiệu của rada, nhận dạng và hiểu tiếng nói,
nhận dạng vân tay, ký tự, chữ viết,...
Y học: Phân tích và hiểu tín hiệu điện tâm đồ, chuẩn đoán bệnh, xử
lý ảnh y học.
Quân sự: Các hệ phát hiện thuỷ lôi, phân loại luồng rada, nhận dạng
nguời nói.
Các hệ tài chính: Gồm phân tích thị trƣờng chứng khoán, định giá
bất động sản, cấp phát thẻ tín dụng và thƣơng mại an toàn.
Trí tuệ nhân tạo: Gồm các hệ chuyên gia,...
Dự đoán: Dự đoán các trạng thái của hệ thống,...
Quy hoạch, kiểm tra và tìm kiếm: Gồm cài đặt song song các bài toán
thoả mãn ràng buộc, tìm nghiệm bài toán ngƣời du lịch, điều khiển và
25