Ứ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
Trang 1Ngô 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
Trang 2Ngô 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
Trang 3LỜ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
Trang 4TÓ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, writing recognition, online
hand-writing recognition
Trang 5MỤ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
Trang 63.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
Trang 7DANH 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
Trang 8DANH 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
Trang 9Chươ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ế
Trang 10Hì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)
Trang 11Hì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à
Trang 12• 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ỉ
http://www.microsoft.com 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
Trang 13♦ 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ồ)
Trang 14Hì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
Trang 15tham 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
Trang 16Chươ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
Trang 17về 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
Trang 18rằ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)
Trang 192.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 1011 nơron tham gia vào khoảng 1015 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
Trang 20Dự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à 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
♦ 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
Trang 21đã 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
trong đó: x1, x2, , xp: là các tín hiệu vào; (wk1, wk2, , wkp) là các trọng số liên kết
của nơron thứ k; uk là hàm tổng; bk là một ngưỡng; f là hàm truyền và yk 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)
Trang 222.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
Trang 23Hì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
Trang 24
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
Trang 25Hì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
u
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
Trang 26Hình 2-8:Mạng MLP tổng quát
Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:
♦ Đầu vào là các vector (x1, x2, , xp) trong không gian p chiều, đầu ra là
các vector (y1,y2, , yq) trong không gian q chiều Đối với các bài toán phân loại, p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân loại Xét ví dụ trong bài toán nhận dạng chữ số: với mỗi mẫu ta lưu tọa độ (x,y) của 8 điểm trên chữ số đó, và nhiệm vụ của mạng là phân loại các mẫu này vào một trong 10 lớp tương ứng với 10 chữ số 0, 1, …, 9 Khi
đó p là kích thước mẫu và bằng 8 x 2 = 16; q là số lớp và bằng 10
♦ Mỗi nơron thuộc tầng sau liên kết với tất cả các nơron thuộc tầng liền trước
nó
♦ Đầu ra của nơron tầng trước là đầu vào của nơron thuộc tầng liền sau nó
Hoạt động của mạng MLP như sau: tại tầng đầu vào các nơron nhận tín hiệu vào
xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của hàm
truyền); kết quả này sẽ được truyền tới các nơron thuộc tầng ẩn thứ nhất; các nơron tại
đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2;…; quá trình
tiếp tục cho đến khi các nơron thuộc tầng ra cho kết quả
Một số kết quả đã được chứng minh:
♦ Bất kì một hàm Boolean nào cũng có thể biểu diễn được bởi một mạng
MLP 2 tầng trong đó các nơron sử dụng hàm truyền sigmoid
Trang 27♦ Tất cả các hàm liên tục đều có thể xấp xỉ bởi một mạng MLP 2 tầng sử
dụng hàm truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho các nơron tầng ra với sai số nhỏ tùy ý
♦ Mọi hàm bất kỳ đều có thể xấp xỉ bởi một mạng MLP 3 tầng sử dụng hàm
truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho các nơron tầng ra
2.4 Huấn luyện mạng nơron
2.4.1 Các phương pháp học
Khái niệm: Học là quá trình thay đổi hành vi của các vật theo một cách nào đó
làm cho chúng có thể thực hiện tốt hơn trong tương lai
Một mạng nơron được huyấn luyện sao cho với một tập các vector đầu vào X,
mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó Tập X được sử dụng
cho huấn luyện mạng được gọi là tập huấn luyện (training set) Các phần tử x thuộc X
được gọi là các mẫu huấn luyện (training example) Quá trình huấn luyện bản chất là sự
thay đổi các trọng số liên kết của mạng Trong quá trình này, các trọng số của mạng sẽ
hội tụ dần tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ cho
ra vector đầu ra y như mong muốn
Có ba phương pháp học phổ biến là học có giám sát (supervised learning), học
không giám sát (unsupervised learning) và học tăng cường (Reinforcement learning):
♦ Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy giáo”
Cũng giống như việc ta dạy một em nhỏ các chữ cái Ta đưa ra một chữ “a” và bảo
với em đó rằng đây là chữ “a” Việc này được thực hiện trên tất cả các mẫu chữ
cái Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và
hỏi em đó đây là chữ gì?
Với học có giám sát, tập mẫu huấn luyện được cho dưới dạng D = {(x,t) | (x,t) ∈ [IRN x RK]}, trong đó: x = (x1, x2, ,xN) là vector đặc trưng N chiều của
mẫu huấn luyện và t = (t1, t2, ,tK) là vector mục tiêu K chiều tương ứng, nhiệm vụ
của thuật toán là phải thiết lập được một cách tính toán trên mạng như thế nào đó
để sao cho với mỗi vector đặc trưng đầu vào thì sai số giữa giá trị đầu ra thực sự
của mạng và giá trị mục tiêu tương ứng là nhỏ nhất Chẳng hạn mạng có thể học
để xấp xỉ một hàm t = f(x) biểu diễn mối quan hệ trên tập các mẫu huấn luyện
(x,t)
Trang 28Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước
Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho với
mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó
♦ Học không giám sát: Là việc học không cần có bất kỳ một sự giám sát nào
Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {(x1, x2, ,xN)}, với (x1, x2, ,xN) là vector đặc trưng của mẫu huấn
luyện Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm
con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau
Như vậy với học không giám sát, số lớp phân loại chưa được biết trước, và
tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp
phân loại khác nhau
♦ Học tăng cường: đôi khi còn được gọi là học thưởng-phạt (reward-penalty
learning), là sự tổ hợp của cả hai mô hình trên Phương pháp này cụ thể như sau:
với vector đầu vào, quan sát vector đầu ra do mạng tính được Nếu kết quả được
xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên;
ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm
xuống Do đó học tăng cường là học theo nhà phê bình (critic), ngược với học có
giám sát là học theo thầy giáo (teacher)[8]
2.4.2 Học có giám sát trong các mạng nơron
Học có giám sát có thể được xem như việc xấp xỉ một ánh xạ: X→ Y, trong đó
X là tập các vấn đề và Y là tập các lời giải tương ứng cho vấn đề đó Các mẫu (x,y) với
x= (x1, x2, ,xn)∈ X, y = (yl, y2, , ym) ∈ Y được cho trước Học có giám sát trong
các mạng nơron thường được thực hiện theo các bước sau:
♦ B1: Xây dựng cấu trúc thích hợp cho mạng nơron, chẳng hạn có (n + 1) nơron vào
(n nơron cho biến vào và 1 nơron cho ngưỡng x0), m nơron đầu ra, và khởi tạo các
trọng số liên kết của mạng
♦ B2: Đưa một vector x trong tập mẫu huấn luyện X vào mạng
♦ B3: Tính vector đầu ra o của mạng
♦ B4: So sánh vector đầu ra mong muốn y (là kết quả được cho trong tập huấn
luyện) với vector đầu ra o do mạng tạo ra; nếu có thể thì đánh giá lỗi
Trang 29♦ B5: Hiệu chỉnh các trọng số liên kết theo một cách nào đó sao cho ở lần tiếp theo
khi đưa vector x vào mạng, vector đầu ra o sẽ giống với y hơn
♦ B6: Nếu cần, lặp lại các bước từ 2 đến 5 cho tới khi mạng đạt tới trạng thái hội tụ
Việc đánh giá lỗi có thể thực hiện theo nhiều cách, cách dùng nhiều nhất là sử
dụng lỗi tức thời : Err = (o - y), hoặc Err = |o - y|; lỗi trung bình bình phương (MSE:
mean-square error): Err = (o- y)2/2;
Có hai loại lỗi trong đánh giá một mạng nơron Thứ nhất, gọi là lỗi rõ ràng
(apparent error), đánh giá khả năng xấp xỉ các mẫu huấn luyện của một mạng đã được
huấn luyện Thứ hai, gọi là lỗi kiểm tra (test error), đánh giá khả năng tổng quá hóa của
một mạng đã được huấn luyện, tức khả năng phản ứng với các vector đầu vào mới Để
đánh giá lỗi kiểm tra chúng ta phải biết đầu ra mong muốn cho các mẫu kiểm tra
Thuật toán tổng quát ở trên cho học có giám sát trong các mạng nơron có nhiều
cài đặt khác nhau, sự khác nhau chủ yếu là cách các trọng số liên kết được thay đổi trong
suốt thời gian học Trong đó tiêu biểu nhất là thuật toán lan truyền ngược
2.4.3 Thuật toán lan truyền ngược
♦ : tổng trọng số trên các đầu vào của nút thứ j
♦ oj: đầu ra của nút thứ j (với oj = f(uj))
♦ tj: đầu ra mong muốn của nút thứ j
♦ Downstream(j): Tập tất cả các nút nhận đầu ra của nút thứ j làm một giá trị
đầu vào
♦ Outputs: Tập các nút trong tầng ra
Trang 30♦ η: tốc độ học
♦ f: hàm truyền với:
x
e x
f −
+
= 1
1 )
và:
))(1)(
(1
)
e
e x
x
−
=+
w
E w
Do trọng số được cập nhật sau mỗi mẫu huấn luyện, để đơn giản có thể coi tập
huấn luyện chỉ gồm một mẫu Khi đó hàm lỗi được tính như sau:
k
k f u t
2 1
Theo quy tắc chuỗi ta có:
ji
j j
u u
E w
ji ji
u =∑ −
do đó:
ji ji
Trang 31Thay lại (1) ta được:
ji j ji
x u
E w
j
j j j
j
j j j j
j
j j j
j j j j
o o o
t
u f u f o
t
u f u o t
u
o o t
o t u u
E j
)1)(
(
)())(1)(
(
)()
(
)(
)(
b Trường hợp 2: j là nơron tầng ẩn
Ta có hai nhận xét quan trọng sau:
1 Với mỗi nút k ∈ Downstream(j), uk là một hàm của uj
2 Việc tạo ra lỗi của tất cả các nút l ≠ j trong cùng một tầng với j là độc
Trang 32Cũng theo quy tắc chuỗi:
ji j
j j
k j
Downstream
ji
j j
j j
k j
Downstream
ji
x u
o o
u u E
w
u u
o o
u u
E w
) (
o o
u u
E j
(chú ý rằng công thức (3) là áp dụng cho các nơron tầng ẩn, công thức (2) ở trên
là áp dụng cho các nơron tầng ra)
Mặt khác lại có:
)1(,
j
j kj
j
k k k
o o u
o và w o
u u
) (
) (
)1(
)1()(
j Downstream k
kj k j
j
j Downstream k
j j
kj k
j
j j
k j
Downstream
w o
o
o o
w
u
o o
u u
E j
δδδ
Như vậy từ (2) và (3) ta thấy rằng trong mọi trường hợp đều có
ji j ji
Trang 33Trong đó δj được tính như sau:
Với j là nút xuất thì:
j j j
j o o o t
1(
j Downstream k
kj k j
o
δ
Thuật toán lan truyền ngược được mô tả như sau:
Input: - Mạng feed-forward với ni đầu vào, nh nút ẩn và no đầu ra
- Hệ số học η
- Tập dữ liệu huấn luyện D = { là vector đầu vào,
là vector đầu ra mong muốn}
Output: Các vector trọng số
Thuật toán:
Bước 1: Khởi tạo trọng số bởi các giá trị ngẫu nhiên nhỏ
Bước 2: Lặp lại cho tới khi thỏa mãn điều kiện kết thúc
Với mỗi mẫu , thực hiện các bước sau:
2.1 Tính đầu ra oj cho mỗi nút j 2.2 Với mỗi nút k thuộc tầng ra, tính δk theo công thức:
k k k
1(
h Downstream k
kh k h
h
δ2.4 Cập nhật: wji = wji + ∆ wji
Trong đó ∆w ji =ηδjx ji