Giả sử gọi là góc nghiêng tổng thể của kí tự , điểm ảnh đối tượng px,y trong hệ toạ độ mới sẽ có toạ độ mới là px’,y’ trong hệ toạ độ mới với : Để tính góc nghiêng tổng thể ta phải t
Trang 1Đồ án tốt nghiệp:
" Tìm hiểu bài toán nhận dạng kí tự viết
tay và phát triển ứng dụng”
Trang 2LỜI NÓI ĐẦU
Nhận dạng kí tự, đặc biệt kí tự viết tay là bài tốn có nhiều ứng dụng thực tiễn Về mặt lý thuyết, chưa có phương pháp nào hồn chỉnh cho cho bài tốn này do tính phức tạp, sự biến dạng của dữ liệu đầu vào
Những năm gần đây, cùng vơí sự phát triển của lý thuyết nhận dạng, công nghệ xử lý ảnh, đã có nhiều nghiên cứu mang lại một số kết quả cho bài tốn nhận dạng kí tự viết tay, từ đó mở ra hàng loạt ứng dụng thực tế
Mục tiêu của đồ án nhằm giới thiệu một cách tiếp cận bài tốn nhận dạng chữ viết tay với một số ràng buộc, nhằm từng bước đưa vào ứng dụng thực tiễn
Mặc dù hết sức cố gắng, song do thời gian có hạn và những hạn chế bản thân nên đồ án có thể còn thiếu sót, mong tiếp tục nhận được sự chỉ bảo của Thầy,
Cô và ý kiến đóng góp của các bạn sinh viên để đồ án được hồn thiện hơn Em xin chân thành cảm ơn
Nha Trang
Ngày 10 tháng 9 năm 2003
Trang 3NHẬN XÉT CỦA GIÁO VIÊN
Giáo viên nhận xét
PHẦN I
Trang 4TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT TIỀN XỬ LÝ ẢNH KÍ TỰ
CHƯƠNG I TỔNG QUAN
I Giới thiệu bài tốn:
Nhận dạng kí tự, đặc biệt kí tự viết tay là bài tốn có nhiều ứng dụng thực tế Máy tính xử lí, nhận dạng các biểu mẫu, phiếu điều tra tự động, bằng cách này ta
có thể tiết kiệm được nhiều chi phí về thời gian, công sức cũng như các chi phí khác cho việc nhập dữ liệu
Ngày nay cùng với sự phát triển về mặt lý thuyết, công nghệ, có rất nhiều hướng đi cho việc giải quyết bài tốn này như: nhận dạng kí tự dựa trên cấu trúc hay cách tiếp cận khác như dùng: logic mờ, giải thuật di truyền, mô hình xác suất thống kê, mô hình mạng nơ ron Đặc biệt trong những năm gần đây mô hình mạng nơron được quan tâm nhiều do khả năng tổng hợp của mô hình và sự phát triển về tốc độ xử lí của máy tính
Trên thế giới hiện nay có nhiều chương trình nhận dạng chữ viết (chữ in và viết tay) bằng các thứ tiếng Anh, Nga, v.v như các hệ OMNIPAGE, READ-WRITE, WORD-SCAN, Ở Việt Nam cũng có một số hệ như WORC của công
Trang 5ty 3C, VIET-IN của công ty SEATIC, VNDOCR của Viện Công Nghệ Thông Tin, Image Scon của Trung Tâm Tự Động Hóa Thiết Kế, hệ WINGIS của công ty DolfSoft
Nhìn chung, các sản phẩm phần mềm nhận dạng văn bản Tiếng Việt chữ in của nước ta đã thu được kết quả khả quan, đặc biệt phần mềm VNDOCR đã được
sử dụng rộng rãi trong các cơ quan nhà nước Riêng phần nhận dạng kí tự viết tay vẫn đang được nghiên cứu và phát triển nhằm phục vụ cho các yêu cầu khác nhau như đọc và xử lý các biểu mẫu: hố đơn, phiếu điều tra
Với mục tiêu tìm hiểu bài tốn nhận dạng ảnh kí tự viết tay không trực tuyến (off-line), đồng thời sử dụng kết quả vào việc xử lí phiếu đăng kí môn học của Trường Đại Học Thuỷ Sản Nha Trang Nội dung đồ án là sự thử nghiệm xây dựng chương trình nhận dạng ảnh kí tự viết tay nêu trên, bằng cách sử dụng mạng nơron
để nhận dạng kí tự, dựa trên tập mẫu kí tự đã được mã hố bởi đặc trưng của đường biên
Trong quá trình tìm hiểu lý thuyết và xây dựng chương trình, em đã tham khảo nhiều nguồn tài liệu, trong đó ý tưởng xác định véc tơ đặc trưng của kí tự viết tay sử dụng trong đồ án này được tham khảo từ luận án thạc sĩ “ Nhận dạng chữ viết tay rời Tiếng Việt”, của tác giả Phạm Đại Xuân, Đại học khoa học tự nhiên Thành Phố Hồ Chí Minh
II Cấu trúc, nội dung của đồ án:
Nội dung của đồ án được chia làm 4 phần:
Phần I: Giới thiệu tổng quan và cơ sở lý thuyết tiền xử lí ảnh kí tự, gồm
3 chương:
Chương 1: Giới thiệu tổng quan
Chương 2: Giới thiệu cơ sở lí thuyết tiền xử lí ảnh kí tự
Chương 3: Giới thiệu cách xác định đặc trưng của kí tự
Phần II: Giới thiệu các mô hình nhận dạng, gồm 2 chương
Chương 1: Giới thiệu một số kĩ thuật phân lớp: đối sánh, sử dụng hàm thế, phương pháp LDA
Chương 2: Giới thiệu mô hình mạng nơ ron cho bài tốn nhận dạng
Phần III: Giới thiệu một số ứng dụng và đánh giá kết luận gồm 4 chương
Chương 1: Giới thiệu ứng dụng kĩ thuật tách liên thông cho việc tách liên thông kí tự trong văn bản
Chương 2: Xây dựng, đánh giá chương trình nhận dạng kí tự viết tay
Chương 3: Đưa kết quả vào ứng dụng xây dựng chương trình xử lí phiếu đăng kí môn học cho sinh viên ở trường Đại học Thuỷ Sản Nha Trang
Chương 4: Đánh giá kết luận và nêu hướng phát triển của đề tài
Trang 6Tiêu chuẩn xác định ngưỡng thường sử dụng nhất là sử dụng sai số bình phương trung bình giữa giá trị mẫu v và mức tái thiết r(v) (ký hiệu MSE)
Ta có:
Trong đó p(v) là hàm mật độ xác suất của biến ngẫu nhiên v, có thể coi xấp
xỉ bằng histogram của ảnh Với một số cho trước L các mức xám MSE được biểu diễn bởi:
1 1 1
1 4 1
1 1 1 1/12
Trang 7
1
1
1 2
1 1
dv v vp r
L j
r r v
j j j
Giả sử rằng p(v) có thể ước lượng từ histogram và v0, v2 tương ứng với
vmin, vmax Còn lại ba tham số cần được tính tốn đó là r0, r1, và v1 Tham số v1 gọi là ngưỡng nhị phân hố Hơn nữa r0(v1) và r1(v1) cực tiểu MSE, với một giá trị cho trước của vj, đơn giản là những giá trị trung bình trong đoạn tương ứng:
Như vậy đủ để biến đổi v1 từ v0 đến v2 MSE được tính bằng cách thay r0 và
r1 bằng r0(v1) và r1(v1) tương ứng và chọn vl
* sao cho MSE là cực tiểu
Otsu đề nghị một cách tương tự nhưng tiêu chuẩn đơn giản hơn về mặt tính
tốn dựa trên phân tích biệt số Trong công thức này, MSE tương đương với phương sai lớp trong 2(v) Nếu 2(v) được bổ sung vào phương sai lớp giữa
1 0
2 1
2 1 2
0 2
v p r v e
dv v vp v
dv v vp v
r
Trang 8B (v1), ta được tồn bộ biến đổi T ( độc lập v1) Như vậy, thay vì cực tiểu MSE,
giải thuật của Otsu cực đại phương sai giữa lớp:
từ lân cận địa phương giới hạn xung quanh ảnh đang xét
III Đánh nhãn thành phần liên thông:
Khái niệm liên thông trong kí tự có thể xem như tập hợp các điểm ảnh liền nhau tạo nên kí tự, mục tiêu của giải thuật này là lọc ra những kí tự có trong ảnh
1 Tách liên thông bằng kĩ thuật đệ quy :
Để tách liên thông ta nghĩ ngay đến kỹ thuật đệ quy cấp 8 (tại mỗi bước chúng ta có tối đa 8 lựa chọn tiếp theo)
Quy ước : Điểm (x, y) : cho biết giá trị điểm tại toạ độ (x, y)
=1 màu chữ
=0 màu nền
Height : Chiều cao ảnh
Width : Chiều rộng ảnh
Ta có giải thuật như sau:
// Đưa tất cả các điểm liên thông với Điểm(x,y) vào liên thông t
Procedure Chonvao((x,y) :điểm, t :liênthông)
0 1 0
1
1 1 1
0
1 1
1
1 1
0
11
v v
v
v v
v v v
v v
p
v v
1 0
dv v p v
2 1 1
* 1
1
.maxarg
v v
v v
Trang 9Đã_xét[x, y] :=True ;
For i :=x-1 to x+1 do
For j:= y-1 to y+1 do
If ( i <>x) or (j<>y) then Chonvao((i, j),t);
End;
End ;
// Ta có thủ tục tách liên thông đệ quy như sau :
Procedure TáchLiênThôngĐQ(VAR LT: Danh_Sách_Liên_Thông)
For i:=1 to Width do
If (Điểm(x, y)=1) AND( NOT Đã_xét[i, j]) then
2 Giải thuật cải tiến:
Để gán nhãn cho thành phần liên thông ta có thể duyệt theo từng đường chạy Kỹ thuật này gán cho mỗi thành phần liên thông của ảnh nhị phân một nhãn riêng biệt Nhãn thường là các số tự nhiên bắt đầu từ một đến tổng số các thành phần liên thông trong ảnh input
Giải thuật phát biểu như sau:
Quét ảnh từ trái sang phải và từ trên xuống dưới Trong dòng thứ nhất chứa pixel đen, một nhãn duy nhất được gán cho mỗi đường chạy liên tục của pixel đen Với mỗi pixel đen của dòng tiếp theo, các pixel lân cận dòng trước và pixel bên trái được xem xét (hình vẽ a ) Nếu bất kì pixel lân cận nào được gán nhãn, nhãn tương tự được gán cho pixel đen hiện thời; ngược lại, nhãn tiếp theo chưa được sử dụng được chọn Thủ tục này được sử dụng cho đến dòng cuối của ảnh
Lúc kết thúc tiến trình này, một thành phần liên thông có thể chứa các pixel
có các nhãn khác nhau vì khi chúng ta xem xét lân cận của pixel đen, chẳng hạn pixel “?” (trong hình c), pixel đối với lân cận trái và những lân cận trong dòng trước có thể gán nhãn một cách riêng biệt (Trong ví dụ này, chúng ta sử dụng nhãn của lân cận trái) Một tình huống như vậy phải được xác định và ghi lại Sau
Trang 10P P P L ?
tiến trình quét ảnh, việc gán nhãn được hồn tất bằng cách “thống nhất mâu thuẫn các nhãn” và gán lại các nhãn chưa sử dụng
Để minh hoạ ta cĩ các hình biểu diễn sau:
Hình a lân cận của “?” P= dịng trước; L=lân cận trái
IV Chỉnh nghiêng:
Chỉnh nghiêng ảnh là một phép biến đổi tuyến tính của toạ độ điểm ảnh Trước hết ta phải xác định gĩc nghiêng tổng thể của đối tượng, và ta dịch chuyển điểm ảnh đối tượng theo phương ngang tuỳ theo giá trị gĩc nghiêng tổng thể này
và giá trị y của điểm này
Hình a Hình b
Chuyển gớc toạ độ về trọng tâm ảnh như hình b
Gĩc nghiêng của kí tự được qui ước tính là gĩc từ trục tung, hướng về bên trái cĩ giá trị dương, hướng về bên phải cĩ giá trị âm
* * * * * * * 1 1 1 1 2 2 2 * * * * * * * 1 1 1 2 2 2 2 * * * * * * * * * 1 1 1 1 2 2 2 2 2 * * * * * 1 1 ? * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
Hình b Aûnh ban đầu Hình c Tiến trình gán nhãn
1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 2
4 4 3 3 3 3 2 2 4 4 3 3 3 3 2 2 4 4 3 3
Hình d Sau khi quét đầy đủ Hình e Kết quả sau cùng
Trang 11Góc nghiêng tổng thể kí tự là hướng trung bình của các điểm ảnh đối tượng
có giá trị góc khoảng –450 đến 450 theo quy ước tính góc trên Các điểm ảnh đối tượng có hướng ngồi khoảng –450 đến 450 không tính
Giả sử gọi là góc nghiêng tổng thể của kí tự , điểm ảnh đối tượng p(x,y) (trong hệ toạ độ mới ) sẽ có toạ độ mới là p(x’,y’) (trong hệ toạ độ mới ) với :
Để tính góc nghiêng tổng thể ta phải tính được hướng của các điểm ảnh đối tượng Hướng tại một điểm ảnh đối tượng được tính nhờ vào vectơ gradient điểm ảnh đó Vectơ gradient tại một điểm ảnh (x, y)là:
Độ lớn vectơ gradient tại (x,y) được tính bởi:
Hướng của vectơ gradient tại(x,y) được tính bởi:
Gx và Gy là kết quả xoắn (convolve) với nhân Sobel Sx và Sy:
Hình Các nhân của bộ lọc Sobel
Chú ý: góc tính theo gradient tại mỗi điểm ảnh đối tượng là góc so với trục
x và chỉ xét những điểm có hướng của vectơ gradient thoả trong khoảng [450,1350] hay [-1350,-450]
V Chuẩn kích thước:
Chuẩn kích thước ảnh kí tự về một kích thước cố định và phóng sát bốn biên của ảnh
Phóng ảnh là thực hiện phép biến đổi sau:
Với (x, y) là toạ độ điểm ảnh sau khi phóng và sx ,sy là tỷ lệ phóng theo trục
x và y tương ứng, fx(x,y) là giá trị điểm ảnh kết quả ứng với giá trị toạ độ (x, y)
Chú ý:
-1 0 1 -2 0 2 -1 0 1
y tg x x
G f y x
2 2
Trang 12Giả sử A và B là hai tập trong không gian Z2, aЄ A thì a=(a1, a2)
Phép dịch chuyển của tập A đối với x=(x1, x2) ký hiệu(A)x , được định nghĩa
Phép phản chiếu của tập B, ký hiệu B*, được định nghĩa:
Phép bù của một tập A, ký hiệu Ac, được định nghĩa:
Hiệu của hai tập hợp A và B, ký hiệu A-B, được định nghĩa:
2 Phép giãn:
Giả sử A, B là hai tập thuộc Z2, là tập hợp rỗng, phép giãn của A đối với
B, ký hiệu AB, được định nghĩa:
Tập B thường được gọi là thành phần cấu trúc
Trang 13Nhưng do ảnh được quét với độ phân giải 300 dpi, và đối với những chữ có bụng được viết khá nghiêng thì khi thực hiện phóng với thành phần cấu trúc trên, tức thực hiện phép giãn rồi thực hiện phép co, thì phép giãn làm cho phần bụng bị dính lại với nhau do với mỗi hướng ngang và đứng đều được giãn 2 điểm ảnh Để hạn chế điều này ta sử dụng 2 thành phần cấu trúc không đối xứng và thực hiện phép đóng 2 lần trên 2 thành phần cấu trúc này, vì khi thực hiện phép giãn thì chỉ cần giãn về 1 phía:
Các thành phần cấu trúc không đối xứng
VII Lấy đường biên và làm trơn đường biên:
1 Phát hiện biên:
Biên của ảnh được thiết lập bằng cách nhân chập ảnh với phần tử có cấu trúc:
2 Dò biên và mã hố đường biên:
Ta có giải thuật dò tìm biên như sau:
Bước 1: Quét ảnh đến khi gặp điểm ảnh đen Gọi nó là pixel 1
Bước 2: Lặp
Nếu ” điểm ảnh hiện thời là đen “ thì “dò ngược”
Ngược lại “sang phải” đến khi “gặp pixel 1”
Minh hoạ dò biên
0 1 0
1 1 0
0 0 0
0 0 0
0 1 1
0 1 0
0 1 0
1 1 1
0 1 0
1 2
10 9 8 7
Trang 143 Xác định hướng của điểm biên (Freeman code):
Các hướng được quy ước như sau:
Với hướng quy ước trên, đường biên được mã hố như sau:
4 Làm trơn đường biên:
Làm trơn đường biên là duyệt theo đường biên, nếu hai điểm liên tiếp trên đường biên có hiệu số hướng lớn hơn 1 thì có thể hiệu chỉnh để có đường biên mà hai điểm liên tiếp có hiệu số hướng bằng 1
Theo mã hướng Freeman, hiệu số hướng của 2 điểm liên tiếp nhau trên đường biên được định nghĩa :
Goi ci là mã hướng tại điểm biên đang xét pi , ci+1 làmã hướng của điểm kế tiếp trên đường biên pi+1
Đặt d=ci+1-ci và
Dabs=|d| nếu |d|4
Và dabs=8-|d| nếu |d|>4
Ta có các trường hợp sau:
a dabs1 : Điểm biên trơn
b dabs=2 và ci chẵn, ci+1 chẵn : bỏ pi+1 và thay hướng pi như sau:
Trang 16Minh hoạ ảnh kí tự sau quá trình tiền xử lý
CHƯƠNG III RÚT ĐẶC TRƯNG
I Giới thiệu đặc trưng hướng:
Hướng các điểm trên đường biên của kí tự mô tả khá đầy đủ về kí tự Đặc trưng của ảnh được xác định là hướng của các điểm ảnh trên biên Việc chọn đặc trưng để nâng cao độ chính xác của bài tốn nhận dạng là hết sức khó khăn, đòi hỏi rất nhiều thời gian và quyết định rất nhiều đến độ chính xác Hơn nữa, do biến dạng khá lớn trong chữ viết tay nên để hạn chế người ta thường chia ô trên ảnh và
Trang 17đặc trưng được rút trong các ơ đĩ, việc chọn các ơ phủ lấp lên nhau cũng khơng ngồi mục đích trên
II.Chia ơ:
Aûnh kí tự sau khi tiền xử lý kích thước được chuẩn về mn điểm ảnh, ảnh được chia nhỏ thành các ơ vuơng nhỏ kích thước 88 điểm ảnh như hình:
Hình minh hoạ cách chia ơ kí tự
Gom 4 ơ kích thước 8x8 thành ơ kích thước 16x16, và các ơ kích thước 16x16 này được phủ lên nhau một nữa theo hai hướng ngang và dọc Trên mỗi ơ kích thước 16x16 sẽ rút đặc trưng theo 4 hướng (00, 450, 900,1350) Mỗi ơ này được chia làm 4 phần theo điểm tâm của ơ, phần trung tâm A cĩ kích thước 4x4 điểm ảnh, phần B cĩ kích thước 8x8 điểm ảnh trừ đi phần A, phần C cĩ kích thước 12x12 điểm ảnh trừ đi phần B và A, và phần D là phần cịn lại của ơ cĩ kích thước 16x16 trừ đi phần C, B và A
Ta cĩ hình minh hoạ các phần A, B, C, D trong mỗi ơ vuơng 16x16
Trang 18Đặc trọng số vùng A, B, C và D tương ứng là 4, 3, 2, và 1 Gọi xj là một loại đặc trưng, xj được tính cho một ơ kích thước 16x16 như sau:
III Đặc trưng hướng của đường biên:
Aûnh để rút đặc trưng này là ảnh chỉ chứa đường biên Với mỗi ơ kích thước 16x16 điểm ảnh, ta rút ra 4 đặc trưng xj (j=1, 2, 3, 4), xj được tính như cơng thức trên, x1 là số điểm biên cĩ hướng 00 hay(1800), x2 là số điểm biên cĩ hướng
450(hay -1350), x3 là số điểm cĩ hướng 900 (hay –900) và x4 là số điểm cĩ hướng
Trang 19CHƯƠNG I GIỚI THIỆU CÁC MÔ HÌNH PHÂN LỚP, NHẬN DẠNG
I Khái quát tình hình nghiên cứu, ứng dụng lý thuyết nhận dạng:
Lý thuyết nhận dạng là một lĩnh vực khoa học mới phát triển nhưng đã đạt được nhiều thành tựu đáng kể về lý luận và ứng dụng trong thực tiễn, chứng tỏ khả năng của máy tính điện tử, có thể mô hình hố được một số chức năng tương đối phức tạp của trí tuệ con người
Cho đến nay cơ sở tốn học của lý thuyết nhận dạng được xây dựng và phát triển đồng thời theo các hướng chính sau đây:
là Vapnhic và Trecvonenkix đã cho ra một tài liệu khá đầy đủ về vấn đề này
Lý thuyết cấu trúc về nhận dạng cho tới nay vẫn chưa được xây dựng hồn chỉnh Các nghiên cứu theo hướng này tập trung vào nghiên cứu các đối tượng mà
có thể coi như tập hợp các đối tượng sơ cấp liên hệ với nhau bởi một số liên kết chuẩn
Trang 20Gần đây, một số nhà tốn học có cố gắng xây dựng cấu trúc đại số cho đối tượng và thuật tốn nhận dạng, những công trình này cho thấy triển vọng của một
lý thuyết đại số về nhận dạng đang hình thành ngày càng rõ nét
Do nhu cầu cấp bách phải giải quyết các vấn đề thực tiễn hoạt động sản xuất, nghiên cứu khoa học kỹ thuật hiện đại đặt ra, cùng với các kỹ thuật tin học mới phát triển (đặc biệt là máy tính điện tử ), nhiều chuyên gia thuộc các lĩnh vực hoạt động khác nhau cũng đã đề xuất và sử dụng các mô hình, thuật tốn nhận dạng trên cơ sở thực nghiệm, theo cách tiếp cận heuristic
Song song với việc xây dựng cơ sở lý thuyết nhận dạng, các hoạt động nghiên cứu ứng dụng lý thuyết nhận dạng cũng tiến hành mạnh mẽ và rộng khắp trên nhiều lĩnh vực khác nhau ở nhiều nước trên thế giới
II Một số khái niệm về nhận dạng:
1.Nhận dạng:
Một biểu diễn là giá đỡ (cái mang) thông tin, thường biểu diễn dưới dạng sau:
Mỗi xi biểu diễn kết quả của một phép đo Tập hợp các biểu diễn xác định
X được gọi là không gian biểu diễn Ví dụ không gian vectơ
Giải thích một biểu diễn nghĩa là cho một kết quả chẳng hạn một cái tên Giả sử: ta có tập hợp các tên là:
Không gian giải thích là một tập thoả các luật, thao tác nào đấy
Một định danh là một ánh xạ của không gian biểu diễn vào không gian giải thích
Mục đích nhận dạng là thực hiện ánh xạ này và tìm thuật tốn để thực hiện trên tồn X Một thuật tốn như vậy gọi là tốn tử nhận dạng
X
,,:
:
2 1
Trang 21Các hàm đặc trưng quan sát có thể dẫn đến một quan hệ gần thứ tự giữa 1 đối tượng X và các khái niệm Ai, nghĩa là với mọi i, j có thể thiết lập một quan
hệ :
(X, Ai) (X, Aj)
Quan hệ này thường được thiết lập nhờ một khoảng cách đối tượng, ký hiệu: D(X, A)
Nếu muốn phân lớp hoặc định danh X có thể dùng thông tin này Giả sử Ci
là lớp phân hoạch tương ứng với khái niệm đại diện Ai ; X được gán vào Ci nếu D(X, Ai) là nhỏ nhất
III Một số thuật tốn phân lớp:
Có nhiều giải pháp phân lớp, trong thời gian qua em đã tìm hiểu và thử nghiệm một số giải pháp sau:
Trong đó a =(aTa )1/2 là dạng Euclid Sau đó ta chỉ định x cho lớp j nếu
Dj(x) là khoảng cách ngắn nhất Đó là khoảng cách ngắn nhất dùng trong biểu diễn Ta dễ dàng nhìn thấy nó tương đương với việc đánh giá bằng hàm số
Và chỉ định x cho lớp j, nếu dj(x) cho giá trị số lớn nhất
2 Thuật tốn hàm thế:
Phương pháp nhận dạng theo hàm thế được ứng dụng nhiều trong thực tiễn Việc sử dụng hàm thế được được xuất phát từ nghĩa thế điện trong trường điện từ: Trong không gian có điện tích q tại A thì xung quanh nó có điện trường theo mọi phía Tại điểm M của không gian ta có thế gây ra bởi q là:
x N m
j
x j
M
Trang 22Ở đây , C1, C2 là các hằng số cho trước (S, S’) là khoảng cách S và S’(=0, 1, 2 )
Cách tính thế đối với mỗi lớp:
3 Phương pháp LDA (Linear Discriminant Analysis):
Phương pháp LDA cho trường hợp phân biệt 2 lớp, LDA sẽ tìm một phương chiếu mà phân biệt tốt nhất các mẫu thuộc hai lớp khác nhau trong tập mẫu Giả sử ta có một tập gồm n mẫu học X bao gồm các vectơ cột d chiều:
Trong đó n1 mẫu thuộc về lớp C1 và nằm trong tập con X1, n2 mẫu thuộc về lớp C2 và nằm trong tập con X2
Giả sử ta có một vectơ d chiều w, tích vô hướng y=wTx biểu diễn hình chiếu của vectơ x lên phương w Ta sẽ tìm một phương chiếu w nhằm tối ưu hố độ phân biệt giữa các mẫu thuộc 2 lớp C1 và C2 Điều này tương đương với việc giảm
số chiều của vectơ đặc trưng xuống còn 1 chiều
Ta gọi mi, i=1, 2 là trị trung bình của các mẫu tương ứng với 2 lớp C1 và
, '
,
1 ,
S S C C S S
e S
t j
m K
t j
m K S
j t
Trang 23|
~ 2
~
1 m
m
Và tương ứng là trung bình của các mẫu được chiếu lên phương w:
Trong đó y là hình chiếu của x lên w Yi là tập các hình chiếu của các x
Xi lên w
Ta có thể xem là một độ đo cho tính phân biệt giữa hai tập Y1
và Y2 Tuy nhiên để có được sự phân biệt tốt giữa hai tập khi chiếu lên phương w,
ta cần có độ sai khác giữa hai trị trung bình này khá lớn hơn so với độ lệch chuẩn nội tại của mỗi tập ( có thể xem như độ rộng của đám mây các mẫu)
Thay vì sử dụng phương sai của mỗi tập ta sẽ sử dụng một độ đo khác, gọi
là độ rải (scatter) cho các hình chiếu của các mẫu thuộc lớp Ci như sau:
Phương pháp LDA sẽ tìm giá trị w để cực đại hố hàm tiêu chuẩn sau đây:
Để thấy J(w) là một hàm theo w ta định nghĩa các ma trận SB và Sw như sau:
SW được gọi là ma trận rải nội lớp (within-class scatter matrix)
SB được gọi là ma trận rải liên hợp (between-class scatter matrix)
x T
i Y y i
n
y n m
i i
2
~ 1
2 2
~ 1
~
|
|)(
s s
m m w J
) )(
(
i x X
T i i
W
i
m x m x
i T T
m w x
T i i
T
w m x m x
2 2
1 2
s s = w T S W w
Trang 24Do đó:
Để xác định w sao cho J(w) cực đại ta cho đạo hàm riêng J(w) theo w bằng
0 kết quả ta sẽ được:
Với là trị riêng, giải bài tốn tìm trị riêng ta sẽ có:
Đây là kết quả tìm được của phương pháp LDA đối với trường hợp chỉ có 2 lớp
Sau khi đã tìm được w, mỗi vectơ x cần nhận dạng sẽ được xử lý như sau: lấy x trừ đi trung bình của mẫu học rồi chiếu lên phương w ta được một giá trị vô hướng, tính khoảng cách từ giá trị vô hướng này trên m i
x sẽ được gán vào lớp ứng với cụm gần nhất
Để phân biệt được n lớp ta xây dựng n bộ phân loại 2 lớp theo phương pháp nêu trên Mỗi bộ phân loại sẽ phân biệt một lớp với n-1 lớp còn lại Nếu một vectơ đầu vào được xếp vào cả hai lớp thì ta sẽ sử dụng khoảng cách di nêu trên
để quyết định nó thuộc vào lớp nào Nếu một vectơ không được xếp vào lớp nào thì coi như không nhận dạng được
Phần tiếp theo xin trình bày cách phân lớp dựa trên mô hình mạng nơron lan truyền ngược, em dành một chương riêng để giới thiệu về mô hình này
w S w W T B T
Trang 25CHƯƠNG II PHÂN LỚP DỰA TRÊN MẠNG NƠRON LAN TRUYỀN NGƯỢC
Sơ lược về mạng nơron MLP (Multi-Layer Perception ) với thuật tốn lan truyền ngược:
I Giới thiệu:
Xét về mặt cấu trúc, MLP có cấu trúc phân lớp Các cung được nối từ một nút ở lớp này đến các nút ở lớp kế tiếp Hai nút trong cùng một lớp thì không kết nối với nhau Mỗi nút trong một lớp nhận giá trị từ các nút ở lớp liền trước, tổng hợp lại theo trọng số của cung kết nối và chuyển giá trị kết xuất của nó cho các nút ở lớp liền sau Lớp đầu tiên nhận giá trị từ bên ngồi vào và được gọi là lớp nhập (input) Các nút trong lớp nhập được gọi là nút nhập Lớp cuối cùng sẽ xuất
ra kết quả của mạng và được gọi là lớp xuất (output) Các nút trong lớp xuất được gọi là nút xuất Các lớp còn lại được gọi là lớp ẩn và các nút tương ứng được gọi
là nút ẩn
Trang 26Hình minh hoạ mô hình mạng nơron 4 lớp:1 lớp nhập, 2lớp ẩn và một lớp xuất
Quá trình nhận dạng là quá trình ánh xạ một mẫu x từ không gian các đặc trưng vào không gian các lớp Cũng như vậy, MLP thực chất là một hàm ánh xạ một vectơ đầu vào x thành một vectơ đầu ra z Hàm này có đặc tính sau:
1 Nó là hàm phi tuyến (nonlinear)
2 Nó có tính ổn định (stable) Nghĩa là nếu một giá trị x0 được ánh xạ thành một giá trị z0 thì một giá trị x1 “gần” với x0 sẽ được ánh xạ thành một giá trị
y1 gần với y0 Hay ta có thể nói, sai số nhỏ ánh xạ thành sai số nhỏ Mạng nơron cũng có thể ánh xạ một giá trị x2 xa x0 thành một giá trị y2 gần với y0 (ánh xạ nhiều một)
Thực tế mạng nơron là một bộ máy nội suy và ngoại suy phi tuyến Một mạng chỉ với một lớp ẩn là đã có thể xấp xỉ bất cứ một hàm phi tuyến nào thông qua một số mẫu trong tập mẫu
Để đạt được điều này, ta cần luyện mạng bằng cách thay đổi các trọng số để ánh xạ từ các giá trị trong tập mẫu đến các giá trị đích mong muốn Quá trình luyện mạng này cần có tập các vectơ mẫu đầu vào và đầu ra mong muốn tương ứng Do đó, quá trình học này là quá trình học có giám sát
Tiếp theo đây em xin trình bày chi tiết hơn về hai trạng thái này của mạng
1 Trạng thái ánh xạ:
Như đã nói, ở trạng thái ánh xạ, mỗi vectơ đầu vào x sẽ được ánh xạ thành một vectơ kết quả z Quá trình này được thực hiện như sau:
Đầu tiên vectơ mẫu x sẽ được đưa vào lớp nhập Mỗi nơron trong lớp nhập
sẽ mang giá trị của một thành phần của x Các nút nhập sẽ không tính tốn gì cả mà gửi trực tiếp giá trị của nó đến các nơron ở lớp tiếp theo Tại mỗi nơron của các lớp tiếp theo, một thao tác giống nhau sẽ được thực hiện Đầu tiên nó sẽ tính tổng trọng hố của tất cả các giá trị được gửi tới Sau đó một hàm truyền sẽ được áp dụng trên tổng trọng hố này để cho giá trị xuất của nút này Hàm truyền có tác dụng nén giá trị của tổng trọng hố vào một miền giới hạn nào đó Giá trị này được
Trang 27truyền cho các nơron ở lớp kế tiếp Cứ thế thông tin được lan truyền cho đến lớp xuất của mạng
Để đơn giản ta khảo sát mạng gồm 3 lớp: 1 lớp vào, 1 lớp ẩn và 1 lớp xuất Thực tế cũng chỉ cần mạng 3 lớp là đủ để xấp xỉ các loại hàm
Đối với mạng K nút xuất ta có:
Tổng trọng gửi tới nút xuất k là:
Kết xuất của mạng:
Trong đó J là số nút ẩn với các kết xuất yj, bjk là các trọng trên các cung liên kết từ nút ẩn j đến nút xuất thứ k, còn b0k là trọng ngưỡng của nút xuất thứ k, g(vk) là hàm truyền theo k
Ta có sơ đồ thể hiện các thao tác được thực hiện tại mỗi nơron
Một số hàm truyền thường được sử dụng là:
- Hàm sigmoid (hay hàm logistic) được xác định bởi:
u
1 0
J j
u g
v
1 0
K k
v g
z k ( k) 1,
1
Trang 28Hình vẽ đồ thị hàm logistic (a=1) Miền giá trị của hàm là(0, 1)
- Hàm tanh (tan- hyperbol)
Đồ thị hàm tanh Miền giá trị của hàm là (-1, 1)
Hàm này có miền giá trị tương ứng là (0, 1) và (-1, 1) Việc sử dụng hàm logistic (a=1) hay hàm tanh thực ra là tương đương với nhau vì chúng liên hệ tuyến tính với nhau Việc sử dụng các hàm truyền khác nhau có liên hệ với các khoảng giá trị khác nhau của trọng số (Thực tế cho thấy, hàm tanh thường cho tốc độ hội tụ nhanh hơn trong quá trình học )
Các hàm truyền có thể được áp dụng vào các nút xuất hoặc không tuỳ vào mục đích ánh xạ của mạng Nếu ta cần có một số giới hạn nhất định đối với đầu
ra, ta sẽ áp dụng một hàm truyền thích hợp cho các nút xuất
Khi mạng nơron được ứng dụng cho nhận dạng thì quá trình nhận dạng
chính là quá trình ánh xạ của mạng nơron
2 Trạng thái học:
Xét mạng MLP có một lớp ẩn với thuật tốn lan truyền ngược
0.2 0.4 0.6 0.8 1
x x
x x
e e
e e x
-1 -0.5 0.5 1
Trang 29Thuật tốn lan truyền ngược là thuật tốn hữu hiệu cho quá trình học của MLP Thuật tốn này sẽ cập nhật trọng số dựa trên một hàm lỗi E giữa kết xuất của mạng với giá trị đích
Mục đích của việc học có giám sát bằng MLP là cực tiểu hố hàm lỗi này
Kỹ thuật cơ bản để cực tiểu hố hàm lỗi là phương pháp giảm gradient Mặc dù phương pháp này có thể dẫn đến một cực tiểu cục bộ, nhưng nó được áp dụng rộng rãi vì tính đơn giản của nó Thực tế cũng cho thấy trong hầu hết trường hợp phương pháp giảm gradient đều cho kết quả chấp nhận được
Quá trình học của mạng MLP theo thuật tốn lan truyền ngược sẽ lặp đi lặp lại các thao tác sau:
- Lan truyền tiến : tính kết xuất y của mạng với một mẫu x
- Lan truyền ngược : tính sai số giữa kết xuất y và giá trị đích t và lan truyền ngược sai số này lại để cập nhật trọng số cho mạng
Quá trình học sẽ dừng khi mạng đã đạt được một độ lỗi nhỏ nhất định
a Phương pháp giảm gradient:
Phương pháp giảm gradient gồm các bước chính sau:
- Chọn ngẫu nhiên một điểm x0 trong không gian trọng số
- Tính độ dốc của hàm lỗi tại x0
- Di chuyển điểm x0 theo hướng dốc nhất của hàm lỗi
Quá trình tính độ dốc và di chuyển điểm x0 được lặp đi lặp lại cho đến khi
x0 tiến đến giá trị làm cho hàm lỗi cực tiểu (có thể là hàm lỗi cực tiểu địa phương)
b Cập nhật trọng số theo phương pháp giảm gradient:
Phương pháp cập nhật trong số theo hướng giảm gradient sẽ dựa trên đạo hàm riêng phần của hàm lỗi E đối với trọng số đang xét theo công thức sau:
trong đó:
t là chỉ số của lần cập nhật trọng số hiện tại
được gọi là hệ số học (learning rate)
w là một trọng số bất kì trong mạng: aij hoặc bij
Công thức trên có thể diễn dịch như sau: cập nhật lại trọng số theo hướng ngược hướng của gradient với độ dài vectơ dịch chuyển phụ thuộc vào và độ lớn của vectơ đạo hàm
Nếu trọng số được cập nhật theo hướng ngược với gradient một độ dịch chuyển vừa phải, thì giá trị của hàm lỗi sẽ giảm đi so với trước khi cập nhật Giá trị của có ảnh hưởng lớn đến tốc độ hội tụ của thuật tốn Nếu lớn thì
độ dịch chuyển lớn, kết xuất của mạng có thể dao động rất thất thường (vì có thể nhảy qua điểm cực tiểu) và thuật tốn khó hội tụ Nếu nhỏ, ta phải cần rất nhiều bước lặp để đi đến được vị trí cực tiểu của hàm lỗi
c Quy tắc tính đạo hàm lỗi:
)()
()1
w
E t
w t
w
ij ij
Trang 30Sai số trung bình bình phương thường được sử dụng để đo lường sự trùng khớp giữa ánh xạ ( ký hiệu NN) cần xây dựng với hàm đích cho trước (qua tập mẫu)
Cho tập mẫu:
=(Xk, Zk) =(xk1, …,xkM;zk1,…,zkN ); xki, zkj R ; i= 1,…,M; j=1,…,N; k=1,…,K, gọi Tk= NN(Xk)=(tk1,…,tkN) thì sai số trung bình bình phương sẽ là:
Đạo hàm hàm lỗi có thể được tính dựa vào quy tắc chuỗi như sau:
Ta xét từng trường hợp cụ thể:
Trọng số nút xuất:
Ta có chuỗi tính đạo hàm hàm lỗi theo trọng số giữa lớp ẩn và lớp xuất:
Một nút xuất không ảnh hưởng gì đến sai số của các nút xuất khác trong lớp xuất Để đơn giản trong công thức ta bỏ qua chỉ số của các nút xuất, nếu nút xuất đang xét có giá trị thực là z và giá trị đúng của nút đó là t, thì sai số bình phương là:
Từ đó ta có:
Mặt khác độ dốc hàm logistic được tính như sau:
Tính số hạng thứ 3, v/b trong công thức E/b
t z E
N
n K
k
kn kn
)(
w w
E w
b
v v
z z
E b
1
t z
t z z
v
z v
j y b b
v
1 0
Trang 31Ta có:
p=(z-t)z(1-z)
Như vậy:
Xét trọng số nút ẩn:
Ta có đạo hàm của hàm lỗi đối với các trọng số của một nút ẩn:
Các nút ẩn tự chúng không tạo lỗi nhưng chúng góp phần tác động vào lỗi của các nút xuất
Những tác động này cũng xác định theo luật chuỗi:
(trong công thức này chỉ số j đã được bỏ đi vì chỉ có một nút ẩn tham gia) Công thức trên cho thấy ảnh hưởng của nút ẩn vào hàm E là một tổng theo tất cả các nút xuất (k=1…K) của tích ba số hạng
Hai số hạng đầu trong tích đó có ý nghĩa tương tự như phần trên Ở trên ta đặt tích này là p Lượng p này lan truyền ngược từ nút xuất đến nút ẩn Nếu ta cho
p một chỉ số cho biết nó thuộc về nút xuất nào, ta có thể viết phương trình trên lại như sau:
j p b
E
j j
0
a
u u
y y
E a
z z
E y
k k K
v p y
E
1
k k b y
k b p y
E
1
) 1
y u
Trang 32Trong cách học thông thường của thuật tốn lan truyền ngược, mỗi khi ta đưa vào mạng một mẫu học đạo hàm hàm lỗi được tính và trọng số được cập nhật ngay, sau đó mẫu học tiếp theo được đưa vào mạng và quá trình trên được lặp lại cho từng mẫu học Mỗi bước trong quá trình trên gọi là một bước lặp Khi tất cả các mẫu trong tập học đã được đưa vào mạng, ta hồn tất bước học Cách cập nhật này có thể dẫn đến trường hợp ở một bước lặp p trọng số được cập nhật sao cho giảm E(p), nhưng ở một bước lặp q khác, trọng số lại được cập nhật sao cho tăng E(q) Kết quả là một bước học sẽ chứa đựng sự tự mâu thuẫn trong nó, cụ thể sẽ
có một bước lặp làm ngược lại với những kết quả đã đạt được ở những bước trước một cách cục bộ tại một trọng số Điều này làm cho quá trình học nhiễu loạn và kém hiệu quả
Cách học theo bước giúp ta tránh được hiện tượng này Trong phương pháp này trọng số sẽ được cập nhật sau mỗi bước học Nghĩa là tất cả các mẫu học sẽ được đưa vào mạng và các đạo hàm riêng phần ứng với mỗi trọng số và mỗi mẫu học sẽ được tính tốn Sau đó đạo hàm riêng phần ứng với mỗi trọng số sẽ được tính bằng tổng tất cả các đạo hàm riêng phần ứng với trọng số đó trên tất cả các mẫu học
)1(
1
y y b p q
K
k k
i i
x a
i q a
E
i i