Ứ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 - Pdf 12


ĐẠ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


Ứ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

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

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

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

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)

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

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

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ỏ

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

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

Log-Sigmoid (logsig)

x
e
y

+
=
1
12.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

♦ 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


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status