Tải bản đầy đủ

Nghiên cứu mạng neural nhận dạng chữ in tiếng anh

i

LỜICAMĐOAN
Tôixincam
côngtrìnhnghiêncứucủachínhbảnthân.Cáckết

đoanluậnvănnàylà
quảnghiêncứutrongluậnvănlà

trungthựcvà chưađượccôngbố trongcáccông trìnhnàokhác.

Tácgiảluậnvăn

Nguyễn Ngọc Quyên


ii

LỜICẢMƠN
Tôixinbàytỏlòngbiếtơnchânthànhtới thầy PGS.TS. Ngô Quốc
Tạongườiđãdìu

dắtvàgiúpđỡtôitrongcảlĩnhvựcnghiêncứucủaluậnáncũngnhưtrongcông
tácchuyênmônvàcuộcsống.
Tác giả xin chân thành cảm ơn sự giúp đỡ của các thầy cô giáo trường
Đa ̣i ho ̣c Công ngh ệ thông tin và Truyền thông Thái Nguyên đã ta ̣o điề u kiê ̣n
giúp đỡ tận tình trong việc nghiên cứu luận văn.
Cuố i cùng tác giả xin chân thành cảm ơn sự giúp đỡ của Ban giám
hiê ̣u, Khoa Sau Đại học trường Đa ̣i ho ̣c Công nghệ thông tin và Truyền thông
Thái Nguyên đã cho phép và ta ̣o điề u kiê ̣n thuâ ̣n lơ ̣i để tác giả hoàn thành bản
luâ ̣n văn này.
Tácgiảluậnvăn

Nguyễn Ngọc Quyên


iii

MỤC LỤC
CHƢƠNG 1 : MẠNG NEURAL VÀ BÀI TOÁN NHẬN DẠNG CHỮ IN.................... 3
1.1. Khái Niệm Mạng Neural ...................................................................................................... 3
1.1.1. Sơ lược về neural sinh học ............................................................................................... 3
1.1.2. Mạng Neural Nhân Tạo .................................................................................................... 4
1.1.3. Kiến Trúc Mạng ............................................................................................................... 8
1.1.3.1. Mạng truyền thẳng ........................................................................................................ 9
1.1.3.2. Mạng hồi quy (Recurrent Neutral Network) .............................................................. 12
1.1.4. Luật học mạng neural. ................................................................................................. 12
1.1.4.1. Phương Pháp Học........................................................................................................ 12
1.1.4.2. Luật học tham số ......................................................................................................... 14
1.1.4.3. Học có tín hiệu chỉ đạo................................................................................................ 14
1.1.4.4. Học không có tín hiệu chỉ đạo..................................................................................... 15
1.1.4.5. Học tăng cường ........................................................................................................... 15
1.1.4.6. Học cấu trúc ................................................................................................................ 16
1.1.5. Các phương pháp huấn luyện mạng. .............................................................................. 16
1.1.5.1. Phương pháp huấn luyện một pha .............................................................................. 16
1.1.5.2. Phương pháp huấn luyện hai pha ................................................................................ 17
1.1.5.3. phương pháp huấn luyện mạng hai pha HDH ............................................................. 17
1.1.5.4. Phương pháp huấn luyện ba pha đầy đủ...................................................................... 20
1.2. Bài toán nhận dạng chữ in.................................................................................................. 20
1.2.1. Bài toán nhận dạng nói chung ........................................................................................ 20
1.2.2. Giới thiệu về bài toán nhận dạng mẫu ............................................................................ 22
1.2.3. Bài toán nhận dạng chữ in .............................................................................................. 23

1.2.3.1. Phương pháp trích đặc trưng chữ in sử dụng Momen Legendre ................................. 24

CHƢƠNG 2: NHẬN DẠNG CHỮ IN SỬ DỤNG MẠNG NEURAL ........................... 27
2.1. Thiết kế mạng neural .......................................................................................................... 27
2.2. Huấn luyện mạng neural .................................................................................................... 35
2.2.1 Chuẩn bị tập dữ liệu huấn luyện: .................................................................................... 35
2.2.2 Biểu diễn tri thức tập dữ liệu huấn luyện: ....................................................................... 37
2.2.3 Thuật toán lan truyền ngược: .......................................................................................... 39
2.2.4 Áp dụng trong huấn luyện mạng neural nhận dạng chữ in: ............................................ 43
2.3. Nhận dạng mạng neural ..................................................................................................... 46

CHƢƠNG 3: CHƢƠNG TRÌNH NHẬN DẠNG KÝ TỰ .............................................. 47
3.1. Xác định các tham số cho mạng ......................................................................................... 47
3.2. Xử lý dữ liệu và lựa chọn dữ liệu ....................................................................................... 47
3.2.1. Lấy mẫu xuống hình ảnh ................................................................................................ 47
3.2.2. Xử lý dữ liệu (Phân tích ảnh) ......................................................................................... 49
3.2.2.1. Tách dòng kí tự ........................................................................................................... 49
3.2.2.2. Tách từng kí tự ............................................................................................................ 51
3.3. Một số kết quả ..................................................................................................................... 54


iv
3.4. Kết luận ................................................................................................................................ 57
* Về mặt lý thuyết .................................................................................................................... 59
* Về mặt thực tiễn .................................................................................................................... 60
3. Hƣớng phát triển tiếp theo .................................................................................................... 60
* Nhận dạng chữ viết tay tiếng Việt........................................................................................ 60


v

DANH MỤC HÌNH
Hình 1.1 : Mô hình neural sinh học.................................................................................... 3
Hình 1.2: Đồ thị hàm đồng nhất (Identity function)......................................................... 5
Hình 1.3: Đồ thị hàm bƣớc nhị phân (Binary step function) ........................................... 6
Hình 1.4: Đồ thị hàm sigmoid ............................................................................................. 7
Hình 1.5: Đồ thị hàm sigmoid lƣỡng cực ........................................................................... 7
Hình 1.6. Mô hình một nơ-ron ............................................................................................ 8
Hình 1.7. Mạng truyền thẳng nhiều lớp........................................................................... 11
Hình 1.8. Mạng một lớp có nối ngƣợc .............................................................................. 12
Hình 1.9 . Mạng nhiều lớp có nối ngƣợc .......................................................................... 12
Hình 1.10: Các bƣớc xử lý trong hệ thống nhận dạng mẫu ........................................... 23
Hình 1.11:Các bƣớc giải quyết hình dạng chữ in ........................................................... 24
Hình 2.1: Sơ đồ đồ thị có hƣớng đơn giản ...................................................................... 27
Hình 2.2: Biên quyết định trong không gian mẫu .......................................................... 30
Hình 2.3: Không gian mẫu khả tách tuyến tính .............................................................. 31
Hình 2.4: Không gian mẫu không khả tách tuyến tính .................................................. 32
Hình 2.5: Mô hình mạng 3 lớp .......................................................................................... 34
Hình 2.6: Các bƣớc huấn luyện ........................................................................................ 45
Hình 3.1: Quá trình xác định dòng của các kí tự ............................................................ 50
Hình 3.2: Tách từng kí tự .................................................................................................. 53
Hình 3.3: Giao diện chƣơng trình mô phỏng .................................................................. 54
Hình 3.4: Nhận dạng chữ tiếng Anh trong ảnh ............................................................... 55
Hình 3.5: Nhận dạng kí tự có dấu .................................................................................... 56
Hình 3.6: Kí tự có dấu ....................................................................................................... 57
Hình 3.7: Kí tự số viết tay ................................................................................................. 61
Hình 3.8: Kí tự tiếng Anh viết tay .................................................................................... 62


1

LỜI MỞ ĐẦU
Từ khi ra đời cho đến nay, máy tính luôn luôn không ngừng phát triển
và đóng một vai trò quan trọng trong nghiên cứu khoa học kĩ thuật, cũng như
trong cuộc sống của con người.
Nhưng máy tính cũng vẫn chỉ là một công cụ do con người sáng tạo ra
và nó sẽ hoạt động theo một chương trình đã được lập trình sẵn của con
người.Nó vẫn không có khả năng liên tưởng,suy luận,kết nối các sự việc một
cách linh hoạt,và quan trọng hơn hết khả năng sáng tạo như bộ não của con
người là không thể.
Việc mô phỏng quá trình hoạt động trí tuệ của con người vào ứng dụng
trong máy tính là một nỗ lực rất lớn và đang được hoàn thiện của các lập trình
viên. Do đó mạng noron(Artificial neural networks) ra đời với mục đích cố
gắng mô phỏng quá trình hoạt động trí tuệ của con người. Các nghiên cứu ứng
dụng đã được thực hiện trong các ngành: điện, điện tử, kỹ thuật chế tạo, y
học, quân sự, kinh tế...và mới nhất là các nghiên cứu ứng dụng trong lĩnh vực
quản lý dự án xây dựng
Bàitoánnhậndạnglà
bàitoánsửdụngcáctínhnăngcủamạngneuralnhiềunhất.
Bàitoánnhậndạngvớisựtrợgiúpcủamạngneuralngàynay đã khôngcòndừngởmức
độnghiêncứunữamà nó trởthànhmộtlĩnhvực để ápdụngvàothựctế. 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, trữ văn bản, sách báo, phân loại thư tín....
Trong cuộc chạy đua về trí tuệ nhân tạo của thế giới thì hai công ty lớn
của làng công nghệ thế giới là Google và Apple thì Google cũng đã đưa ra
Google glass sử một nên tảng rất mới và hoạt động chính trên bài toán nhận
dạng. Ngoài ra việc xử lý các kí tự để số hoá tài liệu để có thể tìm kiếm thông
tin trên các tài liệu cũng được Google nghiên cứu phát triển.


2

Mới đây nhất trong hội nghị các nhà phát triển của Apple thì đại gia
làng công nghệ của thế giới đã công bố một thư viện chuyên sâu về mạng
neural để việc ứng dụng mạng neural trong các bài toán thực tế trong việc xây
dựng các ứng dụng trên nền tảng của Apple. Trong lần giới thiệu về bộ thư
việc này thì đã được hưởng ứng nhiệt tình bởi Apple đã cung cấp được một
bộ thư viện hỗ trợ việc huấn luyện mạng trong các ứng dụng thực tế và nó sẽ
là đặc biệt ứng dụng trong bài toán nhận dạng. Các dòng điện thoại thông
minh đang càng ngày được phổ biến với cấu hình mạnh mẽ thì chắc chắn
hoàn toàn có thể đáp ứng được việc xây dựng các mạng neural vào để thực
hiện các bài toán nhận dạng. Bài toán nhận dạng kí tự này sẽ phát triển mạnh
mẽ trong số hoá các văn bản truyền thống và ngoài ra ứng dụng bài toán nhận
dạng hoàn toàn có thể giúp cho những người khiếm thị có thể nghe được các
văn bản chuyển thể từ nhận dạng chữ sang dạng số hoá rồi có thể tái hiện lại
bằng âm thanh giúp những người này có thể tiếp cận các tri thức của nhân
loại. Hầu hết các công ty công nghệ hàng đầu đều đi sâu vào việc nghiên cứu
các hướng huấn luyện máy tính học được kiến thức của con người. Nên bản
thân em cũng muốn tìm hiểu về mạng neural trong việc xây dựng một mạng
neural trong bài toán nhận dạng.
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ụ chủ đề “Nghiên cứu mạng neural nhận dạng chữ in tiếng anh”.
Để hoàn thành bài tiểu luận này, em đã được sự hướng dẫn nhiệt tình từ
thầy PGS.TS. Ngô Quốc Tạo.Những bài giảng và tài liệu của thầy chính là cơ sở
đểem có thể hoàn thành tốt báo cáo của mình. Em xin chân thành cảm ơn thầy.


3

CHƢƠNG 1 : MẠNG NEURAL VÀ BÀI TOÁN NHẬN DẠNG CHỮ IN
1.1.Khái Niệm Mạng Neural
1.1.1.Sơ lược về neural sinh học
Bộ não con ngƣời có khoảng 1010 tế bào thần kinh liên kết chặt chẽ với
nhau được gọi là các nơ-ron. Sau đây là những thành phần chính của một nơ ron

Hình 1.1 : Mô hình neural sinh học
Trong đó :
 Các Soma là thân của neural.
 Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ
liệu (dưới dạng xung điện thế) đến cho soma xử lý. Bên trong soma các
dữ liệu đó được tổng hợp lại. Có thể xem gần đúng sự tổng hợp ấy như là
một phép lấy tổng tất cả các dữ liệu mà neural nhận được.
 Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon. Khác với
dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn
tín hiệu từ neural đi các nơi khác. Chỉ khi nào điện thế trong soma vượt
quá một giá trị ngưỡng nào đó (threshold) thì axon mới phát một xung
điện thế, còn nếu không thì nó ở trạng thái nghỉ.
 Axon nối với các dendrites của các neural khác thông qua những mối nối
đặc biệt gọi là synapse. Khi điện thế của synapse tăng lên do các xung phát ra


4

từ axon thì synapse sẽ nhả ra một số chất hoá học (neurotransmitters);các chất
này mở "cửa" trên dendrites để cho các ions truyền qua. Chính dòng ions
này làm thay đổi điện thế trên dendrites, tạo ra các xung dữ liệu lan truyền
tới các neural khác.
- Hoạt động của neural sinh học có thể mô tả tóm tắt như sau:
Mỗi neural 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 neural khác thông qua dây thần kinh.
Các neural 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.1.2.Mạng Neural Nhân Tạo
Để 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 neural nhân tạo có các thành phần có vai trò tương tự là
các neural nhân tạo và kết nối giữa chúng (kết nối này gọi là weights). Neural
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 neural 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 neural nhân tạo là một đơn vị tính toán hay đơn vị xử lý thông tin
cơ sở cho hoạt động của một mạng neural.
Neural này sẽ hoạt động như sau: giả sử có N inputs, nơron sẽ có N
weights (trọng số) tương ứng với N đường truyền inputs. Neural sẽ lấy tổng
các trọng số của tất cả các inputs. Nói như thế có nghĩa là neural sẽ lấy input
thứ nhất, nhân với weight trên đường input thứ nhất, lấy input thứ hai nhân
với weight của đường input thứ hai v.v..., rồi lấy tổng của tất cả các kết quả
thu được. Đường truyền nào có weight càng lớn thì tín hiệu truyền qua đó


5

càng lớn, như vậy có thể xem weight là đại lượng tương đương với synapse
trong neural sinh học.
 Trọng số và tổng tín hiệu đầu vào:
Giả sử tại neural i có N tín hiệu vào, mỗi tín hiệu vào S j được gán
một trọng số Wij tương ứng. Ta ước lượng tổng tín hiệu đi vào neural
net i

theo một số dạng sau:

(i)Dạng tuyến tính:
N

neti  Wij s j

(1.1)

j 1

(ii)Dạng toàn phương:
N

neti  Wij s 2j

(1.2)

j 1

(iii)Dạng mặt cầu:
neti   

s
N

2

j 1

j

 w ij 

2

(1.3)

Trong đó:  và w ij  j  1, N  lần lượt là tâm và bán kính mặt cầu
 Hàm kích hoạt (hàm chuyển):
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

(1.4)

Nếu 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.

Hình 1.2: Đồ thị hàm đồng nhất (Identity function)


6

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 (x ³ q )
g(x) = í
î0 (x < q )

(1.5)

ở đây  là ngưỡng

Hình 1.3: Đồ 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ẽ 
đượ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 neural 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 ví dụ của hàm này là hàm
logistics, xác định như sau:
g( x) 

1
1 e  x

(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ì ở đó  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.


7

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

Hình 1.4: Đồ thị hàm sigmoid
4)Hàm sigmoid lưỡng cực (Bipolar sigmoid function (tan(sig))
1 e x
g( x) 
1 e x

(1.7)

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

Hình 1.5: Đồ thị hàm sigmoid lưỡng cực


8

 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):
Vi
Wi1
Vj

Wij

Ui= 

Vi=fi(Ui)

Vi

WiN
VN

Hình 1.6. Mô hình một nơ-ron
N

U i   Wij Vj  θ i
j 1
j #i

Vi  f i U i 

(1.8)

(1.9)

Trong đó:
Ui : là tín hiệu vào tại nơ-ron i
Vi : là tín hiệu ra tại nơron i

Wij : là trọng số liền kề từ nơ-ron j đến nơ-ron i

 i : là ngưỡng (đầu vào ngoài) kích hoạt nơ-ron i.
fi : là hàm kích hoạt của nơ-ron i

1.1.3.Kiến Trúc Mạng
Mạng neural nhân tạo là một hệ thống bao gồm nhiều phần tử xử lý đơn
giản (hay còn gọi là neural) tựa như neural thần kinh của não người, hoạt
động song song và được nối với nhau bởi các liên kết neural. Mỗi liên kết


9

kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa
các neural.
Việc ứng dụng mạng neural 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 xếp
loại, bài toán lập thời khóa biểu, bài toán tìm kiếm, 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 neural lại là một việc
không hề dễ dàng.
Xét một cách tổng quát, mạng neural 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 neural.
 Bao gồm một số lượng rất lớn các neural liên kết với nhau.Mạng
neural 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 neural khả năng tính
toán rất lớn, trong đó không có neural nào mang thông tin riêng biệt.
1.1.3.1. Mạng truyền thẳng
- Mạng truyền thẳng một lớp
Mạng truyền thẳng một lớp là mạng perceptron một lớp. Là mạng truyền
thẳng chỉ một lớp vào và một lớp ra. Trên mỗi lớp có thể có một hoặc nhiều
neural mạng truyền thẳng một lớp chỉ có một lớp vào và một lớp ra. Mô hình
mạng neural perceptron 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 neural sẽ
là 1, còn trái lại sẽ là 0.

ì1 (neti ³ q )
outi = í
î0 (neti < q )
Với neti =

w

ij

xj

là tổng thông tin đầu vào của neural i.

(1.10)


10

Trong đó ma trận trọng số cho các phần tử trong vector đầu vào W:
 w1,1 w1, 2 ...w1, R 


w2,1 w2, 2 ...w2, R 

W =
...................... 


 wS ,1 wS , 2 ...wS , R 



Với mỗi giá trị đầu vào. x  x1, x2, ..., xn

 . Qua quá trình xử lý của
T

mạng ta sẽ thu được một bộ tương ứng các giá trị đầu ra là y  y1, y2, ..., yn 

T

được xác định như sau :

 m

yi  f i   wij x j   i , i  1, n
 j 1


(1.11)

Trong đó :
m : Số tín hiệu vào
n : Số tín hiệu ra
WiT wi1 , wi 2 ,..., win T : là véc tơ trọng số của neural thứ i.
fi

: Là hàm kích hoạt neural thứ i

 i : Là ngưỡng của neural thứ i.

Ngay từ khi mạng Perceptron được đề xuất nó được sử dụng để giải quyết bài
toán phân lớp. Một đối tượng sẽ được neural i phân vào lớp A nếu :

m : Số tín hiệu vào
n : Số tín hiệu ra
Tổng thông tin đầu vào

w

ij

xj

> i

Trong trường hợp trái lại neural sẽ được phân vào lớp B.


11

Mạng truyền thẳng nhiều lớp (Multilayer Perceptron –MLP)
Nếu dùng mạng neural truyền thẳng một lớp ở trên để phân tích một bài
toán phức tạp sẽ gặp nhiều khó khăn. Do vậy để khắc phục những khó khăn
đó người ta đưa ra mô hình mạng neural truyền thẳng nhiều lớp bằng việc kết
hợp các lớp neural lại với nhau. Loại mạng này có 3 lớp
 Lớp vào là lớp nhận tín hiệu vào
 Lớp ra là lớp đưa tín hiệu ra
 Lớp ẩn là lớp ở giữa lớp vào và lớp ra các neural trong lớp
này có hàm chuyển dạng phi tuyến
Do vậy mạng neural nhiều lớp có thể giải quyết các bài toán phi tuyến
nhờ vào các lớp ẩn. Càng nhiều lớp ẩn thì khả năng mở rộng thông tin càng
cao và xử lý tốt mạng

x1

Lớp vào

Lớp ẩn

Lớp ra
y1

x2

y2
yn

xm

Hình 1.7. Mạng truyền thẳng nhiều lớp
Mỗi nút trong lớp vào nhận giá trị của một biến độc lập và chuyển vào
mạng. Dữ liệu từ tất cả các nút trong lớp vào được tích hợp – ta gọi là tổng
trọng số – và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút
trong lớp này chỉ liên lạc với các nút trong lớp vào và lớp ra, và chỉ có người
thiết kế mạng mới biết lớp này (người sử dụng không biết lớp này).
Các nút trong lớp ra nhận các tín hiệu tổng trọng hóa từ các nút trong
lớp ẩn. Mỗi nút trong lớp ra tương ứng với một biến phụ thuộc.


12

1.1.3.2. Mạng hồi quy (Recurrent Neutral Network)
Mạng hồi quy một lớp có nối ngƣợc
X1

Y1

X2

...

Y2

...

...

XN

YM

Hình 1.8. Mạng một lớp có nối ngược
Mạng hồi quy nhiều lớp có nối ngƣợc.
X1

Y1

X2
...

Y2
...

XN

...

...
YM

Hình 1.9 . Mạng nhiều lớp có nối ngược
1.1.4. Luật học mạng neural.
1.1.4.1.Phương Pháp Học
Bộ não muốn hoạt động một cách nhanh nhạy và chuẩn xác thì cần một
quá trình tích lũy kinh nghiệm và thích nghi với môi trường. Do vậy tiến trình
học là một tiến trình quan trọng của con người để bộ não có thể tích lũy kinh
nghiệm và thích nghi với môi trường để xử lý tình huống một cách tốt hơn.
Mạng neural được xây dựng lại theo cấu trúc bộ não thì cũng phải cần
có khả năng nhận biết dữ liệu thông qua tiến trình học. Các thông số tự do của
mạng có thể thay đổi liên tục bởi những thay đổi của môi trường và mạng
neural cần phải ghi nhớ giá trị đó.


13

Quá trình học có thể được thực hiện như sau:
- Giá trị đầu vào được đưa vào mạng và theo dòng chảy trong mạng
tạo thành giá trị đầu ra.
- Quá trình so sánh giá trị tạo ra bởi mạng neural với giá trị mong
muốn. Nếu hai giá trị này giống nhau thì không thay đổi gì cả. Tuy nhiên, nếu
có một sai lệch giữa hai giá trị này vượt quá giá trị sai số mong muốn thì đi
ngược mạng từ đầu ra về đầu vào để thay đổi một số kết nối.
Đây là quá trình lặp lại liên tục và có thể không dừng khi không tìm
được giá trị W sao cho đầu ra tạo bởi mạng neural bằng đúng đầu ra mong
muốn.Để có thể dừng quá trình lặp này người ta sẽ thiết lập một tiêu chuẩn
dựa vào giá trị sai số giữa hai giá trị hoặc số lần lặp. Công thức tính sai lệch
giữa haigiá trị là:
e=t–y
kí hiệu : y là giá trị kết xuất của mạng nơ-ron
t là giá trị ra mong muốn,
e là sai lệch giữa hai giá trị này
Cấu trúc song song của mạng neural là một ưu điểm lớn so với máy
tính truyền thống, nó rất thích hợp cho những ứng dụng đòi hỏi tốc độ nhanh
theo thời gian thực. Khả năng huấn luyện của mạng neural có thể khai thác để
phát triển hệ thống thích nghi. Mặt khác, với khả năng tổng quát hóa của
mạng neural, nó có thể áp dụng để điều khiển nhiều tham số phức tạp đồng
thời từ đó giải quyết dễ dàng một số bài toán thuộc lớp bài toán NP- đầy đủ
(NP-Complete).
Cách đơn giản về khái niệm học của mạng neural là cập nhật trọng số
trên cơ sở các mẫu. Rộng hơn thì luật học có thể chia ra làm hai loại là học
tham số và học cấu trúc. Các luật học đóng vai trò quan trọng trong việc xác
định một mạng neural nhân tạo


14

1.1.4.2. Luật học tham số
Học tham số là nhằm tìm kiếm ma trận trọng số sao cho mạng có khả
năng đưa ra dự báo sát với thực tế. Dạng chung của luật học tham số là:
Wij  rx j , i  1, N , j  1, M

(1.12)

Trong đó:
Wij : là sự thay đổi trọng số liên kết từ neural j đến neural i.
x j : là tín hiệu vào neural j.

 : là tốc độ học, nằm trong khoảng (0,1).
r : là hằng số học.

Hằng số học r sẽ được xác định theo 3 cách tương ứng với 3 luật học
trong luật học tham số để hiệu chỉnh trọng số của mạng.
1.1.4.3. Học có tín hiệu chỉ đạo
Trong quá trình học mạng sẽ dựa vào sai số giữa đầu ra thực tế và đầu
vào mong muốn để làm cơ sở cho quá trình hiệu chỉnh trọng số. Sai số này
chính là hằng số học r
Luật học điển hình của nhóm này là luật học Delta của Widrow (1962)
nêu ra đầu tiên dùng để xấp xỉ trọng của Adaline dựa trên nguyên tắc giảm
gradient.
Luật học Perceptron của Rosenblatt (1958) luật Perceptron thì thêm
hoặc bỏ trọng số tùy theo giá trị sai số dương hay âm.
Ngoài ra còn một luật học khác cũng dựa trên tư tưởng đó như luật học
Oja là cải tiến và nâng cấp của luật Delta, luật truyền ngược lại mở rộng luật
Delta cho mạng nhiều lớp. Đối với mạng truyền thẳng thường sử dụng luật
truyền ngược để chỉnh trọng số với tín hiệu chỉ đạo từ bên ngoài và người ta
gọi mạng này là mạng lan truyền ngược.


15

1.1.4.4. Học không có tín hiệu chỉ đạo
Luật học này sử dụng đầu ra của mạng làm cơ sở để hiệu chỉnh các
trọng số liên kết. Hay trong luật này chính là tín hiệu ra của mạng.
Điển hình là luật Hebb (1949) thường dùng cho các mạng tự liên kết,
luật LVQ (Learning Vector Quantization) dùng cho mạng tự tổ chức một lớp
thuộc lớp mạng ánh xạ đặc trưng của Kohonen.Luật học Hebb cho rằng: Giữa
hai neural có quan hệ và có thay đổi thế năng thì giữa chúng có sự thay đổi
trọng số liên kết.
Trọng số được điều chỉnh theo mối tương quan trước và sau, nghĩa là:
Wij  yi x j , i  1, N , j  1, M

(1.13)

Trong đó:
Wij là sự thay đổi trọng số liên kết từ neural j đến neural i.
x j: là tín hiệu vào neural j.
yi

là tín hiệu ra của neural i.

 là tốc độ học, nằm trong khoảng (0,1).

Luật Hebb giải thích việc chỉnh trọng trong phạm vi cục bộ của mạng
mà không cần tín hiệu chỉ đạo từ bên ngoài. Hopfield cũng cải tiến luật Hebb
cho các mạng tự liên kết thành 16 dạng khác nhau theo kiểu luật Hebb, luật
đối Hebb, luật Hopfield...
1.1.4.5. Học tăng cường
Luật học này dựa vào cơ sở thông tin phản hồi chỉ là tín hiệu bao gồm
hai trạng thái cho biết tín hiệu đầu ra của mạng là đúng hay sai. Quá trình học
dựa trên các thông tin hướng dẫn như vậy được gọi là học có củng cố (học
tăng cường) và tín hiệu mang thông tin phản hồi được gọi là tín hiệu củng cố
cho quá trình học. Ta có thể thấy rằng quá trình học này là một dạng của quá


16

trình học có tín hiệu chỉ đạo bởi vì mạng nhận được một số thông tin phản hồi
từ bên ngoài.
1.1.4.6.Học cấu trúc
Luật học của học cấu trúc là tìm kiếm các tham số của cấu trúc mạng,
để tìm ra một cấu trúc mạng hoạt động tốt nhất. Thực tế việc học cấu trúc là
tìm ra số lớp ẩn và tìm ra số neural trên mỗi lớp đó. Giải thuật di truyền
thường được sử dụng trong các cấu trúc nhưng thường chạy rất lâu, kể cả đối
với mạng có kích thước trung bình. Ngoài ra kỹ thuật gọt tỉa mạng hay mạng
tăng dần cũng được áp dụng trong việc học cấu trúc của mạng có kích thước
tương đối nhỏ.
1.1.5. Các phương pháp huấn luyện mạng.
1.1.5.1. Phương pháp huấn luyện một pha
Xét tập dữ liệu huấn luyện 𝑥 𝑘 , 𝑦 𝑘

𝑛
𝑘=1 ;

𝑥 𝑘 𝜖𝑅𝑛 , 𝑦 𝑘 𝜖𝑅𝑛 chọn tâm vkcủa

các hàm bán kính trong đó vk⊂ {xk}nk=1, còn các bán kínhk được gán giá trị là
k=

1

1
(2𝑀) 𝑛

(trong đó M là số hàm cơ sở bán kính, n là số neurol đầu vào).

Giá trị của các tham số wk thường được tìm ra bằng các phương pháp
học có giám sát như phương pháp giả nghịch đảo hoặc phương pháp tụt dốc
Gradient. Về bản chất thì hai phương pháp này đều tìm các trọng số wk để giá
trị E2 đạt cực tiểu.
1) Phương pháp giả nghịch đảo
Tập dữ liệu huấn luyện đã cho trên,giả sử mạng của ta có M neural ở
tầng ẩn. Xét ma trận HMxN như sau HMxN = k(𝑥 𝑖 )=𝑒

−|𝑥 𝑖 −𝑣𝑘 |2
k

Và ma trận Y là ma trận hàng các 𝑦 𝑘 khi đó giá trị của các 𝑤𝑘 được
tính: W=𝐻+ Y trong đó 𝐻 + = 𝐻𝑇 𝐻

−1

𝐻𝑇

2) Phương pháp tụt dốc Gradient


17

Trong phương pháp này đầu tiên tham số 𝑤𝑘 được tạo ra ngẫu nhiên
sau đó được cập nhật bằng công thức 𝑤𝑘 𝑖 + 1 = 𝑤𝑘 𝑖 +𝑤𝑘
𝑁
𝑖=1 𝑘

𝑤𝑘 =

𝑥𝑖

𝑦𝑖 −  xi

đây là xét một neural đầu ra. Hệ số 

được gọi là tốc độ học. Nếu  nhỏ thì giá trị của các trọng số w tiến chậm đến
điểm cực tiểu. Nếu  lớn thì giá trị của các trọng số w thường dao động quanh
điểm cực tiểu vậy để tìm được giá trị  hợp lý thì phải qua quá trình thực nghiệm.
1.1.5.2. Phương pháp huấn luyện hai pha
Với phương pháp huấn luyện hai pha các giá trị 𝑣𝑘 và bán kính 𝑘 của
hàm cơ sở bán kính 𝑘 được tính bằng các thuật toán sau :
Thuật toán phân cụm k-mean
- Phát biểu bài toán: cho tập dữ liệu X={𝑥1, 𝑥2 …..,𝑥𝑛 };𝑥𝑛 ∈𝑅𝑑 phân tập
dữ liệu này thành k tập nhỏ
{𝑆1 ,𝑆2 ….,𝑆𝑘 }: 𝑘 < 𝑛;
𝑘
𝑖=1

Arg min

𝑥 𝑗 ∈𝑆𝑖

𝑘
𝑖=1 𝑆𝑖

𝑥𝑗 − 𝑖

2

= ;

𝑘
𝑖=1 𝑠𝑖

= 𝑋 để thỏa mãn

với 𝑖 là tâm của tập 𝑆𝑖

- Bước 1: tạo các cụm
(𝑡)

𝑆𝑖 = {𝑥𝑗 : 𝑥𝑗 − 𝑖 ≤ 𝑥𝑗 − 𝑖 ∗ ; ∀𝑖 ∗ =1,k}
- Bước 2: điều chỉnh lại tâm
(𝑡+1)

𝑖

=

1
(𝑡)

|𝑆𝑖 |

(𝑡)

𝑥 𝑗 ∈𝑆𝑖

𝑥𝑖

Khi {1 , 2 … , 𝑘 } không có sự thay đổi giá trị thì thuật toán sẽ dừng lại
1.1.5.3. phương pháp huấn luyện mạng hai pha HDH
Xét tập huấn luyện 𝑥 𝑘 , 𝑦 𝑘

𝑛
𝑘=1 ;

𝑥 𝑘 𝜖𝑅𝑛 , 𝑦 𝑘 𝜖𝑅𝑚

không mất tính tổng

quát, ở đây ta xét mạng neural có một neural output (m=1), khi đó biểu diễn
toán học của mạng là:
𝜙 𝑥𝑖 =

𝑁
𝐾=1 𝑤𝑘 𝜙𝑘

𝑥 𝑖 + 𝑤0=𝑦 𝑖

(1)


18

Xét ma trận 𝜃 = 𝜑𝑘,𝑖

𝑁×𝑁

trong đó 𝜑𝑘,𝑖 = 𝜑𝑘 𝑥 𝑖 = 𝑒 −

𝑥 𝑖 −𝑥 𝑘

2

𝜎𝑘2

chú ý rằng ở đây ta chọn tâm của các hàm cơ sở bán kính chính là tất cả các
điểm thuộc tập dữ liệu input X.
𝑤1
𝑧1
Ta kí hiệu I là ma trận đơn vị cấp N; W= … . , Z= … là các vec tơ trong
𝑤𝑁
𝑧𝑁
không gian N chiều 𝑅𝑁 trong đó:
𝑧𝑘 = 𝑦𝑘 𝑤0 , ∀𝑘 ≤ 𝑁

(2)

Và đặt Ψ = Ι − Φ = 𝜓𝑘,𝑗

𝑁×𝑁

(3)

Thì
𝜓𝑘,𝑗 =

0 ∀𝑘 = 𝑗
−𝑒 −

𝑥 𝑗 −𝑥 𝑘

2

𝜎𝑘2

∀𝑘 ≠ 𝑗

(4)

Khi đó hệ phương trình (1) tương đương với hệ
W=Ψ𝑊 + 𝑍

(5)

Với các tham số 𝜎𝑘 đã chọn và 𝑤0 tùy ý, hệ (1) và do đó hệ (5) luôn có
duy nhất nghiệm W. Về sau giá trị 𝑤0 được chọn là trung bình cộng của các
giá trị 𝑦 𝑘 :
𝑤0 =

1
𝑁

𝑁
𝑘
𝑘=1 𝑦

(6)

Với mỗi k≤ 𝑁, ta có hàm 𝑞𝑘 của 𝜎𝑘 xác định như sau :
𝑞𝑘 =

𝑁
𝑗 =1

𝜓𝑘,𝑗

(7)

Hàm 𝑞𝑘 là đơn điệu tăng và với mọi số dương q < 1 luôn tồn tại giá trị 𝜎𝑘
sao cho 𝑞𝑘 𝜎𝑘 = 𝑞
Mô tả thuật toán
Với sai số 𝜀 và các hằng số dương q, 𝛼 < 1 cho trước, thuật toán bao gồm
2 pha để xác định các tham số 𝜎𝑘 và 𝑊 ∗ . Trong pha thứ nhất, ta sẽ xác định các
𝜎𝑘 để 𝑞𝑘 < 𝑞 và gần với q nhất (nghĩa là nếu thay 𝜎𝑘 = 𝜎𝑘 𝛼 thì 𝑞𝑘 > 𝑞).


19

Vìvậy, với mọi k, chuẩn của ma trận Ψ tương ứng với chuẩn vec tơ . . (cho bởi
công thức dưới đây) thuộc đoạn này. Pha sau tìm nghiệm gần đúng 𝑊 ∗ của (5)
bằng phương pháp lặp đơn giản. thuật toán được đặc tả như sau
Proceduce thuật toán 2 pha huấn luyện mạng neural
for k=1 to N do
xác định các 𝜎𝑘 để 𝑞𝑘 < 𝑞, và nếu thay 𝜎𝑘 = 𝜎𝑘 𝛼 thì 𝑞𝑘 > 𝑞 ; // pha 1
Tìm 𝑊 ∗ bằng phương pháp lặp đơn (hoặc phương pháp lặp Seidel); // pha 2
End
Để tìm nghiệm 𝑊 ∗ của hệ (5) ta thực hiện thủ tục lặp như sau:
Khởi tạo 𝑊 0 = 𝑍;
Tính
𝑊 𝑘+1 = Ψ𝑊 𝑘 + 𝑍;

(8)

Nếu điều kiện kết thúc chưa thỏa mãn thì gán 𝑊 0 : = 𝑊 1 và trở lại bước 2;
Với mỗi véc tơ N chiều u, ta kí hiệu chuẩn 𝑢



=

𝑁
𝑗 =1

𝑢𝑗 , điều kiện

kết thức có thể chọn một trong các biểu thức sau.
a)
𝑞
1−𝑞

𝑊1 − 𝑊 0



≤𝜀

(9)

b)
ln

t≥

𝜀 1−𝑞
𝑍 ∗

ln 𝑞

=

ln 𝜀−ln 𝑍 ∗ +ln (1−𝑞)
ln 𝑞

, với t là số lần lặp.

Đặc tính hội tụ.
Với mỗi vecto N chiều u ta kí hiệu chuẩn 𝑢



cho bởi công thức :

𝑁

𝑢



=

𝑢𝑗
𝑗 =1

Thì thuật toán trên luôn kết thúc sau hữu hạn bước và đánh giá sau đúng.
𝑊1 − 𝑊 ∗



≤ 𝜀

(12)


20

Kí hiệu chuẩn Ψ
Ψ





của ma trậnΨ tương ứng với chuẩn vecto (11) là:

= max𝑘≤𝑁 𝑞𝑘 ∈ 𝛼𝑞, 𝑞 ≤ 𝑞

(13)

Ta có đánh giá :
𝑊1 − 𝑊 ∗





𝑞 𝑡+1
1−𝑞

𝑢1 − 𝑢 0

𝑞 𝑡+1

=



1−𝑞

𝑍

(14)



Biểu thức (10) tương đương với vế phải của (14) nhỏ hơn hoặc bằng 𝜀.
Mặt khác ở bước cuối cùng của pha 2, nếu áp dụng (14) cho t=0 ; 𝑢0 =
𝑊 0 ;𝑢1 = 𝑊 1 ; áp dụng (14) cho t=0 thì ta có :
𝑊1 − 𝑊 ∗





𝑞
1−𝑞

𝑤1 − 𝑤 0

(15)



Thuật toán này có ưu điểm là cài đặt rất đơn giản và tốc độ hội tụ rất
nhanh và ta có thể điều chỉnh giá trị sai số nội suy nhỏ tùy ý. Song do kiến
trúc mạng phức tạp nên thường xảy ra hiện tượng phù hợp trội(over-fitting)
cho tập dữ liệu huấn luyện.
1.1.5.4. Phương pháp huấn luyện ba pha đầy đủ
Dùng các công thức lặp dưới đây:
𝑊𝑚𝑗 = 𝑊𝑚𝑗 -1
(𝑚 )

𝑣𝑛

(𝑚 )

=𝑣𝑛

𝜎𝑚2 =𝜎𝑚2

+

+

2𝜂 2
𝑀𝜎 2

2𝜂 3
𝑀

𝜕𝐸
𝜕𝑤 𝑚𝑖

=𝑊𝑚𝑗 +

𝑄
𝑞=1

𝑄
𝑞=1

𝐽
𝑗 =1
𝐽
𝑗 =1

2𝜂 1
𝑀
(𝑘(𝑞))

𝜑𝑗

(𝑘(𝑞))
𝑤𝑗

tập dữ liệu huấn luyện 𝑥 𝑘 , 𝑦 𝑘

0
𝑞=1

𝑛
𝑘=1 ;



(𝑞)

− 𝑧𝑗
(𝑞)
𝑧𝑗

𝐽
𝑗 =1

(𝑞)

(𝑞)

𝑘 𝑞

− 𝑧𝑗

(𝑞)

𝑥𝑛 − 𝑣𝑛

𝜑𝑗

𝑤𝑚𝑗 𝑦𝑚

(𝑞)

𝑦𝑚

(𝑚 )

(𝑞 )

𝑤 𝑚𝑗 𝜑 𝑚 𝑥 (𝑞 ) −𝑣 (𝑞 )
𝑀
𝑚 =1
4
2𝜎𝑚

2

𝑥 𝑘 𝜖𝑅𝑛 , 𝑦 𝑘 𝜖𝑅𝑛

1.2. Bài toán nhận dạng chữ in
1.2.1. Bài toán nhận dạng nói chung
Các bài toán nhận dạng tiêu biểu đượ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 chữ viết (optical character recognition – OCR)
- Nhận dạng tiếng nói (speech recognition)


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×