i

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

_____________ ______________

NGUYỄN NGỌC QUYÊN

MẠNG ANFIS VÀ ỨNG DỤNG CHO DỰ BÁO MỰC NƯỚC HỒ THỦY ĐIỆN THÁC BÀ

Chuyên ngành: Khoa học máy tính

Mã số: 60 48 0101

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: PGS.TS Ngô Quốc Tạo

THÁI NGUYÊN - 2016

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

ii

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn này là công trình nghiên cứu của chính bản

thân. Các kết quả nghiên cứu trong luận văn là trung thực và chưa được công

bố trong các công trình nào khác.

Tác giả luận văn

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Nguyễn Ngọc Quyên

iii

LỜI CẢM ƠN

Tôi xin bày tỏ lòng biết ơn chân thành tới thầy PGS.TS. Ngô Quốc Tạo

người đã dìu dắt và giúp đỡ tôi trong cả lĩnh vực nghiên cứu của luận án

cũng như trong công tác chuyên môn và cuộc số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 họ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ác giả luận văn

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Nguyễn Ngọc Quyên

iv

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 ............................................................................................................... 9 1.1.3.1. Mạng truyền thẳng ...................................................................................................... 10 1.1.3.2. Mạng hồi quy (Recurrent Neutral Network) .............................................................. 12 1.1.4. Luật học mạng neural. ................................................................................................. 13 1.1.4.1. Phương Pháp Học ........................................................................................................ 13 1.1.4.2. Luật học tham số ......................................................................................................... 14 1.1.4.3. Học có tín hiệu chỉ đạo ................................................................................................ 15 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 ........................................................................................................... 16 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. .............................................................................. 17 1.1.5.1. Phương pháp huấn luyện một pha .............................................................................. 17 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 ............................................................. 18 1.1.5.4. Phương pháp huấn luyện ba pha đầy đủ ...................................................................... 21 1.2. Bài toán nhận dạng chữ in .................................................................................................. 21 1.2.1. Bài toán nhận dạng nói chung ........................................................................................ 21 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: .................................................................................... 36 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: ............................................ 45 2.3. Nhận dạng mạng neural ..................................................................................................... 49

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

v

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

vi

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

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

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

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

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

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

Hình 2.6: Các bước huấn luyện ........................................................................................ 47

Hình 3.1: Quá trình xác định dòng của các kí tự ............................................................ 53

Hình 3.2: Tách từng kí tự .................................................................................................. 56

Hình 3.3: Giao diện chương trình mô phỏng .................................................................. 57

Hình 3.4: Nhận dạng chữ tiếng Anh trong ảnh ............................................................... 58

Hình 3.5: Nhận dạng kí tự có dấu .................................................................................... 59

Hình 3.6: Kí tự có dấu ....................................................................................................... 60

Hình 3.7: Kí tự số viết tay ................................................................................................. 64

Hình 3.8: Kí tự tiếng Anh viết tay .................................................................................... 65

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

nhiều nhất. Bài toán nhận dạng với sự trợ giúp của mạng neural 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ế. 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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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á

4

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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ứ

5

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 đó 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 được gán một

trọng số tương ứng. Ta ước lượng tổng tín hiệu đi vào neural

theo một số dạng sau:

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

(1.1)

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

(1.2)

(iii)Dạng mặt cầu:

(1.3)

Trong đó: và 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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

hằng số được nhân với net-input tạo thành một hàm đồng nhất.

6

Hình 1.2: Đồ 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.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:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

(1.6)

7

ở đó 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. 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))

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

(1.7)

8

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

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

Vi Vi

Wi1 Wi1

Vj Vj

Wij Wij

Vi Vi

Ui=  Ui= 

Vi=fi(Ui) Vi=fi(Ui)

WiN WiN

VN VN

Mô hình của một nút xử lý (nút thứ i):

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

(1.8)

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

(1.9)

9

Trong đó:

: là tín hiệu vào tại nơ-ron i

: là tín hiệu ra tại nơron i

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

: là ngưỡng (đầu vào ngoài) kích hoạt nơ-ron i.

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

toán rất lớn, trong đó không có neural nào mang thông tin riêng biệt.

10

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

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

Trong đó ma trận trọng số cho các phần tử trong vector đầu vào W:

W =

Với mỗi giá trị đầu vào. . 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à

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

(1.11)

Trong đó :

m : Số tín hiệu vào

n : Số tín hiệu ra

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

: là véc tơ trọng số của neural thứ i.

11

: Là hàm kích hoạt neural thứ 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 >

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

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

và xử lý tốt mạng

12

Lớp ẩn

Lớp ra

y1

Lớp vào

y2

x2

yn

xm

x1

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.

1.1.3.2. Mạng hồi quy (Recurrent Neutral Network)

X1

Y1

X2

Y2

Mạng hồi quy một lớp có nối ngược

. . .

. . .

. . .

XN

YM

Hình 1.8. Mạng một lớp có nối ngược

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

13

X1

Y1

Y2

Mạng hồi quy nhiều lớp có nối ngược.

. . .

. . .

. . .

YM

X2 . . . XN

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ị đó.

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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á

14

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 hai giá 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

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

(1.12)

Trong đó:

: là sự thay đổi trọng số liên kết từ neural j đến neural i.

: là tín hiệu vào neural j.

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

: là hằng số học.

15

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.

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

(1.13)

16

Trong đó:

là sự thay đổi trọng số liên kết từ neural j đến neural i.

là tín hiệu vào neural j.

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

nhỏ.

17

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

;(𝑥𝑘𝜖𝑅𝑛, 𝑦𝑘𝜖𝑅𝑛) chọn tâm vk của Xét tập dữ liệu huấn luyện {𝑥𝑘, 𝑦𝑘}𝑘=1

k=1, còn các bán kính k được gán giá trị là

1

các hàm bán kính trong đó vk⊂ {xk}n

1

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

(2𝑀)

k=

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

−|𝑥𝑖−𝑣𝑘|2 k

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(𝑥𝑖)=𝑒

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

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 :

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Thuật toán phân cụm k-mean

18

- 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 = ; ⋃ 𝑠𝑖

𝑘 𝑖=1 = 𝑋) để thỏa mãn

2

{𝑆1,𝑆2….,𝑆𝑘}:(𝑘 < 𝑛; ∏ 𝑆𝑖

𝑘 𝑖=1

𝑥𝑗∈𝑆𝑖

Arg min∑ ∑ ‖𝑥𝑗 − 𝑖‖ 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

;(𝑥𝑘𝜖𝑅𝑛, 𝑦𝑘𝜖𝑅𝑚) không mất tính tổng quát, Xét tập huấn luyện {𝑥𝑘, 𝑦𝑘}𝑘=1

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

2

2⁄ 𝜎𝑘

(1) 𝜙(𝑥𝑖) = ∑ 𝑤𝑘𝜙𝑘(𝑥𝑖) + 𝑤0=𝑦𝑖

𝑁×𝑁

Xét ma trận 𝜃 = (𝜑𝑘,𝑖) trong đó 𝜑𝑘,𝑖 = 𝜑𝑘(𝑥𝑖) = 𝑒−‖𝑥𝑖−𝑥𝑘‖

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.

Ta kí hiệu I là ma trận đơn vị cấp N; W=[ ], Z=[ ] là các vec tơ trong

𝑤1 … . 𝑤𝑁 𝑧1 … 𝑧𝑁

không gian N chiều 𝑅𝑁 trong đó:

(2) 𝑧𝑘 = 𝑦𝑘 𝑤0 , ∀𝑘 ≤ 𝑁

𝑁×𝑁

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

(3) Và đặt Ψ = Ι − Φ = [𝜓𝑘,𝑗]

19

Thì

∀𝑘 ≠ 𝑗

(4) 𝜓𝑘,𝑗 = { 0 ∀𝑘 = 𝑗 2 2⁄ 𝜎𝑘 −𝑒−‖𝑥𝑗−𝑥𝑘‖

Khi đó hệ phương trình (1) tương đương với hệ

(5) W=Ψ𝑊 + 𝑍

Với các tham số 𝜎𝑘 đã chọn và 𝑤0 tùy ý, hệ (1) và do đó hệ (5) luôn có

1

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ị 𝑦𝑘 :

𝑁 𝑘=1

𝑁

∑ (6) 𝑦𝑘 𝑤0 =

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ì 𝑞𝑘 > 𝑞). 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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Để tìm nghiệm 𝑊∗ của hệ (5) ta thực hiện thủ tục lặp như sau:

20

Khởi tạo 𝑊0 = 𝑍;

Tính

(8) 𝑊𝑘+1 = Ψ𝑊𝑘 + 𝑍;

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;

𝑁 𝑗=1

, điều kiện kết Với mỗi véc tơ N chiều u, ta kí hiệu chuẩn ‖𝑢‖∗ = ∑ |𝑢𝑗|

thức có thể chọn một trong các biểu thức sau.

𝑞

a)

1−𝑞

(9) ‖𝑊1 − 𝑊0‖∗ ≤ 𝜀

ln

b)

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

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

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

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

‖𝑢‖∗ = ∑|𝑢𝑗|

(12)

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 − 𝑊∗‖∗ ≤ 𝜀 Kí hiệu chuẩn ‖Ψ‖∗ của ma trậnΨ tương ứng với chuẩn vecto (11) là:

(13) {𝑞𝑘} ∈ [𝛼𝑞, 𝑞] ≤ 𝑞 ‖Ψ‖∗ = max 𝑘≤𝑁

Ta có đánh giá :

𝑞𝑡+1 1−𝑞

𝑞𝑡+1 1−𝑞

(14) ‖𝑊1 − 𝑊∗‖∗ ≤ ‖𝑢1 − 𝑢0‖∗ = ‖𝑍‖∗

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 =

1−𝑞

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

𝑊0; 𝑢1 = 𝑊1; áp dụng (14) cho t=0 thì ta có : 𝑞 (15) ‖𝑊1 − 𝑊∗‖∗ ≤ ‖𝑤1 − 𝑤0‖∗

21

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:

(𝑞))

0 𝑞=1

(𝑞)) 𝑦𝑚

𝐽 𝑗=1

𝑘(𝑞) − 𝑧𝑗

2𝜂1 𝑀

𝜕𝐸 𝜕𝑤𝑚𝑖

(𝑚)+

(𝑞) −

) ∑ (∑ )=𝑊𝑚𝑗+ ( (𝜑𝑗 𝑊𝑚𝑗 = 𝑊𝑚𝑗-1 (

(𝑞))

(𝑚)=𝑣𝑛 𝑣𝑛

(𝑞) (𝑥𝑛

(𝑚))} 𝑣𝑛

𝑄 𝑞=1

𝐽 𝑗=1

(𝑘(𝑞)) − 𝑧𝑗

2𝜂2 𝑀𝜎2 ∑

2

‖𝑥(𝑞)−𝑣(𝑞)‖

(𝑞) 𝑤𝑚𝑗𝜑𝑚

{[∑ 𝑤𝑚𝑗]𝑦𝑚 (𝜑𝑗

2 +

(𝑞)) ∑

2 =𝜎𝑚

𝑀 𝑚=1

𝑄 𝑞=1

𝐽 𝑗=1

(𝑘(𝑞)) − 𝑧𝑗

2𝜂3 𝑀

4 2𝜎𝑚

𝑛

∑ {∑ [ ]} 𝜎𝑚 (𝑤𝑗

;(𝑥𝑘𝜖𝑅𝑛, 𝑦𝑘𝜖𝑅𝑛) tập dữ liệu huấn luyện {𝑥𝑘, 𝑦𝑘}𝑘=1

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)

- Dịch tự động (machine translation)

- Tóm tắt văn bản (text summarization)

- Tìm kiếm thông tin (information retrieval)

- Trích chọn thông tin (information extraction)

- Phát hiện tri thức và khai phá dữ liệu văn bản (knowledge discovery and

text data mining)

Ngoài ra, còn nhiều bài toán và công nghệ xử lý ngôn ngữ khác, như giao

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

diện người máy bằng ngôn ngữ tự nhiên, các hệ hỏi đáp, các hệ sinh ra ngôn

22

ngữ .... Chúng được áp dụng vào nhiều lĩnh vực như y học, dược học, xây dựng,

quản lý giao thông, dự báo cháy rừng, tự động hóa điều khiển robot, điều khiển

các thiết bị bằng giọng nói, …. Một số sản phẩm được nghiên cứu và đã được

ứng dụng trên thế giới và ở Việt Nam như: xe đẩy thuốc thông minh tại các

bệnh viện ở Anh sử dụng công nghệ nhận dạng mã vạch trên tay các bệnh nhân

để phát thuốc và theo dõi sức khỏe cho bệnh nhân tránh những sự nhầm lẫn

không đáng có. Tại Việt Nam, các kỹ sư của công ty TOSY [8] đã nghiên cứu

và sáng tạo ra 1 con robot đánh bóng bàn (có tên là Topio) tại International

Robot Exhibition 2007 - triển lãm robot lớn nhất thế giới khai mạc ngày 29/11,

tại Tokyo. Trong đó có sử dụng công nghệ nhận dạng bóng để di chuyển và lập

chiến thuật đánh trả…

Bên cạnh sự phát triển và ứng dụng rộng rãi đó là các phương pháp nhận

dạng đã được sử dụng, dưới đây là các phương pháp nhận dạng cơ bản:

- RFID (Radio Frequency Identification) là kỹ thuật nhận dạng bằng sóng

vô tuyến từ xa

- SVM (Support Vector Machines) là một phương pháp máy học tiên tiến

đã có nhiều thành công không chỉ trong các lĩnh vực khai phá dữ liệu mà còn

trong lĩnh vực nhận dạng.

- Dynamic programming: là phương pháp dùng để giải quyết các bài toán tối

ưu, bắt đầu từ việc giải quyết các bài toán nhỏ nhất đến bài toán hoàn chỉnh.

- HMM (Hiden Markov Model): ưu điểm là thiết kế và coding đơn giản,

không dùng nhiều bộ nhớ. Nhược điểm là rất khó phân lớp dữ liệu….

1.2.2. Giới thiệu về bài toán nhận dạng mẫu

Có rất nhiều loại bài toán nhận dạng mẫu tuy nhiên với bất kì bài toán

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

nào hệ thống nhận dạng cũng phải thực hiện qua các bước cơ bản sau:

23

Hậu xử lý

Nhận dạng

Thu tín hiệu tiền xử lý

Trích chọn đặc trưng

Phân đoạn

Đầu vào

Hình 1.10: Các bước xử lý trong hệ thống nhận dạng mẫu

Trong đó:

 Đầu vào: là một giao diện để nhập dữ liệu cho chương trình

 Thu tín hiệu, 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, ...

 Phân đoạn: xác định vùng dữ liệu cần quan tâm

 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à chữ (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ể.

Như vậy, chúng ta đã được biết sơ qua tình hình chung của bài toán nhận

dạng chữ viết trên thế giới cũng như ở Việt Nam: những ứng dụng thực tế,

những kết quả đã đạt được và những gì chúng ta cần phải cố gắng thêm nữa đặc

biệt là với bài toán nhận dạng chữ in.

1.2.3. Bài toán nhận dạng chữ in

Như đã nói ở trên bài toán nhận dạng chữ in thuộc lớp bài toán nhận dạng

mẫu, như vậy để giải quyết bài toán nhận dạng chữ in thì phải tuân theo các

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

bước của bài toán nhận dạng mẫu đã nêu ở phần trên.

24

Sau đây ta chỉ xét việc nhận dạng từng ký tự chữ in một nên bước tiền xử

lý và bước phân đoạn xem như không cần thiết. Có thể khái quát quá trình nhận

Nhận dạng

Đưa ra kết quả nhận dạng

dạng chữ in thông qua hình vẽ dưới đây:

Trích chọn đặc trưng chữ viết

Dữ liệu đầu vào (ảnh)

Hình 1.11:Các bước giải quyết hình dạng chữ in

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

i) Định nghĩa momen Legendre:

(2𝑚+1)(2𝑛+1)

′ =

Momen Legendre bậc (m+n) của ảnh liên tục f(x,y) được định nghĩa như sau:

1 1 ∫ ∫ 𝑝𝑚(𝑥) −1 −1

4

𝜇𝑛𝑚 𝑝𝑛(𝑦)f(x, y)dx dy

Trong đó m, n = 0, 1, 2,….., ∞, 𝑝𝑚, 𝑝𝑛 là đa thức Legendre.

Đa thức Legendre bậc n được định nghĩa như:

𝑛 𝑗=0

(𝑛+𝑗)!

trong đó 𝑝𝑛(𝑥)=∑ 𝑎𝑛𝑗𝑥 𝑗

1 2𝑛

(

)!(

)!𝑗!

(𝑛−𝑗) 2

(𝑛+𝑗) 2 0 ∀(𝑛 − 𝑗)𝑀1 𝑚𝑜𝑑 2

(−1)(𝑛−𝑗) 2⁄ ∀(𝑛 − 𝑗)𝑀0 𝑚𝑜𝑑 2 𝑎𝑛𝑗={

Ta có thể xây dựng lại ảnh f(x,y) từ momen Legendre bằng công thức sau:

∞ 𝑘=0

𝑘 𝑙=0

f(x,y)≅ ∑ ∑ 𝜆𝑘𝑙𝑝𝑘(𝑥)𝑝1(𝑦)

với ảnh đã được rời rạc hóa 𝑝𝑥𝑦 ta có công thức sau để tính momen

(2𝑚+1)(2𝑛+1)

′ =

Legendre:

𝑦𝑥

4

𝜇𝑛𝑚 ∑ ∑ 𝑝𝑚(𝑥)𝑝𝑛(𝑦)𝑝𝑥𝑦

Người ta đã chứng minh được rằng giá trị momen Legendre là đại lượng

bất biến trong các phép dời hình, và đồng dạng. Vì thế momen Legendre thường

được sử dụng để nhận dạng các đối tượng hình học khi nó bị biến đổi bằng

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

phép dời hình hay phép đồng dạng. Tuy nhiên nhược điểm của momen

25

Legendre đó là nó không phải là momen bất biến trong phép xoay hình vì vậy

tầm ứng dụng của nó vẫn còn hạn chế. Dưới đây xin giới thiệu phương pháp

trích chọn đặc trưng chữ viết bằng cách sử dụng momen Legendre

ii) Trích đặc trưng chữ in sử dụng Momen Legendre

Giả sử ta có ảnh đầu vào X, ta đặt MAX_ORDER là một giá trị cho trước nào

đấy, sau đó ta tính tất cả các giá trị Momen Legendre bậc (m+n) sao cho

(2𝑚+1)(2𝑛+1)

′ =

m < n < MAX_ORDER. Các giá trị Momen này được lưu và ma trận L:

𝑦𝑥

4

L[m,n]=𝜇𝑛𝑚 ∑ ∑ 𝑝𝑚(𝑥)𝑝𝑛(𝑦)𝑝𝑥𝑦

Ta gọi ma trận L là ma trận momen Legendre. Sau khi tính xong ma trận

L ta viết các giá trị của ma trận L thành một hàng và xem đó như là giá trị đặc

trưng của ảnh đầu vào X. Do tính chất của Momen Legendre đó là bất biến với

các phép biến đổi ảnh. Sau đây là từng bước cụ thể của phương pháp trích chọn

đặc trưng chữ viết tay bằng Momen Legendre:

Bước 1: Chuyển đổi tọa độ:

Chú ý rằng momen Legendre chỉ được xác định trên đoạn [-1,1] nên để

áp dụng được với một bức ảnh kích thước MxN bất kỳ thì ta phải thực hiện

𝑁

𝑀

bước đổi tọa độ như sau: i , j là tọa độ trên ảnh gốc 0i N,0j M , x,y là tọa

2

2

độ sau khi thay đổi -1x 1 ,-1y 1 𝑖𝑐=⌊ ⌋, 𝑗𝑐=⌊ ⌋ và D= max(|𝑖𝑐 − 𝑖

𝑖−𝑖𝑐 𝐷

𝑗−𝑗𝑐 𝐷

, ) |,|𝑗𝑐 − 𝑗|) khi đó công thức chuyển tọa độ là (x,y)=(

Bước 2: Tính toán giá trị của ma trân Momen Legendre

Dưới đây là thủ tục viết bằng giả mã để tính giá trị của ma trận Momen

Legendre

For k:=0 to MAX_ORDER do

For l:=0 to k do

𝜆(𝑘 − 𝑙, 𝑙):0

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

For i:= 0 to N do

26

For j:=0 to M do

𝑖−𝑖𝑐 𝐷

x:=

𝑗−𝑗𝑐 𝐷

y :=

𝜆(𝑘 − 𝑙, 𝑙): 𝜆(𝑘 − 𝑙, 𝑙) + 𝑝𝑘−1(𝑥) ∗ 𝑝1(𝑦) ∗ 𝑓(𝑥, 𝑦)

End

End

𝜆(𝑘−𝑙,𝑙)∗(2𝑘−2𝑙−𝑙)∗(2𝑙+1) (𝑁−1)∗(𝑀−1)

𝜆(𝑘 − 𝑙, 𝑙):

End

Để tính nhanh được 𝑝𝑛(𝑥) ta có thể sử dụng công thức truy hồi

𝑝0(𝑥) = 1: 𝑝1(𝑥) = 𝑥; 𝑝𝑛(𝑥) = [(2𝑛 − 1)𝑥𝑝𝑛−1(𝑥) − (𝑛 − 1)𝑝𝑛−2(𝑥)] 𝑛⁄

Bước 3 chuyển ma trận Legendre thành vecto đặc trưng

Thực hiện việc viết giá trị các điểm trong ma trận Legendre thành một

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

hàng (hay vector) và xem đó là vector đặc trưng của ảnh đầu vào.

27

CHƯƠNG 2: NHẬN DẠNG CHỮ IN SỬ DỤNG MẠNG NEURAL

2.1. Thiết kế mạng neural

Về cơ bản ta có thể hiểu mạng neural là một đồ thị có hướng như hình

1.8. Trong đó các đỉnh của đồ thị là các neural và các cạnh của đồ thị là các liên

kết giữa các neural.

h1

g1

h2 x f

g2

h3

Hình 2.1: Sơ đồ đồ thị có hướng đơn giản

Vì vậy để xây dựng một mạng neural ta xây dựng một đồ thị có hướng: số đỉnh

của đồ thị bằng số neural trong mạng, giá trị của các cạnh chính là trọng số liên

kết neural.

Ví dụ xây dựng một mạng neural đơn giản:

Input:

+ Mạng neural có m lớp (m > 1)

+ ni là số neural của lớp thứ i trong mạng (ni >= 1, i = (1, m))

+ w : trọng số liên kết

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Output : Mạng neural

28

Giải thuật:

Int layers;

Int neurals[layers];

Float w[i][j][k];

Bước 1: Chọn lớp i = 2 là lớp bắt đầu

Bước 2: Chọn lớp i là lớp hiện thời

Bước 3: Tại lớp đang xét i, xét neural thứ j

Bước 4: Thực hiện tạo trọng số kết nối với neural thứ k của lớp i – 1

Bước 5: Nếu k <= neurals[i-1] quay lại “Bước 4” ngược lại tiến lên “Bước 6”

Bước 6: Nếu j <= neurals[i] quay lại “Bước 3” ngược lại tiến lên “Bước 7”

Bước 7: Nếu i <= layers quay lại “Bước 3” ngược lại kết thúc chương trình.

Cuối những năm 1958, Frank Rosenblatt và một số nhà nghiên cứu đã phát triển

một mạng neural có tên là mạng Perceptron. Đây là một mạng neural với kiến

trúc truyền thẳng một lớp, với lớp ra là các neural có hàm hoạt hoá là hàm hard-

limit. Kiến trúc tổng quát của mạng Perceptron cho bởi Hình 2.1.

Khi cho một vectơ mẫu vào P, tín hiệu đầu ra của neural thứ i của lớp ra

ai=hardlimit(Wi

T+bi)=hardlimit(nnet)=

(2.1)

T là ma trận chuyển vị của

sẽ là:

Trong đó bi là hệ số bias của neural thứ i và Wi

Wi là ma trận trọng số riêng của neural thứ i. Với vectơ mẫu vào có R thành

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

phần ta có thể biểu diễn Wi như sau:

29

(2.2)

Mạng được cấu trúc với S neural lớp ra, do đó ma trận trọng số của toàn

(2.3)

mạng W sẽ được biểu diễn như công thức sau:

Ta có thể viết gọn lại công thức 2.3 trên theo các ma trận trọng số riêng

(2.4)

 Biên quyết định:

như sau:

Theo thiết kế mạng Perceptron như trên, từ công thức 2.1 ta nhận thấy một

đầu ra ai sẽ phân chia không gian mẫu đầu vào ra thành 2 vùng. Ranh giới giữa

hai vùng này được xác định bởi một biên quyết định. Đó là một biên tuyến tính

hay siêu phẳng (hyperplane). Hình 2.2 dưới đây thể hiện một ví dụ về mạng

Perceptron một neural lớp ra với hai đầu vào p1,p2 (tương đương với hai neural

lớp vào). Với những giá trị trọng số và hệ số bias đã cho ta có thể thấy trên đồ

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

thị biên quyết định phân chia 2 miền không gian mẫu vào.

30

p2

a=1

Lớp ra có 1 nơron

véc tơ trọng số

p1

w1,1=1

nnet

a

f

1

p2

w1,2=1

p1

a=0

1

b=-1

a=hardlimit(WP+b)

WP+b=0

Hình 2.2: Biên quyết định trong không gian mẫu

Biên quyết định được xác định bởi các vectơ đầu vào ứng với nnet=0 do đó

nnet=Wi

TP +bi=wi,1p1+ wi,2p2+…... wi,RpR+bi=0

(0.5)

biên quyết định được xác định bằng phương trình sau:

 Luật học Perceptron

Vectơ trọng số sẽ luôn trực giao với đường biên quyết định.

Vai trò của luật học Perceptron là để thiết lập các trọng số và các hệ số

bias của mạng sao cho mạng xác lập biên quyết định phân loại tập mẫu vào.

Tập mẫu vào huấn luyện mạng gồm có các mẫu pi đã được xác định trước tín

hiệu ra yêu cầu ti (kết quả đích). Như vậy luật học này thuộc loại được giám

sát.

Luật học Perceptron được mô tả như sau:

- Bước 1: Cung cấp tập huấn luyện gồm K cặp mẫu vào và kết quả ra đích

{ (PK,TK)}

- Bước2: Đặt các giá trị ban đầu cho bất kỳ các trọng số và hệ số bias

- Bước 3: Lần lượt cho các mẫu PK lan truyền qua mạng ta được vectơ tín

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

hiệu AK

31

- Bước 4: Tính các sai số ei tại các đầu ra của mạng theo công thức sau:

ei=ti-ai với ti là kết quả ra đích tại neural i của lớp ra còn ai là tín hiệu ra

thực tế của nó.

- Bước 5: Hiệu chỉnh các ma trận trọng số Wi và hệ số bias bi của S neural

T với i=1...S

wi

mới=wi

cũ+eiPk

T= wi

cũ +(ti-ai) Pk

(0.6)

bi

mới=bi

cũ+ei

(0.7)

lớp ra:

- Bước 6: Mỗi lần hiệu chỉnh xong các ma trận wi và các bi thì lặp lại bước

3

Quá trình lặp lại cho đến khi các sai số ei đều bằng không, tức là khi đó ta

sẽ có được ma trận trọng số và các hệ số bias thích ứng với k mẫu học { (PK,TK)}.

Cách hiệu chỉnh tham số dựa trên sai số e như trên được gọi là phương pháp tối

thiểu hoá lỗi dự đoán.

 Sự hội tụ:

Rosenblatt đã chứng minh được phép lặp của quá trình huấn luyện luôn

luôn hội tụ về ma trận trọng số và các hệ số bias mà với chúng mạng hoàn toàn

đạt được một sự phân lớp các mẫu như mong muốn. Tất nhiên điều kiện ở đây

là không gian mẫu phải tồn tại biên quyết định hay còn gọi là không gian mẫu

khả tách tuyến tính. Trong phạm vi luận văn này không trình bày về vấn đề

chứng minh này mà chỉ đưa ra một ví dụ về không gian mẫu khả tách tuyến

p2

Số hóa bởi Trung tâm Học liệu – ĐHTN

p1 http://www.lrc.tnu.edu.vn

tính.

32

Hình 2.3: Không gian mẫu khả tách tuyến tính

Mạng Perceptron một lớp chỉ thực hiện được các bài toán đơn giản. Mạng

chỉ có thể tính toán xấp xỉ một hàm liên tục bất kỳ đối với các biến tương ứng

là các tín hiệu đầu vào vào nó chỉ có thể giải quyết được các bài toán phân lớp

với các không gian mẫu có tính khả tách tuyến tính. Một ví dụ kinh điển do

Minsky và Papert đưa ra để chứng minh hạn chế của mạng Perceptron đó là tập

P2

P4

t=0

P1

P3

t=1

hợp mẫu học với quan hệ đầu vào và đầu ra theo hàm XOR

Hình 2.4: Không gian mẫu không khả tách tuyến tính

Hạn chế của mạng Perceptron được giải quuyết trong mạng Perceptron đa

lớp. Mạng Perceptron đa lớp có khả năng tính toán xấp xỉ được một hàm bất

kỳ.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Khả năng ứng dụng cho nhận dạng ảnh

33

Theo như những điều đã trình bày ở trên thì mạng Perceptron có thể được

sử dụng để thực hiện quá trình phân lớp mẫu trong bài toán nhận dạng. Điều

kiện ở đây là không gian mẫu phải khả tách tuyến tính. Điều kiện này có được

hay không còn phụ thuộc vào từng bài toán nhận dạng cụ thể và đặc biệt phụ

thuộc vào việc trích chọn đặc trưng của đối tượng như thế nào.

Ta biết rằng một đầu ra của mạng Perceptron phân không gian mẫu làm

hai vùng, như vậy khi có S neural lớp ra, không gian mẫu sẽ được phân chia

thành 2S vùng. Để phân lớp cho một mẫu, ta phải kết hợp kết quả của tất cả các

đầu ra. Cách kết hợp này giống như một hàm logic. Nếu chúng ta sử dụng thêm

một lớp neural làm nhiệm vụ kết hợp này thì ta được cấu hình mạng Perceptron

đa lớp.

Ở đây chúng ta xem xét việc xây dựng mạng neural trong bài toán nhận

dạng chữ in. Mạng neural được xây dựng gồm 3 lớp như sau:

- Lớp đầu vào: Nếu ta chia ảnh kí tự đầu vào thành ma trận cỡ M* N thì

ảnh sẽ kí tự đầu vào sẽ được biểu diễn bởi M*N phần tử. Như vậy lớp

đầu vào của mạng sẽ là M*N neural nhận giá trị đầu vào từ M*N thành

phần tương ứng của vector đầu vào. Dữ liệu đầu vào này có được từ việc

vector hoá từ ma trận điểm ảnh kí tự bằng phương pháp chia lưới. Như

vậy việc chọn tỉ lệ ma trận phù hợp cho kí tự hay nói các khác chính là

số neural của lớp đầu vào là rất quan trọng. Bởi việc huấn luyện cho

mạng học là một vòng lặp duyệt qua lần lượt các kí tự ảnh giúp mạng

neural nhớ và nhận dạng các ký tự ảnh này. Với mỗi vòng lặp, một kí tự

sẽ được phân tích và chuyển tỉ lệ vào một ma trận tương ứng M*N như

trên đã trình bày. Nếu chọn ma trận với kích thước M*N lớn tương đương

với việc số neural của lớp đầu vào lớn sẽ có nhược điểm là nhận dạng kí

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

tự có phông chữ nhỏ hoặc trung bình dễ bị sai hoặc tỉ lệ chính xác không

34

cao. Ngoài ra với số lượng điểm ảnh lớn thì việc duyệt qua rất nhiều vòng

lặp với số lượng lớn các neural thì dẫn đến chi phí tính toán là khá lớn

và tốc độ nhận dạng có thể sẽ bị chậm đi. Ngược lại nếu chọn ma trận

điểm ảnh với tỉ lệ nhỏ tương đương với việc lựa chọn số lượng neural ở

lớp đầu vào quá nhỏ thì có thể dẫn tới việc mất mát thông tin nên khi

phân tích các ảnh thông thường và lớn sẽ dẫn đến sai số lớn vì vậy việc

nhận dạng kí tự cũng thiếu chính xác. Qua kết quả kiểm nghiệm và dựa

trên một số tài liệu tham khảo nhận thấy giá trị 150 neural đầu vào tương

ứng với ma trận 15*10 là khá phù hợp để nhận dạng với kiểu kí tự ảnh

có font chữ trung bình và phổ biến. Các kí tự ảnh này có chiều cao trung

bình 70 pixel và chiều rộng khoảng 54 pixel.

- Lớp ẩn: Bao gồm 500 neural. Việc lựa chọn giá trị này dựa trên thực

nghiệm của các tài liệu chuyên về nhận dạng với các kí tự quang học. Số

neural này thực tế được quyết định từ những kết quả tối ưu và giá trị lỗi

cơ sở trong quá trình huấn luyện mạng.

- Lớp đầu ra: bao gồm 16 neural tương ứng với 16 bit nhị phân của mã

Unicode. Từ 16 neural này ta tổng hợp và chuyển thành 16 bit nhị phân,

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

sau cùng chuyển thành một kí tự Unicode.

35

Hình 2.5: Mô hình mạng 3 lớp

2.2. Huấn luyện mạng neural

Một mạng neural khi được xây dựng cần được huấn luyện trên một không

gian đầu vào có trước. Như vậy quá trình huấn luyện mạng neural sẽ dựa trên

tập dữ liệu đầu vào đã được chuẩn bị trước. Việc huấn luyện chính là việc để

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

mạng neural học được các kí tự ảnh trong không gian đầu vào. Kết quả mà

36

mạng học được sẽ được lưu vào một không gian đã học. Khi hoạt động mạng

sẽ đọc giá trị đã được huấn luyện từ tập kết quả.

2.2.1 Chuẩn bị tập dữ liệu huấn luyện:

Một khi ta quyết định giải quyết một vấn đề sử dụng những mạng neural ta cần phải thu thập dữ liệu cho mục tiêu huấn luyện. Tập hợp dữ liệu huấn luyện bao gồm một số trường hợp, mỗi trường hợp chứa những giá trị của đầu vào và đầu ra khác nhau. Những việc đầu tiên cần làm là: Những biến nào được sử dụng, bao nhiêu trường hợp cần cần thu thập.

Công việc chuyên môn cần giải quyết sẽ cho ta những ý tưởng về các biến đầu vào phù hợp. Trong những mạng neural ta có thể chọn và loại bỏ nhiều biến và mạng neural cũng có thể xác định bằng quá trình thực nghiệm. Trong một bước ta nên tính đến bất kỳ biến nào mà ta nghĩ có ảnh hưởng đến quá trình thiết kế. Những mạng neural xử lý dữ liệu số trong một tầm giới hạn rõ ràng. Điều này đưa ra một vấn đề, nếu dữ liệu nằm trong một số vùng đặc biệt như dữ liệu chưa biết hay không phải dữ liệu số. Thì phải có những phương pháp xử lý thích hợp. Dữ liệu số được chia nhỏ thành những khoảng thích hợp cho mạng và những giá trị thiếu có thể thay thế bằng giá trị trung bình hay giá trị thống kê của biến đó thông qua những biến khác đã được huấn luyện.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Xử lý dữ liệu không phải số thì khó hơn. Loại dữ liệu không phải là số thông thường nhất là những biến có giá trị định danh như giới tính (nam, nữ). Biến định danh có thể biểu diễn bằng số học và mạng neural có chức năng hỗ trợ điều này. Tuy nhiên, mạng neural làm việc tốt với những trường hợp biến định danh là một tập nhiều giá trị. Số trường hợp mẫu dung để huấn luyện mạng rất khó xác định. Đã có một vài hướng dẫn về mối liên hệ giữa số trường hợp mẫu với kích thước mạng (cách đơn giản nhất là số trường hợp mẫu gấp 10 lần số kết nối trong mạng). Thực ra số trường hợp mẫu cũng có liên quan đến độ phức tạp của hàm mà mạng phải học. Khi số biến tăng lên, số trường hợp mẫu cần huấn luyện cũng tăng phi tuyến, vì thế với số các biến nhỏ (50 hoặc nhỏ hơn) thì lại cần một số lớn các trường hợp mẫu. Trong hầu hết các vấn đề trong thực tế, số trường hợp mẫu là khoảng hàng trăm hay hàng nghìn mẫu. Đối với những vấn đề rất phức tạp thì cần nhiều hơn, nhưng trường hợp này rất ít. Nếu dữ liệu huấn luyện ít hơn, rõ ràng không đủ thông tin để huấn luyện mạng và cách tốt nhất là dùng mạng tuyến tính. Nhiều vấn đề trong thực tế có dữ liệu

37

không đáng tin cậy, một vài dữ liệu bị phá hỏng do nhiễu, hoặc các giá trị không phối hợp được với nhau. Mạng neural có khả năng đặc biệt xử lý dữ liệu bị mất (sử dụng giá trị trung bình hay các giá trị thống kê khác). Mạng neural cũng chịu được nhiễu, những cũng có giới hạn. Nếu thỉnh thoảng có giá trị nằm xa ra khỏi vùng giá trị bình thường thì mạng huấn luyện phải có ngưỡng. Cách tốt nhất đối với những trường hợp này là nhận ra và loại bỏ những giá trị nằm xa đó (có thể huỷ trường hợp này hoặc xem giá trị nằm xa này là giá trị bị mất). Nếu giá trị này khó nhận ra, mạng neural có chức năng huấn luyện chịu được giá trị nằm khỏi vùng này nhưng huấn luyện này thường kém hiệu quả hơn là huấn luyện chuẩn.

Tóm lại cách thu thập dữ liệu có thể nói gọn lại như sau:

- Chọn những giá trị huấn luyện có tác dụng - Dữ liệu số và biến có giá trị định danh có thể xử lý trực tiếp bằng mạng neural. Chuyển những loại biến khác sang một trong các dạng này. - Cần hàng trăm hoặc hang ngàn trường hợp mẫu huấn luyện; càng nhiều biến thì càng nhiều mẫu huấn luyện. Mạng neural có khả năng nhận ra những biến hữu dụng để huấn luyện

2.2.2 Biểu diễn tri thức tập dữ liệu huấn luyện:

Chúng ta có thể đưa ra định nghĩa về tri thức như sau: Tri thức chính là thông tin được lưu trữ hay các mô hình được con người và máy móc sử dụng để biểu diễn thế giới thực, phán đoán về thế giới và có những đáp ứng phù hợp với thế giới bên ngoài.

Các đặc tính cơ bản của biểu diễn tri thức:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

- Thông tin gì thực sự được biểu diễn - Làm thế nào thông tin được mã hoá một cách vật lý cho việc sử dụng sau này. Trong các ứng dụng thực tế của các máy tính thông minh, có thể nói rằng một giải pháp tốt phụ thuộc vào một biến tri thức tốt. Điều đó cũng đúng với các mạng neural, một lớp đặc biệt của các máy thông minh. Tuy nhiên, các dạng biểu diễn có thể từ các đầu vào thành các tham số bên trong của mạng là rất đa dạng, và có khuynh hướng là cho việc tìm ra một giải pháp thích hợp nhằm biểu diễn tri thức bằng phương tiện mạng neural trở nên một sự thách thức về thiết kế

38

Ở đây cần nhấn mạnh rằng mạng neural lưu trữ thông tin về thế giới thực

bằng chính bản thân cấu trúc của nó kể cả về mặt hình dạng cũng như giá

trị tham số bên trong (có thể thay đổi được để nắm bắt). Một nhiệm vụ chính

của mạng neural là học một mô hình của thế giới thực để đạt được một số

mục đích xác định cần quan tâm. Tri thức của thế giới bao gồm hai loại

thông tin như sau:

- Trạng thái thế giới đã biết, được biểu diễn bởi các sự kiện về những cái

đã biết; dạng tri thức này được xem như là các thông tin ban đầu.

- Các quan sát (đo đạc) về thế giới, thu nhập được thông qua các bộ cảm

biến được thiết kế để thăm dò môi trường mà trong đó mạng hoạt động.

Nói chung, các quan sát này luôn bị nhiễu và sai lệch do nhiều nguyên

nhân khác nhau. Các quan sát thu nhận được như vậy cũng cấp một quỹ

thông tin, mà từ đó lấy ra các ví dụ được dùng để huấn luyện mạng

neural.

Do cấu trúc một mạng neural là vô cùng đa dạng, nên để có thể biểu diễn tri

thức một cách có hiệu quả, người ta đưa ra bốn quy tắc chung sau:

- Quy tắc 1: Các đầu vào tương tự từ các lớp tương tự cần phải luôn tạo ra

những biểu diễn tương tự trong mạng, và như vậy nên được phân lớp

thuộc về cùng một loại. Trong tiêu chuẩn này, người ta thường sử dụng

một số thước đo để xác định độ “tương tự” giữa các đầu vào (ví dụ

khoảng cách euclide)

- Quy tắc 2: Các phần tử mà có thể phân ra thành các lớp riêng biệt thì nên

có những biểu diễn khác nhau đáng kể trong mạng.

- Quy tắc 3: Nếu một đặc trưng nào đó đặc biệt quan trọng thì nên có một

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

số lượng lớn neural liên quan đến việc biểu diễn đặc trưng này trong

39

mạng. Số lượng lớn các neural bảo đảm mức độ chính xác cao trong việc

thực hiện các quyết định và nâng cao khả năng chịu đựng các neural

hỏng.

- Quy tắc 4: Thông tin ban đầu và các tính chất bất biến nên được đưa vào

trong thiết kế ban đầu của một mạng neural, và như vậy sẽ giảm bớt gánh

nặng cho quá trình học.

Quy tắc 4 đặc biệt quan trọng vì nếu chúng ta áp dụng nó một cách thích

hợp sẽ dẫn đến khả năng tạo ra các mạng neural với một kiến trúc chuyên

biệt. Điều này thực sự được quan tâm do một số nguyên nhân sau:

- Các mạng neural thị giác và thính giác sinh học được biết là rất chuyên

biệt

- Một mạng neural với cấu trúc chuyên biệt thường có một số lượng nhỏ

các tham số tự do phù hợp cho việc chỉnh lý hơn là một mạng kết nối đầy

đủ. Như vậy mạng neural chuyên biệt cần một tập hợp dữ liệu nhỏ hơn

cho việc tích luỹ; nó học sẽ nhanh hơn và thường có khả năng tổng quát

hoá tốt hơn.

- Tốc độ chuyển thông tin qua một mạng chuyên biệt là nhanh hơn.

- Giá của việc xây dựng một mạng chuyên biệt sẽ nhỏ hơn do kích thước

nhỏ của nó so với mạng kết nối đầy đủ.

2.2.3 Thuật toán lan truyền ngược:

Huấn luyện mạng neural nhiều lớp sử dụng thuật toán lan truyền ngược

gồm hai quá trình: Quá trình truyền tuyến tính và quá trình truyền ngược:

Quá trình truyền tuyến tính: Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

xuất để:

40

- Thay đổi giá trị của trọng số liên kết W của các neural trong mạng biểu

diễn được dữ liệu học.

- Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được và

kết quả dự đoán của mạng gọi là lỗi (học có giám sát)

- Quá trình truyền ngược: Giá trị lỗi sẽ được truyền ngược lại sao cho quá

trình huyến luyện (học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất.

Thuật toán:

Xét mạng neural 3 lớp như thiết kế trên: lớp vào, lớp ẩn và lớp ra

1

Hàm kích hoạt các neural: logistic (sigmoid)

1+𝑒−𝑥

g(x)= (1.3)

Bước 1: Khởi tạo trọng số w ngẫu nhiên nhỏ.

Bước 2: Chọn lớp đầu vào x và đính nó vào lớp đầu vào

Bước 3: Truyền sự kích hoạt qua trọng số đến khi kích hoạt các neural đầu ra

Bước 4: Tính đạo hàm riêng “δE” theo trọng số cho lớp xuất. Sử dụng GRADIENT của hàm lỗi.

Bước 5: Tính đạo hàm riêng “δE” theo trọng số cho lớp ẩn. Sử dụng GRADIENT của hàm lỗi.

Bước 6: Cập nhật tất cả trọng số theo Wi=W(i-1)-µ(δE/ δ Wi)

Bước 7: quay lại “Bước 2” cho đến “Bước 6” cho tất cả các mẫu.

Trong đó: GRADIENT hàm lỗi:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Đối với các neural lớp đầu ra:

41

Hàm lỗi:

𝟏 E(z) = 𝟐

(𝒛 − 𝟏)𝟐 (1.4)

( t là giá trị thật của mẫu huấn luyện)

Đạo hàm riêng của hàm lỗi theo trọng số b:

(1.5)

Ta có:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Đặt:

42

Ta được:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

(1.6)

43

Đối với các neural lớp ẩn:

Đạo hàm riêng của hàm lỗi theo trọng số:

(1.7)

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Ta có:

44

Đặt:

Ta được:

(1.8)

Sau khi tính được đạo hàm riêng của hàm lỗi theo từng trọng số, trọng số sẽ

được điều chỉnh bằng cách trừ bớt đi 1 lượng bằng tích của đạo hàm riêng và

tốc độ học:

(1.9)

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Những hạn chế của phương pháp lan truyền ngược:

45

Ngoài những thành công của giải thuật học lan truyền ngược, vẫn còn có một

số khía cạnh làm cho giải thuật trở nên chưa được bảo đảm là mọi lúc đều tốt.

Khó khăn chủ yếu là ở quá trình huấn luyện lâu. Có thể do nhịp độ học và động

lực không tối ưu. Sự sai sót trong việc huấn luyện nói chung xuất hiện từ hai

nguồn: mạng liệt và những cực tiểu địa phương.

Mạng liệt: xảy ra khi những trọng số được điều chỉnh tới những giá trị rất lớn.

Tổng đầu vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà đạt giá

trị rất cao (hoặc dương hoặc âm), và qua hàm kích hoạt sigmoid, đơn vị sẽ có

một giá trị kích hoạt rất gần 0 hoặc rất gần 1. Giá trị hiệu chỉnh trọng số gần 0,

và quá trình huấn luyện có thể đi đến một trạng thái dừng ảo.

Cực tiểu địa phương: bề mặt sai số của mạng rất phức tạp đầy những ngọn đồi

và những thung lũng. Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy tại một cực

tiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh. Những phương

pháp thống kê có thể giúp để tránh cái bẫy này, nhưng chúng làm chậm. Một

phương án khác là tăng thêm số lượng đơn vị ẩn. Như vậy sẽ làm việc trong

không gian sai số nhiều chiều, nên cơ hội gặp bẫy nhỏ hơn. Tuy nhiên việc tăng

cũng có giới hạn trên, khi vượt qua giới hạn này, cơ hội mắc bẫy lại tăng lên.

2.2.4 Áp dụng trong huấn luyện mạng neural nhận dạng chữ in:

Mục đích của quá trình huấn luyện là hiệu chỉnh trọng số W sao cho giống với véctơ đầu vào nhất. Thực hiện hiệu chỉnh các véctơ trọng số ứng với từng ký tự mẫu. Kết quả thu được một ma trận trọng số W giống với tập véctơ đầu vào. Huấn luyện bao gồm các bước:

1. Xây dựng mạng tương ứng với mô hình tham số.

2. Khởi tạo giá trị trọng số với giá trị ngẫu nhiên. Nạp file huấn luyện

(cả ảnh đầu vào và đầu ra mong muốn).

3. Phân tích ảnh và ánh xạ tất cả kí tự tìm thấy vào các mảng một

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

chiều.

46

4. Đọc giá trị đầu ra mong muốn từ file và chuyển đổi từng kí tự tới

giá trị nhị phân Unicode và lưu trữ riêng biệt.

5. Với mỗi kí tự:

 Tính toán giá trị đầu ra của mạng

 So sánh với giá trị đầu ra mong muốn tương ứng với từng kí

tự và tính toán lỗi.

 truyền ngược giá trị từ đầu và với mỗi liên kết điều chỉnh

trọng số liên kết.

6. Chuyển sang kí tự tiếp theo và lặp lại “6” cho tới khi hết các kí tự.

7. Tính toán trung bình lỗi cho tất cả các kí tự.

8. Lặp lại từ bước 6 đến 8 cho tới khi đạt số đưa vào của số lần lặp tối

đa.

 với phạm vi lỗi đạt đến ngưỡng. Nếu như vậy thì bỏ lặp lại.

 ngược lại tiếp tục lặp lại.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Sơ đồ khối của các bước được mô tả trong hình dưới đây

47

Hình 2.6: Các bước huấn luyện

Giải thuật huấn luyện hội tụ đến một giải pháp mà nó tối thiểu hoá được

sai số trung bình bình phương vì cách thức hiệu chỉnh trọng số và hệ số bias

của thuật toán là ngược hướng với vectơ Gradient của hàm sai số trung bình

bình phương đối với trọng số. Tuy nhiên, đối với mạng MLP thì hàm sai số

trung bình bình phương thường phức tạp và có nhiều cực trị cục bộ, vì thế các

phép lặp huấn luyện mạng có thể chỉ đạt được đến cực trị cục bộ của hàm sai

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

số trung bình bình phương mà không đạt đến được cực trị tổng thể.

48

Vấn đề quá trình huấn luyện sẽ hội tụ như thế nào sẽ phụ thuộc vào các điều

kiện ban đầu của quá trình huấn luyện. Đặc biệt là việc chọn hệ số học  như thế

nào để tăng khả năng hội tụ của mạng. Với mỗi bài toán ta lại có phương án chọn

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

hệ số học khác nhau.

49

2.3. Nhận dạng mạng neural

Quá trình nhận dạng được diễn ra theo các bước sau:

Bước 1: Người sử dụng vẽ ký tự cần nhận dạng.

Bước 2: Ký tự được lấy mẫu xuống lưới kích thướcM*N. Ta được một ma

trận hai chiều kích thước M*N có các giá trị tương ứng với giá trị các điểm

ảnh.

Bước 3: Chuyển ma trận điểm ảnh thành véctơ đầu vào có kích thước M*N

bao gồm các giá trị 0.5, - 0.5.

Bước 4: Véctơ đầu vào được đưa vào mạng neural để tìm neural chiến thắng.

Bước 5: Thiết lập mảng chứa các ký tự trong tập mẫu, với chỉ số của mạng

tương ứng với chỉ số của neural đầu ra.

Bước 6: Ánh xạ neural chiến thắng vào mảng trên để tìm ra ký tự tương ứng

với neural chiến thắng.

Bước 7: Hiển thị kết quả nhận dạng được tương ứng với ký tự được vẽ.

Mạng neural 3 lớp đã thực hiện khá tốt cho việc phân lớp không gian mẫu

trong nhận dạng ảnh. Ngoài ra mạng còn có khả năng thực hiện chức năng trích

chọn đặc trưng. Thực tế thuật toán lan truyền ngược cần có những cải tiến để

giảm thời gian huấn luyện và đảm bảo hơn khả năng hội tụ về phương án tối

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

ưu.

50

CHƯƠNG 3: CHƯƠNG TRÌNH NHẬN DẠNG KÝ TỰ

3.1. Xác định các tham số cho mạng

Các ký tự sau khi vẽ, được lấy mẫu xuống và được đưa vào đầu mạng

neural. Có một neural đầu vào cho mỗi điểm ảnh trong hình ảnh được lấy mẫu

xuống. Vì hình ảnh được lấy mẫu xuống có kích thước M*N nên có M*N neural

đầu vào. Số neural đầu ra bằng số ký tự mẫu.

Ngoài yếu tố đầu vào và đầu ra còn có các kết nối giữa các neural. Các

trọng số này không bằng nhau đối với tất cả các kết nối. Mỗi kết nối được chỉ

định một trọng số. Trọng số này là yếu tố duy nhất xác định đầu ra mạng neural

ứng với mỗi mẫu đầu vào. Để xác định tổng số kết nối phải nhân số neural đầu

vào với số neural đầu ra. Mạng có kết nối đầy đủ nghĩa là mỗi đầu vào được

kết nối với tất cả các đầu ra. Quá trình đào tạo là quá trình tìm ra các giá trị

chính xác cho các trọng số này.

3.2. Xử lý dữ liệu và lựa chọn dữ liệu

3.2.1. Lấy mẫu xuống hình ảnh

Mỗi lần ký tự được vẽ để huấn luyện hay để nhận dạng, nó phải được lấy

mẫu xuống.

i) Lưu hình ảnh được lấy mẫu xuống

Chương trình thực hiện với một lưới kích thước M*N. Tất cả hình ảnh

được lấy mẫu xuống được lưu trong lớp này, cũng bao gồm các phương thức

đã thiết lập và nhận được dữ liệu liên kết với lưới lấy mẫu xuống và cũng chứa

một phương thức, đặt tên là clone, sẽ tạo ra một bản sao chính xác của hình ảnh

này.

ii)Kích thước và vị trí

Để mạng neural không bị nhầm lẫn về vị trí và kích thước thì tất cả hình

ảnh được lấy mẫu xuống trước khi sử dụng. Vùng để vẽ đủ lớn để có thể vẽ ký

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

tự với các kích thước khác nhau. Bằng cách lấy mẫu hình ảnh xuống một kích

51

thước phù hợp, do đó không còn quan tâm đến vấn đề ký tự được viết có kích

thước như thế nào.

Khi vẽ một ký tự, đầu tiên chương trình sẽ vẽ một hộp xung quanh biên

của ký tự. Điều này cho phép loại bỏ tất cả khoảng trống xung quanh ký tự

được vẽ. Thực hiện cắt hình ảnh này, và cuối cùng lấy mẫu xuống, chúng ta

phải lấy các mẫu bit của hình ảnh ký tự.

Việc cắt được thực hiện bằng cách kéo bốn đường ảo từ trên, bên trái, bên

phải và từ dưới của hình ảnh nếu gặp điển ảnh nào thì dừng và không quét nữa.

Bằng cách này bốn đường thẳng sẽ là các cạnh ngoài của hình ảnh. Cả hai

phương thức hLineClear và vLineClear chấp nhận một tham số cho biết dòng

quét, và trả về giá trị true nếu dòng đó là trống. Chương trình hoạt động bằng

cách gọi hLineCIear và vLineClear cho đến khi gặp cạnh ngoài của ký tự. Để

tính toán đường biên trên cùng của hình chữ nhật giới hạn ký tự, chương trình

bắt đầu từ 0 và tiếp tục xuống dưới hình ảnh. Để tìm đường biên dưới thực hiện

quét ngược lại từ dưới đáy hình ảnh ký tự lên. Các quy trình để xác định giới

hạn trái và phải được thực hiện cũng theo cách này.

iii)Thực hiện lấy mẫu xuống

Phần lớn công việc thực hiện quá trình này được thực hiện trong phương

thức lấy mẫu. Sau khi ký tự được cắt nó sẽ được lấy mẫu xuống. Hình ảnh có

độ phân giải lớn được giảm xuống thành độ phân giải M*N. Tưởng tượng rằng

ta vẽ một lưới lên trên ký tự, phân chia thành các hình vuông với M đường

ngang và N đường xuống, Nếu bất kỳ điểm ảnh nào được điền đầy thì trong

lưới M*N đó điểm ảnh tương ứng cũng được điền đầy

Phương thức chấp nhận số lượng vùng cần được tính toán. Đầu tiên, phải

tính toán tọa độ x, y ban đầu và cuối cùng. Phương thức được sử dụng để tính

toán tọa độ x cho vùng đầu tiên, đây là cạnh bên trái của hình chữ nhật bao

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

quanh ký tự. Sau đó x được nhân với hệ số tỷ lệ x. Đó là tỷ lệ bao nhiêu pixel

52

cho mỗi ô vuông. Điều này cho phép xác định nơi đặt "startX", và điểm bắt đầu

"startY" được tính toán theo cách tương tự. Tiếp theo lặp với mỗi tọa độ x và y

thuộc mỗi hình vuông, Nếu có số chẵn pixel thì điền đầy, sau đó phương thức

trả lại giá trị đúng. Điều này chỉ ra rằng miền này được điền đầy.

3.2.2. Xử lý dữ liệu (Phân tích ảnh)

- Quá trình phân tích ảnh thực chất là phân tích chuỗi văn bản ảnh thành

từng ký tự một. Việc phân tích này dựa trên việc nhận dạng các pixel màu của

ký tự ảnh với dữ liệu đầu vào đã được xử lý và chuyển thành định dạng *.bmp

chỉ có 2 pixel điểm đen RGB(0,0,0) và điểm trắng RGB(255, 255, 255).

Quá trình phân tích ảnh được thực hiện tuần tự như sau :

- Phân tích văn bản thành từng dòng văn bản.

- Phân tích từng dòng văn bản thành từng ký tự ảnh một.

3.2.2.1. Tách dòng kí tự

- Việc tách dòng kí tự chính là cơ sở để tiến hành tách từng kí tự một cách

dễ dàng và nhanh chóng.

 Thuật toán:

- Bắt đầu từ điểm ảnh (x, y) đầu tiên của file ảnh (0,0), gán số dòng đang

xét lines =0;

a.-Xác định giới hạn trên của dòng: Quét hết chiều rộng của ảnh, trên cùng

một giá trị y ( chạy x<=chiều rộng ảnh, giữ nguyên y )

+ Nếu gặp một pixel đen thì ghi nhận y chính là tọa độ giới hạn trên của

dòng (top_line). Dừng duyệt x.

+Nếu không, tiếp tục duyệt

+Nếu khi quét hết chiều rộng của ảnh, vẫn không tìm thấy giá trị điểm

màu đen thì reset lại x = 0, và tiếp tục duyệt đến dòng tiếp theo (tăng y = y + 1)

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

b.-Xác định giới hạn dưới của dòng :

53

+ Bắt đầu duyệt từ giới hạn trên (đỉnh) vừa tìm thấy của dòng (0, top_line)

+ Tương tự như xác định giới hạn trên, ta duyệt hết chiều rộng của ảnh

trên cùng một giá trị y.

+Nếu duyệt hết dòng mà không tìm thấy ký tự pixel đen nào thì ghi nhận

y-1 là giới hạn dưới của dòng (bottom_line). Dừng duyệt. Tăng số dòng lên

(lines++).

+Nếu chưa tìm thấy bottom_line, tiếp tục duyệt đến dòng tiếp theo (tăng

y, reset x=0).

c.Bắt đầu từ giới hạn dưới y (bottom_line) vừa tìm thấy sau cùng, lặp lại

các bước a, b để xác định các giới hạn của các dòng tiếp theo, cho đến khi

duyệt hết chiều cao của ảnh thì dừng, quá trình xác định dòng ký tự hoàn tất.

Hình 3.1: Quá trình xác định dòng của các kí tự

3.2.2.2. Tách từng kí tự

 Thuật toán:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Xét lần lượt từng dòng

54

1. Bắt đầu xét từ giá trị giới hạn trên y của dòng (top_line) và giá trị x

đầu tiên (x=0)

2. Xác định giới hạn trên của ký tự : Quét hết chiều rộng của ảnh, trên

cùng giá trị y.

+ Nếu phát hiện pixel đen thì đánh dấu y là giá trị đỉnh của ký tự

(top_character). Dừng quét.

+Nếu quét hết chiều rộng, mà vẫn không tìm thấy pixel đen nào thì tăng

y và reset lại x, tiếp tục thực hiện lại bước 2.

3. Xác định giới hạn dưới của ký tự: Bắt đầu duyệt từ giới hạn trên

(đỉnh) vừa tìm thấy của ký tự (0,top_character)

+ Tương tự như xác định giới hạn trên, ta duyệt hết chiều rộng của ảnh

trên cùng một giá trị y.

+Nếu duyệt hết dòng mà không tìm thấy ký tự pixel đen nào thì ghi nhận

y-1 là giới hạn dưới của ký tự (bottom_character). Dừng duyệt.

+Nếu chưa tìm thấy bottom_character, tiếp tục duyệt đến dòng tiếp theo

(tăng y, reset x=0).

4. Xác định giới hạn trái của ký tự (xác định giá trị của x)

-Bắt đầu từ giới hạn trên (đỉnh của ký tự - top_character), giá trị x đầu tiên

(x=0).

-Quét đến giới hạn dưới của dòng (bottom_character), giữ nguyên x (quét

theo chiều thẳng đứng)

+Nếu gặp pixel đen đầu tiên, ghi nhận x là giới hạn trái của kí tự (left-

character). Dừng quét.

+Nếu quét đến cuối giới hạn dưới, vẫn không tìm thấy pixel đen nào, thì

reset lại y = giới hạn trên vừa tìm thấy, tăng x lên.(x++),và tiếp tục thực hiện

lại bước 4.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

5. Xác định giới hạn phải của ký tự (xác định giá trị x)

55

-Bắt đầu từ giới hạn trên - đỉnh của ký tự (top_character), giới hạn trái của

ký tự (left_character, top_character). Quét theo chiều thẳng đứng đến giới hạn

dưới của dòng.

+Nếu khi quét hết chiều đứng, mà vẫn không gặp được pixel đen nào thì

ghi nhận x-1 là giới hạn phải của ký tự (right_character).Dừng quét.

+Nếu gặp pixel đen thì tăng x (x++) và reset lại y =top_character của ký

tự đang xét, để xét đường thẳng đứng tiếp theo.

6. Lặp lại bước 1 đến 5 để xác định giới hạn của ký tự tiếp theo trên cùng

dòng. Với y = top_line của dòng đang xét và giá trị x đầu tiên = right_character

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

của ký tự vừa tìm thấy.

56

Sau khi tách ký tự

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Hình 3.2: Tách từng kí tự

57

3.3. Một số kết quả

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Hình 3.3: Giao diện chương trình mô phỏng

58

- Để nhận dạng ký tự, ta đưa các ảnh có kí tự in vào để nhận dạng thì kết

quả sẽ được trả lại ngay sau đó.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Hình 3.4: Nhận dạng chữ tiếng Anh trong ảnh

59

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Hình 3.5: Nhận dạng kí tự có dấu

60

Hình 3.6: Kí tự có dấu

3.4. Kết luận

Để chương trình nhận dạng chính xác cao, với các ký tự không dấu độ

chính xác hơn 90%, đối với ký tự có dấu thì độ chính xác khoảng hơn 80%.

Đối với ký tự có dấu độ chính xác thấp hơn so với trường hợp không có dấu vì

trong trường hợp này, các ký tự khác nhau rất ít, nên số lượng mẫu huấn luyện

cho các ký tự có dấu cần nhiều hơn. Để nhận dạng được nhiều kiểu viết khác

nhau thì tập mẫu huấn luyện cho mỗi kí tự phải phong phú. Quá trình huấn

luyện này giải quyết được khía cạnh phức tạp của bài toán nhận dạng chữ in

Như vậy chương trình mô phỏng nhận dạng chữ in đã đạt được mục tiêu

của bài toán phức tạp đã đặt ra. Hiện nay, nghiên cứu về mạng neural là một

hướng nghiên cứu còn rất mới mẻ và nhiều hứa hẹn. Áp dụng hướng tiếp cận

mới này để giải quyết bài toán nhận dạng chữ in trực tuyến vốn rất phức tạp ở

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

những đặc điểm:

61

Ký tự chữ in thì hình dạng của ký tự rất phong phú đa dạng, phụ thuộc

nhiều vào từ font chữ in khác nhau.

Ký tự chữ in có số lượng lớn, lớn hơn rất nhiều so với các ký tự theo

các chuẩn khác.

Khi giải quyết bài toán này phải đáp ứng được các yêu cầu:

Giải quyết được sự phức tạp của việc xử lý dữ liệu đầu vào.

Giải quyết được việc xử lý khối lượng dữ liệu lớn.

Giải quyết được độ chuẩn xác trong quá trình nhận dạng.

Giải quyết được mức độ tổng quát, đa dạng, phong phú trong quá trình

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

xây dựng và huấn luyện mạng để đạt được độ chính xác cao khi nhận dạng.

62

TỔNG KẾT

Trong một vài thập niên trở lại đây mạng neural thực sự có được những

ứng dụng quan trọng và mang đến nhiều hứa hẹn về một thế hệ các máy

thông minh mới. Chính vì vậy, đối với riêng cá nhân tôi, nó còn hơn cả một

điều mới mẻ - là một bộ môn lý thuyết của tương lai. Điều này đã thúc đẩy

tôi vừa thực hiện nghiên cứu lý thuyết vừa cố gắng cài đặt một phần mềm

thử nghiệm với hy vọng nắm được những gì được gọi là căn bản nhất trong

khoảng thời gian thực hiện bản luận văn này. Theo sự gợi ý của thầy giáo

hướng dẫn, tôi đã lựa chọn đề tài: "Nhận dạng chữ in sử dụng mạng

neural ".

Sau thời gian nghiên cứu, những kết quả chính mà tôi đã đạt được và chưa

đạt được (kết quả hướng tới) có thể tổng kết lại như sau:

1. Các kết quả đã đạt được

* Về mặt lý thuyết

 Nắm được khái niệm về những thành phần cơ bản và các kiểu kiến trúc

cơ bản của mạng nơron, phân biệt được một số loại mạng nơron.

 Nắm được ý nghĩa của việc học hay tích lũy, trong đó có vai trò to lớn

của các quy tắc học, mô hình học và thuật toán học đối với nhiều khả năng ứng

dụng khác nhau.

 Tìm hiểu các ứng dụng của mạng nơron trong thực tế.

 Nắm được quy trình chung trong xây dựng một hệ thống nhận dạng ký

tự in tiếng Anh.

 Vận dụng mạng nơron để xây dựng mô phỏng nhận dạng ký tự in tiếng

Anh.

Ngoài ra, việc xây dựng phần mềm thử nghiệm đã cho phép tôi:

 Kiểm nghiệm những kiến thức lý thuyết đã thu nhận được.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

 Có cái nhìn rõ nét hơn về các kỹ thuật ứng dụng lý thuyết vào thực tế.

63

 Bên cạnh đó, nâng cao được kỹ năng phân tích, thiết kế và lập trình

trong việc giải quyết bài toán cụ thể.

* Về mặt thực tiễn

Xây dựng thành công hệ thống nhận dạng ký tự chữ in rời rạc sử dụng mô

hình mạng neural. Góp phần giải quyết bài toán còn dang dở.

Tuy biết rằng những điều thu nhận được mới chỉ là một phần rất nhỏ trong

một nghành nghiên cứu lớn, song tôi tự nhận thấy đã gặt hái được những thành

công nhất định trong giai đoạn nghiên cứu đầu tiên.

2. Một số kết quả chưa đạt được

Việc nhận dạng ký tự đôi khi bị sai hoặc thiếu chính xác , là do nhiều vấn

đề liên quan như : sự phức tạp của dữ liệu đầu vào, các giá trị chọn lựa như độ

lệch, lỗi ngưỡng, số neuron mỗi lớp,…. chưa được chọn lựa chính xác.

 Sai số trong nhận dạng kí tự lớn hay nhỏ là phụ thuộc vào nhiều yếu tố

: độ chuẩn của ảnh đưa vào, size font chữ , độ phức tạp của font chữ.

 Việc chọn mô hình mạng phù hợp, giá trị ngưỡng lỗi, độ lệch , tốc độ

học.. đều ảnh hưởng đến tính chính xác trong nhận dạng kí tự

3. Hướng phát triển tiếp theo

Bên cạnh các kết quả đã đạt được, còn có những vấn đề chưa được đề cập,

giải quyết trong luận văn này. Trong thời gian tới, tôi sẽ tiếp tục nghiên cứu và

hoàn thiện đề tài với các mục tiêu chính được đặt ra như sau:

Nâng cao hiệu quả và độ chính xác trong hệ thống nhận dạng ký tự chữ in

rời rạc

* Nhận dạng chữ viết tay tiếng Việt.

Bài toán nhận dạng chữ viết tay tiếng Việt cũng được xây dựng trên cơ

sở bài toán nhận dạng mẫu như phần 2.2.

Ngoài ra ta sẽ huấn luyện mạng nhận dạng kí tự viết tay với nhiều mẫu

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

có sẵn hơn. Bài toán nhận dạng chữ viết tay sẽ phức tạp hơn do chữ viết tay

64

tiếng Việt rất phong phú nhiều hình dạng nhận biết. Khó khăn chính của chữ

viết tiếng Việt:

- Chữ có dấu

- Cỡ chữ to nhỏ phụ thuộc nhiều vào tay người viết

- Chữ viết đẹp hay xấu ảnh hưởng rất lớn đến chương trình khi đánh giá chữ

- Có nhiều kiểu chữ đa dạng phong phú cũng có nhiều cỡ chữ khác nhau

Ở đây để demo cho phần nghiên cứu mở rộng thêm cho phần chữ viết tay

thì trong chương trình cũng có phần nhận dạng chữ viết tay như sau:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Hình 3.7: Kí tự số viết tay

65

Hình 3.8: Kí tự tiếng Anh viết tay

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Kí tự viết tay có dấu

66

TÀI LIỆU THAM KHẢO

Tiếng Viê ̣t

1. Nguyễn Đình Nam, Xử lý ảnh, Đa ̣i ho ̣c Bách Khoa Hà Nô ̣i. 2. Nguyễn Quang Hoan (2006), Giáo trình Xử lý ảnh, Ho ̣c viê ̣n Công Nghê ̣ Bưu Chính Viễn Thông. 3. Nguyễn Quỳnh Chi (2013), Đề tài Nghiên cứ u QR Code và ứ ng du ̣ng, Ho ̣c viê ̣n Công Nghê ̣ Bưu Chính Viễn Thông. 4. Âu Dương Đa ̣t – Lê Thành Nguyên (2004), Quản lý thư viê ̣n bằng mã va ̣ch,

Đa ̣i ho ̣c Khoa Ho ̣c Tự Nhiên.

5. La ̣i Quang Tù ng (2009), Ứ ng du ̣ng lưu trữ thông tin bằng chuỗi mã va ̣ch, Đa ̣i ho ̣c Công Nghê ̣.

6.Lương Mạnh Bá, Nguyễn Thanh Thuỷ (1999), Nhập môn xử lý ảnh số, Nhà

xuất bản Khoa học và kỹ thuật, Hà Nội.

7.Lê Bá Dũng (2011), Bài giảng Môn Mạng Nơron nhân tạo, Lớp Cao học

KHMT K9A, Trường Đại học Công nghệ thông tin và Truyền thông, ĐHTN.

Tài liệu tham khảo tiếng Anh

8.Daniel T.Larose (2004), Discovering Knowledge in Data An Introduction to

Data Mining, Wiley Interscience, United States of America.

9.Dave Anderson and George McNeill (1992), Artificial Neural Networks

Technology. Prepared by Rome Laboratory RL/C3C Griffiss AFB, NY 13441-

5700, Kaman Sciences Corporation 258 Genesse Street Utica, New York

13502-4627.

10Jeff Heaton (2005), Introduction to Neural Networks with Java, Heaton

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Research, Inc, United States of America.

67

11.Nikola K.kasabov (1998), Foundations of Neural Networks, Fuzzy Systems,

and Knowledge Engineering, Massachusetts Institute of Technology, The MIT

Press, United States of America.

12. R.M.Hristev (1998), The ANN Book, GNU public license.

13. Simon Haykin (1998), Neural Networks Comprehensive Foundation,

Second edition, Prentice Hall, Indian by Sai PrintoPack Pvt. Ltd.

14.Wang J., Jean J.S.N. (1993), Multi-Resolution Neural Network for Omnifont

Charater Recognition, IEEE International Conference on Neural Network.

15.Gia M. Agusta, Khodijah Hulliyah , Arini , Rizal Broer Bahaweres(2013),

Applying Merging Convetional Marker and Backpropagation Neural Network

in QR Code Augmented Reality Tracking, http://s2is.org/Issues/v6/n5/papers/paper5.pdf

16Tamás Grós𝑧∗(2014),QR code localization using deep neural net works,

https://pdfs.semanticscholar.org/90da/bb65eeb384ade1a35498a5a505e8fc8c7

7f2.pdf

Nguồn Website

17. http://www.onbarcode.com

18. http://www.codeproject.com

19. http://mateuszstankiewicz.eu

20. http://www.openkm.com/en/modules-eng/barcode.html

21. https://en.wikipedia.org/?title=Barcode

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

22. http://book.realworldhaskell.org/read/barcode-recognition.html