Thậm chí, cùng một kí tự trong một văn bản do một người viết nhiều khi cũng có Chính vì vậy học viên đã chọn đề tài “Nghiên cứu về mô hình thống kê học sâu và ứng dụng trong nhận dạng c
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
MAI VĂN THỦY
NGHI£N CøU VÒ M¤ H×NH THèNG K£ HäC S¢U Vµ øNG DôNG TRONG NHËN D¹NG CH÷ VIÕT TAY H¹N CHÕ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
TH¸I NGUY£N - 2015
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
MAI VĂN THỦY
NGHI£N CøU VÒ M¤ H×NH THèNG K£ HäC S¢U Vµ øNG DôNG TRONG NHËN D¹NG CH÷ VIÕT TAY H¹N CHÕ
Chuyên ngành : Khoa Học Máy Tính
Mã số : 60 48 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Vũ Tất Thắng
TH¸I NGUY£N - 2015
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Qua đây tôi xin chân thành cảm ơn toàn thể các thầy cô trong khoa đào tạo sau đại học Trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên, những người đã trực tiếp giảng dạy, truyền đạt cho tôi kiến thức chuyên môn và phương pháp làm việc khoa học
Đặc biệt, tôi xin chân thành cảm ơn TS Vũ Tất Thắng, đã tận tình hướng
dẫn để tôi có thể hoàn thành luận văn này
Tôi cũng xin gửi lời cảm ơn tới gia đình bạn bè đã giúp đỡ, động viên và tạo điều kiện cho tôi trong quá trình làm luận văn
Tác giả luận văn
Mai Văn Thủy
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
MỤC LỤC iv
DANH MỤC HÌNH ẢNH vi
DANH MỤC BẢNG BIỂU vii
LỜI MỞ ĐẦU 1
Chương 1: GIỚI THIỆU ĐỀ TÀI 3
1.1 Giới thiệu về bài toán nhận dạng 3
1.1.1 Các giai đoạn phát triển 3
1.1.2 Tình hình nghiên cứu trong nước 4
1.1.3 Tình hình nghiên cứu ở nước ngoài 4
1.2 Các bước xử lý cho bài toán nhận dạng hoàn chỉnh 6
1.3 Kết luận chương 8
Chương 2: MÔ HÌNH SVM VÀ MÔ HÌNH THỐNG KÊ HỌC SÂU 9
2.1 Tổng quan về mô hình SVM (Support Vector Machine) 9
2.1.1 Cơ sở lý thuyết 9
2.1.1.1 Giới thiệu bài toán phân lớp nhị phân 9
2.1.1.2 Máy SVM tuyến tính 10
2.1.1.3 Máy SVM phi tuyến 17
2.1.2 Các thuật toán huấn luyện SVM 19
2.1.2.1 Thuật toán chặt khúc 19
2.1.2.2 Thuật toán phân rã 19
2.1.2.3 Thuật toán cực tiểu tuần tự 20
2.2 Cơ sở lý thuyết mô hình thống kê học sâu 23
2.2.1 Một số lý thuyết về mạng Neuron 23
2.2.1.1 Giới thiệu về mạng Neuron 23
2.2.1.2 Cấu trúc và hoạt động của mạng Neuron 23
2.2.1.3 Quá trình huấn luyện mạng và các thuật toán học mạng 28
Trang 52.2.2 Hopfield Network 31
2.2.2.1 Cấu trúc mạng Hopfield 31
2.2.2.2 Mạng Hopfield rời rạc 33
2.2.2.3 Mạng Hopfield liên tục 34
2.2.3 Boltzmann Machines 36
2.2.4 Restricted Boltzmann Machines 39
2.2.3 Thuật toán lan truyền ngược 40
2.3 Kết luận chương 42
Chương 3: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 43
3.1 Môi trường thực nghiệm 43
3.2 Dữ liệu thực nghiệm 43
3.3 Kết quả thực nghiệm với mô hình SVM 44
3.4 Huấn luyện mô hình và kết quả thực nghiệm với mô hình thống kê học sâu 45
3.4.1 Huấn luyện mô hình 45
3.4.1.1 Cấu trúc mô hình 45
3.4.1.2 Phương pháp huấn luyện và quy trình nhận dạng 47
3.4.2 Giao diện chính của chương trình 48
3.4.3 Kết quả thực nghiệm 49
3.5 Đánh giá kết quả thực nghiệm của hai mô hình 50
3.6 Kết luận chương 51
KẾT LUẬN CHUNG 52
TÀI LIỆU THAM KHẢO 54
PHỤ LỤC: HUẤN LUYỆN MÔ HÌNH 56
Trang 6DANH MỤC HÌNH ẢNH
Hình 1-1: Các bước trong nhận dạng chữ viết tay 6
Hình 2-1: Các siêu phẳng H1, H2 phân cách giữa hai lớp 9
Hình 2-2: Siêu phẳng tách tuyến tính 10
Hình 2-3: Không thể phân hoạch tập mẫu trên bằng một siêu phẳng 13
Hình 2-4: Một mặt phân chia phi tuyến có thể trở thành một siêu phẳng trong không gian lớn hơn 17
Hình 2-5: Cấu trúc của một neuron 24
Hình 2-6: Cấu trúc chung của mạng neuron 26
Hình 2-7: Cấu trúc của mạng Hopfield 31
Hình 2-8: Đồ thị hàm satlins 32
Hình 2-9: Mạng Hopfield liên tục sử dụng mạch điện tử 35
Hình 2-10: Một Boltzmann Machine với 3 nút ẩn 36
Hình 2-11: Một RBM đơn giản với 3 hidden units và 2 visible units 39
Hình 3-2: Giao diện chính của chương trình nhận dạng chữ viết tay hạn chế 48
Hình 3-3: Chương trình khi nhận dạng 1 ảnh bất kỳ 48
Hình 3-4: Nhận dạng và thống kê nhiều ảnh 49
Trang 7DANH MỤC BẢNG BIỂU
Bảng 2-1: Các hàm truyền cơ bản 27
Bảng 3-1: Kết quả thực nghiệm mô hình SVM trên 2 tập dữ liệu MNIST và Tuyển Sinh 44
Bảng 3-2: Kết quả thực nghiệm mô hình SVM trên tập dữ liệu MNIST 44
Bảng 3-3: Kết quả thực nghiệm mô hình SVM trên tập dữ liệu Tuyển Sinh 45
Bảng 3-4: Kết quả thực nghiệm trên 2 tập dữ liệu MNIST và Tuyển Sinh 49
Bảng 3-5: Kết quả thực nghiệm trên tập dữ liệu Tuyển sinh 50
Bảng 3-6: Bảng so sánh kết quả giữa hai mô hình 50
Trang 8LỜI MỞ ĐẦU
Nhận dạng chữ viết tay là bài toán khó trong lớp các bài toán nhận dạng chữ, và vẫn luôn thu hút được nhiều sự quan tâm nghiên cứu của các nhà khoa học Đặc biệt là trong vài thập niên gần đây, do sự thúc đẩy của quá trình tin học hóa trong mọi lĩnh vực, ứng dụng nhận dạng chữ càng có nhiều ý nghĩa khi được sử dụng cho các bài toán trong thực tế Cũng như nhiều bài toán nhận dạng tiếng nói, hình ảnh… khác, thì độ chính xác của hệ thống vẫn tiếp tục cần phải cải thiện nhằm vươn tới khả năng nhận dạng giống như con người
Tuy nhiên, với bài toán nhận dạng chữ viết tay thì vấn đề trở nên phức tạp hơn nhiều so với bài toán nhận dạng chữ in thông thường ở những vấn đề sau đây [3]:
Với chữ viết tay thì không thể có các khái niệm font chữ, kích cỡ chữ Các
kí tự trong một văn bản chữ viết tay thường có kích thước khác nhau Thậm chí, cùng một kí tự trong một văn bản do một người viết nhiều khi cũng có
Chính vì vậy học viên đã chọn đề tài “Nghiên cứu về mô hình thống kê học sâu
và ứng dụng trong nhận dạng chữ viết tay hạn chế” làm luận văn tốt nghiệp với
mong muốn phần nào áp dụng vào bài toán thực tế
Bài toán đã đặt ra phải giải quyết được những yêu cầu sau:
Nhận dạng được các ký tự từ ảnh đầu vào
Trang 9 Tiến hành nhận dạng kí tự đơn lẻ sử dụng mạng Neuron nhân tạo theo phương pháp học sâu Restricted Boltzmann machine (RBM)
Đánh giá kết quả và so sánh với mô hình Support Vector Machine Với nhưng yêu cầu đã đặt ra ở trên, cấu trúc của luận văn sẽ bao gồm những nội dung sau đây:
Chương 1:Tổng quan về đề tài
Giới thiệu về bài toán nhận dạng chữ viết tay, tình hình nghiên cứu trong và ngoài nước, quy trình chung để giải quyết bài toán và các phương pháp điển hình trong việc huấn luyện nhận dạng, phạm vi của đề tài
Chương 2: Mô hình SVM và mô hình thống kê học sâu
Trình bày về cơ sở lý thuyết của mô hình SVM (Support Vector Machine)
và huấn luyện trong bài toán nhận dạng chữ viết tay Cơ sở lý thuyết của mô hình thống kê học sâu: Hopfield network, Boltzmann Machines, Restricted Boltzmann Machines và thuật toán lan truyền ngược
Chương 3: Kết quả thực nghiệm và đánh giá
Trình bày các kết quả thực nghiệm của hai mô hình SVM và mô hình thống
kê học sâu, đưa ra kết quả đánh giá nhận dạng chữ viết tay hạn chế giữa mô hình SVM và mô hình thống kê học sâu
Trang 10Chương 1 GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu về bài toán nhận dạng
Nhận dạng chữ in: đã được giải quyết gần như trọn vẹn (sản phẩm FineReader
11 của hãng ABBYY có thể nhận dạng chữ in theo 192 ngôn ngữ khác nhau, phần mềm nhận dạng chữ Việt in VnDOCR 4.0 của Viện Công nghệ Thông tin – Viện Hàn lâm Khoa học và Công nghệ Việt Nam có thể nhận dạng được các tài liệu chứa
hình ảnh, bảng và văn bản với độ chính xác trên 98%)
Nhận dạng chữ viết tay vẫn còn là vấn đề thách thức lớn đối với các nhà nghiên cứu Bài toàn này chưa thể giải quyết trọn vẹn được vì nó hoàn toàn phụ thuộc vào người viết và sự biến đổi quá đa dạng trong cách viết và trạng thái sức khỏe, tinh
thần của từng người viết
1.1.1 Các giai đoạn phát triển
- Mô hình nhận dạng chữ viết được đề xuất từ năm 1951 do phát minh của M Sheppard được gọi là GISMO, một robot đọc-viết
- Năm 1954, máy nhận dạng chữ đầu tiên đã được phát triển bởi J Rainbow dùng để đọc chữ in hoa nhưng rất chậm
- Năm 1967, Công ty IBM đã thương mại hóa hệ thống nhận dạng chữ
Giai đoạn 2 (1980 - 1990)
- Với sự phát triển của các thiết bị phần cứng máy tính và các thiết bị thu nhận dữ liệu, các phương pháp luận nhận dạng đã được phát triển trong giai đoạn trước
Trang 11đã có được môi trường lý tưởng để triển khai các ứng dụng nhận dạng chữ
- Các hướng tiếp cận theo cấu trúc và đối sánh được áp dụng trong nhiều hệ thống nhận dạng chữ
- Trong giai đoạn này, các hướng nghiên cứu chỉ tập trung vào các kỹ thuật nhận dạng hình dáng chứ chưa áp dụng cho thông tin ngữ nghĩa Điều này dẫn đến sự hạn chế về hiệu suất nhận dạng, không hiệu quả trong nhiều ứng dụng thực tế
Giai đoạn 3 (1990 - nay)
- Các hệ thống nhận dạng thời gian thực được chú trọng trong giai đoạn này
- Các kỹ thuật nhận dạng kết hợp với các phương pháp luận trong lĩnh vực học máy (Machine Learning) được áp dụng rất hiệu quả
- Một số công cụ học máy hiệu quả như mạng Neuron, mô hình Markov ẩn, SVM (Support Vector Machines) và xử lý ngôn ngữ tự nhiên
1.1.2 Tình hình nghiên cứu trong nước
Tại Việt Nam, trong những năm gần đây có rất nhiều những nhóm nghiên cứu
về nhận dạng chữ viết tay sử dụng các mô hình phổ biến hiện nay như: SVM (Support Vector Machine), HMM (Hidden Markov Model), mạng Neuron… Nhưng nhìn chung thì chất lượng nhận dạng của các mô hình này đều chưa cao vì chữ viết tay còn nhiều các yếu tố tác động đến như: độ cao, độ nghiêng, các nét liền… của chữ viết đều ảnh hưởng rất nhiều đến quá trình nhận dạng Hiện tại, chúng ta mới chỉ có được những sản phẩm thử nghiệm như hệ thống nhận dạng chữ số và chữ cái viết tay rời rạc trên các phiếu xuất nhập cảnh của nhóm nghiên cứu ở Đại học quốc gia thành phố Hồ Chí Minh,…
1.1.3 Tình hình nghiên cứu ở nước ngoài
Nhận dạng chữ viết đã được nghiên cứu hơn 40 năm qua Ngày nay nhận dạng chữ viết đã nhận được sự quan tâm đáng kể do sự phát triển của các máy tính cầm tay và điện thoại cầm tay dựa trên các bàn phím, chuột và nhiều dạng thiết bị định
vị khác Nhận dạng chữ viết tay được thực hiện qua hai hình thức là nhận dạng online và nhận dạng offline Nhận dạng online có nghĩa là máy tính sẽ nhận dạng
Trang 12các chữ được viết lên màn hình ngay sau khi nó được viết Đối với những hệ nhận dạng này, máy tính sẽ lưu lại các thông tin về nét chữ như thứ tự nét viết, hướng và tốc độ của nét viết trong khi nó đang được viết ra Đây chính là cơ sở để máy tính nhận dạng được chữ cái, do đó việc nhận dạng không gặp quá nhiều khó khăn Hệ thống nhận dạng chữ viết tay hạn chế trực tuyến trên một trạm làm việc của IBM [11] do nhóm nghiên cứu gồm H.S.M.Beigi, C.C.Tapert, M.Ukeison và C.G.Wolf ở phòng thực hành Watson IBM cài đặt là một trong những sản phẩm nhận dạng chữ viết tay online tiêu biểu nhất Tuy nhiên, do chưa có nhiều ứng dụng thực tế nên nhận dạng chữ viết tay trực tuyến chưa được biết đến nhiều và khi nhắc đến nhận dạng chữ viết tay chúng ta thường hiểu hình thức nhận dạng ở đây là offline
Các kết quả nhận dạng chữ viết tay offline hiện này còn rất hạn chế Các kết quả nghiên cứu chưa tìm được giải pháp đủ tốt để giải quyết hết những khó khăn tiêu biểu sau của bài toán nhận dạng chữ viết tay:
Kích thước của chữ viết tay không đồng đều
Kiểu dáng chữ của mỗi người viết đều rất khác nhau
Giữa các kí tự trong cùng một từ thường có nét nối, thậm chí dính liền vào nhau
Các kí tự có thể thiếu hoặc thừa nét
Xuất hiện tình trạng dính dòng
Do những khó khăn trên nên khi giải quyết bài toán nhận dạng chữ viết tay đều buộc phải giới hạn trong một phạm vi nào đó với những tiêu chuẩn cụ thể cho mẫu chữ nhận dạng Chính vì vậy, các kết quả thu được cũng chỉ được áp dụng một cách hạn chế ở lĩnh vực hẹp trong một bài toán cụ thể nào đó
Một số hệ nhận dạng chữ viết tay tiêu biểu có thể kể đến như: hệ thống nhận dạng chữ viết tay trong lĩnh vực kiểm tra tài khoản ở ngân hàng của nhóm nghiên cứu Simon và O.Baret (Laoria/CNRS & ENPC, Paris) [11], hệ thống phân loại tự động địa chỉ thư ở bưu điện của M.Pfister, S.Behnke và R.Rojas ở Đại học tổng hợp Berlin, Đức [5]…
Trang 131.2 Các bước xử lý cho bài toán nhận dạng hoàn chỉnh
Nhận dạng chữ viết tay thường bao gồm năm giai đoạn: tiền xử lý (preprocessing), tách chữ (segmentation), trích chọn đặc trưng (representation), huấn luyện và nhận dạng (training and recognition), hậu xử lý (postprocessing)
Hình 1-1: Các bước trong nhận dạng chữ viết tay
Tiền xử lý (preprocessing): giảm nhiễu cho các lỗi trong quá trình quét ảnh, hoạt động viết của con người, chuẩn hóa dữ liệu và nén dữ liệu
Tách chữ (segmentation): chia nhỏ văn bản thành những thành phần nhỏ hơn, tách các từ trong câu hay các kí tự trong từ
Trích trọn đặc trưng (representation): giai đoạn đóng vai trò quan trọng
nhất trong nhận dạng chữ viết tay Để tránh những phức tạp của chữ viết tay cũng như tăng cường độ chính xác, ta cần phải biểu diễn thông tin chữ viết dưới những dạng đặc biệt hơn và cô đọng hơn, rút trích các đặc điểm riêng nhằm phân biệt các ký tự khác nhau Trong luận văn này, tôi nghiên cứu và tìm hiểu về mô hình học thống kê học sâu, trong mô hình này thì khi huấn luyện và sử dụng dữ liệu chúng ta không cần sử dụng đặc trưng của ảnh đầu
vào nên có thể bỏ qua bước trích rút đặc trưng
Huấn luyện và nhận dạng (training and recognition): phương pháp điển
hình so trùng mẫu, dùng thống kê, mạng neuron, mô hình markov ẩn, trí tuệ
Trang 14nhân tạo hay dùng phương pháp kết hợp các phương pháp trên.Trong luận văn này, tôi sử dụng mô hình thống kê học sâu (deep learning) để huấn luyện và nhận dạng, nội dung này sẽ được trình bày trong các chương sau
của luận văn
Hậu xử lý (postprocessing): sử dụng các thông tin về ngữ cảnh để giúp tăng cường độ chính xác, dùng từ điển dữ liệu
Ban đầu các văn bản chữ viết tay được scan và đưa vào hệ thống nhận dạng, với quá trình tiền xử lý thì ảnh sẽ được một ảnh mà do hệ thống yêu cầu để huấn luyện và nhận dạng (có thể là ảnh nhị phân hay ảnh đa mức xám) Trong mô hình thống kê học sâu, ảnh được sử dụng để huấn luyện và nhận dạng là ảnh đa mức xám (các pixel được biểu diễn bởi các giá trị từ 0 đến 255) Tại quá trình tiền xử lý thì ảnh cũng đã được xử lý loại bỏ nhiễu, các giá trị không cần thiết trong ảnh đầu vào
Tại bước tách chữ thì với ảnh đã được tiền xử lý, khi đi qua bước này sẽ được thực hiện tách dòng, tách chữ, tách kí tự để thực hiện nhận dạng, tùy theo quy định của một hệ thống khi huấn luyện Khi đã được tách rời các kí
tự thì việc tiếp theo ảnh để nhận dạng sẽ được lưu dưới dạng ma trận điểm, với tùy từng vị trí của điểm ảnh mà giá trị có thể khác nhau (từ 0 đến 255), trong mô hình Deep Learning thì ma trận điểm ảnh sẽ được quy về dạng chuẩn là 28 x 28
Sau khi qua các bước xử lý ở trên thì ảnh chính thức được đưa vào huấn luyện và nhận dạng, trong quá trình huấn luyện và nhận dạng sẽ sử dụng các mô hình và thuật toán cần thiết để thực hiện tính toán và xử lý, những thuật toán và quá trình xử lý sẽ được trình bày chi tiết trong các phần sau của luận văn
Cuối cùng khi các ảnh đầu vào đã được đưa vào nhận dạng và cho ra kết quả thì bước quan trọng không kém là quá trình hậu xử lý với các kết quả ở trên, và trả lại kết quả cho người dử dụng [3]
Trang 151.3 Kết luận chương
Luận văn “Nghiên cứu về mô hình thống kê học sâu và ứng dụng trong nhận
dạng chữ viết tay hạn chế” được thực hiện với mục đích giải quyết một lớp con các
bài toán nhận dạng chữ viết tay mà cụ thể là nhận dạng các kí tự đơn lẻ là các chữ
số từ 0 đến 9, đây là bước cần thiết trong bài toán nhận dạng chữ viết tiếng Việt
Từ đó sẽ tạo cơ sở tiếp theo để có thể xây dựng tiếp mô hình nhận dạng các kí tự tiếng Việt đơn lẻ, và sẽ tiến tới xây dựng một hệ thống nhận dạng văn bản viết tay tiếng Việt hoàn chỉnh, và cũng có thể xây dựng nên các phần mềm trên các thiết bị
di động áp dụng vào việc hỗ trợ việc học tập và sinh hoạt của người khiếm thị Luận văn sẽ tập trung vào nghiên cứu về cơ sở lý thuyết mô hình Deep Learning, các thuật toán được sử dụng, thực hiện huấn luyện bằng mô hình Deep Learning, từ đó cài đặt chương trình mô phỏng trên các ngôn ngữ như Matlab, PHP, C#
Trang 16Chương 2
MÔ HÌNH SVM VÀ MÔ HÌNH THỐNG KÊ HỌC SÂU
2.1 Tổng quan về mô hình SVM (Support Vector Machine)
2.1.1 Cơ sở lý thuyết
2.1.1.1 Giới thiệu bài toán phân lớp nhị phân
Bài toán phân lớp nhị phân [7] này được phát biểu như sau: Cho tập dữ liệu gồm N mẫu huấn luyện {( , ), ,(x y1 1 x N,y N)} trong đó xi RD và yi {±1} Tìm
một siêu phẳng phân cách w.x + b = 0 để tách tập dữ liệu trên thành 2 lớp, trong đó
w là véc tơ pháp tuyến của siêu phẳng, có tác dụng điều chỉnh hướng của siêu
phẳng, giá trị b có tác dụng di chuyển siêu phẳng song song với chính nó Có thể có
nhiều siêu phẳng để phân cách được hai tập dữ liệu đó (hình dưới) và cũng đã có nhiều thuật toán để giải bài toán này, chẳng hạn như thuật toán Perceptron của Rosenblatt, thuật toán biệt thức tuyến tính của Fisher Tuy nhiên vấn đề là cần tìm
ra siêu phẳng nào làm cho khoảng cách Euclid giữa hai lớp trên là lớn nhất, khi đó bài toán phân lớp mới được giải quyết triệt để và phương pháp SVM được sử dụng
để giúp tìm ra siêu phẳng này [2]
Hình 2-1: Các siêu phẳng H , H phân cách giữa hai lớp
Trang 172.1.1.2 Máy SVM tuyến tính
SVM trong trường hợp tập mẫu phân hoạch tuyến tính được
Ý tưởng chính của SVM là tìm một siêu phẳng phân cách H: w.x + b = 0 [8] và hai
siêu phẳng song song với nó:
H ywx b
với điều kiện không có phần tử nào nằm giữa H1 và H2 sao cho khoảng cách
(margin) giữa H1 và H2 đạt cực đại (Hình 2.2)
Hình 2-2: Siêu phẳng tách tuyến tính
Mục đích của ta là cực đại khoảng cách giữa H1 và H2 Vì vậy, chúng ta phải xác định cho được những mẫu dương nằm trên H1 và mẫu âm nằm trên H2 Các mẫu
này được gọi là vector hỗ trợ bởi vì chỉ có chúng tham gia vào việc xác định siêu
phẳng phân cách, còn các mẫu khác thì có thể loại bỏ
Trang 18Ta có hai khoảng cách của một điểm nằm trên tới H là | | 1
w.x + b> +1, với các mẫu dương y i 1
w.x + b< -1, với các mẫu âm y i 1Hai điều kiện này có thể kết nối lại thành
Trang 19Từ (1) và (2) ta có:
1
N
i i i i
Thế vào L (w, b, α), ta có:
12
khác có thì nằm về hai phía của siêu phẳng và [4][6]
Khi đã giải được các ta có thể tính:
1
N
i i i i
SVM tuyến tính trong trường hợp tập mẫu không phân hoạch tuyến tính được
Trường hợp tập mẫu có thể phân chia tuyến tính được chỉ là một trường hợp đặc biệt Trong trường hợp tổng quát, tập mẫu là một tập không phân chia tuyến tính được bằng siêu phẳng
Trang 20Hình 2-3: Không thể phân hoạch tập mẫu trên bằng một siêu phẳng
Tuy nhiên ta vẫn muốn dùng siêu phẳng để phân chia tập mẫu này Để có thể áp dụng được phương pháp trong phần trên, ta phải gán cho mỗi mẫu x i một sai số i
không âm để “xem như có thể phân chia tuyến tính”
N T
Trang 21w y x
Để huấn luyện SVM, chúng ta nghiên cứu thông qua miền xác định của bài toán đối
ngẫu và cực đại hàm mục tiêu Giải pháp tối ưu này có thế được kiểm tra bằng cách
sử dụng điều kiện KKT
Định lý KKT: Điều kiện tối ưu KKT của bài toán đối ngẫu (**) là:
Đạo hàm L (w, b, ξ; α) theo các biến w, b, ξ phải triệt tiêu (điều này buộc phải luôn luôn thỏa mãn đối với bài toán đối ngẫu)
Với 1 i N,i( (y w x i T ib)i1) (3) 0
0
i i
(4) Phụ thuộc vào giá trị của i, ta có ba trường hợp để xem xét:
1 Nếu i thì 0 i Ci C 0
Từ phương trình (4), 0 Vì vậy ta có: y w x( T b) 1 0
Trang 222 Nếu 0i C, từ phương trình (3), ta có:
y w x b (5) Chú ý rằng i Ci 0, vì vậy i 0 (phương trình 4) Thế vào phương trình (5) ta có:
Kiểm tra điều kiện tối ưu
Vì bài toán đối ngẫu không giải trực tiếp đối với ngưỡng b,bài toán này sẽ có lợi khi kiểm tra điều kiện KKT mà không sử dụng ngưỡng b
Đại lượng y w x i( T ib) 1 (buộc phải với mọi điều kiện i nếu điều kiện 0KKT thỏa mãn) cũng có thể được viết:
Trang 23Chú ý: Với E i F ib, ta có E E i- j F i - F j (Phương trình này rất có ích,
vì thuật toán SMO của Platt sử dụng E i - E khi tối ưu hai hệ số Lagrange j
I I I I F b j I I I F b
Việc so sính này không
sử dụng ngưỡng b
Trang 242.1.1.3 Máy SVM phi tuyến
Trong trường hợp tổng quát, thực tế mặt phân hoạch có thể là một mặt phi tuyến bất kỳ (Hình 2-4) Nếu dữ liệu không khả tách tuyến tính, ta có thể ánh xạ các dữ liệu đầu vào sang một không gian đặc trưng mới có số chiều cao hơn sao cho
dữ liệu này sẽ khả tách tuyến tính Giả sử các mẫu x i thuộc không gianR , không n
gian này được gọi là không gian giả thiết (hypothesis space) Để tìm mặt phẳng phi
tuyến trong không gian này, có thể áp dụng một thủ thuật là ánh xạ vector mẫu x từ i
n
R vào một khoảng không gian R có số chiều cao lớn hơn (d > n, d có thể bằng vô d
cùng) R được gọi là không gian đặc trưng (feature space) Sau đó áp dụng phương d
pháp SVM tuyến tính để tìm ra một siêu phẳng phân hoạch trong không gian đặc trưng
d
R Siêu phẳng này sẽ là ứng với mặt phi tuyến trong không gian n
R [2]
Hình 2-4: Một mặt phân chia phi tuyến có thể trở thành một siêu phẳng trong
không gian lớn hơn
Ánh xạ từ không gian R vào không gian n R d;
Gọi ánh xạ được áp dụng là , như vậy:
Trang 251 ,
1
( ) ( )2
Giả sử: ( ) (x i x j)K x x( ,i j) Nghĩa là, tích vô hướng trong không gian
đặc trưng tương đương với một hàm nhân (kernel) của không gian đầu vào Vì vậy,
ta không cần phải tính trực tiếp ( ) (x i x j) mà chỉ cần thông qua hàm nhân ( ,i j)
K x x để tính tích vô hướng trong một không gian mới với số chiều cao hơn
Điều kiện Mercer có thể dùng để xác định một hàm có thể được sử dụng
như là một hàm nhân hay không:
Định lý Mercer: Một hàm K x y( , ) có thể được sử dụng như một hàm nhân nếu:
- K phải đối xứng: K x y( , )K y x( , ) với mọi , D
x yR
- Tồn tại một ánh xạ và một khai triển ( , ) ( ) ( )i i
i
K x y x y nếu và chỉ nếu với mỗi hàm g x sao cho ( ) g x dx( )2 hữu hạn thì:
( , ) ( ) ( ) 0
K x y g x g y dxdy
Sau đây là các hàm nhân được sử dụng rộng rãi: [8]
Hàm nhân đa thức (Polynominal):
( , ) ( )d
K x y x y dN,R
Hàm nhân Gauss (Gaussian RBF-Radial Basic Function):
2 2
Trang 262.1.2 Các thuật toán huấn luyện SVM
2.1.2.1 Thuật toán chặt khúc
Thuật toán chặt khúc (Chunking) bắt đầu với một tập con bất kì (chunk) của
tập dữ liệu huấn luyện, sau đó huấn luyện SVM theo một phương án tối ưu trên chunk dữ liệu vừa chọn Tiếp đến, thuật toán giữ lại vector hỗ trợ (các mẫu có
0
i
) từ chunk sau khi đã loại bỏ các phần tử khác (tương ứng với i 0) và dùng các vector hỗ trợ này để kiểm tra các phần tử còn lại của tập dữ liệu Phần tử nào vi phạm điều kiện KKT thì được bổ sung vào các tập các vector hỗ trợ để tạo ra chunk mới Công việc này được lặp đi lặp lại, việc khởi tạo lại cho mỗi bài toán con mới phụ thuộc vào các giá trị đầu ra của trạng thái trước đó và tiếp tục tối ưu bài toán con mới với các tham số tối ưu đã được chọn Thuật toán sẽ dừng lại khi thỏa mãn điều kiện tối ưu Chunk của dữ liệu tại thời điểm đang xét thường
được hiểu như tập làm việc (working set) Kích thước của tập làm việc luôn thay
đổi, nhưng cuối cùng nó bằng số lượng i khác không (bằng số lượng vector hỗ trợ) Phương pháp này được sử dụng với giả thiết rằng ma trận Gram dùng để lưu tích vô hướng của từng cặp các vector hỗ trợ phù hợp với kích thước bộ nhớ (chúng
ta có th ể tính lại ma trận Gram bất cứ lúc nào khi thấy cần thiết, nhưng điều này sẽ làm giảm tốc độ huấn luyện) Trong thực nghiệm, có thể xẩy ra trường hợp số lượng vector hỗ trợ quá lớn, làm cho ma trận Gram vượt quá khả năng lưu trữ của
máy tính
2.1.2.2 Thuật toán phân rã
Thuật toán phân rã (Decomposition) khắc phục được khó khăn của thuật toán Chunking bằng cách cố định kích thước của bài toán con (kích thước của ma trận
Gram) Vì vậy tại mọi thời điểm, một phần tử mới được bổ sung vào tập làm việc
thì một phần tử khác bị loại ra Điều này cho phép SVM có khả năng huấn luyện với tập dữ liệu lớn Tuy nhiên, thực nghiệm cho thấy phương pháp này hội tụ rất chậm [4]
Trong thực nghiệm, ta có thể chọn vài mẫu để bổ sung và loại bỏ từ bài toán
Trang 27con để tăng tốc độ hội tụ Thuật toán này được trình bày tóm tắt như sau:
Input
- Tập S gồm N mẫu huấn luyện {( ,x y i i)}i 1, ,N
- Kích thước của Working Set là M
Output
Tập { }i i 1, ,N
1 Khởi tạo
Đặt các i 0;
Chọn các Working Set B với kích thước M;
2 Tìm nghiệm tối ưu
Repeat
Giải bài toán tối ưu cục bộ trên B;
Cập nhật lại B;
Until <thỏa mãn điều kiện tối ưu toàn cục>
2.1.2.3 Thuật toán cực tiểu tuần tự
Thuật toán cực tiểu tuần tự (SMO -Sequential Minimal Optimization) [9] là một thuật toán đơn giản để giải bài toán quy hoạch lồi SVM một cách nhanh chóng
mà không cần lưu trữ ma trận Gram SMO phân tích bài toán quy hoạch lồi tổng quát thành các bài toán quy hoạch lồi con, sử dụng định lý Osuma để đảm bảo sự hội tụ
Thuật toán này là trường hợp đặc biệt của thuật toán Decomposition, tức là
nó giải bài toán quy hoạch lồi với kích thước tập làm việc là 2 trong mỗi bước lặp
Ưu điểm của thuật toán này là có thể giải bài toán tối ưu bằng phương pháp giải tích
a Tối ưu hai i
Thuật toán SMO thực hiện hai công việc chính: Giải bài toán tối ưu cho hai nhân tử Lagrange bằng phương pháp giải tích và một phương pháp Heuristic để
Trang 28chọn hai nhân tử cho việc tối ưu
Thuật toán SMO tìm kiếm thông qua miền xác định của bài toán đối ngẫu để cực đại hàm mục tiêu:
12
ưu Bản chất của nó là thuật toán leo đồi
b Cập nhật tham số mỗi bước tối ưu thành công
Khi 1, 2bị thay đổi bởi 1,2, ta có thể cập nhật E F w (đối với hàm i, ,inhân tuyến tính) và b Cho E x y là lỗi đánh giá trên ( , )( , ) x y :
Trang 29N
i i i i
c Chọn hai icho việc tối ưu
Giải thuật Heuristic đối với việc chọn hai i cho vài toán tối ưu trong thuật toán SMO gốc như sau:
Vòng lặp ngoài, ta chọn i thứ nhất; vòng lặp trong, ta chọn i thứ hai sao cho |E2 -E cực đại 1|
Vòng lặp ngoài, ta luân phiên giữa duyệt qua tập tất cả cá mẫu và tập các vector hỗ trợ (có 0i C) (ưu tiên duyệt qua tập các vector hỗ trợ, nếu không có mới duyệt toàn bộ mẫu), chọn ra mẫu vi phậm điều kiện KKT
Có ithứ nhất, vong lặp trong tìm kiếm một vector hỗ trợ sao cho
2 - 1
|E E cực đại Đầu tiên nó duyệt qua các vector hỗ trợ, bắt đầu tại |một vị trí ngẫu nhieeun; Nếu công việc này cũng bị lỗi, nó bắt đầu duyệt qua toàn bộ mẫu, cũng bắt đầu tại một vị trí ngẫu nhiên
Bởi vì thuật toán này sử dụng hầu hết thời hian để điều chỉnh các mẫu không xác định, nên E của cá mẫu này phải được lưu trữ lại i
Trang 302.2 Cơ sở lý thuyết mô hình thống kê học sâu
Định nghĩa: Học sâu là phương pháp sử dụng nhiều lớp các đơn vị xử lý phi
tuyến để trích trọn các đặc trưng và chuyển đổi Trong các lớp này thì giá trị của các lớp đầu ra của lớp trước sẽ là giá trị đầu vào cho lớp kế tiếp nó Các thuật toán được sử dụng có thể là thuật toán học có giám sát hoặc không có giám sát Học sâu thì thường được áp dụng cho các mô hình nhận dạng mẫu và các bài toán phân loại thống kê Các thuật toán học sâu khác so với các thuật toán học nông ở việc biến đổi các tín hiệu tham
số khi nó truyền từ lớp đầu vào cho lớp đầu ra, nơi một tham số biến đổi là một đơn vị
xử lý có khả năng huấn luyện cho các tham số, chẳng hạn như trọng số và ngưỡng
2.2.1 Một số lý thuyết về mạng Neuron
2.2.1.1 Giới thiệu về mạng Neuron
Định nghĩa: Mạng neuron nhân tạo, Artificial Neural Network (ANN) gọi
tắt là mạng neuron, neural network, là một mô hình xử lý thông tin phỏng theo cách
thức xử lý thông tin của các hệ neuron sinh học Nó được tạo lên từ một số lượng
lớn các phần tử (gọi là phần tử xử lý hay neuron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thống nhất để giải quyết một
vấn đề cụ thể nào đó
Một mạng neuron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng
mẫu, phân loại dữ liệu, ) thông qua một quá trình học từ tập các mẫu huấn luyện Về
bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các neuron
2.2.1.2 Cấu trúc và hoạt động của mạng Neuron
a Cấu trúc của một neuron
Từ định nghĩa ta thấy đơn vị hình thành nên mạng neuron là các neuron.Chức năng của mạng neuron nhân tạo tương tự như chức năng đơn giản nhất của các neuron sinh học đó là tích lũy (ghi nhớ) những tri thức đã được học về các sự vật để biết, phân biệt chúng mỗi khi gặp lại Chức năng này được hình thành thông qua một chuỗi liên tiếp các quá trình xử lý thông tin của các neuron trong mạng
Về cơ bản, mỗi neuron sinh học thực hiện nhiệm vụ của mình thông qua các bước: nhận đầu vào, xử lý đầu vào đó, đưa dữ liệu đã được xử lý ra output và liên
Trang 31lạc với các neuron khác để gửi output này đi Với bản chất là mô hình mô phỏng đơn của của neuron sinh học, neuron nhân tạo cũng thực hiện nhiệm vụ của mình thông qua các thao tác: nhận đầu vào từ các neuron trước nhóm xử lý đầu vào bằng cách nhân mỗi đầu vào này với trọng số liên kết tương ứng và tính tổng các tích thu được rồi đưa ra một hàm truyền, sau đó gửi kết quả cuối cùng cho các neuron tiếp theo hoặc đưa ra output Cứ như vậy các neuron này hoạt động phối hợp với nhau tạo thành hoạt động chính của mạng neuron
Chúng ta có thể hình dung rõ rang hơn quy trình xử lý thông tin của một neuron qua cấu trúc của nó được thể hiện trong hình 2-5
Hình 2-5: Cấu trúc của một neuron
Trong hình vẽ trên:
( ,x x1 2,,x p) với p : là các tín hiệu đầu vào của neuron Các tín hiệu 1này có thể là đầu ra của các neuron trước đó hoặc đầu vào ban đầu của mạng và thường được đưa vào dưới dạng một vector p chiều
w k1,w k2,,w kp là tập các trọng số liên kết của neuron k với p đầu vào
tương ứng ( ,x x1 2,,x p) Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học của mạng
là hàm tổng trên một neuron, dùng để tính tổng các giá trị kích hoạt lên neuron đó Thông thường, đây là tổng của các tích giữa đầu vào với
Trang 32trọng số liên kết tương ứng của neuron
u k là tổng các giá trị kích hoạt lên neuron thứ k, giá trị này chính là đầu
ra của hàm tổng
b k là ngưỡng (còn gọi là hệ số bias) của neuron thứ k, giá trị này được dùng như một thành phần phân ngưỡng trên hàm truyền và cũng dược cập nhật liên tục trong quá trình học của mạng
f(.) là hàm truyền, còn gọi là hàm kích hoạt (activation function) Hàm truyền được dùng để giới hạn phạm vi đầu ra của nỗi neuron Đối số của hàm là giá trị hàm tổng và ngưỡng b k Thông thường, phạm vi đầu ra của mỗi neuron được giới hạn trong đoạn [0,1] hoặc [-1,1] Như vậy miền giá trị của các hàm kích hoạt cũng là một trong hai đoạn trên Có rất nhiều hàm truyền thường được dùng, việc lựa chọn hàm truyền nào cho phù hợp tùy thuộc vào từng bài toán
y k là tín hiệu đầu ra của neuron thứ k, mỗi neuron thường có một đầu ra
và tối đa là một đầu ra Giá trị y k được tính theo công thức:
b Hoạt động của mạng neuron
Một mạng neuron có thể có nhiều lớp/tầng mạng và ít nhất phải có một lớp đó
là lớp đầu ra (lớp đầu vào thường không được tính là một lớp mạng) Mỗi lớp có thể
có một hoặc nhiều neuron Cấu trúc tổng quát của mạng neuron được thể hiện trong hình 2-6 dưới đây:
Trang 33Hình 2-6: Cấu trúc chung của mạng neuron
Mạng neuron với cấu trúc như hình vẽ trên có thể mô tả như sau:
Đầu vào của mạng vector có kích thước p: ( ,x x1 2,,x p) và đầu ra là vector a a1, 2,,a q có kích thước q Trong vài toán phân loại mẫu, kích thước đầu vào của mạng là kích thước của mẫu đầu vào, kích thước đầu
ra của mạng chính là số lớp cần phân loại Ví dụ, trong bài toán nhận dạng chữ số, kích thước đầu ra của mạng là 10 tương ứng với 10 chữ số 0,…,9, trong vài toán nhận dạng chữ cái tiếng Anh viết thường, kích thước đầu ra của mạng là 26 tương ứng với 26 chữ cái a…z
Lớp đầu tiên là lớp H , sau đó đến lớp ẩn thứ hai 1 H , tiếp tục như vậy 2
cho đến lớp ẩn cuối cùng rồi lớp đầu ra O
Các neuron trong các lớp có cấu trúc như trên hình 2-4, liên kết giữa các neuron giữa các lớp có thể là liên kết đầy đủ (mỗi neuron thuộc lớp sau liên kết với tất cả các neuron ở lớp trước nó) hoặc liên kết chọn lọc (mỗi neuron thuộc lớp sau liên kết với tất cả neuron ở lớp trước đó)
Đầu ra của lớp trước chính là đầu vào của lớp ngay sau nó
Hàm truyền tại các neuron không nhất thiết giống nhau
Với cấu trúc như vậy, hoạt động của mạng neuron diễn ra như sau: đầu tiên
vector đầu vào được lan truyền qua lớp H Tại lớp này, mỗi neuron nhận vector 1
đầu vào rồi xử lý (tính tổng có trọng số của các đầu vào rồi cho qua hàm truyền) và
Trang 34cho ra kết quả tương ứng Đầu ra của lớp H chính là đầu vào của lớp 1 H , do đó 2
sau khi lớp H cho kết quả ở đầu ra của mình thì lớp 1 H nhận được đầu vào và tiếp 2
tục quá trình xử lý Cứ như vậy cho tới khi thu được đầu ra sau lớp O, đầu ra này chính là đầu ra cuối cùng của mạng
Bàn về mô hình mạng neuron thường gặp, mô hình mà chúng ta hay gặp
nhất là mạng neuron nhiều tầng truyền thẳng MLP (Multi Layer Perceptrons) Mạng này có cấu trúc như mô tả trên hình 2-6 chỉ cụ thể hơn ở chỗ: liên kết giữa các neuron ở các lớp thường là liên kết đầu đủ Nhiều thực nghiệm đã chứng minh rằng: mạng MLP (chỉ cần hai lớp neuron) với thuật toán huấn luyện và thuật toán lan truyền ngược sai số và hàm truyền sigmoid là một trong những mô hình có thể sử dụng để giải quyết các bài toán nhận dạng chữ viết
c Hàm truyền
Có rất nhiều hàm truyền có thể dùng trong các mạng neuron Hàm truyền được phân loại theo hàm tuyến tính hoặc phi tuyến, hàm liên tục hay gián đoạn Việc lựa chọn hàm truyền phù hợp với bài toán thường được tiến hành qua thực nghiệm Trong bảng dưới đây, chúng ta dùng công thức y f x( ) để biểu diện hàm truyền
Sử dụng trong mạng ADALINE
Trang 352.2.1.3 Quá trình huấn luyện mạng và các thuật toán học mạng
a Mạng neuron và bài toán phân loại mẫu
Một cách tổng quát, có thể nói nhiệm vụ của các hệ nhận dạng trong các bài toán nhận dạng chính là phân loại mẫu Có nghĩa là từ một mẫu vào ban đầu, hệ nhận dạng cần chỉ ra nó thuộc về lớp phân loại nào Ví dụ, trong nhận dạng chữ số viết tay, tất cả các kiểu viết khác nhau của số “0” đều được quy về một lớp, lớp số
“0” và hệ nhận dạng cần được huấn luyện sao cho khi gặp một mẫu bất kỳ của số
“0” nó phải chỉ ra được đầu vào này thuộc về lớp số “0” Trong hệ nhận dạng chữ
số, số lớp phân loại là 10 lớp, tương ứng với 10 chữ số từ 0 đến 9 Một cách tương
tự, trong nhận dạng chữ cái viết tay tiếng Anh chữ thường, với đầu vào là ảnh của
ký tự, hệ nhận dạng cần phân loại mẫu đó về một trong số 26 lớp tương ứng với 26 chữ cái từ “a” tới “z” Trong hệ nhận dạng này, số lớp phân loại là 26 lớp [1][4] Bên cạnh bài toán nhận dạng chữ viết, nhiều bài toán nhận dạng khác cũng có thể coi là bài toán phân loại mẫu như nhận dạng dấu vân tay dùng làm mã khóa trong các hệ an ninh, nhận dạng khuôn mặt hay tiếng nói…
Câu hỏi đặt ra đối với chúng ta là sử dụng mô hình nào cho các hệ nhận dạng này để nó không chỉ phân loại được những mẫu đã học mà còn có thể tổng quát hóa