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

Ứ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

67 847 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứ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
Tác giả Ngô Xuân Bách
Người hướng dẫn PGS.TS. Ngô Quốc Tạo, ThS. Phạm Văn Hùng
Trường học Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Chuyên ngành Công nghệ Thông Tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2006
Thành phố Hà Nội
Định dạng
Số trang 67
Dung lượng 1,02 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ứ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 1

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

Trang 2

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

Trang 3

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

Trang 4

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, writing recognition, online

hand-writing recognition

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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ế

Trang 10

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)

Trang 11

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à

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 14

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

Trang 15

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

Trang 16

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

Trang 17

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

Trang 18

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)

Trang 19

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 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 20

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à 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 22

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

Trang 23

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

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 25

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

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 26

Hì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

♦ Đầ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 28

Như 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 31

Thay 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 32

Cũ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 33

Trong đó δ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

Ngày đăng: 22/03/2014, 13:40

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Đình Thúc. Trí tuệ nhân tạo, mạng nơron phương pháp và ứng dụng. Nhà xuất bản Giáo Dục - 2000 Sách, tạp chí
Tiêu đề: Trí tuệ nhân tạo, mạng nơron phương pháp và ứng dụng
Nhà XB: Nhà xuất bản Giáo Dục - 2000
[2] Ngô Quốc Tạo, Phạm Văn Hùng. Xây dựng tham số cho mạng nơron lan truyền ngược. Kỷ yếu hội thảo Quốc gia, Thái Nguyên 8-2003 Sách, tạp chí
Tiêu đề: Xây dựng tham số cho mạng nơron lan truyền ngược
[3] Nguyễn Thị Thanh Tân. Nhận dạng chữ viết tay hạn chế dựa trên mô hình mạng neuron kết hợp với thống kê ngữ cảnh. Luận văn thạc sỹ, ĐHQGHN Sách, tạp chí
Tiêu đề: Nhận dạng chữ viết tay hạn chế dựa trên mô hình mạng neuron kết hợp với thống kê ngữ cảnh
[4] Nguyễn Thị Minh Ánh. Nghiên cứu và ứng dụng mạng nơron trong nhận dạng chữ viết tay tiếng Việt. Khóa luận tốt nghiệp đại học 2005, Đại học Công Nghệ, ĐHQGHN Sách, tạp chí
Tiêu đề: Nghiên cứu và ứng dụng mạng nơron trong nhận dạng chữ viết tay tiếng Việt
[5]Ngô Quốc Tạo. Nghiên cứu phương pháp nhận dạng chữ viết tay hạn chế trực tuyến. Đề tài nghiên cứu cơ sở mã số CS04.09 Viện CNTT 2004.Tài liệu tham khảo tiếng Anh Sách, tạp chí
Tiêu đề: Nghiên cứu phương pháp nhận dạng chữ viết tay hạn chế trực tuyến
[6] Dave Anderson and George McNeill. Artificial Neural Networks Technology. Prepared for Rome Laboratory RL/C3C Griffiss AFB, NY 13441-5700 Sách, tạp chí
Tiêu đề: Artificial Neural Networks Technology
[7] Christos Stergiou and Dimitrios Siganos. Neural Networks. http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html Sách, tạp chí
Tiêu đề: Neural Networks
Tác giả: Christos Stergiou, Dimitrios Siganos
[8] Nikola K. Kasabov. Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering. Massachusetts Institute of Technology Sách, tạp chí
Tiêu đề: Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering
[9] Anil K. Jain, Jianchang Mao, K.M. Mohiuddin (1996). Artificial Neural Networks A Tutorial. IEEE Sách, tạp chí
Tiêu đề: Artificial Neural Networks A Tutorial
Tác giả: Anil K. Jain, Jianchang Mao, K.M. Mohiuddin
Năm: 1996
[10] Anand Venkataraman: The Backpropagation Algorithm http://www.speech.sri.com/people/anand/771/html/node37.html[11] Markus Egger. Creating Tablet PC Applications with VS .NET.http://www.devx.com/codemag/Article/17439 Sách, tạp chí
Tiêu đề: Creating Tablet PC Applications with VS .NET
Tác giả: Markus Egger
Nhà XB: DevX
[13] Tracy L. Bannon. Master the Pen Using Ink Controls in Your Tablet Applications. http://www.devx.com/dotnet/Article/10820 Sách, tạp chí
Tiêu đề: Master the Pen Using Ink Controls in Your Tablet Applications
Tác giả: Tracy L. Bannon
[14] Wang J., Jean J.S.N. (1993). Multi-Resolution Neural Network for Omnifont Character Recognition. IEEE International Conference on Neural Network Sách, tạp chí
Tiêu đề: Multi-Resolution Neural Network for Omnifont Character Recognition
Tác giả: Wang J., Jean J.S.N
Năm: 1993

HÌNH ẢNH LIÊN QUAN

Hình 1-1: Mô hình chung trong nhận dạng chữ viết. - Ứ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
Hình 1 1: Mô hình chung trong nhận dạng chữ viết (Trang 10)
Hình 2-2: Nơron nhân tạo. - Ứ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
Hình 2 2: Nơron nhân tạo (Trang 20)
Hình 2-4: Mạng kết hợp khác kiểu. - Ứ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
Hình 2 4: Mạng kết hợp khác kiểu (Trang 23)
Hình 2-3: Mạng tự kết hợp. - Ứ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
Hình 2 3: Mạng tự kết hợp (Trang 23)
Hình 2-5: Mạng truyền thẳng. - Ứ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
Hình 2 5: Mạng truyền thẳng (Trang 24)
Hình 2-6: Mạng phản hồi. - Ứ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
Hình 2 6: Mạng phản hồi (Trang 24)
Hình 2-7: Perceptron. - Ứ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
Hình 2 7: Perceptron (Trang 25)
Hình 2-8:Mạng MLP tổng quát. - Ứ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
Hình 2 8:Mạng MLP tổng quát (Trang 26)
Hình 2-10: Huấn luyện luân phiên trên hai tập mẫu. - Ứ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
Hình 2 10: Huấn luyện luân phiên trên hai tập mẫu (Trang 39)
Hình 3-1: Mô hình mạng nơron cho bài toán phân loại mẫu. - Ứ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
Hình 3 1: Mô hình mạng nơron cho bài toán phân loại mẫu (Trang 42)
Hình 3-3: Thiết kế mạng nơron. - Ứ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
Hình 3 3: Thiết kế mạng nơron (Trang 44)
Hình 3-5: Dãy các điểm của 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
Hình 3 5: Dãy các điểm của chữ (Trang 48)
Hình 3-7: Mặt phẳng hướng. - Ứ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
Hình 3 7: Mặt phẳng hướng (Trang 51)
Hình 4-3: Giao diện chương trình nhận dạng. - Ứ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
Hình 4 3: Giao diện chương trình nhận dạng (Trang 58)
Hình 4-4: Định dạng tệp mô hình .model. - Ứ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
Hình 4 4: Định dạng tệp mô hình .model (Trang 60)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w