Tải bản đầy đủ (.docx) (79 trang)

Sử dụng mạng noron cho nhận dạng ký tự Tiếng Việ

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

LỜI CẢM ƠN
Xin chân thành cảm ơn Thầy giáo, PGS.TS. Lê Bá Dũng đã tận tình chỉ dạy,
hướng dẫn tôi trong suốt thời gian nghiên cứu và thực hiện luận văn.
Tôi cũng xin chân thành cảm ơn các Thầy giáo Viện Công nghệ Thông tin và các
Thầy giáo Trường Đại học sư phạm Hà Nội 2 đã giảng dạy, giúp đỡ trong suốt thời gian
học tập.
Xin cảm ơn tất cả các anh chị học viên Cao học khóa 15 - Khoa học máy tính,
cảm ơn các cán bộ công chức, giảng viên Trường Đại học sư phạm Hà Nội 2 đã tạo điều
kiện tốt cho tôi trong suốt trong hai năm học qua.
Xin cảm ơn các bạn bè, đồng nghiệp, gia đình đã tạo mọi điều kiện thuận lọi cũng
như đã chỉ bảo tôi rất nhiều trong thời gian thực hiện luận văn này để tôi có được kết quả
như ngày hôm nay.
Hà Nội, tháng 11/2013
Người viết luận văn
Nguyễn Đức Thịnh
LỜI CAM ĐOAN
Tôi xin cam đoan đề tài luận văn “Sử dụng mạng noron cho nhận dạng ký tự
tiếng Việt” là công trình nghiên cứu của bản thân tôi. Các số liệu, kết quả nghiên cứu
nêu trong luận văn này là trung thực và không sao chép y nguyên từ một công trình nào
khác. Tôi xin chịu trách nhiệm về luận văn của mình.
1
Hà Nội, tháng 11/2013
Người viết luận văn
Nguyễn Đửc Thịnh
MỤC LỤC
Trang
DANH MỤC CÁC TỪ TIÉNG ANH VIÉT TẮT
ST
T
Từ viết tắt Từ viết tường minh
1 HMM Hiden Markov Model


2 LVQ Learning Vector Quantization
3 MLP Multi Layer Perception
4 OCR Optical Character Recognation
5 PDA Personal Digital Assistant
6 RFID Radio Frequency Identification
7 SOM Self Organizing Maps
8 SVM Support Vector Machine
2
DANH MỤC CÁC HÌNH

Hình 1.1. Mô hình потоп sinh học
Hình 1.2. Mô hình một nơron
Hình 1.3. Mạng truyền thẳng một lóp
Hình 1.4. Mạng truyền thẳng nhiều lớp
Hình 1.5. Mạng một lóp có nối ngược
Hình 1.6. Mạng nhiều lóp có nối ngược
Hình 1.7. Cấu trúc của mạng Kohonen
Hình 1.8. Mạng Kohonen điển hình
Hình 1.9. Huấn luyện mạng Kohonen
Hình 2.1. Mô hình tổng quát của một hệ nhận dạng ký tụ'
Hình 3.1. Quá trình tìm giới hạn ký tự Hình 3.2. Quá trình lấy mẫu
xuống
Hình 3.3. Quá trình ánh xạ từ ma trận điểm sang ma trận giá trị
Hình 3.4. Quá trình huấn luyện mạng потоп kohonen
Hình 3.5. Giao diện chương trình mô phỏng
Hình 3.6. Nhận dạng ký tự N
Hình 3.7. Nhận dạng ký tự Ô
Hình 3.8. Nhận dạng ký tự Á
3
PHÀN MỞ ĐẦU

Công nghệ thông tin ngày nay càng ngày càng trở lên quan
trọng trong cuộc sống hàng ngày của chúng ta. Trong công nghệ thông
tin, trí tuệ nhân tạo hiện nay đang được quan tâm rất nhiều của xã hội.
Nó như là một giải pháp mang đến hy vọng mới mô phỏng được bộ
não con người. Nghiên cứu và mô phỏng trí não, cụ thể là tế bào thần
kinh (Neural) là một ước muốn từ lâu của nhân loại. Với khoảng 15 tỷ
Neural ở não người, mỗi Neural có thế nhận hàng vạn tín hiệu từ khớp
thần kinh và được coi là một cơ chế sinh vật phức tạp nhất. Bộ não con
người có khả năng giải quyết rất nhiều vấn đề như: nghe, nhìn, nói, hồi
ức thông tin, phân biệt, phân tích các mẫu dựa trên một số thông tin đã
có. Neural thần kinh chính là yếu tố chính giúp chúng ta có thể làm
nhũng công việc như vậy. Bộ não phân công công việc xủ lí cho hàng
tỉ Neural có liên quan, điều khiển các mối liên hệ giữa các Neural đó.
Neural không ngừng nhận và truyền thông tin lẫn nhau. Cơ chế hoạt
động của Neural [1] bao gồm: liên kết (association), tổng quát hóa
(generation), và tự tổ chức (Self Orgazation). Các Nơron tự liên kết với
nhau thành mạng trong xử lý. Mỗi mạng gồm hàng vạn các phần tử
Nơron khác nhau. Mỗi phần tử Nơron có khả năng liên kết với hàng
nghìn các Nơron khác.
4
Hiện nay, mạng Nơron được đưa vào ứng dụng rộng rãi trong
rất nhiều lĩnh vực. Và bài toán nhận dạng là bài toán sử dụng các tính
năng của mạng Nơron nhiều nhất. Bài toán nhận dạng với sự trợ giúp
của mạng Nơron ngày nay đã không còn dừng ở mức độ nghiên cứu
nữa mà nó trở thành một lĩnh vực để áp dụng vào thực tế. Các bài toán
nhận dạng được nghiên cứu nhiều nhất hiện nay tập trung vào nhận
dạng 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 ứng dụng trong rất nhiều lĩnh
vực như y học, dự báo thời tiết, dự báo cháy rừng, , các lĩnh vực tự
động hóa như điều khiển rô-bốt, điều khiển các thiết bị bằng giọng

nói, Trong số các bài toán nhận dạng này, nhận dạng chữ viết đang
được ứng dụng rất phổ biến. Nhận dạng chữ viết được ứng dụng trong
quá trình tự động hóa các công việc văn phòng như nhập liệu, lưu trữ
văn bản, sách báo, phân loại thư tín, , những công việc rất nhàm chán
và đòi hỏi nhiều thời gian của con người. Nhận dạng bằng mạng Nơron
đang được úng dụng trong hàng loạt lĩnh vực quan trọng của cuộc
sống, phục vụ lợi ích trực tiếp và thiết thực cho công việc của con
người.
Mục đích của luận văn là: Trình bày các kết quả nghiên cứu lý
thuyết phục vụ cho chủ đề: “Nhận dạng chữ viết tay Tiếng Việt sử
5
dụng mạng Nơron”. Tuy nhiên, do hạn chế về mặt thời gian cũng như
độ phức tạp của bài toán mà trong khuôn khổ, thời lượng của luận văn,
tôi chỉ đi sâu nghiên cứu và đưa ra một chương trình mô phỏng nhận
dạng ký tự viết tay Tiếng Việt rời rạc trực tuyến sử dụng mạng Nơron
Kohonen.
CHƯƠNG 1 MỘT SỐ VẤN ĐỀ VỀ MẠNG NƠRON
1.1. Mạng Nơron sinh học
Bộ não con người có khoảng 10
10
tế bào thần kinh liên kết chặt
chẽ với nhau được gọi là các nơ-ron. Mỗi nơ-ron gồm có ba phần:
Thân nơ-ron với nhân ở bên trong (soma), một đầu sợi trục thần kinh ra
(axon) và một hệ thống tế bào hình cây (dendrite). Te bào hình cây có
nhiệm vụ mang các tín hiệu điện tới các tế bào thân, tế bào thân sẽ thực
hiện gộp (Sum) và phân ngưỡng (Thresholds) các tín hiệu đến. Sợi trục
thần kinh làm nhiệm vụ đưa các tín hiệu thân ra ngoài.
Trong thực tế có rất nhiều dây thần kinh vào và chúng bao phủ
một diện tích rất lớn (0.25 mm
2

) để nhận các tín hiệu từ các nơ-ron
khác. Đầu thần kinh ra được rẽ nhánh nhằm chuyến giao tín hiệu từ
thân nơ-ron tới nơ-ron khác. Các nhánh của đầu thần kinh được nối với
các khớp thần kinh (synapse). Các khớp thần kinh này được nối với
6
thần kinh vào của các nơ-ron khác. Sự sắp xêp của các nơ-ron và mức
độ mạnh yêu của các khóp thân kinh được quyêt định bởi quá trình hóa
học phức tạp, sẽ thiết lập chức năng của mạng nơ-ron, các nơ-ron có
thể sửa đổi tín hiệu tại các khớp, trong các nơ-ron nhân tạo được gọi là
trọng số.
Có thể nói, mạng nơ-ron sinh học hoạt động chậm hon rất nhiều
so với các linh kiện điện tử (10‘
3
giây so với 10‘
9
giây), nhưng bộ não
có thể thực hiện nhiều công việc nhanh hon rất nhiều so với máy tính
thông thường. Do cấu trúc song song của mạng nơ-ron sinh học thể
hiện toàn bộ các nơ-ron thực hiện đồng thời tại một thời điểm. Mạng
nơ-ron nhân tạo cũng có được đặc điếm này. Các mạng nơ-ron nhân
tạo chủ yếu thực nghiệm trên các máy tính mạnh có vi mạch tích hợp
rất lớn, các thiết bị quang, bộ xử lý song song. Điều này cũng giải thích
tại sao những nghiên cứu khoa học về mạng nơ-ron nhân tạo có điều
kiện phát triển cùng với sự phát triến về kỹ thuật công nghệ phần cứng
máy tính.
Có nhiều loại nơ-ron khác nhau về kích thước và khả năng thu
phát tín hiệu. Tuy nhiên, chúng có cấu trúc và nguyên lý hoạt động
chung.
Hình vẽ (1.1) là một hình ảnh đon giản hoá của một loại nơ-ron
7

như vậy. [3]
Hình 1.1. Mô hình nơ-ron sinh học
Hoạt động của nơ-ron sinh học có thể mô tả tóm tắt như sau:
Mỗi nơ-ron nhận tín hiệu vào từ các tế bào thần kinh khác.
Chúng tích họp các tín hiệu vào, khi tổng tín hiệu vượt quá một
ngưỡng nào đó chúng tạo tín hiệu ra và gửi tín hiệu này tới các nơ-ron
khác thông qua dây thần kinh. Các nơ-ron liên kết với nhau thành
mạng. Mức độ bền vững của các liên kết này xác định một hệ số gọi là
trọng số liên kết.
1.2. Mạng Nơ-ron nhân tạo
1.2.1. Nơ-ron nhân tạo
8
Đe mô phỏng các tế bào thần kinh và các khóp nối thần kinh của
bộ não con người, mạng nơ-ron nhân tạo có các thành phần có vai trò
tương tự làcác nơ-ron nhân tạo và kết nối giữa chúng (kết nối này gọi
là weights). Nơ-ron là một đơn vị tính toán có nhiều đầu vào và một
đầu ra, mỗi đầu vào đến từ một khớp nối thần kinh (synapse). Đặc
trưng của nơ-ron là một hàm kích hoạt phi tuyến chuyển đối một tổ
hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra.
Một nơ-ron nhân tạo là một đon vị tính toán hay đon vị xử lý
thông tin cơ sở cho hoạt động của một mạng nơ-ron.
Các thành phần cơ bản của một mô hình nơ-ron.[ 1]
- Trọng số và tổng tín hiệu đầu vào:
Mỗi nơ-ron có rất nhiều dây thần kinh vào, nghĩa là mỗi nơ-ron
có thể tiếp nhận đồng thời nhiều tín hiệu. Giả sử tại nơ-ron i có N tín
hiệu vào, mỗi tín hiệu vào s được gán một trọng so W. tương ứng. Ta
ước lượng tổng tín
hiệu đi vào nơ-ron neí.theo một số dạng sau:
(i) Dạng tuyến tính:
N

netị= Ị\\)j.Sj
7=1
(ii) Dạng toàn phương:
9
(1.1)
N
net
i
=
ị.
w
ij
s
j
(iii) Dạng mặt cầu:
(1.3)
Trong đó: p và w j = \,N lần lượt là tâm và bán kính mặt cầu
1
0
(1.2)
- Hàm kích hoạt (hàm chuyển):
Hầu hết các đơn vị trong mạng nơ-ron chuyển net input bằng
cách sử dụng một hàm vô hướng (scalar - to - scalar function) gọi là
hàm kích hoạt, kết quả của hàm này là một giá trị gọi là mức độ kích
hoạt của đơn vị. Trừ khả năng đơn vị đó thuộc lớp ra, giá trị kích hoạt
được đưa vào một hay nhiều đơn vị khác. Các hàm kích hoạt thường bị
ép vào một khoảng giá trị xác định, do đó thường được gọi là các hàm
nén (squashing).
Hàm biến đổi tín hiệu đầu vào net cho tín hiệu đầu ra out được
gọi là hàm kích hoạt. Hàm này có đặc điếm là không âm và bị chặn,

dùng đế giới hạn biên độ đầu ra của nơ-ron. Có nhiều dạng hàm kích
hoạt, người ta thường sử dụng một hàm kích hoạt chung cho toàn
mạng.
Một số hàm kích hoạt thường được sử dụng:
1) Hàm đồng nhất (Linear function, Identity function)
g(x) = x
Neu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm
này. Có khi một hằng số được nhân với net-input tạo thành một hàm
đồng nhất.
1
1
Đồ thị hàm đồng nhất (Identity function)
2) Hàm bước nhị phân (Binary step function, Hard limit function)
Hàm này còn gọi là hàm ngưỡng (Threshold function hay
Heaviside function). Đầu ra của hàm này giới hạn một trong hai giá trị:
1
2
,f 1, neờx>9
&
x ) =
I n • a
[0, neàx<0
ở đây 0 là ngưỡng.
g(x)
1
X
ĐỒ thị hàm
bước nhị phân
(Binary step
function)

Dạng hàm này
thường sử dụng trong
mạng một lớp. Trong
hình vẽ 0 được chọn
bằng 1.
3) Hàm sigmoid
(Sigmoid
function
(logsig))
Hàm sigma là
dạng chung nhất của
hàm kích hoạt được sử
dụng trong cấu trúc
mạng nơ-ron nhân tạo.
Nó là một hàm tăng và
nó thế hiện một sự
trung gian giữa tuyến
tính và phi tuyến. Một
(1.5)
0 1
2
3
-1
ví dụ của hàm này là
hàm logistics, xác
định như sau:
(1.6)
Ở đó Ằ là tham
số độ dốc của hàm
sigma. Bằng việc biến

đổi tham số Ả , chúng
ta thu được các hàm
sigma với các độ dốc
khác nhau. Thực tế, hệ
số góc tại x= 0 là ^ /4.
Khi tham số hệ số góc
tiến tới không xác
định, hàm sigma trở
thành một hàm
ngưỡng đơn giản.
Trong khi một hàm
ngưỡng chỉ có giá trị
là 0 hoặc 1, thì một
hàm sigma nhận các
giá trị từ 0 tới 1. Cũng
phải ghi nhận rằng
hàm sigma là hàm
phân biệt, trong khi
hàm ngưỡng thì không
(Tính phân biệt của
hàm là một đặc tính
quan trọng trong lý
thuyết mạng neuron).
Hàm này thường được
dùng cho các mạng
được huấn luyện
(trained)bởi thuật toán
lan truyền ngược
(back -propagation),
bởi nó dễ lấy đạo hàm,

làm giảm đáng kế tính
toán trong quá trình
huấn luyện. Hàm được
dùng cho các chương
trình ứng dụng mà đầu
ra mong muốn rơi vào
khoảng [0,1].
Đồ thị hàm sigmoid
4) Hàm sigmoid
lưỡng cực
(Bipolar
sigmoid
function
(tan(sig))
= 0-
7
) 1+ẽ
Hàm này có đặc
tính tương tự hàm
sigmoid. Hàm làm
việc tốt đối với các
úng dụng có đầu ra
yêu cầu trong khoảng
[-1,1].
Đồ thị hàm sigmoid
lưỡng cực
Các hàm
chuyển của các đơn vị
ẩn (hidden units) là
cần thiết để biểu diễn

sự phi tuyến vào trong
mạng.
- Nút bias:
Là một nút
thêm vào nhằm tăng
khả năng thích nghi
của mạng nơ-ron trong
quá trình học. Trong
các mạng nơ-ron có sử
dụng bias, mỗi nơ-ron
có thể có một trọng số
tương ứng với bias.
Trọng số này luôn có
giá trị là 1.
Mô hình của
một nút xử lý
(nút thứ i):
Hình
1.2.

hình
no-
ron
1.2.2. Mạng
nơ-ron nhân
tạo
Mạng nơ-ron
nhân tạo {Artificial
Neural Network -
ANN) là mô hình toán

học hay mô hình tính
toán được xây dựng
dựa trên các mạng nơ-
ron sinh học. Nó gồm
Các
liên
kết ra
có một nhóm các nơ-
ron nhân tạo (nút) nối
với nhau và xử lý
thông tin bằng cách
truyền theo các kết nối
và tính giá trị mới tại
các nút (cách tiếp cận
connectionism đối với
tính toán). Phần lớn
mạng nơ-ron nhân tạo
là một hệ thống thích
ứng (<adaptive
system) tự thay đổi cấu
trúc của mình dựa trên
các thông tin bên
ngoài hay bên trong
chảy qua mạng trong
quá trình học.
Vói việc giả
lập các hệ thống sinh
học, các cấu trúc tính
toán, mạng nơ- ron có
thể giải quyết được

các lớp bài toán nhất
định, như: Bài toán
người du lịch, bài toán
tô màu bản đồ, bài
toán nhận dạng mẫu
Các bài toán phức tạp
cao, không xác định.
Tuy nhiên, sự liên kết
giữa một bài toán bất
kỳ trong thực tế với
một giải pháp mạng
nơ-ron lại là một việc
không dễ dàng.
Xét một cách
tổng quát, mạng nơ-
ron là một cấu trúc xử
lý song song thông tin
phân tán mang các đặc
tính nôi bật sau :
- Là mô hình
toán học dựa
trên bản chât
của nơ-ron.
- Bao gồm một
số lượng rất
lớn các nơ-ron
liên kết với
nhau.
- Mạng nơ-ron
có khả năng

học, khái quát
hóa tập dữ liệu
học thông qua
việc gán và
hiệu chỉnh các
trọng số liên
kết.
- Tổ chức theo
kiểu tập họp
mang lại cho
mạng nơ-ron
khả năng tính
toán rất lớn,
trong đó không
có nơ-ron nào
mang thông tin
riêng biệt.
Ví dụ: Hình 1.2
là một mô hình mạng
thông dụng.
■ Các hình
trạng của mạng
Hình trạng
mạng được định nghĩa
bởi: số lớp (layers), số
đơn vị trên mỗi lóp, và
sự liên kết giữa các
lóp đó. Các mạng
thường được chia làm
hai loại dựa trên cách

thức liên kết các đon
vị:
1.2.2.1. Mạng
truyền thẳng.
- Mạng truyền
thắng một lóp
Mạng
perceptron một lớp do
F.Rosenblatt đề xuất
năm 1960 là mạng
truyền thắng chỉ một
lớp vào và một lớp ra
không có lóp ấn. Trên
mỗi lóp này có thể có
một hoặc nhiều nơ-
ron. Mô hình mạng
nơ-ron của
F.Rosenblatt sử dụng
hàm ngưỡng đóng vai
trò là hàm chuyển. Do
đó, tống của tín hiệu
vào lớn hơn giá trị
ngưỡng thì giá trị đầu
ra của nơ-ron sẽ là 1,
còn trái lại sẽ là 0.
(1.8)
Mô hình mạng
nơ-ron truyền thắng
một lóp là mô hình
liên kết cơ bản và đơn

giản nhất. Các nơ-ron
tổ chức lại với nhau
tạo thành một lóp,
đường truyền tín hiệu
được truyền theo một
hướng nhất định nào
đó. Các đầu vào được
nối với các nơ-ron
theo các trọng số khác
nhau, sau quá trình xử
lý cho ra một chuỗi
các tín hiệu ra.

nh
1.3
.
M
ạn
g
tru
yề
n
thẳ
ng
mộ
t
lóp
Với mỗi giá trị
đầu vào: x= Ệ<
1

X
2
X
vị. Qua quá trình xử lý
của mạng ta sẽ thu
được một bộ tương
úng các giá trị đầu ra
là:
y= ^,,y
2l
y
được xác định như sau:

×