ĐẠ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.
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
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
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
]
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) .
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
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
là
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
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ênCập nhật trọng số mạngSVTH : 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
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
{
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ự
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