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 0i N,0j M , x,y là tọa
2
2
độ sau khi thay đổi -1x 1 ,-1y 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