Tải bản đầy đủ (.doc) (31 trang)

Tiểu luận môn Máy học và ứng dụng TÌM HIỂU VỀ MẠNG NEURON NHÂN TẠO VÀ ỨNG DỤNG TRONG NHẬN DẠNG KÝ TỰ QUANG HỌC

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

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCH MÔN
MÁY HỌC
ĐỀ TÀI
TÌM HIỂU VỀ MẠNG NEURON NHÂN
TẠO VÀ ỨNG DỤNG TRONG NHẬN
DẠNG KÝ TỰ QUANG HỌC
GVHD: PGS.TS. Vũ Thanh Nguyên
SVTH: Nguyễn Hải Yến
MSSV: CH1301074
t
Máy học PGS.TS Vũ Thanh Nguyên
TP. Hồ Chí Minh, ngày 22 tháng 03 năm 2014
LỜI NÓI ĐẦU
Từ khi ra đời, máy tính đã nhanh chóng phát triển và đóng một vai trò rất
quan trọng trong nghiên cứu khoa học kỹ thuật cũng như trong đời sống.
Nhưng một máy tính dù có mạnh đến đâu chăng nữa, cũng chỉ có thể làm
việc theo một chương trình đã được hoạch định sẵn bởi lập trình viên. Nó vẫn
không có khả năng liên tưởng, kết nối sự việc này với sự việc khác, và quan trọng
hơn hết là khả năng sáng tạo như con người.
Vì lý do đó, mạng nơron nhân tạo (Artificial Neural Networks ) ra đời từ
mục đích cố gắng mô phỏng hoạt động trí tuệ của con người.Từ khi ra đời, mạng
neuron đã nhanh chóng phát triển trong các lĩnh vực về nhận dạng, dự đoán, phân
loại, giảm nhiễu, …
Trong phạm vi bài thu hoạch này em xin trình bày về “Ứng dụng mạng
neuron nhân tạo giải quyết bài toán dự đoán phân loại “
Em xin gửi lời cảm ơn chân thành đến trường Đại học Công Nghệ Thông
Tin TP.HCM đã tạo điều kiện cho em được tiếp cận với môn học “Máy học ”
Em xin cảm ơn Thầy PGS.TS. Vũ Thanh Nguyên đã truyền đạt kiến thức
và có những định hướng giúp em hoàn thành bài thu hoạch.


Mặc dù đã rất cố gắng nhưng bài thu hoạch của em khó tránh khỏi thiếu
sót em mong Thầy góp ý nhận xét để bài thu hoạch hoàn thiện hơn.
SVTH : CH1301074 – Nguyễn Hải Yến 2
Máy học PGS.TS Vũ Thanh Nguyên
MỤC LỤC

LỜI NÓI ĐẦU 2
Chương 1 4
TỔNG QUAN VỀ MẠNG NƠ-RON NHÂN TẠO 4
Chương 2 20
NHẬN DẠNG KÝ TỰ QUANG HỌC 20
SVTH : CH1301074 – Nguyễn Hải Yến 3
Máy học PGS.TS Vũ Thanh Nguyên
Chương 1.
TỔNG QUAN VỀ MẠNG NƠ-RON NHÂN TẠO
1.1. Giới thiệu về mạng nơ-ron nhân tạo
1.1.1. Bắt nguồn từ động cơ sinh học
Theo các nhà nghiên cứu sinh học về bộ não, hệ thống thần kinh của con
người bao gồm khoảng 100 tỷ tế bào thần kinh, thường gọi là các nơ-ron.
Chức năng cơ bản của các tế bào nơ-ron là liên kết với nhau để tạo nên hệ
thống thần kinh điều khiển hoạt động của cơ thể sống. Các tế bào nơ-ron truyền
tín hiệu cho nhau thông qua các dây thần kinh vào và ra, các tín hiệu đó có dạng
xung điện và được tạo ra từ các quá trình phản ứng hoá học phức tạp. Mỗi nơ-ron
vừa là đơn vị lưu trữ vừa là đơn vị xử lý
Não bộ của con người là một cỗ máy học hoàn hảo. Mặc dù tốc độ tính toán
số học chậm hơn máy tính, thời gian trao đổi thông tin giữa các nơ-ron là 10
-3
giây
( chậm hơn so với máy tính là 10
-10

giây ) nhưng con người có thể đưa ra những
quyết định phức tạp và nhanh chóng một cách đáng ngạc nhiên ( chỉ mất 10
-1
giây
để nhận ra người thân của mình) .

Hình :Minh họa não bộ con người và mạng nơ-ron thần kinh
SVTH : CH1301074 – Nguyễn Hải Yến 4
Máy học PGS.TS Vũ Thanh Nguyên
1.1.2. Mô hình mạng nơ-ron nhân tạo (ANN: Artificial Neuron Network)
Mạng nơ-ron nhân tạo là một hệ thống xử lý thông tin được xây dựng trên
cơ sở tổng quát hoá mô hình toán học của nơ-ron sinh học và mô phỏng theo cơ
chế làm việc của bộ não con người. Mạng nơ-ron nhân tạo được thể hiện thông
qua ba thành phần cơ bản: mô hình của nơ-ron, cấu trúc và sự liên kết giữa các
nơ-ron, phương pháp học được áp dụng cho mạng nơ-ron.
a. Mô hình của nơ-ron
Việc xử lý thông tin tại mỗi nơ-ron có thể xem là gồm hai phần: xử lý tín
hiệu vào (input) và đưa tín hiệu ra (output). Tương ứng với phần vào của mỗi nơ-
ron là một hàm tương tác f, hàm này kết hợp các thông tin truyền tới nơ-ron và tạo
thành thông tin đầu vào tổng hợp (gọi là net input) của nơ-ron đó . Một nơ-ron thứ
i trong mạng thường có hàm fi ở dạng tuyến tính như sau :
- x
j
: Tín hiệu vào
- w
ij
: trọng số tương ứng
- : một giá trị ngưỡng i
Thao tác thứ hai trong mỗi nơ-ron là tính giá trị đầu ra tương ứng với giá trị đầu
vào f thông qua hàm kích hoạt hay còn gọi là hàm chuyển g(f). Một số hàm

chuyển thường được sử dụng:
− Hàm bước nhảy
− Hàm dấu
SVTH : CH1301074 – Nguyễn Hải Yến 5
Máy học PGS.TS Vũ Thanh Nguyên
− Hàm Sigmoid
b. Cấu trúc và sự liên kết giữa các nơ-ron
Mạng nơ-ron nhân tạo gồm các nơ-ron và liên kết có trọng số giữa chúng. Sau đây
là mô hình của một số mạng nơ-ron nhân tạo
− Mạng ANN có một nút và có sự phản hồi
− Mạng ANN truyền thẳng một lớp
− Mạng ANN truyền thẳng nhiều lớp
SVTH : CH1301074 – Nguyễn Hải Yến 6
Máy học PGS.TS Vũ Thanh Nguyên
− Mạng ANN quy hồi một lớp
c. Phương pháp học áp dụng cho mạng nơ-ron
Có hai vấn đề cần học đối với mỗi mạng nơ-ron nhân tạo đó là học tham
số (parameter learning) và học cấu trúc (structure learning).
Học tham số là việc thay đổi trọng số của các liên kết giữa các nơ-ron trong
một mạng, còn học cấu trúc là việc điều chỉnh cấu trúc của mạng bao gồm thay đổi
số lớp nơ-ron, số nơ-ron của mỗi lớp và cách liên kết giữa chúng. Hai vấn đề này
có thể được thực hiện đồng thời hoặc tách biệt.
Phương pháp học được chia làm ba loại :
• Học có giám sát (Supervisit Learning) :(học có thầy) Đây là cách học từ
những mẫu dữ liệu mà ở đó các kỹ thuật máy học giúp hệ thống xây
SVTH : CH1301074 – Nguyễn Hải Yến 7
Máy học PGS.TS Vũ Thanh Nguyên
dựng cách xác định những lớp dữ liệu. Hệ thống phải tìm một sự mô tả
cho từng lớp (đặc tính của mẫu dữ liệu).
Người ta có thể sử dụng các luật phân loại hình thành trong quá trình

học và phân lớp để có thể sử dụng dự báo các lớp dữ liệu sau này.
Thuật toán học có giám sát gồm tập dữ liệu huấn luyện M cặp:
S = {(x
i
, c
j
)| i=1,…,M; j=1,…,C}
Các cặp huấn luyện này được gọi là mẫu, với
x
i
là vector n-chiều còn gọi là vector đặc trưng,
c
j
là lớp thứ j đã biết trước.
Thuật toán máy học giám sát tìm kiếm không gian của những giả
thuyết có thể, gọi là H. Đối với một hay nhiều giả thuyết, mà ước lượng
tốt nhất hàm không được biết chính xác f : x

c.
Đối với công việc phân lớp có thể xem giả thuyết như một tiêu chí
phân lớp.Thuật toán máy học tìm ra những giả thuyết bằng cách khám
phá ra những đặc trưng chung của những ví dụ mẫu thể hiện cho mỗi
lớp.Kết quả nhận được thường ở dạng luật (Nếu thì).
Khi áp dụng cho những mẫu dữ liệu mới, cần dựa trên những giả
thuyết đã có để dự báo những phân lớp tương ứng của chúng. Nếu như
không gian giả thuyết lớn, thì cần một tập dữ liệu huấn luyện đủ lớn
nhằm tìm kiếm một hàm xấp xỉ tốt nhất f.
• Học không giám sát (UnSupervisit Learning) : học không có thầy
Đây là việc học từ quan sát và khám phá. Hệ thống khai thác dữ liệu
được ứng dụng với những đối tượng nhưng không có lớp được định

nghĩa trước, mà để nó phải tự hệ thống quan sát những mẫu và nhận ra
mẫu. Hệ thống này dẫn đến một tập lớp, mỗi lớp có một tập mẫu được
khám phá trong tập dữ liệu.
Học không giám sát còn gọi là học từ quan sát và khám phá.
Trong trường hợp chỉ có ít, hay gần như không có tri thức về dữ liệu
đầu vào, khi đó một hệ thống học không giám sát sẽ khám phá ra những
SVTH : CH1301074 – Nguyễn Hải Yến 8
Máy học PGS.TS Vũ Thanh Nguyên
phân lớp của dữ liệu, bằng cách tìm ra những thuộc tính, đặc trưng
chung của những mẫu hình thành nên tập dữ liệu.
Một thuật toán máy học giám sát luôn có thể biến đổi thành một
thuật toán máy học không giám sát (Langley 1996).
Đối với một bài toán mà những mẫu dữ liệu được mô tả bởi n đặc
trưng, người ta có thể chạy thuật toán học giám sát n-lần, mỗi lần với
một đặc trưng khác nhau đóng vai trò thuộc tính lớp, mà chúng ta đang
tiên đoán.
Kết quả sẽ là n tiêu chí phân lớp (n bộ phân lớp), với hy vọng là ít
nhất một trong n bộ phân lớp đó là đúng.
• Học tăng cường (Hybrid Learning)
Học nửa giám sát là các thuật toán học tích hợp từ học giám sát và học
không giám sát. Việc học nửa giám sát tận dụng những ưu điểm của
việc học giám sát và học không giám sát và loại bỏ những khuyết điểm
thường gặp trên hai kiểu học này.
1.1.3. Ứng dụng của mạng nơ-ron nhân tạo
Đặc trưng của mạng nơ-ron nhân tạo là khả năng học và xử lý song song.
Nó có thể gần đúng mối quan hệ tương quan phức tạp giữa các yếu tố đầu vào và
đầu ra của các quá trình cần nghiên cứu và khi đã học được thì việc kiểm tra độc
lập thường cho kết quả tốt. Sau khi đã học xong, mạng nơ-ron nhân tạo có thể tính
toán kết quả đầu ra tương ứng với bộ số liệu đầu vào mới.
Về mặt cấu trúc, mạng nơ-ron nhân tạo là một hệ thống gồm nhiều phần tử

xử lý đơn giản cùng hoạt động song song. Tính năng này của ANN cho phép nó
có thể được áp dụng để giải các bài toán lớn.
Mô hình mạng nơ-ron nhân tạo cho phép liên kết có trọng số các phần tử
phi tuyến (các nơ-ron đơn lẻ) tạo nên dạng hàm tổng hợp từ các hàm thành phần.
Do vậy, sau một quá trình điều chỉnh sự liên kết cho phù hợp (quá trình học), các
phần tử phi tuyến đó sẽ tạo nên một hàm phi tuyến phức tạp có khả năng xấp xỉ
hàm biểu diễn quá trình cần nghiên cứu.
SVTH : CH1301074 – Nguyễn Hải Yến 9
Máy học PGS.TS Vũ Thanh Nguyên
Ứng dụng mạng nơ-ron nhân tạo giải quyết các bài toán phân lớp : phân
loại chất lượng sản phẩm, nhận dạng người, nhận dạng tiếng nói, chữ viết. Ứng
dụng trong giải quyết các bài toán về dự báo: dự báo gía vàng, giá chứng khoán,
dự báo thiên tai. Ứng dụng mạng nơ-ron nhân tạo giải các bài toán tìm xấp xỉ tối
ưu,…
1.2. Mạng nơ-ron lan truyền thẳng nhiều lớp
1.2.1. Mạng perceptron một lớp
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 không có lớp ẩn. Trên mỗi lớp này có thể có một hoặc nhiều nơ-ron. Mô hình
mạng nơ-ron một lớp sử dụng hàm ngưỡng đóng vai trò là hàm chuyển. Do đó,
tổng của các tín hiệu vào lớn hơn giá trị ngưỡng thì giá trị đầu ra của nơ-ron sẽ là
1, còn trái lại sẽ là 0.
Ngay từ khi mạng Perceptron một lớp đượ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 nơ-ron i phân vào lớp A nếu
Tổng thông tin đầu vào :
Trong đó w
ij
là trọng số liên kết từ nơ-ron j tới nơ-ron i , x
j
là đầu vào từ
nơ-ron j, và θ là ngưỡng của nơ-ron i. Trong trường hợp trái lại đối tượng sẽ được

phân vào lớp B.
Việc huấn luyện mạng dựa trên phương pháp học có giám sát với tập mẫu
học là
{(x
(k)
, d
(k)
)}, k= 1,2, …, p .Trong đó d(k) = [d
1
(k)
, d
2
(k)
, …, d
n
(k)
]
T
là đầu ra
quan sát được tương ứng với đầu vào x
(k)
= [x
1
(k)
, x
2
(k)
, …, x
m
(k)

]
T
(với m là số đầu
vào, n là số đầu ra và p là cặp mẫu đầu vào - đầu ra dùng cho việc học). Như vậy
chúng ta mong rằng sau quá trình học, đầu ra tính toán được y
(k)
= [y
1
(k)
, y
2
(k)
, …,
y
n
(k)
]
T
sẽ bằng với đầu ra của mẫu học d
(k)

SVTH : CH1301074 – Nguyễn Hải Yến 10
Máy học PGS.TS Vũ Thanh Nguyên
Mạng perceptron một lớp
Để bắt đầu quá trình luyện mạng, các trọng số được gán giá trị ngẫu nhiên, có giá
trị nhỏ. Sau đó hiệu chỉnh các trọng số cho phù hợp với mẫu học để làm giảm sai
số giữa y
(k)
và d
(k) .

Mạng perceptron một lớp chỉ có thể mô tả được các mặt quyết
định tuyến tính.
1.2.2. Mạng perceptron nhiều lớp
Mạng perceptron nhiều lớp (Multilayer Perceptron –MLP) còn được gọi là
mạng truyền thẳng nhiều lớp là sự mở rộng của mô hình mạng perceptron với sự
bổ sung thêm những lớp ẩn và các nơ-ron trong các lớp ẩn này có hàm chuyển
(hàm kích hoạt) dạng phi tuyến. Mạng MLP có một lớp ẩn là mạng nơ-ron nhân
tạo được sử dụng phổ biến nhất, nó có thể xấp xỉ các hàm liên tục được định
nghĩa trên một miền có giới hạn cũng như những hàm là tập hợp hữu hạn của các
điểm rời rạc.

Mạng perceptron đa lớp có thể mô tả được các mặt quyết định phi
SVTH : CH1301074 – Nguyễn Hải Yến 11
Máy học PGS.TS Vũ Thanh Nguyên
tuyến tính phức tạp. Sau đây là hình ảnh minh họa học để nhận dạng 10 nguyên
âm xuất hiện trong ngữ cảnh “h_d”. (“had”,”hid”,…)

Cấu trúc mạng đa lớp gồm :
o Lớp nhập ( input layer)
o Lớp xuất (output layer)
o Lớp ẩn (hidden layer)
1.2.3. Chú ý khi dùng mạng MPL
Mạng MLP được ứng dụng nhiều trong thực tế, vì thế để mạng có thể đưa ra kết
quả tốt chúng ta cần chú ý một số vấn đề sau:
• VĐ1: Chuẩn hóa số liệu đầu vào
Mạng MLP thường dùng các hàm chuyển là hàm sigmoid (phi tuyến + khả vi) như
sau :
SVTH : CH1301074 – Nguyễn Hải Yến 12
Máy học PGS.TS Vũ Thanh Nguyên
Giá trị đầu ra ( hàm g(x) ) nằm trong đoạn (0,1) hay xấp xỉ giá trị 0,1 khi |x| lớn.

Cần đưa các giá trị đầu vào x về khoảng có giá trị nhỏ, nếu không thì các nơ-ron
tại các lớp ẩn ngay ban đầu đã có thể đạt giá trị bão hoà và quá trình học của mạng
không đạt kết quả mong muốn. Với dạng hàm như trên thì giá trị đầu vào của
mạng thường được chuẩn hoá về khoảng thuộc đoạn
[-3, 3] . Mặt khác, do tín hiệu đầu ra của nơ-ron nằm trong khoảng giá trị (0,1) nên
các giá trị đầu ra thực tế trong các mẫu học cũng cần chuẩn hoá về khoảng giá trị
này để có thể dùng cho quá trình luyện mạng. Do vậy trong quá trình tính toán,
để có các giá trị thực tế ở đầu ra của mạng chúng ta cần phải chuyển các giá trị
trong khoảng (0,1) về miền các giá trị thực tế.
• VĐ2: Vấn đề học chưa đủ và học quá thuộc của mạng
Khi mạng có cấu trúc (số nút ẩn và liên kết) cũng như số lần học chưa đủ so với
nhu cầu của bài toán thì sẽ dẫn tới tình trạng mạng không đủ khả năng mô tả gần
đúng mối quan hệ tương quan giữa đầu vào và đầu ra của quá trình cần dự báo và
dẫn tới học chưa đủ.
Trái lại, nếu mạng quá phức tạp (quá nhiều nút ẩn và quá nhiều tham số) và được
học “quá khít” đối với các mẫu dùng để luyện mạng thì có thể dẫn tới tình trạng
mạng học cả thành phần nhiễu lẫn trong các mẫu đó, đây là tình trạng “học quá
thuộc” của mạng. Vấn đề nêu trên có thể làm cho nhiều loại mạng nơ-ron, đặc biệt
là mạng MLP có thể có những trường hợp cho kết quả dự đoán rất sai lệch với
thực tế.
giải pháp cho vấn đề học chưa đủ và học quá thuộc của mạng
o Sử dụng tập số liệu có tính đại diện tốt để luyện mạng (Khi tập
mẫu dùng để luyện mạng thể hiện được nhiều trạng thái có thể
SVTH : CH1301074 – Nguyễn Hải Yến 13
Máy học PGS.TS Vũ Thanh Nguyên
xẩy ra của quá trình cần nghiên cứu thì sau khi học mạng sẽ có
khả năng tổng quát hoá tương đối tốt)
o Lựa chọn cấu trúc mô hình phù hợp (Các mạng có độ phức tạp
hơn (10 nút ẩn, 50 nút ẩn) tuy nó có thể học khá chính xác các
mẫu được sử dụng nhưng lại làm cho nó học quá nhiều cả thành

phần nhiễu nên khả năng tổng quát hoá giảm và dẫn tới hiện
tượng học quá)
o Dừng học đúng lúc (tập mẫu chia làm hai phần : phần luyện
mạng và phần kiểm thử; Tính toán sự thay đổi lỗi kiểm thử trong
quá trình luyện mạng dừng học khi lỗi kiểm thử tăng )
• VĐ3: Lựa chọn kích thước mạng
Gọi số nơ-ron thuộc lớp ẩn là L, số nơ-ron ở lớp vào là p thì:
- Số nơ-ron tối ưu ở lớp ẩn <= (2p+1)
- Cơ sở dữ liệu học phải có số mẫu thoả mãn:
N ≈ 10.Nw, ở đó Nw là số trọng số của mạng.
- trọng số của các kết nối giữa lớp vào và lớp ẩn thứ nhất (kể cả
ngưỡng) là: D = (p+1) L
1.3. Mạng nơ-ron lan truyền ngược
1.3.1. Kiến trúc
Mạng nơ-ron lan truyền ngược là mạng có cấu trúc truyền thẳng, học
có giám sát và sử dụng thuật toán lan truyền ngược. Mạng nơ-ron lan truyền
ngược có thể dùng cho các bài toán: phân loại, mô hình hóa, xấp xỉ hàm, dự đoán
chuỗi thời gian. Sau đây là mô hình chi tiết
SVTH : CH1301074 – Nguyễn Hải Yến 14
Máy học PGS.TS Vũ Thanh Nguyên
1.3.2. Thuật toán lan truyền ngược ( Back Propagation)
Thuật toán có hai giai đoạn tính toán tách biệt nhau: giai đoạn
tiến(forward) và giai đoạn lùi(backward).
• Trong giai đoạn tiến, các tín hiệu được tính toán dựa trên cơ sở từ nơ-ron này
đến nơ-ron khác theo chiều tiến của mạng. Bắt nguồn từ đầu vào của
mẫu dữ liệu, quá trình toán tính cứ tiếp diễn cho tới khi tính được đầu ra
của các nơ-ron nằm trong lớp đầu ra của mạng. Giá trị đầu ra này được so sánh
với giá trị đầu ra mong muốn từ đó thu nhận tín hiệu lỗi.
• Giai đoạn tính toán lùi bắt đầu tại mức đầu ra bằng cách chuyển tín hiệu
lỗi ngược trở lại qua toàn bộ mạng theo từng mức nhằm tính toán

gradient cục bộ mỗi nơ-ron. Quá trình này cho phép các trọng số của mạng có
thể điều chỉnh.
Chi tiết thuật toán
BACKPROPAGATION (training_examples,
η
, n
in
, n
out
, n
hidden
)
− Mỗi mẫu huấn luyện là một cặp ( x , t ), với x là véc tơ các giá trị đầu vào
mạng, và t là véc tơ các giá trị xuất .

η
là hệ số học , n
in
là số đầu vào mạng, n
hidden
là số đơn vị lớp ẩn, và n
out

số đơn vị xuất.
− Đầu vào đơn vị j đến từ đơn vị i được ký hiệu là xji, và trọng số từ đơn vị i
đến đơn vị j được ký hiệu là wji.
SVTH : CH1301074 – Nguyễn Hải Yến 15
Máy học PGS.TS Vũ Thanh Nguyên
Tạo một mạng truyền thẳng với n
in

đầu vào, n
hidden
đơn vị ẩn, và n
out
đơn vị xuất.
Khởi gán tất cả trọng số mạng bằng các số ngẫu nhiên nhỏ (ví dụ giữa -0.5 và 0.5).
Cho đến khi (<đk kết thúc được thỏa>) làm
{
B1: Lan truyền gía trị đầu vào thẳng qua mạng
Nhập vào mạng và tính giá trị đầu ra o
u
của mỗi đơn vị u trong mạng
B2: Lan truyền các lỗi ngược qua mạng
Đối với mỗi đơn vị xuất k của mạng, tính giá trị lỗi
δ
k
Đối với mỗi đơn vị ẩn h, tính giá trị lỗi
δ
h
Cập nhật từng trọng số mạng w
ji

}
Điều kiện dừng thuật toán:
− Nếu lỗi tổng thể E nhỏ hơn ngưỡng lỗi chấp nhận được hoặc khi lặp với
một số lần lặp cho trước … thì quá trình học kết thúc và trả về bộ trọng số
học được.
− Ngược lại gán E = 0, bắt đầu chu trình học mới (quay lại bước 1)
Minh họa cho thuật toán:
SVTH : CH1301074 – Nguyễn Hải Yến 16

Máy học PGS.TS Vũ Thanh Nguyên
Lan truyền thẳng



Cập nhật lỗi

SVTH : CH1301074 – Nguyễn Hải Yến 17
Máy học PGS.TS Vũ Thanh Nguyên


Cập nhật trọng số mạng


SVTH : CH1301074 – Nguyễn Hải Yến 18
Máy học PGS.TS Vũ Thanh Nguyên

1.3.3. Đánh giá thuật toán lan truyền ngược
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.
SVTH : CH1301074 – Nguyễn Hải Yến 19
Máy học PGS.TS Vũ Thanh Nguyên
Chương 2.
NHẬN DẠNG KÝ TỰ QUANG HỌC
2.1. Phát biểu bài toán
• Đầu vào :
Các dữ liệu đầu vào phải qua xử lý và đạt chuẩn yêu cầu trước khi đưa vào
nhận dạng. Các yêu cầu dữ liệu đầu vào là các file ảnh dạng văn bản có định
dạng *.bmp, đây là dạng file ảnh chuẩn, có kiểu màu pixel đen và trắng, để
việc tiến hành nhận dạng được chính xác.Các file ảnh này đã qua giai đoạn tiền
xử lý : xử lý ảnh nhiễu, ảnh đa sắc , lọc ảnh
• Đầu ra mong muốn : là một file text chứa các ký tự Unicode tương ứng mà
chương trình mong muốn huấn luyện mạng học thuộc. Số ký tự đầu ra mong
muốn phải tương ứng với số kí tự ảnh đầu vào cần huấn luyện.
2.2. Xác định cấu trúc mạng
Mạng nơ-ron xây dựng theo phương pháp học có giám sát . Lựa chọn mạng nơ-ron
truyền thẳng sử dụng thuật toán lan truyền ngược với cấu trúc như sau:
• Số nơ-ron lớp đầu vào : 150 nơ-ron
Giải thích : 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 noron 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 đưa vào giảng dạy cho mạng nơ-
ron học.Trong quá trình này, mỗi ký tự sẽ được phân tích và chuyển tỉ lệ
vào một ma trận nhị phân 15 x 10 .Ứng với mỗi điểm lưới của ma trận sẽ
được tuyến tính hóa tạo ra tương ứng với một nơ-ron đầu vào.Vì vậy ma

trận sẽ tạo ra 15x10=150 noron đầu vào.
Lưu ý : Việc chọn số lượng noron đầu vào hay nói cách khác việc chọn tỉ lệ
ma trận đầu vào cho kí tự là rất quan trọng.
− Nếu số lượng nơ-ron lớn quá sẽ dẫn đến việc :
 Nhận dạng những kí tự có font chữ nhỏ hoặc trung bình bị sai
hoặc không chính xác.
SVTH : CH1301074 – Nguyễn Hải Yến 20
Máy học PGS.TS Vũ Thanh Nguyên
 Chương trình viết ra phải duyệt qua rất nhiều vòng lặp dẫn
đến chương trình bị chậm, hoặc gây ra tình trạng bị đứng máy
khi chạy.
− Nếu số lượng nơ-ron quá nhỏ :
 Việc phân tích các kí tự ả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 sẽ thiếu tính
chính xác.
 Qua kiểm nghiệm, và dựa trên nhiều tài liệu, nhận thấy giá trị
150 nơ-ron đầu vào 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 là 70 pixel và chiều rộng khoảng 54
pixel.
• Số nơ-ron lớp ẩn : 500 nơ-ron.
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 kí tự quang học. Số nơ-ron này đượ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.
• Số nơ-ron đầu ra : 16 nơ-ron
16 nơ-ron tương ứng với 16 bit nhị phân của mã Unicode.Từ16 nơ-ron này ta tổng
hợp và chuyển thành 16 bit nhị phân, sau cùng chuyển thành 1 kí tự Unicode
Sau đây là hình ảnh minh họa cấu trúc mạng :
SVTH : CH1301074 – Nguyễn Hải Yến 21
Máy học PGS.TS Vũ Thanh Nguyên

2.3. Phương pháp và thuật toán nhận dạng ký tự
2.3.1. Phương pháp xử lý dữ liệu ( nhận dạng kí tự) :
Là quá trình phân tích một 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 văn bản ảnh được thực hiện
tuần tự hai bước : - bước tách dòng văn bản ; - bước tách từng kí tự
a. Bước tách dòng văn bản
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;
SVTH : CH1301074 – Nguyễn Hải Yến 22
Máy học PGS.TS Vũ Thanh Nguyên
i. 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 )
{
If (gặp một pixel đen) Then
{ 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.
}
Else
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)
ii. Xác định giới hạn dưới của dòng :
Bắt đầu duyệt từ giới hạn trên vừa tìm thấy của dòng (0,top_line)
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 )

{
If (gặp một pixel đen) Then
{ ghi nhận y chính là tọa độ giới hạn dưới của dòng (Bottom_line).
Dừng duyệt x.
}
Else
Tiếp tục duyệt
}
If( duyệt hết dòng mà không tìm thấy ký tự pixel đen )then
{ bottom_line = y-1
Dừng duyệt.
Tăng số dòng lên (lines++).
}
SVTH : CH1301074 – Nguyễn Hải Yến 23
Máy học PGS.TS Vũ Thanh Nguyên
Tiếp tục duyệt đến dòng tiếp theo (tăng y, reset x=0).
iii. 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 i , ii để 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.
b. Bước tách từng kí tự
Thuật toán :
Xét lần lượt từng dòng
B1.
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)
B2.
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 B2.
SVTH : CH1301074 – Nguyễn Hải Yến 24
Ảnh đầu vào
Quá trình
tách dòng
Giới hạn trên
Giới hạn dưới
Máy học PGS.TS Vũ Thanh Nguyên
B3.
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).
B4.
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 B4.

B5.
Xác định giới hạn phải của ký tự (xác định giá trị x )
 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.
SVTH : CH1301074 – Nguyễn Hải Yến 25

×