CHUẨN Y CỦA HỘI ĐỒNG BẢO VỆ LUẬN VĂN Luận văn tựa đề “Ứng Dụng Mạng Neural Tích Chập Nhận Dạng Ký Tự Số Viết Tay” đƣợc “Lê Hồng Phong” thực hiện và nộp nhằm thỏa mãn một trong các y
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNG
LÊ HỒNG PHONG
ỨNG DỤNG MẠNG NEURAL TÍCH CHẬP NHẬN DẠNG KÝ TỰ SỐ VIẾT TAY
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
TP HỒ CHÍ MINH – NĂM 2016
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNG
Trang 3CHUẨN Y CỦA HỘI ĐỒNG BẢO VỆ LUẬN VĂN
Luận văn tựa đề “Ứng Dụng Mạng Neural Tích Chập Nhận Dạng Ký Tự Số Viết Tay” đƣợc “Lê Hồng Phong” thực hiện và nộp nhằm thỏa mãn một trong các
yêu cầu tốt nghiệp Thạc sĩ ngành Khoa Học Máy Tính
Ngày bảo vệ lận văn, TPHCM, ngày … tháng … năm 2016
HỘI ĐỒNG CHẤM LUẬN VĂN Chủ tịch Hội đồng
GS.TSKH Hoàng Văn Kiếm
Viện Đào Tạo Sau Đại Học
TS Thái Hữu Tuấn
Ngày … tháng … năm 2016
Trang 4CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNG
Luận văn thạc sĩ: Ứng Dụng Mạng Neural Tích Chập Nhận Dạng Ký Tự Số Viết Tay
Do học viên: Lê Hồng Phong
- Cao học khóa: 2 – Đợt 2
- Ngành: Khoa học máy tính thực hiện
Người hường dẫn: TS Vũ Thanh Hiền
Đã được bảo vệ trước Hội đồng, ngày: … / … / 2016 theo Quyết định số …, ngày
…/…/ 2016 của Hiệu Trưởng Trường ĐH Quốc Tế Hồng Bàng
Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:
Chủ tịch Hội đồng đánh giá luận văn
Header Page 4 of 137
Trang 5LÝ LỊCH CÁ NHÂN
- Họ tên: Lê Hồng Phong
- Ngày sinh: 03 tháng 09 năm 1987
- Nơi sinh: Bến Tre
- Tốt nghiệp PTTH tại Trường Bán Công Bình Đại, năm 2007
- Tốt nghiệp Đại học ngành Công nghệ thông tin tại Trường ĐH Quốc Tế Hồng Bàng, Thành phố Hồ Chí Minh
- Quá trình công tác:
Từ năm 2010 đến nay Trường ĐH Quốc Tế Hồng Bàng Thư ký văn phòng
- Địa chỉ liên lạc: 5/19P Mễ Cốc, P.15, Q.8, TP.HCM
- Điện thoại di động: 0983 162 630
- Email: lephonghbu@gmail.com
Trang 6LỜI CAM ĐOAN Tôi cam đoan rằng luận văn “Ứng dụng mạng Neural tích chập nhận dạng
ký tự số viết tay” là bài nghiên cứu của chính tôi Ngoại trừ những tài liệu tham khảo
được trích dẫn trong luận văn này, tôi cam đoan rằng toàn phần hay những phần nhỏ của luận văn này chưa từng được công bố hay được sử dụng để nhận bằng cấp ở những nơi khác Không có sản phẩm /nghiên cứu nào của người khác được sử dụng trong luận văn này mà không được trích dẫn theo đúng quy định
Tp Hồ Chí Minh, ngày … tháng … năm 2016
Tác giả luận văn
Header Page 6 of 137
Trang 7LỜI CẢM ƠN Tôi xin gửi lời cảm ơn sâu sắc đến TS.Vũ Thanh Hiền – Trường Đại Học Kinh
Tế Tài Chính TP.HCM, là người đã hướng dẫn tôi trong suốt quá trình nghiên cứu để tôi có được những kiến thức quý báu hoàn thành luận văn
Tôi xin bày tỏ lòng biết ơn đến quý thầy quý cô trong Viện Đào tạo Sau Đại học Trường Đại học Quốc tế Hồng Bàng đã cung cấp những kiến thức quý báu cho tôi trong suốt quá trình học tập và nghiên cứu tại trường
Tôi cũng xin gởi lời cảm ơn đến gia đình, đồng nghiệp, bạn bè và những người thân luôn quan tâm và giúp đỡ tôi trong suốt thời gian học tập và làm luận văn
Do thời gian và kiến thức có hạn nên luận văn chắc không tránh khỏi những thiếu sót nhất định Tôi rất mong nhận được sự góp ý quý báu của thầy cô
Trân trọng
Lê Hồng Phong
Trang 8TÓM TẮT
Nhận dạng ký tự viết tay là một lĩnh vực được quan tâm nghiên cứu và được ứng dụng rộng rãi trong nhiều lĩnh vực như: nhận dạng các chữ số trên phiếu chi ngân hàng, mã số trên bì thư của dịch vụ bưu chính, hay các chữ số trên các biểu mẫu …
Vấn đề nhận dạng chữ viết tay nói chung và nhận dạng chữ số viết tay nói riêng
là một thách thức lớn đối với các nhà nghiên cứu Bài toán lớn luôn đặt ra phía trước
vì sự phức tạp của việc nhận dạng chữ viết phụ thuộc nhiều vào phong cách viết và cách thể hiện ngôn ngữ của người viết
Mạng Neural dựa trên việc mô phỏng cấp thấp hệ thống Neural sinh học, trong tương lai với sự phát triển mô phỏng Neural sinh học có thể có loại máy tính thông minh thật sự để phát triển lĩnh vực này Từ những ý tưởng sáng tạo của các nhà khoa học được nêu trên và kết hợp với những kiến thức đã có về ký tự số viết tay nên tôi đã chọn đề tài nghiên cứu “Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay”
Hiện nay có rất nhiều phương pháp nhận dạng nhưng để nhận dạng được chữ viết tay thì rất khóa khăn, vì vậy ta phải xây dựng một tập cơ sở dữ liệu mẫu về ký tự viết tay khá lớn nhưng khi xử lý đòi hỏi phải có độ chính xác cao và thời gian thực hiện ngắn nhất
Hệ thống “Ứng Dụng mạng NEURAL Tích chập nhận dạng ký tự số viết tay” nghiên cứu các vấn đề như sau:
- Xử lý và phân tích được được các ký tự ảnh đầu vào
- Chuyển đổi ký tự sang ma trận điểm ảnh và ma trận Kernel
- Tiến hành nhận dạng ký tự bằng thuật toán mạng neural tích chập
- Sau quá trình thực nghiệm trên tập dữ liệu thực MNIST, hiển thị kết quả
thu được qua quá trình nhận dạng
Header Page 8 of 137
Trang 9ABSTRACT
Recognizing the handwritten characters and digits is one of the most important fields which is researched and applied in our lives in so many ways Such as recognizing the characters or number on the receipt papers of the banks, the pin numbers on the envelopes of the post offices, or digits on the form
The problems of recognizing the handwritten digits and characters cause a big issue to challenge the studying and the scientists The hard situations and huge questions always occur in the processing of the program because it is so complicated
to regconize the hand writing It depends on the styles of the people who is writing and language expression of the writer
The Neural network based on basic level simulations of biological neural systems , in the future with the development of biological neural simulation sewing machine intelligence have really to develop this field From these creative ideas of the scientist and the knowledge of handwritten characters and digits, i have chosen the topic "Application convolution neural network recognition of handwritten characters "
Nowadays, there are so many methods of identification , but to recognize the handwriting is very difficult Even though we must build a large collective database of handwritten characters, when treatment requires high precision and shortest implementation time
System "Application Integration convolution neural network recognition of handwritten characters" study the problem as follows:
- Handling and analyzes the input image character
- Convert characters into pixel matrix and matrix Kernel
- Conduct a character recognition algorithm using neural network
convolution
- After the experiments on real data sets MNIST, showing the results
obtained through the identification process
Trang 10NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
TP HCM, ngày … tháng … năm 2016
Chữ ký giảng viên
Header Page 10 of 137
Trang 11NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 1
TP HCM, ngày … tháng … năm 2016
Chữ ký giảng viên
Trang 12NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 2
TP HCM, ngày … tháng … năm 2016
Chữ ký giảng viên
Header Page 12 of 137
Trang 13NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN
TP HCM, ngày … tháng … năm 2016
Chữ ký giảng viên
Trang 14DANH MỤC BIỂU ĐỒ HÌNH VẼ
Hình 1-1 Mô hình neural sinh học 6
Hình 1-2 Mô hình Neural nhân tạo ở mức đơn giản 7
Hình 1-3 Hàm Heaviside 8
Hình 1-4 Mô hình mạng 1 tầng 10
Hình 1-5 Mô hình mạng đa tầng 11
Hình 2-1 Minh họa một số nhân lọc mịn ảnh 15
Hình 2-2 A Lân cận của “?” P= dòng trước; L=lân cận trái 20
Hình 2-3 Ảnh ban đầu (ảnh bên trái) và Tiến trình gán nhãn (ảnh bên phải) 21
Hình 2-4 Xác định độ nghiêng của ảnh 21
Hình 2-5 Các nhân của bộ lọc Sobel 22
Hình 2-6.Các thành phần cấu trúc đối xứng 24
Hình 2-7.Các thành phần cấu trúc không đối xứng 25
Hình 2-8.Thành phần cấu trúc phát hiện biên 25
Hình 2-9.Minh hoạ dò biên 26
Hình 2-10.Hướng quy ước mã hóa 26
Hình 2-11.Đường biên đã được mã hóa 27
Hình 2-12 Dabs=2 và ci chẵn , ci+1 chẵn 27
Hình 2-13 Dabs=2 và ci lẻ, ci+1 lẻ 28
Hình 2-14 Dabs=3 và c i chẵn, c i+1 lẻ 28
Hình 2-15 Dabs=3, ci lẻ, ci+1 chẵn 28
Hình 2-16.Minh hỏa ảnh sau tiền xử lý 29
Hình 2-17 Feedforward Neural Network 30
Header Page 14 of 137
Trang 15Hình 2-19 Minh họa mô hình CNNs 31
Hình 2-20 Minh họa việc lấy mẫu con 32
Hình 2-21 Ma trận điểm ảnh (ảnh gốc) và ma trận kernel (đóng vai trò làm mặt nạ) cho quá trình tích chập 33
Hình 2-22 Minh họa phương pháp SAME 34
Hình 2-23 Minh họa phương pháp FULL 35
Hình 2-24 Minh họa phương pháp VALID 36
Hình 2-25 Minh họa cách biểu diễn ảnh 37
Hình 2-26 Minh họa kết quả tích chập trong kỹ thuật blur 38
Hình 2-27 Minh họa kết quả tích chập trong kỹ thuật sharpen 39
Hình 2-28 Minh họa kết quả tích chập trong kỹ thuật Outline 40
Hình 2-29 Minh họa kết quả tích chập trong kỹ thuật Emboss 40
Hình 3-1 Minh họa mô hình mạng sử dụng trong luận văn 43
Hình 3-2 Minh họa kết quả xác định vùng ảnh chứa ký số 44
Hình 3-3 Lưu đồ xác định hình chữ nhật nhỏ nhất ngoại tiếp ký số cần xác định 46
Hình 3-4 Ảnh trước (kích thước 60X60) và sau (kích thước 32X32) khi thực hiện scale 47
Hình 3-5 Minh họa thao tác thực hiện tích chập 48
Hình 3-6 Quá trình trích chọn đặc trưng sử dụng CNNs 49
Hình 4-1 Minh họa dữ liệu có trong cơ sở dữ liệu MNIST 53
Hình 4-2 Giao diện của ứng dụng 54
Hình 4-3 Giao diện của ứng dụng sau khi mở file ảnh 55
Hình 4-4 Giao diện của ứng dụng sau khi ảnh được đóng khung 56
Hình 4-5 Ảnh sau khi nhận dạng và đưa về kích thước chuẩn (32 X 32) 57
Trang 16Hình 4-6 Tùy vào người dùng chọn ảnh nào bên khung trái, khung phải sẽ hiển thị màu và giá trị màu của các pixel có trong ảnh (32 X 32) 58 Hình 4-7 Hình bên trái: Ma trận điểm của ảnh sau khi thực hiện convolution, từ kích thước 32 X 32 đã giàm còn 28 X 28 Hình bên phải:Ma trận điểm của ảnh sau khi thực hiện subsampling, từ kích thước 28 X 28 đã giàm còn 14 X 14 59 Hình 4-8 Ảnh ban đầu và kết quả sau khi nhận dạng 60
Header Page 16 of 137
Trang 17DANH MỤC THUẬT NGỮ TIẾNG ANH
Nonlinear activation function Hàm kích hoạt phi tuyến
Trang 18DANH MỤC THUẬT NGỮ VIẾT TẮT
Header Page 18 of 137
Trang 19MỤC LỤC
CHUẨN Y CỦA HỘI ĐỒNG BẢO VỆ LUẬN VĂN i
LÝ LỊCH CÁ NHÂN iii
LỜI CAM ĐOAN iv
LỜI CẢM ƠN v
TÓM TẮT vi
ABSTRACT vii
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN viii
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 1 ix
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 2 x
NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN xi
DANH MỤC BIỂU ĐỒ HÌNH VẼ xii
DANH MỤC THUẬT NGỮ TIẾNG ANH xv
DANH MỤC THUẬT NGỮ VIẾT TẮT xvi
MỤC LỤC xvii
CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG KÝ TỰ SỐ VIẾT TAY 1
1.1 Phát Biểu Bài Toán 1
1.2 Những khó khăn và thách thức của bài toán nhận dạng chữ viết 3
1.3 Các công trình nghiên cứu trong và ngoài nước 4
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT TIỀN XỬ LÍ ẢNH KÍ TỰ 6
2.1 KHÁI NIỆM MẠNG NEURAL 6
2.1.1 Sơ lược về neural sinh học 6
2.1.2 Mạng Neural nhân tạo 7
Trang 202.1.3 Kiến trúc mạng 9
2.1.4 Mạng một tầng 9
2.1.5 Mạng Đa Tầng 11
2.2 HUẤN LUYỆN MẠNG NEURAL 12
2.2.1 Phương pháp học 12
2.2.2 Học có giám sát 12
2.2.3 Học không giám sát 12
2.2.4 Học tăng cường 12
2.2.5 Thuật toán huấn luyện mạng 13
2.3 LỌC MỊN ẢNH 15
2.4 NHỊ PHÂN ẢNH 15
2.5 ĐÁNH NHÃN THÀNH PHẦN LIÊN THÔNG 18
2.5.1 Tách liên thông bằng kĩ thuật đệ quy 18
2.5.2 Giải thuật cải tiến 19
2.5.3 Chỉnh nghiêng 21
2.6 CHUẨN KÍCH THƯỚC 23
2.7 LẤP KHOẢNG TRỐNG ẢNH BẰNG PHÉP ĐÓNG MORPHOLOGY 23
2.7.1 Một số định nghĩa 23
2.7.2 Phép giãn 24
2.7.3 Phép co 24
2.7.4 Phép đóng 24
2.8 LẤY ĐƯỜNG BIÊN VÀ LÀM TRƠN ĐƯỜNG BIÊN 25
2.8.1 Phát hiện biên 25
Header Page 20 of 137
Trang 212.8.3 Xác định hướng của điểm biên (Freeman code) 26
2.8.4 Làm trơn đường biên 27
2.9. MẠNG NEURAL TÍCH CHẬP (Convolutional Neural Networks – CNNs)29 2.9.1 Khái niệm CNNs 29
2.9.2 Cấu trúc mạng neural tích chập 31
2.9.3 Những phương pháp tích chập (convolution) 32
2.9.4 Một số phép tích chập thường sử dụng trong xử lý ảnh 36
CHƯƠNG 3 ỨNG DỤNG CNNs CHO BÀI TOÁN NHẬN DẠNG CÁC KÝ TỰ SỐ 41
3.1 PHÁT BIỂU BÀI TOÁN 41
3.1.1 Phát biểu bài toán nhận dạng 41
3.1.2 Ảnh đầu vào của bài toán 41
3.2 Ý TƯỞNG THỰC HIỆN 42
3.3 THUẬT TOÁN NHẬN DẠNG KÝ SỐ 42
3.3.1 Xây dựng mạng neural 43
3.3.2 Xử lý dữ liệu (phân tích ảnh) 43
CHƯƠNG 4 CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 52
4.1 MÔI TRƯỜNG THỬ NGHIỆM 52
4.1.1 Phần cứng 52
4.1.2 Phần mềm 52
4.1.3 Cơ sở dữ liệu sử dụng trong ứng dụng 52
4.2 GIAO DIỆN CỦA ỨNG DỤNG 54
4.2.1 Hệ thống menu 54
4.2.2 Các tab control 54
Đánh giá kết quả đạt được 61
Trang 224.3.1 Nhận dạng ảnh (độ sai lệch) 61 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64 TÀI LIỆU THAM KHẢO 65
Header Page 22 of 137
Trang 23CHƯƠNG 1
TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG
KÝ TỰ SỐ VIẾT TAY 1.1 Phát Biểu Bài Toán
Trước khi được nhận dạng, mỗi ký tự số được chuyển đổi thành dạng ảnh nhị phân có kích kích thước khoảng 32x32 Trong đó các kí tự số có độ nghiêng không quá lớn và kích thước hợp chuẩn với sai số chấp nhận được
Chuẩn kích thước của ký tự số:
Hình 1.1 Mô tả bài toán nhận dạng
Ascender height: Trùng với cạnh trên của ảnh
Descender heigt: Trùng với cạnh dưới của ảnh
Height: Chiều cao của ảnh
1 2 3 4
Ascender height
Descender height
Height
Trang 24Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay
Mô hình nhận dạng đƣợc mô tả trong hình sau :
Hình 1.2 Mô hình bài toán nhận dạng
Tiền Xử Lý
Trích Chọn Đặt Trƣng
Nhận Dạng Huấn Luyện
Trang 25Trong đó:
- Tiền xử lý: Sau khi đã khử nhiễu, ảnh được chuẩn hóa về kích thước chuẩn Việc
chuẩn hóa kích thước ảnh được thực hiện theo các bước sau:
Bước 1: Nhị phân hóa ảnh
Bước 2: Tìm hình chữ nhật bé nhất chứa các điểm đen trên ảnh
Bước 3: Lấy vùng ảnh nằm trong hình chữ nhật
Bước 4: Chuẩn hóa ảnh về kích thước chuẩn
- Trích chọn đặc trưng: Trong phần này, giới thiệu phương pháp trích chọn đặc
trưng đơn giản nhưng hiệu quả, có thể áp dụng cho các tập dữ liệu ký tự số viết tay rời rạc như sau:
Ảnh ký tự sau khi đã chuẩn hóa về kích thước chuẩn sẽ được chia thành NxN vùng Tổng số điểm đen của mỗi vùng sẽ được chọn để tạo thành các vectơ đặc trưng
Lựa chọn thuật toán huấn luyện phân lớp: Áp dụng thuật toán lan truyền ngược Back Propagation
1.2 Những khó khăn và thách thức của bài toán nhận dạng chữ viết
Với những kiểu ký tự số viết sát nhau, việc phân tích giới hạn ký tự chưa được chính xác, dẫn đến đọc ký tự sai
Hình 1.3 Minh họa chữ sát liền nhau
Hoặc ký tự bị nhòe hoặc mờ, bề mặt ký tự có thể bị mờ hoặc che khuất bởi một đối tượng khác, dẫn đến đọc ký tự sai
Hình 1.4.Minh họa ảnh ký tự bị nhòe
Trang 26Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay
Ký tự số trong ảnh nằm giao nhau, cắt nhau hoặc ký số này chứa trong ký số kia gây khó khăn trong việc nhận dạng, dẫn điến đọc ký tự sai
Hình 1.5 Ảnh minh họa ký tự số nằm giao nhau hoặc cắt nhau
- Giới hạn về cở sở dữ liệu ảnh : Trong phạm vi của nghiên cứu này, tôi chỉ giới
hạn nhận dạng mười ký tự số viết tay từ không đến chín
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
1.3 Các công trình nghiên cứu trong và ngoài nước
- Một số công trình nghiên cứu ngoài nước:
Jun Tan, Jian Huang Lai, Wei-Shi Zheng, Chinese Handwritten writer identification based on Structure Features and extreme learning machine (2011) Công trình nhận dạng chữ viết tiếng hoa
Suchenwirth, Richard, Jun Guo, Irmfried Hartmann, Georg Hincha, Manfred Krause, and Zheng Zhang, Optical Recognition of Chinese ISBN 978-3-528-06339-9 ISBN 978-3-663-13999-7 (eBook) DOI 10.1007/978-3-663-13999-7
Yip, W.K., Goh, A., Ngo, D.C.L., Teoh, A.B.J.: Generation of Replaceable Cryptographic Keys from Dynamic Handwritten Signatures In: Zhang, D., Jain, A.K (eds.) ICB 2005 Nhận dạng chữ ký số
- Một số công trình nghiên cứu trong nước:
Nguyễn Thị Thanh Tân (2005), Nhận dạng chữ viết tay hạn chế dựa trên
mô hình mạng neuron kết hợp với thống kê ngữ cảnh, Luận văn thạc sỹ, ĐHQGHN
Nguyễn Thị Thanh Tân (25-03-2015), Nghiên cứu và ứng dụng phân đoạn ảnh trong nhận dạng chữ viết tay tiếng việt , ĐHQGHN
Phạm Anh Phương, Ngô Quốc Tạo, Lương Chi Mai, An Efficient Model for Isolated VietNamemes Handwritten Recognition, Proceding of
Header Page 26 of 137
Trang 27Conference on Intelligent nformation Hidding and Multimedia Signal Processing, 2008
Trang 28Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay
CHƯƠNG 2
CƠ SỞ LÝ THUYẾT TIỀN XỬ LÍ ẢNH KÍ TỰ
2.1 KHÁI NIỆM MẠNG NEURAL
2.1.1 Sơ lược về neural sinh học
Những thành phần chính trong cấu trúc của một neural trong bộ não con người
Hình 2-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 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á 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ỉ
Header Page 28 of 137
Trang 29- 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
Có thể tóm tắt hoạt động của một Neural như sau: Neural lấy tổng tất cả các điện thế vào mà nó nhận được, và phát ra một xung điện thế nếu tổng ấy lớn hơn một ngưỡng nào đó Các Neural nối với nhau ở các synapses Synapse được gọi là mạnh khi nó cho phép truyền dẫn dễ dàng tín hiệu qua các Neural khác Ngược lại, một synapse yếu sẽ truyền dẫn tín hiệu rất khó khăn
Các synapses đóng vai trò rất quan trọng trong sự học tập Khi chúng ta học tập thì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa các Neural
Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và các synapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các Neural càng nhiều, càng nhạy bén
2.1.2 Mạng Neural nhân tạo
Neural nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra
Hình 2-2 Mô hình Neural nhân tạo ở mức đơn giản
Neural này sẽ hoạt động như sau: giả sử có N inputs, Neural sẽ có N Weights (trọng số) tương ứng với N đường truyền inputs Neural sẽ lấy tổng có 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ứ 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
OutputWeight Wi
Input X2 Tổng So sánh với ngưỡng
Trang 30Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay
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 Có thể viết kết quả lấy tổng của Neural như sau:
∑ Kết quả này sẽ được so sánh với threshold t của Neural, nếu nó lớn hơn t thì Neural cho output là 1, còn nếu nhỏ hơn thì output là 0 Ngoài ra ta cũng có thể trừ tổng nói trên cho t, rồi so sánh kết quả thu được với 0, nếu kết quả là dương thì Neural cho ouput bằng 1, nếu kết quả âm thì output là 0 Dưới dạng toán học ta có thể viết output của Neural như sau:
(∑
)
Header Page 30 of 137
Trang 31Lưu ý là chỉ số của tổng bây giờ bắt đầu từ 0 chứ không phải bằng 1 như trước nữa
2.1.3 Kiến trúc mạng
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
Có thể xem các trọng số là phương tiện để lưu trữ thông tin dài hạn trong mạng Neural và nhiệm vụ của quá trình huấn luyện của mạng là cập nhật các trọng
số khi có thêm thông tin về mẫu học Hay nói một cách khác, các trọng số đều được điều chỉnh sao cho dáng điệu vào ra của mạng sẽ mô phỏng hoàn toàn phù hợp với môi trường đang xem xét
2.1.4 Mạng một tầng
Mạng một tầng với S Neural được minh họa trong hình 1.3 Chú ý rằng với mỗi một đầu vào trong số R đầu vào sẽ được nối với từng Neural và ma trận trọng số bây giờ sẽ có S hàng
Một tầng bao gồm ma trận trọng số, các bộ cộng, vector ngưỡng b, hàm chuyển
và vector đầu ra a
Mỗi phần tử của vector đầu vào p được nối với từng Neural thông qua ma trận trọng số W Mỗi Neural có một ngưỡng b i, một bộ cộng, một hàm chuyển f và một
đầu ra a i cùng với nhau, các đầu ra tạo thành một vector đầu ra a Thông thường thì số
lượng đầu vào của tầng khác với số lượng Neural.(R#S)
Có phải tất cả các Neural trong cùng một tầng phải có hàm chuyển giống nhau? Câu trả lời là không, bạn có thể định nghĩa các Neural trong một tầng có hàm chuyển khác nhau bằng cách kết hợp song song hai mạng Neural giống ở trên Cả hai sẽ có đầu vào giống nhau và mỗi mạng sản xuất ra vài đầu ra
Trang 32Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay
Ma trận trọng số cho các phần tử trong vector đầu vào W:
f
f
Header Page 32 of 137
Trang 332.1.5 Mạng Đa Tầng
Hình 2-5 Mô hình mạng đa tầng
Mô hình mạng Neural ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn(hidden) và lớp xuất (output) Mỗi nút trong lớp nhập 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 nhập đượ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 nhập và lớp xuất, 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 xuất 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 xuất tương ứng với một biến phụ thuộc
Trang 34Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay
2.2 HUẤN LUYỆN MẠNG NEURAL
2.2.1 Phương pháp học
Mạng Neural nhân tạo phỏng theo việc xử lý thông tin của bộ não người, do vậy đặc trưng cơ bản của mạng là có khả năng học, khả năng tái tạo các hình ảnh và dữ liệu khi đã học Trong trạng thái học thông tin được lan truyền theo hai chiều nhiều lần
để học các trọng số Có 3 kiểu học chính, mỗi kiểu học tương ứng với một nhiệm vụ học trừu tượng Đó là học có giám sát (có mẫu), học không giám sát và học tăng cường Thông thường loại kiến trúc mạng nào cũng có thể dùng được cho các nhiệm
vụ
2.2.2 Học có giám sát
Một thành phần không thể thiếu của phương pháp này là sự có mặt của một người thầy (ở bên ngoài hệ thống) Người thầy này có kiến thức về môi trường thể hiện qua một tập hợp các cặp đầu vào - đầu ra đã được biết trước Hệ thống học (ở đây
là mạng Neural) sẽ phải tìm cách thay đổi các tham số bên trong của mình (các trọng
số và các ngưỡng) để tạo nên một ánh xạ có khả năng ánh xạ các đầu vào thành các đầu ra mong muốn Sự thay đổi này được tiến hành nhờ việc so sánh giữa đầu ra thực
sự và đầu ra mong muốn
2.2.3 Học không giám sát
Trong học không có giám sát, ta được cho trước một số dữ liệu x và hàm chi phí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu x và đầu ra của mạng, f – hàm chi phí được quyết định bởi phát biểu của bài toán Phần lớn các ứng dụng nằm trong vùng của các bài toán ước lượng như mô hình hóa thống kê, nén, lọc, phân cụm
2.2.4 Học tăng cường
Dữ liệu x thường không được tạo trước mà được tạo ra trong quá trình một agent tương tác với môi trường Tại mỗi thời điểm t, agent thực hiện hành động yt và môi trường tạo một quan sát xt với một chi phí tức thời Ct, theo một quy trình động nào đó (thường là không được biết) Mục tiêu là một sách lược lựa chọn hành động để cực tiểu hóa một chi phí dài hạn nào đó, nghĩa là chi phí tích lũy mong đợi Quy trình hoạt động của môi trường và chi phí dài hạn cho mỗi sách lược thường không được biết, nhưng có thể ước lượng được Mạng Neural nhân tạo thường được dùng trong
Header Page 34 of 137
Trang 35quyết bằng học tăng cường là các bài toán điều khiển, trò chơi và các nhiệm vụ quyết định tuần tự (sequential decision making) khác
Hãy bắt đầu bằng cách cho các weights những giá trị ngẫu nhiên, lúc này Neural chưa biết gì hết Bây giờ hãy input chữ A Neural sẽ lấy tổng có trọng số của các inputs và so sánh kết quả với 0 Nếu kết quả dương thì output là 1, âm thì output là
0 Khả năng Neural đoán đúng là 50%, vì các weights đang có giá trị hoàn toàn ngẫu nhiên Nếu Neural đoán đúng thì chúng ta không cần làm gì cả, nhưng khi Neural đoán sai (output bằng 0), thì chúng ta phải tăng các weights của các inputs đang hoạt động (các inputs khác không) lên, sao cho lần tới tổng có trọng số sẽ vượt quá threshold và tạo nên output là 1
Ngược lại, khi đưa chữ B vào và Neural đoán sai (output bằng 1), thì ta phải giảm các weights của các inputs đang hoạt động xuống, sao cho lần tới tổng có trọng
số sẽ nhỏ hơn threshold và buộc Neural phải cho output bằng 0
Như vậy, khi dạy chữ B thành công rồi thì Neural có quên đi chữ đã học trước
đó là A không ? Không, vì khi input là các chữ khác nhau thì nhóm các đường inputs đang hoạt động cũng khác nhau hoặc là không hoàn toàn trùng nhau Nhớ là chúng ta chỉ biến đổi weights của các inputs đang hoạt động thôi Chúng ta chỉ việc lập đi lập lại quá trình dạy như trên cho tới khi Neural học thuộc bài mới thôi
2.2.5 Thuật toán huấn luyện mạng
2.2.5.1 Thuật Toán Lan Truyền Ngược Back Propagation
Đây là phương pháp thông dụng nhất để huấn luyện cho các mạng Neural truyền thẳng nhiều lớp
Tiêu chuẩn huấn luyện: Làm cho sai số đầu ra càng nhỏ càng tốt
Triết lý của phương pháp: dựa trên đầu ra để điều chỉnh trọng số của lớp ra, sau đó dựa trên tính toán của lớp ra để điều chỉnh trọng số của lớp ẩn
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:
1 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 xuất để 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
Trang 36Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay
- 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)
2 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
Những hạn chế của phương pháp 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
Header Page 36 of 137
Trang 372.3 LỌC MỊN ẢNH
Lọc mịn ảnh là một dạng lọc thông thấp, là giá trị của một điểm ảnh là trung bình trọng số của các điểm ảnh lân cận, hay giá trị điểm ảnh là kết quả của các điểm ảnh lân cận với một nhân Nhân có kích thước tuỳ ý 3x3, 5x5, kích thước nhân càng lớn thì càng nhiều điểm lân cận ảnh hưởng vào điểm ảnh kết quả Ví dụ một số nhân lọc mịn ảnh như sau:
Tiê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)
Trang 38Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay
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:
e v v p v dv E
j
j j
1
2 2
Do r(v)=rj là hằng số trong đoạn [vj , vj+1]
Với p(v) cho trước và số mức tái thiết L cố định, các mức quyết định vj , j= 1…L-1 và các mức tái thiết rj , j=0 L-1 cực tiểu hố MSE tuân theo quan hệ sau:
1
1
1 2
1 1 1
dv v vp r
L j
r r v
j
j
j
j v
v
v
v j
j j j
Tuy nhiên, không có cách giải quyết dưới dạng khép kín nào tồn tại trừ khi chấp nhận một số phép xấp xỉ
Bây giờ ta xem xét trường hợp ngoại lệ nhưng quan trọng với L=2 Đó là trường hợp nhị phân hố ảnh Khi đó MSE trở thành:
0 2
v p r v e
E
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:
dv v vp v
r
Header Page 38 of 137
Trang 392
1 1
dv v vp v
r
Như vậy đủ để biến đổi v1 từ v0 đến v2 MSE được tính bằng cách thay r0 và r1bằ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 W2
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
dv v p v
2 1 1
* 1
1
.maxarg
v v
v v
Trang 40Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay
2.5 ĐÁNH NHÃN THÀNH PHẦN LIÊN THÔNG
2.5.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
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 :
Header Page 40 of 137