Tải bản đầy đủ (.pdf) (67 trang)

ỨNG DỤNG MÔ HÌNH MẠNG NƠRON TRONG NHẬN DẠNG CHỮVIẾT TAY RỜI RẠC HẠN CHẾTRỰC TUYẾN TRÊN TABLET PC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 67 trang )


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ







Ngô Xuân Bách





ỨNG DỤNG MÔ HÌNH MẠNG NƠRON TRONG NHẬN
DẠNG CHỮ VIẾT TAY RỜI RẠC HẠN CHẾ TRỰC
TUYẾN TRÊN TABLET PC








KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin















Hà nội - 2006

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ







Ngô Xuân Bách






ỨNG DỤNG MÔ HÌNH MẠNG NƠRON TRONG NHẬN
DẠNG CHỮ VIẾT TAY RỜI RẠC HẠN CHẾ TRỰC
TUYẾN TRÊN TABLET PC








KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin


Cán bộ hướng dẫn: PGS.TS. Ngô Quốc Tạo
Cán bộ đồng hướng dẫn: ThS. Phạm Văn Hùng










Hà nội - 2006
Khóa luận tốt nghiệp Ngô Xuân Bách

LỜI CẢM ƠN
Lời đầu tiên em xin được bày tỏ lòng biết ơn sâu sắc tới thầy giáo PGS.TS. Ngô
Quốc Tạo, thầy đã tận tình dạy dỗ và hướng dẫn em trong suốt năm học vừa qua.
Em xin được bày tỏ lòng biết ơn tới ThS. Phạm Văn Hùng, người đã hướng dẫn
em trong suốt thời gian làm khóa luận tốt nghiệp.
Em xin được bày tỏ lòng biết ơn tới các thầy, cô giáo trong Khoa Công nghệ
thông tin, trường Đại họ
c Công nghệ - ĐHQGHN. Các thầy cô đã dạy bảo, chỉ dẫn chúng
em và luôn tạo điều kiện học tập tốt nhất cho chúng em trong những năm học đại học đặc
biệt là trong thời gian thực hiện khóa luận tốt nghiệp.
Tôi xin cảm ơn các bạn sinh viên lớp K47CA trường Đại học Công nghệ, những
người bạn luôn bên cạnh ủng hộ tôi trong suốt những năm học đại h
ọc.
Cuối cùng con xin gửi tới bố mẹ và toàn thể gia đình lòng biết ơn và tình cảm
yêu thương nhất.

Hà Nội, ngày 20/5/2006
Ngô Xuân Bách
ii
Khóa luận tốt nghiệp Ngô Xuân Bách
TÓM TẮT
Nhận dạng chữ viết tay trực tuyến là bài toán thu hút được rất nhiều sự quan tâm
nghiên cứu của nhiều nhà khoa học trên thế giới, đặc biệt là trong những năm gần đây với
sự ra đời và phổ biến của các máy tính xách tay, máy tính bỏ túi như Tablet PC, Pocket
PC… Khóa luận này trình bày về một hệ thống nhận dạng chữ cái viết tay trực tuyến trên
Tablet PC sử dụng mô hình mạng nơron với thuật toán học mô men. Ph
ương pháp trích
chọn đặc trưng được sử dụng là phương pháp vector hóa: từ dãy điểm thu được trong nét
chữ, lấy ra một dãy các điểm cách đều nhau và tạo ra dãy các vector nối các điểm này.
Thông tin được rút ra sau đó bao gồm hướng của các vector và góc giữa các vector liên

tiếp. Hệ thống đã được thử nghiệm trên tập các chữ số 0, 1, …, 9 và tập các chữ cái Tiếng
Việt a, ă, â và cho kết quả tốt.
Từ khóa: neural networks, Tablet PC, hand-writing recognition, online hand-
writing recognition.
iii
Khóa luận tốt nghiệp Ngô Xuân Bách
MỤC LỤC
LỜI CẢM ƠN ii
TÓM TẮT iii
MỤC LỤC iv
DANH MỤC HÌNH VẼ vi
DANH MỤC BẢNG BIỂU vii
Chương 1: GIỚI THIỆU 1
1.1 Giới thiệu về nhận dạng chữ viết tay 1
1.2 Giới thiệu về công nghệ Tablet PC 2
1.2.1 Tablet PC là gì? 2
1.2.2 Bộ công cụ phát triển ứng dụng (The Tablet PC Platform SDK Version 1.5) 3
1.3 Xác định bài toán 5
1.4 Nội dung và cấu trúc của khóa luận 6
Chương 2: TỔNG QUAN VỀ MÔ HÌNH MẠNG NƠRON 8
2.1 Giới thiệu về mạng nơron nhân tạo 8
2.1.1 Mạng nơron nhân tạo là gì? 8
2.1.2 Lịch sử phát triển mạng nơron 8
2.1.3 So sánh mạng nơron với máy tính truyền thống 10
2.2 Nơron sinh học và nơron nhân tạo 11
2.2.1 Nơron sinh học 11
2.2.2 Nơron nhân tạo 12
2.3 Mô hình mạng nơron 14
2.3.1 Các kiểu mô hình mạng nơron 14
2.3.2 Perceptron 16

2.3.3 Mạng nhiều tầng truyền thẳng (MLP) 17
2.4 Huấn luyện mạng nơron 19
2.4.1 Các phương pháp học 19
2.4.2 Học có giám sát trong các mạng nơron 20
2.4.3 Thuật toán lan truyền ngược 21
2.5 Các vấn đề trong xây dựng mạng MLP 26
2.5.1 Chuẩn bị dữ liệu 26
2.5.2 Xác định các tham số cho mạng 28
2.5.3 Hiện tượng lãng quên (catastrophic forgetting) 31
2.5.4 Vấn đề quá khớp 32
Chương 3: MỘT MÔ HÌNH MẠNG NƠRON CHO NHẬN DẠNG CHỮ CÁI VIẾT
TAY TRỰC TUYẾN
34
3.1 Xây dựng mô hình mạng nơron cho bài toán phân loại mẫu 34
3.1.1 Đề xuất mô hình mạng nơron cho bài toán phân loại mẫu 34
3.1.2 Kiểm nghiệm mô hình với bài toán phân loại sinh viên 36
3.2 Trích chọn đặc trưng cho nhận dạng chữ cái viết tay trực tuyến 38
3.2.1 Tổng quan về trích chọn đặc trưng 38
3.2.2 Trích chọn đặc trưng cho nhận dạng chữ cái viết tay trực tuyến 39
3.3 Huấn luyện mạng nơron và quá trình nhận dạng 46
3.3.1 Huấn luyện mạng nơron 46
iv
Khóa luận tốt nghiệp Ngô Xuân Bách
3.3.2 Quá trình nhận dạng 47
Chương 4: CÀI ĐẶT VÀ THỬ NGHIỆM CHƯƠNG TRÌNH 49
4.1 Môi trường cài đặt 49
4.2 Chuẩn bị dữ liệu 49
4.3 Cài đặt chương trình nhận dạng chữ cái viết tay trực tuyến 50
4.3.1 Giao diện chương trình 50
4.3.2 Các chức năng của chương trình 51

4.3.3 Mô tả một số hàm chính trong chương trình 53
4.4 Kết quả thử nghiệm 55
4.4.1 Thử nghiệm với tập các chữ số: 0,1,2,…, 9 55
4.4.2 Thử nghiệm với các chữ cái Tiếng Việt đại diện: a, ă, â 56
Chương 5: KẾT LUẬN 57
5.1 Các kết đã quả đạt được 57
5.1.1 Về mặt lý thuyết 57
5.1.2 Về mặt thực tiễn 57
5.2 Hướng phát triển tiếp theo 57
TÀI LIỆU THAM KHẢO 59
v
Khóa luận tốt nghiệp Ngô Xuân Bách

DANH MỤC HÌNH VẼ
Hình 1-1: Mô hình chung trong nhận dạng chữ viết 2
Hình 1-2: Một số Tablet PC 3
Hình 1-3: Quy định về thứ tự và hướng của chữ viết. 6
Hình 2-1: Cấu trúc của một nơron sinh học điển hình 11
Hình 2-2: Nơron nhân tạo. 12
Hình 2-3: Mạng tự kết hợp 15
Hình 2-4: Mạng kết hợp khác kiểu. 15
Hình 2-5: Mạng truyền thẳng 16
Hình 2-6: Mạng phản hồi 16
Hình 2-7: Perceptron 17
Hình 2-8:Mạng MLP tổng quát 18
Hình 2-9: Mối liên hệ giữa sai số và kích thước mẫu 26
Hình 2-10: Huấn luyện luân phiên trên hai tập mẫu 31
Hình 3-1: Mô hình mạng nơron cho bài toán phân loại mẫu 34
Hình 3-2: Thiết kế mẫu 35
Hình 3-3: Thiết kế mạng nơron 36

Hình 3-4: Chữ a với một nét và chữ ă với hai nét 39
Hình 3-5: Dãy các điểm của chữ 40
Hình 3-6: Dãy các vector của chữ 42
Hình 3-7: Mặt phẳng hướng 43
Hình 3-8: Góc giữa hai vector 45
Hình 3-9: Sơ đồ huấn luyện mạng nơron 46
Hình 4-1: Định dạng tệp nhị phân .pen 49
Hình 4-2: Định dạng tệp dữ liệu .dat. 50
Hình 4-3: Giao diện chương trình nhận dạng. 50
Hình 4-4: Định dạng tệp mô hình .model. 52
Hình 4-5: Một số mẫu chuẩn về các chữ số 55
Hình 4-6: Một số mẫu xấu về các chữ số 55
vi
Khóa luận tốt nghiệp Ngô Xuân Bách
DANH MỤC BẢNG BIỂU
Bảng 2.1: Một số hàm truyền thông dụng[3] 13
Bảng 3.1: Kết quả thử nghiệm với bài toán phân loại sinh viên 38
Bảng 4.1: Kết quả thử nghiệm với tập các chữ số 56
Bảng 4.2: Kết quả thử nghiệm trên tập các chữ cái a, ă, â 56


vii
Chương 1: Giới thiệu
Chương 1: GIỚI THIỆU
1.1 Giới thiệu về nhận dạng chữ viết tay
Bài toán nhận dạng tuy ra đời từ thập niên 60 của thế kỷ trước nhưng vẫn luôn
nhận được sự quan tâm, nghiên cứu của nhiều nhà khoa học trên thế giới. Đặc biệt là
trong những thập niên gần đây, cùng với quá trình đẩy mạnh tin học hóa trong mọi lĩnh
vực đời sống xã hội, nhận dạng không chỉ còn là lĩnh vực nghiên cứu lý thuyết nữa mà đã
được ứng dụng rộ

ng rãi trong thực tế cuộc số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 chữ viết. Chúng được áp dụng vào nhiều lĩnh
vự như y học, dự báo thời tiết, dự báo cháy rừng, điều khiển robot, Trong các bài toán
nhận dạng này, nhận dạng chữ viết là bài toán đang
được ứng dụng phổ biến nhất hiện
nay.
Nhận dạng chữ viết bao gồm hai kiểu chính là nhận dạng chữ in và nhận dạng
chữ viết tay. Cho đến nay bài toán nhận dạng chữ 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. Tiêu biểu
có hệ nh
ận dạng chữ in dựa trên mô hình mạng nơron bốn lớp của J. Wang và J.S.N. Jean
được giới thiệu trong [14] đạt tới tỷ lệ chính xác 99.75%. Ở Việt Nam hiện đã có sản
phẩm VNDOCR của Viện Công nghệ thông tin nhận dạng chữ in tiếng Việt với độ chính
xác tới 99%.
Nhận dạng chữ viết tay được chia thành hai lớp bài toán lớn là nhận dạng chữ
viết tay trực tuyến (online) và nhận dạng chữ
viết tay ngoại tuyến (offline). Trong nhận
dạng chữ viết tay ngoại tuyến, dữ liệu đầu vào được cho dưới dạng các ảnh được quét từ
các giấy tờ, văn bản. Ngược lại nhận dạng chữ viết tay trực tuyến là nhận dạng các chữ
trên màn hình ngay khi nó được viết. Trong hệ nhận dạng này máy tính sẽ lưu lại các
thông tin về nét chữ như thứ tự nét viết, hướng và t
ốc độ của nét…
Ngày nay với tốc độ phát triển chóng mặt của công nghệ, bên cạnh Desktop PC,
thì Tablet PC, Palmtop, Pocket PC,…ra đời ngày càng nhiều và đang rất được ưa chuộng
bởi tính tiện dụng của nó. Đặc điểm nổi bật của các thiết bị này là chúng có hỗ trợ các
thao tác với bút và mực, cho phép người dùng giao tiếp bằng cách dùng bút viết trực tiếp
lên màn hình. Do đó trong những năm gần đây bài toán nhận dạng chữ vi
ết tay trực tuyến
càng thu hút được nhiều sự quan tâm. Mặc dù vậy có rất ít hệ thống nhận dạng chữ viết

tay trực tuyến thành công, đặc biệt là chưa có hệ thống nhận dạng chữ viết tay trực tuyến
nào cho Tiếng Việt được công bố. Thiết nghĩ bài toán nhận dạng chữ viết tay trực tuyến,
đặc biệt là cho Tiếng Việt còn cần nhiều thời gian và công sức để có th
ể tạo ra được
những sản phẩm tốt, có nhiều ứng dụng trong thực tế.

1
Chương 1: Giới thiệu


Hình 1-1: Mô hình chung trong nhận dạng chữ viết.
Trong đó:
♦ Tiền xử lý: là quá trình chuẩn hóa dữ liệu vào, gồm các công việc như xử lý
nhiễu, chuẩn hóa kích thước dữ liệu, …
♦ Trích chọn đặc trưng: là quá trình tìm ra các thông tin hữu ích và đặc trưng nhất
cho mẫu đầu vào để sử dụng cho quá trình nhận dạng.
♦ Nhận dạng: là quá trình sử dụng một mô hình nhận dạng cụ thể v
ới một thuật toán
cụ thể để trả lời mẫu đầu vào là ký tự nào.
♦ Hậu xử lý: là quá trình xử lý kết quả cho phù hợp với từng ứng dụng cụ thể.
1.2 Giới thiệu về công nghệ Tablet PC
1.2.1 Tablet PC là gì?
The Microsoft Tablet PC là máy tính cá nhân có trang bị hệ điều hành Windows
XP Tablet PC Edition, được thiết kế cho các ứng dụng sử dụng bút (pen-enable), mực
(ink-enable) và tiếng nói (speech-enable).
2
Chương 1: Giới thiệu

Hình 1-2: Một số Tablet PC.
Nếu như các thiết bị cầm tay (chẳng hạn như Pocket PC) sử dụng một hệ điều

hành mới (Windows CE) và yêu cầu ứng dụng phải được phát triển riêng cho các thiết bị
này, thì với Windows XP Tablet PC Edition (một phiên bản của hệ điều hành Windows
XP) Tablet PC có thể dễ dàng chạy các ứng dụng viết trên các PC thông thường (từ MS
Office tới các ứng dụng được người dùng phát triển).
Sự
khác nhau cơ bản giữa Tablet PC với PC thông thường là Tablet PC có thêm
một thiết bị cảm nhận vị trí của bút trên màn hình, đó là bộ số hóa (digitizer). Không
giống như Pocket PC, công nghệ số hóa trong Tablet PC không nhạy cảm với sự tiếp xúc
(touch sensitive). Điều này có nghĩa là các vết xước tạo ra trên màn hình khi dùng móng
tay không làm di chuyển con trỏ chuột như trong Pocket PC. Thay vào đó Tablet PC sử
dụng các bộ số hóa điện từ. Bút phát ra một trường điện từ y
ếu và được cảm nhận bởi bộ
số hóa, do đó bút có thể được cảm nhận trước khi nó thực sự chạm vào màn hình. Ngoài
ra nhiều bộ số hóa có thể cảm nhận góc và sự quay của bút, những thông tin này rất hữu
ích với các ứng dụng tạo ảnh ba chiều (chẳng hạn CAD)[11].
1.2.2 Bộ công cụ phát triển ứng dụng (The Tablet PC Platform SDK
Version 1.5)
Bộ công cụ phát triển ứng dụng của Tablet PC (Tablet PC Platform SDK) cho
phép xây dựng những ứng dụng sử dụng bút, mực cũng như sử dụng tiếng nói và hỗ trợ
phần cứng đối với Tablet PC. Phiên bản 1.5 được tích hợp công nghệ phân tách lớp mực
(layout analysis of ink input) điều này cho phép kết hợp chữ viết tay và hình vẽ trên một
bề mặt mực. Bộ phân tách (divider) sẽ cung cấp các đặc điểm chủ y
ếu của quá trình phân
tách lớp (layout analysis features) chúng sẽ được dùng để phân loại và nhóm những nét
vẽ thành những thành phần có cấu trúc khác nhau [12].
Để phát triển ứng dụng cho Tablet PC không nhất thiết cần có một Tablet PC,
mà chỉ cần một máy PC có đủ cấu hình để chạy môi trường phát triển Visual Studio và
Tablet PC Platform SDK.
Cấu hình tối thiểu cho phát triển ứng dụng bao gồm:
Phần mềm: (Software)

♦ Một trong các hệ điều hành sau:
3
Chương 1: Giới thiệu
• Microsoft Windows XP Tablet PC Edition, hoặc
• Microsoft Windows XP Professional, hoặc
• Microsoft Windows XP Professional Service Pack 1, hoặc
• Microsoft Windows 2000 Service Pack 2.
Chú ý: Bộ công cụ phát triển (Tablet PC Platform SDK) có thể được cài đặt
trên Windows 2000 hoặc Windows XP Professional. Trên những platform
này, chương trình có thể thu nhận mực với InkCollector cũng như có thể
được gỡ rối và kiểm thử. Tuy nhiên không có quá trình nhận dạng. Điều
khiển InkEdit và InkPicture có thể được sử dụng để thu nhận mực trên các
hệ điều hành nói trên khi SDK đã được cài
đặt, tuy nhiên chúng không có
khả năng thu nhận mực trên những hệ thống không được cài đặt SDK.
♦ Microsoft Visual Studio 6 SP5 hoặc Microsoft Visual Studio .NET (Có thể
cài được cả hai trên một máy tính).
Chú ý: Bộ công cụ phát triển yêu cầu một số tệp của phiên bản mới của
Microsoft Visual Studio 6. (Tốt nhất nên dùng Microsoft Visual Studio
.NET)
♦ Trình duyệt Internet Explorer 6.0. (Khuyến cáo, không bắt buộc).
Phần cứng (Hardware):
♦ Ổ CD-ROM hoặc DVD
♦ 8MB ổ cứng còn trống cho việc cài đặt đầ
y đủ
♦ Một thiết bị trỏ (pointing) dùng cho nhập dữ liệu. Có thể là chuột, external
tablet (các bộ số hóa được xem như chuột nhưng có độ phân giải cao hơn và
nhiều thông tin về nét chữ hơn), hoặc Tablet PC cùng với bộ số hóa HID
(Human Interface Device).
Bộ cài Tablet PC Platform SDK có thể được tải miễn phí từ địa chỉ


. Các bước cài đặt như sau:
♦ Sau khi có bộ cài đặt, nhấn vào nút Start, click vào mục Run rồi gõ
drive:\path\Setup.exe, trong đó drive là tên ổ đĩa chứa bộ cài đặt và path là
đường dẫn tới bộ cài đặt, sau đó nhấn OK.
4
Chương 1: Giới thiệu
♦ Tại màn hình ban đầu nhấn Next.
♦ Đọc đăng kí license, chọn đồng ý và nhấn Next.
♦ Điền thông tin khách hàng và nhấn Next.
♦ Lựa chọn cài đặt Complete sau đó nhấn Next.
♦ Nhấn Install để cài đặt.
♦ Nhấn Finish để hoàn tất cài đặt.
Việc cài đặt SDK sẽ tạo ra một thư mục Microsoft Tablet PC Platform SDK
trong Programs Files. Thư mục này chứa các shortcut dẫn tớ
i tài liệu tham khảo, các ví
dụ mẫu và mã nguồn.
Mã nguồn của ví dụ mẫu được cài đặt trong thư mục Program Files\Microsoft
Tablet PC Platform SDK\Sample.
Mã nhị phân đã được biên dịch có thể thực thi được của các ví dụ mẫu được cài
đặt trong thư mục Program Files\Microsoft Tablet PC Platform SDK\Bin.
1.3 Xác định bài toán
Đề tài tôi thực hiện trong khóa luận «Ứng dụng mô hình mạng nơron trong
nhận dạng chữ viết tay rời rạc hạn chế trực tuyến trên Tablet PC », công việc chính là
« xây dựng chương trình nhận dạng chữ cái viết tay Tiếng Việt trực tuyến trên Tablet
PC» với mục đích đưa ra một giải pháp giải quyết một lớp con các bài toán nhận dạng
chữ viết tay trực tuyến. Từ đ
ó tạo cơ sở để xây dựng và phát triển một sản phẩm nhận
dạng chữ viết tay Tiếng Việt hoàn chỉnh trên Tablet PC, và xa hơn nữa là trên các thiết bị
cầm tay như Pocket PC.

Phạm vi của khóa luận dừng lại ở nhận dạng ký tự, và có một hạn chế là các ký
tự này phải được viết theo chuẩn của Tiếng Việt (các nét chữ được viết theo thứ tự thông
thườ
ng, và hướng thông thường). Ví dụ, xét 2 mẫu chữ C dưới đây thì chữ bên trái được
coi là viết đúng chuẩn (viết từ trên xuống theo chiều ngược kim đồng hồ), còn chữ bên
phải được coi là viết không đúng (viết từ dưới lên và theo chiều kim đồng hồ).
5
Chương 1: Giới thiệu

Hình 1-3: Quy định về thứ tự và hướng của chữ viết.
Với mục tiêu đặt ra như vậy, đề tài tập trung giải quyết 2 vấn đề cơ bản:
♦ Đưa ra được một phương pháp trích chọn đặc trưng hợp lý áp dụng cho
nhận dạng chữ viết tay trực tuyến.
♦ Xây dựng mô hình mạng nơron cho nhận dạng chữ cái viết tay trực tuyến
trên Tablet PC.
1.4 Nội dung và cấu trúc của khóa luận
Nội dung chính của khóa luận là trình bày những lý thuyết cơ bản về mạng nơron
và áp dụng mô hình mạng nơron vào xây dựng hệ thống nhận dạng chữ cái viết tay trực
tuyến trên Tablet PC. Khóa luận được tổ chức theo cấu trúc như sau:
Chương 1: Giới thiệu
Chương một giới thiệu bài toán nhận dạng chữ viết tay bao gồm cả chữ viết tay
trực tuyến và chữ viết tay ngoạ
i tuyến, giới thiệu Tablet PC và bộ công cụ phát triển ứng
dụng cho Tablet PC – The Tablet PC Platform SDK Version 1.5. Chương này cũng giới
thiệu bài toán chính sẽ được thực hiện trong khóa luận Xây dựng hệ thống nhận dạng chữ
cái viết tay Tiếng Việt trên Tablet PC, mục đích và cả những hạn chế ràng buộc của bài
toán, từ đó đưa ra những vấn đề cơ bản khóa luận cần giải quyết. Cuố
i chương là phần bố
cục trình bày của khóa luận.
Chương 2: Tổng quan về mô hình mạng nơron

Chương này trình bày những lý thuyết cơ bản về mô hình mạng nơron mà tôi đã
tổng kết được trong thời gian tìm hiểu thực hiện khóa luận. Từ khái niệm, lịch sử ra đời
và phát triển của mạng nơron, các loại mô hình mạng nơron, đến các phương pháp huấn
luyện mạng nơron, và thuậ
t toán lan truyền ngược, một thuật toán học kinh điển cho các
mạng nơron. Đặc biệt trong chương này tôi cũng trình bày những vấn đề thường gặp
trong xây dựng một mạng nơron: chuẩn bị dữ liệu (kích thước mẫu, mẫu con, …), chọn
6
Chương 1: Giới thiệu
tham số cho mạng (chọn hàm truyền, số noron tầng ẩn, khởi tạo trọng) hay vấn đề quá
khớp và hướng giải quyết.
Chương 3: Một mô hình mạng nơron cho nhận dạng chữ cái viết tay trực
tuyến
Chương ba trình bày nội dung phần việc chính thực hiện trong khóa luận bao
gồm:
♦ Mô hình mạng nơron áp dụng cho lớp bài toán phân loại mẫu và kiểm
nghiệm đánh giá sự hoạt độ
ng của mô hình.
♦ Phương pháp trích chọn đặc trưng áp dụng cho bài toán nhận dạng chữ cái
viết tay trực tuyến.
♦ Huấn luyện mạng nơron và quá trình nhận dạng.
Chương 4: Cài đặt và thử nghiệm chương trình
Chương này trình bày về việc chuẩn bị dữ liệu và xây dựng chương trình nhận
dạng chữ cái viết tay trực tuyến, đồng thời cũng trình bày các kết quả thử nghiệm mà tôi
đã thực hiện trên chương trình.
Chương 5: Kết luận
Chương năm và cũng là chương cuối của khóa luận tổng kết lại những kết quả đã
đạt được và chưa đạt được, từ đó nêu ra mục tiêu và hướng phát triển tiếp theo của đề tài.
7
Chương 2: Tổng quan về mô hình mạng nơron

Chương 2: TỔNG QUAN VỀ MÔ HÌNH MẠNG NƠRON
2.1 Giới thiệu về mạng nơron nhân tạo
2.1.1 Mạng nơron nhân tạo là gì?
Định nghĩa: Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt là
mạng nơron, 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ệ nơron 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 nơron) 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 nơron 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 nơron.
2.1.2 Lịch sử phát triển mạng nơron
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. 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”[7].
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 nơron 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 nghiên

cứu của IBM đã có những nỗ lực đầu tiên
để mô phỏng một mạng nơron. 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ề nơron 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
nơron. 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
8
Chương 2: Tổng quan về mô hình mạng nơron
về trí tuệ nhân tạo và quá trình xử lý ở mức đơn giản của mạng nơron 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 nơron đơ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ề nơron 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 nơron 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 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 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.
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 nơron. 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 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 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 nơron đã đượ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
9
Chương 2: Tổng quan về mô hình mạng nơron
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 nơron để 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 nơron 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
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.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 hướng giải thuật, tức
là máy tính thực hiện một tập các chỉ lệnh để giải quyết một vấn đề. Vấn đề được giải
quyết phải được biết và phát biểu dưới dạng một tập chỉ lệnh không nhậ
p nhằng. Những
chỉ lệnh này sau đó phải được chuyển sang một chương trình ngôn ngữ bậc cao và
chuyển sang mã máy để máy tính có thể hiểu được.
Trừ khi các bước cụ thể mà máy tính cần tuân theo được chỉ ra rõ ràng, máy tính
sẽ không làm được gì cả. Điều đó giới hạn khả năng của các máy tính truyền thống ở
phạm vi giải quyết các vấn đề mà chúng ta đã hiểu và biết chính xác cách thực hiệ
n. Các
máy tính sẽ trở lên hữu ích hơn nếu chúng có thể thực hiện được những việc mà bản thân
con người không biết chính xác là phải làm như thế nào.
Các mạng nơron xử lý thông tin theo cách thức giống như bộ não con người.
Mạng được tạo nên từ một số lượng lớn các phần tử xử lý được kết nối với nhau làm việc
song song để giải quyết một vấn đề cụ

thể. Các mạng nơron học theo mô hình, chúng
không thể được lập trình để thực hiện một nhiệm vụ cụ thể. Các mẫu phải được chọn lựa
cẩn thận nếu không sẽ rất mất thời gian, thậm chí mạng sẽ hoạt động không đúng. Điều
hạn chế này là bởi vì mạng tự tìm ra cách giải quyết vấn đề, thao tác của nó không thể dự
đoán đượ
c[7].
Các mạng nơron và các máy tính truyền thống không cạnh tranh nhau mà bổ
sung cho nhau. Có những nhiệm vụ thích hợp hơn với máy tính truyền thống, ngược lại
có những nhiệm vụ lại thích hợp hơn với các mạng nơron. Thậm chí rất nhiều nhiệm vụ
đòi hỏi các hệ thống sử dụng tổ hợp cả hai cách tiếp cận để thực hiện được hiệu quả cao
nhất. ( thông th
ường một máy tính truyền thống được sử dụng để giám sát mạng nơron)
10
Chương 2: Tổng quan về mô hình mạng nơron
2.2 Nơron sinh học và nơron nhân tạo
2.2.1 Nơron 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 10
11
nơron tham gia vào khoảng 10
15
kết nối trên các đường truyền (theo
[8]). Mỗi đường truyền này dài khoảng hơn một mét. Các nơron 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 nơron, các con đường này tạo nên hệ thống giao tiếp của bộ não.

Hình 2-1: Cấu trúc của một nơron sinh học điển hình.
Mỗi nơron 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 nơron khác.
Điểm liên kết giữa sợi trục của nơ
ron này với nhánh hình cây của nơron khác gọi là
synapse. Liên kết giữa các nơron 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 nơron đượ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 nơron 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 nơron khác.
11
Chương 2: Tổng quan về mô hình mạng nơron
Dựa trên những hiểu biết về nơron sinh học, con người xây dựng nơron 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.2 Nơron nhân tạo
Một nơron 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
nơron. Cấu trúc của một nơron được mô tả trên hình 2-2.

Hình 2-2: Nơron nhân tạo.
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à 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 nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng
12
Chương 2: Tổng quan về mô hình mạng nơron
đã cho. Thông thường, phạm vi đầu ra của mỗi nơron đượ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 nơron được đưa ra trong bảng 2.1
♦ Đầu ra: Là tín hiệu đầ
u ra của một nơron, với mỗi nơron sẽ có tối đa là một
đầu ra.
Xét về mặt toán học, cấu trúc của một nơron k, được mô tả bằng cặp biểu thức
sau:

=
=
p
j
jkjk
xwu

1



)(
kkk
bufy −=
trong đó: x
1
, x
2
, , x
p
: là các tín hiệu vào; (w
k1
, w
k2, ,
w
kp)
là các trọng số liên kết
của nơron 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 nơron.
Như vậy tương tự như nơron sinh học, nơron 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 2.1: Một số hàm truyền thông dụng[3]
Hàm truyền Đồ thị
Định ngh
ĩa
Symmetrical Hard
Limit (hardlims)





>=+
<−
=
01
01
xnêu
xnêu
y

Linear (purelin)

y = x
13
Chương 2: Tổng quan về mô hình mạng nơron
Saturating Linear
(satlin)



Log-Sigmoid (logsig)

x
e
y

+
=
1
1


2.3 Mô hình mạng nơron
Mặc dù mỗi nơron đơn lẻ có thể thực hiện những chức năng xử lý thông tin
nhất định, sức mạnh của tính toán nơron chủ yếu có được nhờ sự kết hợp các nơron trong
một kiến trúc thống nhất. Một mạng nơron là một mô hình tính toán được xác định qua
các tham số: kiểu nơron (như là các nút nếu ta coi cả mạng nơron là một đồ thị), kiến trúc
k
ết nối (sự tổ chức kết nối giữa các nơron) và thuật toán học (thuật toán dùng để học cho
mạng).
Về bản chất một mạng nơron 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 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 nơron
Cách thức kết nối các nơron trong mạng xác định kiến trúc (topology) của mạng.
Các nơron trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗi nơron đều được

kết nối với tất cả các nơron 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 nơron 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 nơron đầu vào cũng là các nơron đầu
ra. Mạng Hopfield là một kiểu mạng tự kết hợp.

14
Chương 2: Tổng quan về mô hình mạng nơron

Hình 2-3: Mạng tự kết hợp.
♦ Kết hợp khác kiểu (heteroassociative): là mạng có tập nơron đầ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.

Hình 2-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
nơron đầu ra tới các nơron đầ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 nơron đầu ra về các nơron đầ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 n
ơron. Các mạng
nơron 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.
15
Chương 2: Tổng quan về mô hình mạng nơron


Hình 2-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ừ nơron đầu ra tới nơron đầ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.

Hình 2-6: Mạng phản hồi.
2.3.2 Perceptron
Perceptron là mạng nơron đơn giản nhất, nó chỉ gồm một nơron, 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.



16
Chương 2: Tổng quan về mô hình mạng nơron

Hình 2-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 ra
của mạng.
Hoạt động của Perceptron có thể được mô tả bởi cặp công thức sau :

=
=
n
i
ii
wxu
1


và y = f(u - b) = Hardlimit(u - b).
y nhận giá trị +1 nếu u - b>0, ngược lại y nhận giá trị -1.
Perceptron cho phép phân loại chính xác trong trường hợp dữ liệu có thể phân
chia tuyến tính (các mẫu nằm trên hai mặt đối diện của một siêu phẳng). Nó cũng phân
loại đúng đầu ra các hàm AND, OR và các hàm có dạng đúng khi n trong m đầu vào của
nó đúng (n ≤ m). Nó không thể phân loại được đầu ra của hàm XOR.
2.3.3 Mạng nhiều tầng truyền thẳng (MLP)
Mô hình mạng nơron được sử dụng rộng rãi nhất là mô hình mạng nhiều tầng
truyền thẳng (MLP: Multi Layer Perceptron). Một mạng MLP tổng quát là mạng có n
(n≥2) tầng (thông thường tầng đầu vào không được tính đến): trong đó gồm một tầng
đầu ra (tầng thứ n) và (n-1) tầng ẩn.
17

×