Luận văn Mạng NEURAL RBF và ứng dụng nhận dạng chữ viết tay

+Tìm hiểu được bài toán nhận dạng chữ viết tay, hiểu được các bước để xử lý bài toán nhận dạng chữ viết tay.Tìm hiểu và tiến hành cài đặt được 3 phương pháp trích chọn đặc trưng chữ viết tay đó là:phương pháp kết hợp biến đổi DCT và thuật toán PCA, phương pháp sử dụng momen Legendre, phương pháp s ử dụng mạng Neural nhân chập

pdf58 trang | Chia sẻ: lylyngoc | Lượt xem: 4127 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Mạng NEURAL RBF và ứng dụng nhận dạng chữ viết tay, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
m tra. Mỗi dữ liệu bao gồm 12 giá trị đầu vào (các đặc trưng thu được khi chiếu tia gamma) và 2 giá trị đầu ra (tỉ lệ dầu và nước), tất cả đều được biểu diễn bằng số thực. Dữ liệu được tải từ địa chỉ: Tôi đã tiến hành xây dựng mạng Neural RBF với kiến trúc như sau: có 12 neuron đầu vào, 2 neuron đầu ra, còn số lượng neuron tầng ẩn tùy vào thuật toán huấn luyện. Sau đó tiến hành huấn luyện với 4 phương pháp huấn luyện khác nhau để so sánh hiệu suất(thời gian huấn luyện, sai số của bộ dữ liệu huấn luyện, sai số của bộ dữ liệu kiểm tra) của chúng. Các phương pháp dùng để huấn luyện đó là: 1) Phương pháp huấn luyện 2 pha HDH(xem 1.4.3) 2) Phương pháp huấn 3 pha đầy đủ(xem 1.4.4) 3) Phương pháp huấn luyện 1 pha, sử dụng phương pháp giả nghịch đảo để tìm tham số wi.(xem 1.4.1) 4) Phương pháp huấn luyện 2 pha, sử dụng phương pháp giả nghịch đảo để tìm tham số wi. (xem 1.4.2) Chương trình được chạy trên máy cấu hình như sau: HĐH Windows XP Professinal, CPU Intel Core 2 Duo E6300 1.86GHz, Ram 1G. Sau đây là bảng kết quả so sánh hiệu suất các phương pháp huấn luyện: Chương 1: Bài toán nội suy, xấp xỉ hàm số và mạng Neural RBF 18 Phương pháp huấn luyện Sai số trên tập dữ liệu kiểm tra(tổng bình phương sai số) Sai số trên tập dữ liệu huấn luyện(tổng bình phương sai số) Thời gian huấn luyện(giây) Phương pháp huấn luyện 2 pha HDH q=0.9, alpha=0.7, epsilon= 1e-5 3.095031 3.2938e-11 1.921000 q=0.9, alpha=0.75, epsilon= 1e-5 2.929305 2.8989e-11 1.859000 q=0.9, alpha=0.9, epsilon= 1e-5 2.275569 2.9517e-11 2.609000 q=0.99, alpha=0.7, epsilon= 1e-5 2.93460 3.7486e-11 1.703000 q=0.99, alpha=0.8, epsilon= 1e-5 2.47516 1.0336e-11 2.750000 q=0.99, alpha=0.9, epsilon= 1e-5 2.13895 1.2286e-11 1.984000 Phương pháp huấn luyện 3 pha đầy đủ Số neuron tầng ẩn 20, loop = 1000 0.40966 0.18352 1312.266000 Số neuron tầng ẩn 50, loop = 500 0.38691 0.17951 4198.204000 Số neuron tầng ẩn 100, loop = 500 0.38206 0.24483 11961.4530 Phương pháp huấn luyện 1 pha + giả nghịch đảo Số neuron tầng ẩn 180 0.2270 1.0226 1.968000 Số neuron tầng ẩn 280 0.14226 0.54680 2.437000 Số neuron tầng ẩn 350 0.091694 0.3864 2.828000 Phương pháp huấn luyện 2 pha + giả nghịch đảo Số neuron tầng ẩn 180 0.2666 1.2269 2.093000 Số neuron tầng ẩn 280 0.17365 0.9048 2.593000 Số neuron tầng ẩn 350 0.20062 0.5255 3.046000 Bảng 1: Kết quả thực nghiệm hiệu suất các phương pháp huấn luyện mạng Neural RBF Chương II: Nhận dạng chữ viết tay 19 1.5.2 Nhận xét Dựa vào bảng số liệu trên ta thấy rằng: +Thuật toán 1) có thời gian huấn luyện rất nhanh, cho kết quả sai số trên bộ dữ liệu huấn luyện là rất tốt, nhưng nó có sai số trên bộ kiểm tra là khá cao, như vậy phương pháp huấn luyện HDH là lựa chọn tốt để giải quyết bài toán nội suy, hoặc giải quyết các bài toán mà dữ liệu đầu vào có mật độ tập trung dày đặc. +Thuật toán 2) cho kết quả sai số trên cả bộ dữ liệu huấn luyện và bộ dữ liệu kiểm tra là rất nhỏ, tuy nhiên nó có điểm rất hạn chế đó là thời gian huấn luyện mạng là rất lâu. Nói chung phương pháp này không phải là một lựa chọn tốt để giải quyết các bài toán có bộ dữ liệu huấn luyện lớn. +Thuật toán 3), 4) cho kết quả sai số trên cả bộ dữ liệu huấn luyện và bộ dữ liệu kiểm tra là rất nhỏ và thời gian huấn là rất nhanh. Tuy nhiên cả 2 thuật toán này có một nhược điểm đó là sử dụng phương pháp giả nghịch đảo để tìm các tham số wi mà phương pháp giả nghịch đảo lại sử dụng nhiều phép tính nhân, nghịch đảo ma trận đây là các phép tính khó cài đặt và thường cho sai số tính toán cao. Ở đây tôi sử dụng thư viện MATLAB để thực hiện các phép tính toán này. Chương 2: Nhận dạng chữ viết tay 20 CHƯƠNG 2 NHẬN DẠNG CHỮ VIẾT TAY Nội dung chương này gồm có: 2.1 Nhận dạng mẫu 2.2 Bài toán nhận dạng chữ viết tay 2.3 Các phương pháp trích chọn đặc trưng chữ viết tay 2.4 Kết quả thực nghiệm 2.1 NHẬN DẠNG MẪU Nhận dạng chữ viết tay là một lĩnh vực con của nhận dạng dạng mẫu, do vậy trước khi đi sâu vào trình bày chi tiết bài toán nhận dạng chữ viết tay, tôi xin trình bày sơ lược về lĩnh vực nhận dạng mẫu và bài toán nhận dạng mẫu. 2.1.1 Nhận dạng mẫu 2.1.1.1 Mẫu là gì ? Mẫu(pattern) có thể phân thành 2 loại : mẫu trừu tượng và mẫu cụ thể. Các ý tưởng, lập luận và khái niệm... là những ví dụ về mẫu trừu tượng, nhận dạng các mẫu như vậy thuộc về lĩnh vực nhận dạng khái niệm. Các mẫu cụ thể bao gồm các đối tượng có tính không gian, thời gian và hình ảnh... Các đối tượng vật lý, chữ ký, chữ viết, ký hiệu, ảnh, đoạn sóng âm thanh, điện não đồ hoặc điện tâm đồ, hàm số... là những ví dụ về mẫu cụ thể. 2.1.1.2 Nhận dạng mẫu là gì ? Không có một định nghĩa thống nhất cho nhận dạng mẫu (Pattern recognition) nhưng điều này không gây tranh cãi gì trong giới nghiên cứu. Sau đây là một số định nghĩa theo ngữ cảnh nghiên cứu : - Duda Et Al: Nhận dạng mẫu là việc quy những đối tượng vật lí hay sự kiện vào một loại (nhóm) nào đó đã xác định từ trước. Chương 2: Nhận dạng chữ viết tay 21 - Jürgen Schürmann: Nhận dạng mẫu là việc gán nhãn w cho một quan sát x. - Selim Aksoy: Nhận dạng mẫu là việc nghiên cứu cách làm cho một máy có thể thực hiện: + Quan sát môi trường + Học cách phân biệt được các mẫu cần quan tâm + Đưa ra các quyết định đúng đắn về loại (nhóm) của các mẫu 2.1.1.3 Lịch sử của lĩnh vực nhận dạng mẫu Nhận dạng mẫu đã có lịch sử khá lâu đời, trong thập kỷ 60 của thế kỷ 20 hầu hết vấn đề nhận dạng mẫu dừng lại ở việc nghiên cứu lí thuyết thống kê. Về sau với sự phát triển mạnh mẽ của máy tính thì phần thực nghiệm cũng trở nên đơn giản hơn. Khi mà xã hội chúng ta đang phát triển từ thời kỳ công nghiệp sang hậu công nghiệp, đối với vấn đề tự động hóa thì việc thông tin được nhận và xử lý một cách tự động là rất cần thiết. Khuynh hướng này làm cho vấn đề nhận dạng mẫu trở nên rất quan trọng trong ứng dụng kỹ thuật và trong nghiên cứu ngày nay. Nhận dạng mẫu tích hợp hầu hết vào các hệ thống máy móc thông minh, có khả năng tự đưa ra quyết định để giải quyết vấn đề. 2.1.1.4 Ứng dụng của nhận dạng mẫu Nhận dạng mẫu có rất nhiều ứng dụng trong đời sống cũng như trong khoa học kỹ thuật : -Trong nông nghiệp : Nhận dạng mẫu được sử dụng để phân tích mùa màng, dự báo các đại dịch như châu chấu, sâu bệnh, cúm gia cầm, cúm lợn... Ngoài ra nhận dạng mẫu cũng còn được dùng để phân loại đất từ các ảnh được chụp từ vệ tinh. -Khám phá tri thức trên Web : Ngày nay việc bùng nổ lượng thông tin khổng lồ trên Internet làm cho việc tìm kiếm và lọc thông tin trên mạng là hết sức quan trọng. Nhận dạng mẫu được nhúng vào các máy tìm kiếm để trả lại kết quả tìm kiếm thông minh và chính xác. Ngoài ra nó cũng được trong các hệ thống lọc thư rác, nhận dạng tự động các trang web đen. -Trong lĩnh vực y học : Phân tích và biểu diễn gene, phân loại sinh học dựa trên thông tin di truyền. -Trong lĩnh kinh tế : Phân tích đánh giá sự thay đổi kinh tế, chỉ số chứng khoán... Chương 2: Nhận dạng chữ viết tay 22 2.1.1.5 Các bài toán nhận dạng mẫu Trên thực tế thường gặp các bài toán nhận dạng mẫu sau : -Phân lớp (classify) : Dựa trên một tập con đã biết nhãn, đưa ra một cách phân các đối tượng thuộc tập nền thành các lớp. -Phân cụm (cluster) : Chia tập đối tượng thành nhóm sao cho các đối tượng trong mỗi nhóm tương đối giống nhau còn các đối tượng khác nhóm thì khác nhau. -Phân tích hồi quy (regression) hay nhận dạng hàm : Xác định một biến (hàm) qua tập các biến khác. -Nhận thực (Identify) : Xác định đối tượng trong tập đã cho có là đối tượng đang quan tâm hay không. Chẳng hạn như nhận thực vân tay, nhận thực mặt người... -Mô tả : Mô tả các đối tượng dưới hình thức dễ phân tích. Ví dụ đối tượng. mô tả điện tâm đồ dưới dạng biểu đồ đặc trưng hoặc xâu mã. 2.1.1.6 Các bước xử lý trong hệ thống nhận dạng mẫu Mặc dù có rất nhiều loại bài toán nhận dạng mẫu, tuy nhiên để giải quyết một bài toán thì một hệ thống nhận dạng mẫu phải thực hiện qua các bước cơ bản dưới đây : Hình 14: Các bước xử lý trong hệ thống nhận dạng mẫu 1)Thu nhận tín hiệu Nếu là hệ nhận dạng đối tượng vật lý, ở đầu vào của hệ thống thường là một loại thiết bị chuyển đổi như máy ghi hình hay ghi âm… Thiết bị này thu nhận tín hiệu về đối tượng để nhận dạng. Các tín hiệu này thông thường sẽ được số hóa, sau đó sẽ được tiến hành tiền xử lý như: lọc nhiễu, tách ngưỡng… 2) Phân đoạn (segmentation) Phân đoạn là một trong những bài toán rất khó trong nhận dạng mẫu. Chẳng hạn, trong bài toán nhận dạng văn bản in ra dữ liệu text thì giai đoạn phân đoạn chính là Đầu vào Thu tín hiệu, tiền xử lý Phân đoạn Trích chọn đặc trưng Nhận dạng Hậu xử lý Chương 2: Nhận dạng chữ viết tay 23 việc xác định đâu là vùng dữ liệu text để nhận dạng, tiếp đó ta phải tách được những vùng có thể là một từ, rồi lại tách tiếp ra từng ký tự... Như vậy có thể nói việc phân đoạn trong bài toán nhận dạng mẫu là quá trình xác định được đâu là vùng dữ liệu cần quan tâm. 3) Trích chọn đặc trưng Ranh giới khái niệm giữa việc trích chọn đặc trưng và phân lớp ở mức độ nào đó có phần không rõ ràng: một bộ trích chọn đặc trưng lý tưởng phải làm cho công việc còn lại của bộ phân lớp trở nên dễ dàng Mục tiêu chung của bộ trích chọn đặc trưng là dựa trên tín hiệu thu được mô tả các đối tượng bằng các giá trị của chúng mà chúng có giá trị gần xấp xỉ nhau đối với các đối tượng thuộc cùng loại và khác xa nhau nếu khác loại. Hơn nữa để tiện xử lý thì càng ít đặc trưng càng tốt. Điều này dẫn đến việc phải tìm ra các đặc trưng khác nhau và chúng không phụ thuộc hoàn cảnh ta thu tín hiệu về đối tượng. Đầu ra của công đoạn này được gọi là vector đặc trưng của đối tượng, thông thường đây là một vector số thực. 4) Nhận dạng Nhiệm vụ của thành phần này trong hệ thống là sử dụng các vector đặc trưng được cung cấp từ bước trước (trích chọn đặc trưng) để gắn các đối tượng vào các lớp hoặc phân tích hồi quy hay mô tả đối tượng. Các kỹ thuật thường được sử dụng cho công đoạn nhận dạng đó là: thuật toán k-láng giềng gấn nhất, mạng neural, máy vector hỗ trợ SVM... Nói chung, ở bước này gần như đã có công thức xử lý cố định thường không bị phụ thuộc vào bài nhận dạng mẫu cụ thể nào. 5) Hậu xử lý Một bộ nhận dạng hiếm khi chỉ để dùng đơn lẻ. Thay vào đó nó thường dùng để đưa ra thao tác tương ứng, mỗi thao tác mất một chi phí tương ứng. Hậu xử lý sẽ dùng đầu ra của bộ phân lớp để quyết định thao tác tương ứng. Theo quan niệm, cách đơn giản nhất để đánh giá hoạt động của một bộ nhận dạng là xem tỷ lệ nhận dạng sai với các mẫu mới. Do đó chúng ta cần phải nhận dạng với tỷ lệ lỗi thấp nhất. Tuy nhiên chúng ta cần các thao tác tương ứng phải làm cho tổng chi phí là thấp nhất. Có thể phải kết hợp các tri thức đã biết về chi phí, và nó sẽ có ảnh hưởng đến việc ra các quyết định hành động. Chúng ta cũng cần ước lượng trước chi phí để xem có thỏa mãn hay không. Chương 2: Nhận dạng chữ viết tay 24 2.2 BÀI TOÁN NHẬN DẠNG CHỮ VIẾT TAY 2.2.1 Tình hình chung về nhận dạng chữ viết tay Bài toán nhận dạng chữ viết tay được ứng dụng rất nhiều trong thực thế : được tích hợp vào hệ thống nhận dạng form tự động, tích hợp trong các máy PDA có màn hình cảm ứng, nhận dạng chữ ký... Do có nhiều ứng dụng quan trọng như vậy nên từ lâu bài toán nhận dạng chữ viết tay đã thu hút rất nhiều người nghiên cứu, tìm cách giải quyết. Ngày nay bài toán nhận dạng chữ viết tay đã được giải quyết gần như trọn vẹn trên thế giới cũng như ở Việt Nam. Hệ nhận dạng sử dụng mạng Neural nhân chập giới thiệu ở [8] đã đạt độ chính xác đến 99.60% (trên bộ dữ liệu MNIST). Đây là độ chính xác gần như tuyệt đối và nhanh chóng được áp dụng vào rất nhiều ứng dụng. Các sản phẩm ứng dụng khác có ý nghĩa thực tế lớn có thể kể đến như sản phẩm FineReader của hãng AABYY có thể nhận dạng 20 thứ tiếng khác nhau, sản phẩm OmniPage của hãng ScanSoft nhận dạng chữ in tiếng Anh,…. và ở Việt Nam, chúng ta có sản phẩm VNDOCR của Viện Công nghệ thông tin nhận dạng chữ in tiếng Việt với độ chính xác tới 99%. 2.2.2 Giới thiệu bài toán nhận dạng chữ viết tay 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 các chữ được viết lên màn hình ngay 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. Còn nhận dạng offline tức là việc nhận dạng được thực hiện sau khi chữ đã được viết hay in lên giấy rồi, lúc đó thông tin đầu vào là hình ảnh văn bản hoặc ký tự cần nhận dạng. Trong khuôn khổ nội dung khóa luận này tôi chỉ xét hình thức nhận dạng offline cho từng ký tự một. 2.2.3 Hướng giải quyết cho bài toán nhận dạng ký tự viết tay Như đã nói ở trên bài toán nhận dạng chữ viết tay thuộc lớp bài toán nhận dạng mẫu, như vậy để giải quyết bài toán nhận dạng chữ viết tay thì phải tuân theo các bước của bài toán nhận dạng mẫu đã nêu ở phần 2.1.1.6. Tuy nhiên do ở đây ta chỉ xét việc nhận Chương 2: Nhận dạng chữ viết tay 25 dạng từng ký tự viết tay một nên bước tiền xử lý và bước phân đoạn xem như không cần thiết. Có thể khái quát quá trình nhận dạng chữ viết tay thông qua hình vẽ dưới đây : Hình 15 : Các bước giải quyết bài toán nhận dạng chữ viết tay Đầu vào là bức ảnh của một ký tự cần nhận dạng, sau khi qua bộ trích chọn đặc trưng chữ viết tay ta thu được vector đặc trưng của ký tự đó, vector đặc trưng được chuyển đến bộ nhận dạng để thực hiện lượng giá và đưa ra kết quả nhận dạng. Trong bài toán nhận dạng chữ viết tay có rất nhiều phương pháp trích chọn đặc trưng chữ viết, dưới đây tôi sẽ trình bày chi tiết 3 phương pháp trích chọn đặc trưng chữ viết đó là : phương pháp sử dụng bộ phân tích thành phần chính, phương pháp sử dụng momen Legendre, phương pháp sử dụng mạng Neural nhân chập. Trong bài toán nhận dạng chữ viết tay bộ nhận dạng thường sử dụng các công cụ sau : phương pháp k-láng giềng gần nhất, mạng Neural truyền thẳng MLP, máy vector hỗ trợ SVM, mạng Neural RBF... Trong khuôn khổ của khóa luận này tôi chỉ xét bộ nhận dạng là mạng Neural RBF. 2.3 CÁC PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG CHỮ VIẾT TAY Trích chọn đặc trưng đóng vai trò hết sức quan trọng để giải quyết bài toán nhận dạng chữ viết tay. Thực chất quá trình trích chọn đặc trưng của chữ viết tay tức là ta đi tìm các đại lượng để biểu diễn cho các ký tự viết tay, mà các đại lượng này ít bị thay đổi khi ký tự có sự biến đổi về hình dạng. Một phương pháp trích đặc trưng chữ viết tốt cho ra được các đặc trưng ít bị biến đổi khi ký tự bị biến dạng nhiều. Dưới đây xin dưới thiệu 3 phương pháp trích chọn đặc trưng hay được sử dụng cho bài toán nhận dạng chữ viết tay đó là : 2.2.1 Phương pháp trích chọn đặc trưng kết hợp biến đổi DCT và thuật toán phân tích thành phần chính PCA Khái niệm giá trị riêng và vector riêng (xem chi tiết ở [22])được các nhà toán học tìm ra vào cuối thể kỷ 19 đầu thế kỷ 20. Có hàng loạt tính chất quan trọng liên quan đến giá trị riêng và vector riêng, các tính chất này được ứng dụng rất nhiều trong các lĩnh Dữ liệu đầu vào (dạng ảnh) Trích chọn đặc trưng chữ viết Nhận dạng Đưa ra kết quả nhận dạng Chương 2: Nhận dạng chữ viết tay 26 vực kỹ thuật. Dưới đây là một trong các tính chất đó: cho tập dữ liệu X, A là ma trận hiệp phương sai của tập dữ liệu X (A là ma trận vuông). Khi đó tập vector riêng của A là tập các vector trực giao, và khi chiếu tập dữ liệu X lên tập các vector riêng này, thì dữ liệu sẽ dao đông nhiều quanh các vector riêng tương ứng với giá trị riêng lớn, dữ liệu ít dao động xung quanh các vector riêng tương ứng với các giá trị riêng nhỏ. Hình 16: Ảnh hưởng của vector riêng, giá trị riêng lên tập dữ liệu Thuật toán phân tích thành phần chính (PCA) là hệ quả trực tiếp của tính chất đã nêu trên. Trong kỹ thuật thuật toán PCA là một thuật toán phổ biến được sử dụng để giảm số chiều của dữ liệu nhưng vẫn giữ được nhiều thông tin khi phân biệt với các dữ liệu khác. Thuật toán PCA được đề xuất đầu tiên bởi H. Hotelling (ban đầu được biết với tên là biến đổi Hotelling-Hotelling’s transform). Dưới đây là nội dung thuật toán PCA, sau đó xin giới thiệu phương pháp trích chọn đặc trưng bằng cách sử dụng biến đổi cosin rời rạc (DCT) kết hợp với thuật toán PCA để thu gọn số chiều của dữ liệu. 2.2.1.1 Thuật toán PCA Giả sử ta có tập dữ liệu 1{ } D N i iX x R   trong đó các xi được sắp xếp thành các hàng để được ma trận X có kích thước N D . Ta mong muốn làm giảm số chiều dữ liệu tập X có D chiều thành tập dữ liệu Y có L chiều, L < D. Có thể tóm tắt thuật toán PCA như sau(xem chi tiết thuật toán ở [10,19], các khái niệm cơ sở xem thêm ở [10]) : +Bước 1: Tính giá trị trung bình trên từng chiều dữ liệu Sau tính giá trị trung bình trên từng chiều dữ liệu 1...D của tập dữ liệu X ta được vector giá trị trung bình u có kích thước 1D trong đó 1 1[ ] [ , ] N n u d X d n N    Chương 2: Nhận dạng chữ viết tay 27 +Bước 2: Thực hiện giảm giá trị của dữ liệu trên từng chiều với giá trị trung bình u[d] tương ứng: Ta lưu giá trị tính được vào ma trận B B = X – dh trong đó h là ma trận có kích thước 1 x N; [1, ] 1; 1...h n n N   +Bước 3: Tính ma trân hiệp phương sai của ma trận B   1· ·D D T TN       C B B B B B BE E +Bước 4: Tìm giá trị riêng và vector riêng của ma trận hiệp phương sai C Đầu tiên ta tính tập giá trị riêng ; 1..d d D  của ma trận C bằng cách giải phương trình det( ) 0C I  sau đó ta tìm tập vector riêng 1{ } D d dV v  cách giải phương trình 1V CV D  trong đó  MxM ; D i, j 0; i i j i j      +Bước 5 : Sắp xếp tập giá trị riêng d và tập vector riêng tương ứng theo chiều giảm dần của giá trị riêng +Bước 6 : Chọn lấy L vector đầu tiên từ tập vector riêng sau khi đã sắp xếp. [ , ] [ , ]; 1, , ; 1, ,W p q V p q p D q L       +Bước 7 : Tính giá trị của Y * TY X W Hình 17 : Các bước thực hiện của thuật toán PCA Nhìn chung việc tính giá trị riêng và vector riêng là một bài toán khó trong toán học. Trong phần thực nghiệm của mình, tôi sử dụng thư viện MATLAB để thực hiện tìm giá trị riêng và vector riêng của ma trận. 2.2.1.2 Phương pháp trích chọn đặc trưng kết phép biến đổi DCT và thuật toán PCA Ở đây ta xem dữ liệu đầu vào là ma trận điểm ảnh, hình vẽ dưới đây mô tả các bước của thuật toán: Hình 18: Các bước trích chọn đặc trưng bằng biến DCT kết hợp PCA Dữ liệu đầu vào (ma trận điểm ảnh NxM) Biến đổi DCT Lấy dữ liệu theo đường zigzag PCA Output (vector đặc trưng) Chương 2: Nhận dạng chữ viết tay 28 Từ ảnh dữ liệu ban đầu kích thước MxN dùng phép biến đổi Cosin rời rạc (DCT xem [20]) ta được ma trận MxN các hệ số thực. Sau đó ta lấy dữ liệu theo đường zigzag như hình vẽ bên dưới ta được vector với MxN đặc trưng. Tiếp đó ta dùng thuật toán PCA để thu gọn số chiều của vector đặc trưng, khi đó kết quả đầu ra sau bước này xem như là vector đặc trưng của bước ảnh đầu vào. Hình 19: Biến đổi DCT và cách lấy dữ liệu theo đường zigzag Ta thấy rằng bức ảnh gốc qua phép biến đổi DCT thì ta không bị mất thông tin vì ta có thể sử dụng phép biến đổi DCT nghịch đảo để thu được hình ảnh gốc. Ở ma trận hệ số của phép biến đổi DCT, các điểm ở gần gốc (1,1) thể hiện mức sáng nền của bức ảnh gốc, còn các điểm điểm càng xa điểm gốc thể hiện mức độ chi tiết của bước ảnh( trong thuật toán nén ảnh JPEG sau khi biến đổi DCT người ta thường lược bỏ các hệ số xa điểm gốc, mà mắt người vẫn không nhận thấy sự thay đổi), như vậy sau khi lấy dữ liệu cho vector đặc trưng theo đường zigzag thì các điểm gần nhau trên đường zigzag(cũng như trong vector đặc trưng) luôn có quan hệ về mặt giá trị cũng như ảnh hưởng đối với ảnh gốc. Điều này giúp cho vector đặc trưng mạng nhiều thông tin cho việc nhận dạng. Cuối cùng vector đặc trưng được xử lý qua thuật toán PCA để thu gọn số chiều dữ liệu giúp cho việc nhận dạng được hiệu quả hơn. 2.2.2 Phương pháp trích đặc trưng sử dụng Momen Legendre Trước khi đi sau vào chi tiết thuật toán xin giới thiệu các khái niệm cơ sở: 2.2.2.1 Momen và Momen Legendre 1) Khái niệm Momen (toán học) Trong toán học khái niệm momen xuất phát từ khái niệm momen trong vật lý, giá trị momen bậc n của hàm số thực f(x) tại c được định nghĩa như sau: Chương 2: Nhận dạng chữ viết tay 29 ( ) ( )nn x c f x dx      (1) Trong trường hợp f là hàm hai biến số thì momen bậc (n+m) của hàm số f(x,y) tại điểm (c1, c2) được định nghĩa như sau: 1 2( ) ( ) ( , ) n m n m x c y c f x y dxdy           (2) 2) Khái niệm Momen trong xử lý ảnh: Momen ảnh (image moments) là trọng số trung bình cụ thể nào đó của độ sáng các điểm ảnh, nếu ảnh là ảnh liên tục thì định nghĩa momen ảnh giống công thức (2), nếu ảnh đã rời rạc hóa thì momen bậc (m+n) tại điểm (c1,c2) của ảnh được định nghĩa như sau: 1 2 1 1 ( ) ( ) ( , ) M N m n m n x y x c y c I x y        (3) Trong đó M N  là kích thước của ảnh, I(x,y) là độ sáng của ảnh tại điểm (x,y). Giá trị momen ảnh được có thể dùng để mô tả các đối tượng ảnh sau khi đã được phân đoạn. Một số thuộc tính cơ bản của đối tượng ảnh có thể được phát hiện thông qua momen ảnh: diện tích, tâm, hướng của vật thể... Các momen bất biến (invarians moments) trong phép biến đổi ảnh được nghiên cứu vào thập niên 60 của thế kỷ 20. Momen bất biến là những giá trị momen không thay đổi trong các phép biến đổi ảnh như dời hình, xoay, đồng dạng... Trong giai đoạn nghiên cứu này rất nhiều loại momen được giới thiệu: Momen Legendre, momen Zernike... Kèm theo đó là rất nhiều thuật toán nhanh và hiệu quả để tính giá trị các momen này. 3) Định nghĩa momen Legendre: Momen Legendre bậc (m+n) của ảnh liên tục f(x,y) được định nghĩa như sau: 1 1 1 1 (2 1)(2 1) ( ) ( ) ( , ) 4mn m n m n P x P y f x y dx dy        Trong đó , 0,1,2,...,m n   , Pm, Pn là đa thức Legendre. Họ đa thức Legendre là tập các đa thức trực giao trên đoạn [-1,1]. Để tồn tại momen Legendre được xác định thì hàm f(x,y) phải xác định trên đoạn [-1,1]. Đa thức Legendre bậc n được định nghĩa như: Chương 2: Nhận dạng chữ viết tay 30 0 ( ) n j n nj j P x a x   trong đó ( )/2 1 ( )!( 1) ( ) 0 mod 2( ) ( )2 ( )!( )! ! 2 2 0 ( ) 1 mod 2 n j n nj n j n jn j n j ja n j                     M M -1 -0.5 0 0.5 1 1.5 2 -1 -0.5 0 0.5 1 n=0 n = 1 n = 2 n = 3 n = 4 n = 5 Hình 20: Họ đa thức Legendre Ta có thể xây dựng lại ảnh f(x,y) từ momen Legendre bằng công thức sau: 0 0 ( , ) ( ) ( ) k kl k l k l f x y p x p y     Với ảnh đã được rời rạc hóa Pxy ta có công thức sau để tính momen Legendre: (2 1)(2 1) ( ) ( ) 4 mn m n xy x y m n P x P y P     . Người ta đã chứng minh được rằng giá trị momen Legendre là đại lượng bất biến trong các phép dời hình, và đồng dạng (xem [7,15]). Vì thế momen Legendre thường được sử dụng để nhận dạng các đối tượng hình học khi nó bị biến đổi bằng phép dời hình hay phép đồng dạng. Tuy nhiên nhược điểm của momen Legendre đó là nó không phải là momen bất biến trong phép xoay hình vì vậy tầm ứng dụng của nó vẫn còn hạn chế. Dưới đây xin giới thiệu phương pháp trích chọn đặc trưng chữ viết bằng cách sử dụng momen Legendre. 2.2.2.2 Phương pháp trích chọn đặc trưng chữ viết tay bằng Momen Legendre Chương 2: Nhận dạng chữ viết tay 31 Tư tưởng chính của phương pháp như sau: Giả sử ta có ảnh đầu vào X, ta đặt MAX_ORDER là một giá trị cho trước nào đấy, sau đó ta tính tất cả các giá trị Momen Legendre bậc(m+n) sao cho m < n < MAX_ORDER. Các giá trị Momen này được lưu và ma trận L: (2 1)([ , 2 1) ( ) ( ) 4 ] mn m n xy x y m nL m n P x P y X     . Ta gọi ma trận L là ma trận momen Legendre. Sau khi tính xong ma trận L ta viết các giá trị của ma trận L thành một hàng và xem đó như là giá trị đặc trưng của ảnh đầu vào X. Do tính chất của Momen Legendre đó là bất biến với các phép biến đổi ảnh: dời hình và xoay hình nên nếu dữ liệu kiểm tra đồng dạng hay bị dời hình so với dữ liệu huấn luyện thì sẽ cho kết quả nhận dạng rất tốt. Sau đây là từng bước cụ thể của phương pháp trích chọn đặc trưng chữ viết tay bằng Momen Legendre: Bước 1: Chuyển đổi tọa độ: Chú ý rằng momen Legendre chỉ được xác định trên đoạn [-1,1] nên để áp dụng được với một bức ảnh kích thước M N bất kỳ thì ta phải thực hiện bước đổi tọa độ như sau: ta gọi i,j là tọa độ trên ảnh gốc 0 ,0i N j M    , x,y là tọa độ sau khi đổi 1 1, 1 1x y      , , 2 2c c N Mi j           và  max ,c cD i i j j   khi đó công thức chuyển đổi tọa độ là ( , ) ,c ci i j jx y D D        . Bước 2: Tính toán giá trị của ma trân Momen Legendre: Dưới đây là thủ tục viết bằng giả mã để tính giá trị của ma trận Momen Legendre For k:=0 to MAX_ORDER do For l:=0 to k do ( , ) : 0k l l   For i:= 0 to N do For j:=0 to M do : ci ix D   : cj jy D   ( , ) : ( , ) ( )* ( )* ( , )k l lk l l k l l P x P y f x y      End End ( , )*(2 2 1)*(2 1)( , ) : ( 1) *( 1) k l l k l lk l l N M           End Chương 2: Nhận dạng chữ viết tay 32 Chú ý để tính nhanh được Pn(x) ta có thể sử dụng công thức truy hồi sau (xem [7,15]):  0 1 1 2( ) 1; ( ) ; ( ) 2 1 ( ) ( 1) ( ) /n n nP x P x x P x n xP x n P x n          . Bước 3: Chuyển ma trận Legendre thành vector đặc trưng Thực chất ở bước này ta thực hiện viết giá trị các điểm trong ma trận Legendre thành một hàng (hay vector) và ta xem đó là vector đặc trưng của ảnh đầu vào. Hình 21: Các bước thực hiện của phương pháp trích chọn đặc trưng sử dung momen Legendre 2.2.3 Phương pháp sử dụng mạng Neural nhân chập (Convolution neural network) Phương pháp trích chọn đặc trưng sử dụng mạng neural nhân chập (chi tiết xem [8, 16]) được đề xuất đầu tiên bới LeCun và Bengio vào năm 1995. Đây là phương pháp trích chọn đặc trưng cho độ chính xác nhận dạng cao nhất hiện nay (đạt độ chính xác đến 99.6% với bộ dữ liệu MNIST). Trước khi đi sâu vào chi tiết thuật toán xin giới thiệu khái niệm cơ sở đó là: thao tác nhân chập trong xử lý ảnh (convolution operator). 2.2.3.1 Khái niệm cơ sở 1) Thao tác nhân chập Nhân chập là một khái niệm quen thuộc trong xử lý số tín hiệu (xem [23]), trong lĩnh vực xử lý ảnh thao tác nhân chập được dùng để biến đổi ảnh thành một dạng mong muốn nào đấy: như làm nổi cạnh (detect edge), là mượt ảnh (smoothing), làm sắc nét(sharpening)... Trong thao tác nhân chập người ta sử dụng mặt nạ nhân chập (convolution mask)- là ma trận vuông 2 chiều có kích thước là số lẻ(thông thường là 3x3 và 5x5) và tác động nhân chập vào tất cả các điểm của ảnh gốc. Thao tác nhân chập lên một điểm của ảnh gốc được thực hiện như sau: Chương 2: Nhận dạng chữ viết tay 33 +Bước 1: Đầu tiên tâm của mặt nạ nhân chập được đặt trùng vào điểm cần tính nhân chập. +Bước 2: Thực hiện nhân từng giá trị của mặt nạ nhân chập với giá trị độ sáng của điểm ảnh tương ứng +Bước 3: Cộng tổng của từng giá trị đã tính ở bước 2 kết quả lưu vào vị trí nhân chập của ảnh gốc. Hình 22: Thao tác nhân chập (nguồn 2.2.3.2 Phương pháp trích đặc trưng sử dụng mạng Neural nhân chập Tư tưởng chính của phương pháp này là biến một bức ảnh từ độ phân giải cao về ảnh có độ phân giải thấp hơn nhưng lại mang nhiều thông tin hơn cho quá trình nhận dạng hơn (bằng phép nhân chập và thu nhỏ ảnh). Phương pháp này đạt hiệu quả cao cho việc trích đặc trưng chữ viết tay là bởi vì nhờ thao tác nhân chập nó làm nổi bật lên được các đường nét, hình dạng, các giao điểm... của ký tự viết tay. Hơn nữa các đặc trưng của nó ít bị thay đổi bởi các phép dịch ảnh và phép biến dạng bóp méo ảnh (distortion). 1) Kiến trúc mạng Ta giả thiết ảnh đầu vào có kích thước 29x29, dưới đây là kiến trúc mạng để lấy đặc trưng: +Bước 1: Đầu tiên ta sử dụng 5 mặt nạ nhân chập khác nhau kích thước 5x5 thực hiện thao tác nhân chập lên ảnh gốc, sau khi nhân chập ta thực hiện phép thu nhỏ ảnh đi 2 lần. Vì quá trình nhân chập không tác động lên những điểm biên nên sau một phép nhân chập và thu nhỏ thì kích thước mới của ảnh sẽ là (n-3)/2 (n là kích thước ảnh ban đầu). +Bước 2: Với mỗi ảnh ở lớp thứ 2 ta dùng 10 mặt nạ nhân chập khác nhau kích thước 5x5 thực hiện nhân chập và thu nhỏ ảnh đi 2 lần, ta được 50 ảnh ở lớp thứ 3. Chương 2: Nhận dạng chữ viết tay 34 +Bước 3: với mỗi ảnh ở lớp thứ 3 ta lại dùng 2 mặt nạ nhân chập khác nhau kích thước 5x5 thực hiện nhân chập ta thu được 100 ảnh kích thước 1x1. Ta xem đây chính là 100 đặc trưng của ảnh gốc ban đầu. Hình 23: Quá trình trích chọn đặc trưng sử dụng mạng Neural nhân chập Hình 24: Minh họa quá trình lấy đặc trưng bằng mạng Neuron nhân chập 2) Huấn luyện mạng Quá trình huấn luyện mạng Neural nhân chập là quá trình xác định các hệ số của các mặt nạ nhân chập. Để làm được điều này người ta xem kiến trúc ở hình 23 như là một mạng Neural tuyến tính truyền thẳng nhiều tầng sau đó thêm bộ phân lớp tuyến tính vào sau, rồi người ta huấn luyện mạng bằng phương pháp lan truyền ngược (chi tiết xem thêm [8,16]). 2.4 THỰC NGHIỆM Input Lớp 2 Lớp 3 Đặc trưng Input 29x29 5x13x13 50x5x5 100x1x1 Convolution+ Subsampling Convolution+ Subsampling Convolution Chương 2: Nhận dạng chữ viết tay 35 2.4.1 Kết quả Dưới đây xin giới thiệu giới thiệu kết quả thực nghiệm so sánh hiệu suất của các phương pháp trích chọn đặc trưng chữ viết đã nêu ở trên. Ở tôi đây sử dụng bộ dữ liệu MNIST để thực hiện huấn luyện và kiểm tra. Bộ dữ liệu gồm 60000 dữ liệu huấn luyện, và 10000 dữ liệu kiểm tra, một dữ liệu là một bức ảnh kích thước 28x28 của một ký tự chữ số Arap. Tôi sử dụng bộ phân lớp là mạng Neural RBF với các phương pháp huấn luyện là: phương pháp huấn luyện 2-pha HDH, 1-pha+giả nghịch đảo, 2- pha + giả nghịch đảo. Cấu hình máy tiến hành thực nghiệm: HĐH Windows XP Professional, CPU Intel Core 2 Duo E6300 1.86GHz, RAM 2G. Dưới đây là bảng kết quả thực nghiệm: Bảng 2: Kết quả so sánh hiệu suất của các phương pháp trích chọn đặc trưng 2.4.2 Nhận xét Từ bảng số liệu trên ta thấy ta thấy ưu điểm vượt trội của phương pháp trích đặc trưng sử dụng mạng Neural nhân chập(Convolution), ta thấy ở cả 3 phương pháp huấn luyện mạng đều cho kết quả nhận dạng chính xác trên 99.1%. Phương pháp huấn luyện mạng HDH có thời gian huấn luyện mạng nhanh hơn nhưng có độ chính xác nhận dạng kém hơn phương pháp huấn luyện mạng 2 pha + giả nghịch đảo. Chú ý thời gian huấn luyện ở đây không tính thời gian trích chọn giá trị đặc trưng. Phương pháp trích chọn đặc trưng Phương pháp huấn luyện mạng Thời gian huấn luyện mạng(phút) Số lần nhận dạng sai trên bộ dữ liệu kiểm tra Độ chính xác(%) DCT+PCA 2 pha HDH 15.59 834 91.66% Legendre 2 pha HDH 8.94 818 91.82% Convolution 2 pha HDH 10.73 82 99.18% DCT+PCA 1 pha+giả nghịch đảo 15.56 1633 83.67% Legendre 1 pha+giả nghịch đảo 12.45 1713 82.87% Convolution 1 pha+giả nghịch đảo 11.34 96 99.14% DCT+PCA 2 pha+giả nghịch đảo 25.00 354 96.46% Legendre 2 pha+giả nghịch đảo 15.51 500 95% Convolution 2 pha+giả nghịch đảo 17.70 72 99.28% Chương 3: Các phương pháp cải thiện hiệu suất của mạng Neural RBF 36 CHƯƠNG 3 CÁC PHƯƠNG PHÁP CẢI THIỆN HIỆU SUẤT CỦA MẠNG NEURAL RBF Nội dung chương này gồm có: 3.1 Các phương pháp cải thiệu hiệu suất của mạng Neural RBF 3.2 Thực nghiệm 3.1 CÁC PHƯƠNG PHÁP CẢI THIỆU HIỆU SUẤT CỦA MẠNG NEURAL RBF Dưới đây là nội dung một số phương pháp nhằm cải thiện hiệu suất của mạng Neural RBF trong vấn đề nhận dạng chữ viết tay. Cải thiện hiệu suất ở đây có nghĩa là làm sao để tăng được chất lượng nhận dạng cũng như làm giảm được thời gian huấn luyện mạng và chi phí cài đặt mạng. 3.1.1 Tăng tập dữ liệu huấn luyện Ta thấy rằng trong bài toán phân lớp dữ liệu huấn luyện đóng vai trò rất quan trọng, nó ảnh hưởng trực tiếp đến chất lượng phân lớp, tập dữ liệu huấn luyện càng lớn thì chất lượng phân lớp càng cao. Tuy nhiên để tạo ra một tập dữ liệu tốt thì mất rất nhiều chi phí do đa phần việc tạo tập dữ liệu huấn luyện là phải làm thủ công. Vì vậy nếu có một cách nào đó làm tăng số lượng dữ liệu cho tập dữ liệu huấn luyện thì sẽ làm cho kết quả nhận dạng sẽ tốt hơn và chi phí cũng giảm đáng kể. Việc tăng số lượng tập dữ liệu phải đảm bảo được chất lượng và tính tự nhiên vốn có của nó, cũng như việc trích chọn đặc trưng thì việc tăng số lượng tập dữ liệu huấn luyện không có cách tổng quát đủ tốt, phải tùy vào bài toán cụ thể. Dưới đây tôi giới thiệu phương pháp tăng tập dữ liệu huấn luyện cho bài toán nhận dạng chữ viết tay bằng các biến phép biến đổi hình học. 3.1.1.1 Tăng tập dữ liệu bằng các phép biến đổi hình học Chương 3: Các phương pháp cải thiện hiệu suất của mạng Neural RBF 37 a) Biến đổi Elastic Phép biến đổi ảnh này thực ra người ta dùng một ma trận mặt nạ dạng vector với ý nghĩa là điểm nào trên ảnh gốc trùng với điểm gốc của một vector nào đấy thì sẽ bị dịch chuyển đến điểm ngọn của vector tương ứng. Hình 21: Ma trận vector cho phép biến đổi Elastic Hình 22: Ví dụ về phép biến đổi Elastic Hình 22 là ví dụ về phép biến đổi elastic, ta thấy rằng từ ảnh gốc bên trái sau 2 phép biến đổi elastic ta được thêm 2 ảnh khác cho dữ liệu đầu vào, bằng trực quan ta thấy rằng dữ liệu này rất đảm bảo chất lượng. Ngoài phép biến đổi Elastic người ta còn dùng kết hợp các phép biến đổi affine như: dịch ảnh, xoay ảnh, hay phóng to thu nhỏ… để cho được dữ liệu mới. Tuy nhiên phép biến đổi Elastic vẫn thông dụng hơn trong bài toán nhận dạng chữ viết tay do dữ liệu nó sinh ra đảm bảo chất lượng hơn và việc cài đặt thuật toán cũng như thời gian chạy của nó là rất nhanh. 3.1.2 Phương pháp học tập hợp Học tập hợp là các phương pháp học mà hàm mục tiêu được học bằng cách huấn luyện một số bộ học độc lập sau đó kết hợp chúng lại với nhau. Có thể mô hình toán học bằng công thức sau: 1 2( , ,..., )nh F h h h trong đó h có thể coi là phương pháp học tập hợp, 1 2, ,..., nh h h là các bộ học độc lập, F là một cách kết hợp nào đấy. Như vậy với phương pháp học tập hợp chúng ta phải giải quyết 2 vấn đề: +Thứ nhất: làm sao để tạo ra được các bộ học độc lập, độc lập ở đây có nghĩa là các bộ học phải có các phương pháp huấn luyện khác nhau, hay phải có các bộ dữ liệu huấn luyện khác nhau. +Thứ hai: làm sao để kết hợp hiệu quả các bộ học này. Chương 3: Các phương pháp cải thiện hiệu suất của mạng Neural RBF 38 Vấn đề thứ hai thường được giải quyết bằng cách kết hợp tuyến tính các bộ học lại với nhau tức là: 1 n i i i h w h   trong đó các trọng số wi được nhận giá trị lớn nếu bộ hi được đánh giá là tin cậy hơn các bộ học khác, ngược lại với các bộ học hi không đáng tin cậy thì ta cho trọng số wi tương ứng có giá trị nhỏ. Để giải quyết vấn đề thứ nhất có nhiều phương pháp để tiếp cận, xin giới thiệu 2 phương pháp thường được hay dùng đó là phương pháp: bagging và boosting. +Bagging(Bootstrap aggregating) Có thể tóm tắt phương pháp như sau: Giả sử ta có một bộ dữ liệu huấn luyện D gồm có n dữ liệu, phương pháp bagging sinh M bộ dữ liệu huấn luyện iD D có số lượng 'n n , các bộ học hi được huấn luyện bằng bộ dữ liệu Di tương ứng. Sau đó các bộ học được kết hợp bằng cách sau: 1 M i i i h w h   với 1 ; 1..iw i MM    +Boosting Tư tưởng chính của thuật toán như sau: Giả sử ta có bộ dữ liệu huấn luyện D, ta đánh trọng số cho các dữ liệu trong tập dữ liệu huấn luyện, đầu tiên các trọng số được gán bằng nhau. Tại mỗi bước thứ t của thuật toán, ta chọn bộ dữ liệu tD D sao cho các dữ liệu trong bộ dữ liệu Dt là những dữ liệu được đánh trọng số cao nhất, sau đó ta huấn luyện bộ học ht bằng bộ dữ liệu Dt. Sau khi huấn luyện xong ta dùng bộ học ht để thẩm định lại tập dữ liệu D những dữ liệu nào bị phân lớp sai thì ta tăng trọng số của nó lên 1, những dữ liệu phân lớp đúng ta giảm trọng số của nó đi 1. Lặp lại T lần như thế ta được T bộ học độc lập, ta có thể gán trọng số các bộ học này theo số lượng mà nó phân lớp đúng. 3.1.2.1 Phương pháp học tập hợp cải tiến Phương pháp này lấy tư tưởng chính của phương pháp học tập hợp như đã nêu ở trên, chỉ khác là kết quả của đầu ra cuối cùng không phải là tổ hợp tuyến tính của các bộ học mà đầu ra của các bộ học lại được huấn luyện một lần nữa cho kết quả cao hơn (nghĩa là ta tổ hợp phi tuyến tính các bộ học với nhau, thông qua mạng Neural RBF). Dưới đây là kiến trúc tổng thể của phương pháp học tập hợp cải tiến để giải quyết cho bài nhận dạng chữ số viết tay: Chương 3: Các phương pháp cải thiện hiệu suất của mạng Neural RBF 39 Hình 23: Kiến trúc của phương pháp học tập hợp cải tiến Ở đây tôi sử dụng các phương pháp trích chọn đặc trưng đơn giản có tốc độ tính toán nhanh (PCA, LEGENDRE, SUBSAMPLING-thu nhỏ ảnh) để tạo ra các bộ học khác nhau. Sau khi huấn luyện chúng qua mạng neural RBF tôi lại tổng hợp các đầu ra của các mạng Neural này và huấn luyện chúng lại một lần nữa bằng mạng Neural RBF. Phương pháp này tận dụng tối đa ưu điểm của mạng Neural RBF đó là thời gian huấn luyện mạng rất nhanh, trong khi để có một mạng có chất lượng tốt phương pháp mạng Neural nhân chập phải mất nhiều giờ thậm chí là nhiều ngày huấn luyện mạng để trích chọn giá trị đặc trưng thì với phương pháp này chỉ mất hơn một 1h để huấn luyện mạng và trích đặc trưng cho bộ dữ liệu MNIST. 3.1.3 Phương pháp tăng tốc độ nhận dạng Ở 2 phương pháp nêu trên tôi chỉ mới đề cấp đến vấn đề làm tăng độ chính xác nhận dạng cũng như làm làm giảm thời gian huấn luyện mà chưa đề cập đến vấn đề làm giảm thời gian nhận dạng của mạng. Đây là vấn đề then chốt trong các ứng dụng, vì thực ra quá trình huấn luyện thông thường được chạy ít hơn nhiều lần so với quá trình thực hiện nhận dạng (quá trình đưa dữ liệu đầu vào để cho mạng tính toán). Thời gian nhận dạng = thời gian trích chọn đặc trưng + thời gian tính toán trong mạng, như vậy việc tăng hiệu suất nhận dạng thông qua việc tinh chỉnh quá trình trích chọn đặc trưng sẽ làm cho thời gian trích chọn đặc trưng tăng lên đồng nghĩa với thời gian nhận dạng cũng tăng. Nói tóm lại là việc làm tăng hiệu suất nhận dạng và tăng tốc độ huấn luyện mạng thì sẽ dẫn đến việc làm tăng thời gian nhận dạng. Dưới đây tôi xin giới thiệu một phương pháp khá hay để vừa nâng cao tốc độ nhận dạng nhưng lại không giảm độ chính xác nhận đó là phương pháp Bộ phân nhận dạng ba lớp (chi tiết ở [13]). IN P U T SUB SAM PLIN G DCT+ PCA LEGE NDRE RBF RBF RBF RBF O U TP U T Chương 3: Các phương pháp cải thiện hiệu suất của mạng Neural RBF 40 3.1.3.1 Phương pháp bộ nhận dạng ba lớp Có thể tóm tắt phương pháp này như sau: người ta tạo ra ba bộ phân lớp có đặc điểm như sau: +Bộ phân lớp thứ nhất sử dụng phương pháp trích chọn đặc trưng đơn giản lấy ít đặc trưng và sử dụng mạng Neural có kiến trúc rất đơn giản để thực hiện nhận dạng tất nhiên là bộ phân lớp này sẽ có tốc độ nhận dạng rất nhanh nhưng lại có hiệu suất nhận dạng kém. +Bộ phân lớp thứ 2 ta sẽ lấy nhiều đặc trưng hơn bộ phân lớp trên đồng thời kiến trúc của mạng Neural nhận dạng cũng phức tạp hơn bộ phân lớp thứ nhất như vậy bộ phân lớp này sẽ có tốc độ nhận dạng chậm hơn nhưng bù lại lại có hiệu suất nhận dạng tốt hơn bộ thứ nhất. +Bộ phân lớp thứ 3 ta sẽ kết hợp giữa cách trích chọn đặc trưng tốt nhất và bộ phân lớp có kiến trúc phức tạp để đảm bảo được hiệu suất nhận dạng cao tất nhiên là có thời gian nhận dạng chậm. Sau khi đã xây dựng được ba bộ phân lớp như trên quá trình nhận dạng được xử lý như sau: dữ liệu đầu vào được đưa vào bộ phân lớp thứ nhất sau khi thực hiện nhận dạng nếu kết quả nhận dạng không bị nghi ngờ là sai thì ta chọn đó là kết quả nhận dạng cuối cùng, nếu không thì ta lại đưa dữ liệu đầu vào cho bộ phân lớp thứ 2 xử lý. Sau khi xử lý ở bộ phân lớp thứ 2 nếu kết quả nhận là tốt thì ta xác nhận kết quả nhận dạng này còn không ta lại chuyển dữ liệu đầu vào cho bộ phân lớp cuối cùng. Tất nhiên là với phương pháp này ta phải có thuật toán tốt để xác định độ nhập nhằng của kết quả nhận dạng. Hình 24: Kiến trúc của bộ nhận dạng ba lớp INPUT Bộ nhận phân lớp thứ nhất OUTPUT Nhập nhằng? Bộ nhận phân lớp thứ 2 Nhập nhằng? Bộ nhận phân lớp thứ 3 yes yes no no Chương 3: Các phương pháp cải thiện hiệu suất của mạng Neural RBF 41 Ta thấy với kiến trúc như trên thì phần lớn quá trình xử nhận dạng rơi vào bộ phân lớp thứ nhất (vì dựa vào kết quả thực nghiệm cho dù là bộ phân lớp tồi như cũng rất dễ dàng để đạt được độ chính xác nhận dạng > 70%). Xác xuất để việc nhận dạng xử lý trên bộ nhận dạng thứ 2 sẽ thấp và càng thấp hơn đối với bộ nhận dạng thứ ba. Hiển nhiên ta thấy rằng kiến trúc này sẽ có thời gian nhận dạng nhanh hơn nhiều so với cách chỉ sử dụng bộ phân lớp thứ 3 và cũng có độ chính xác tốt hơn nhiều so với cách chỉ sử dụng bộ phân lớp thứ nhất (xem chi tiết [13]). 3.2 THỰC NGHIỆM Biều đồ dưới đây so sánh hiệu suất của phương pháp học tập hợp cải tiến so với các phương pháp thông thường. Ở đây sử dụng bộ dữ liệu MNIST cho quá trình huấn luyện và kiểm tra. 90 91 92 95 94.5 95 97.75 99.3 84 86 88 90 92 94 96 98 100 1 2 3 4 5 6 7 8 8 8 8 8 18 13 63 1020 0 200 400 600 800 1000 1200 1 2 3 4 5 6 7 8 Hình 25: Biểu đồ so sánh độ chính xác nhận dạng và thời gian huấn luyện của các phương pháp huấn luyện khác nhau Ta thấy rằng phương pháp mạng Neural nhân chập vẫn cho độ chính xác nhận dạng là tốt nhất, song thời gian huấn luyện mạng của nó là quá lớn. Phương pháp học tập hợp cải tiến cho kết quả nhận dạng là khá cao trong khi thời gian huấn luyện của nó thấp hơn nhiều lần so với phương pháp mang Neural nhân chập. 1,2,3,4. Subsambling 5. PCA 6.Legedre 7.Học tập hợp cải tiến 8. Mạng Neural nhân chập Chương 4: Giới thiệu chương trình nhận dạng chữ số viết tay và tổng kết 42 CHƯƠNG 4 GIỚI THIỆU CHƯƠNG TRÌNH NHẬN DẠNG CHỮ SỐ VIẾT TAY VÀ TỔNG KẾT Nội dung chương này gồm có: 4.1 Giới thiệu chương trình nhận dạng chữ viết tay 4.2 Tổng kết và phương hướng phát triển của đề tài 4.1 GIỚI THIỆU CHƯƠNG TRÌNH NHẬN DẠNG CHỮ SỐ VIẾT TAY Dưới đây tôi xin giới thiệu chương trình ứng dụng nhận dạng chữ viết tay mà tôi đã viết. Chương trình là phần thực nghiệm của tất cả các phần lý thuyết mà tôi đã nêu ra xuyên suốt trong toàn bộ nội dụng của khóa luận mà tôi đã trình bày ở trên. 4.1.1 Chương trình nhận dạng chữ viết tay 4.1.1.1 Giới thiệu chương trình 1) Tính năng của chương trình Chương trình có khả năng nhận dạng chữ số viết tay do người dùng nhập file ảnh của ký tự nào đấy để thực hiện nhận dạng. Để nhận dạng chương trình cho phép người dùng tùy chọn phương pháp trích, và tùy chọn phương pháp huấn luyện mạng RBF. Sau khi thực hiện nhận dạng thì chương trình trả về cho người dùng biểu đồ thể hiện xác suất bức ảnh người dùng đã nhập vào là số nào. 2) Môi trường và công cụ phát triển Chương trình được viết hoàn toàn bằng ngôn ngữ C++, giao diện sử dụng IDE Microsoft Visio Studio 2008 để thiết kế, ngoài ra chương trình còn sử dụng một số thư viện của Matlab để tính toán ma trận. 3) Hướng dẫn sử dụng chương trình Để chương trình chạy được tốt, ta phải cài đặt thư viện Matlab vào máy và thêm thư mục bin của Matlab vào biến môi trường PATH của hệ điều hành. Người dùng có thể Chương 4: Giới thiệu chương trình nhận dạng chữ số viết tay và tổng kết 43 nhập ảnh với các định dạng như *.jpg, *.bmp, *. gif, *.png vào chương trình sau đó thực hiện nhận dạng chữ số, sau khi chương trình thực hiện xong nó sẽ đưa ra biểu đồ đánh giá xác suất bức ảnh là số nào dưa trên kết quả nhận dạng của mạng Neural. Ngoài ra người dùng có thể chọn chế độ để huấn luyện mạng Neural với các phương pháp trích chọn đặc và phương pháp huấn luyện khác nhau. Sau đây là giao diện chính của chương trình: Hình 26: Giao diện chính của chương trình Hình27: Bảng thông báo kết quả nhận dạng 4.2 TỔNG KẾT VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 4.2.1 Tổng kết Đến đây tôi đã hoàn thành khóa luận tốt nghiệp với đề tài “Mạng Neural RBF và Ứng dụng nhận dạng chữ viết tay”. Với mục tiêu kết hợp giữa nghiên cứu lý thuyết mạng Neural RBF đi đôi với việc tìm hiểu bài toán nhận dạng chữ viết tay để thực hiện tạo chương trình ứng dụng nhận dạng chữ viết tay. 4.2.1.1 Những công việc đã làm được Chương 4: Giới thiệu chương trình nhận dạng chữ số viết tay và tổng kết 44 +Tìm hiểu được kiến trúc mạng Neural RBF, hiểu được các phương pháp huấn luyện mạng RBF, nhờ đó đã tiến hành cài đặt thành công được mạng Neural RBF với các thuật toán huấn luyện khác nhau (xem chương 1). +Tìm hiểu được bài toán nhận dạng chữ viết tay, hiểu được các bước để xử lý bài toán nhận dạng chữ viết tay. Tìm hiểu và tiến hành cài đặt được 3 phương pháp trích chọn đặc trưng chữ viết tay đó là: phương pháp kết hợp biến đổi DCT và thuật toán PCA, phương pháp sử dụng momen Legendre, phương pháp sử dụng mạng Neural nhân chập (xem chương 3). +Tìm hiểu các phương pháp để tăng hiệu suất cho mạng Neural RBF áp dụng cho bài toán nhận dạng chữ viết tay. Đề xuất phương pháp học tập hợp cải tiến cho hiệu suất nhận dạng 98% với bộ dữ liệu MNIST và có thời gian huấn luyện mạng rất nhanh. +Xây dựng được phần mềm nhận dạng chữ số viết tay. 4.2.2.2 Hướng phát triển của đề tài Do thời gian nghiên cứu có hạn nên đề tài khóa luận chưa thể đi sát vào các vấn đề được đưa ra. Nếu được phát triển thêm tôi sẽ nghiên cứu kỹ hơn về mạng neural RBF, nghiên cứu các cách huấn luyện khác cũng như các kiến trúc mạng RBF cải tiến làm cho việc huấn luyện nhanh hơn và hiệu suất nhận dạng tốt hơn. Bài toán nhận dạng chữ viết tay mặc dù đã được nghiên cứu từ lâu nhưng đến ngày nay vẫn được tiếp tục phát triển, đặc biệt là các bài toán nhận dạng văn bản tiếng việt, nhận dạng form... Do chưa thể đầu tư thời gian nhiều cho việc giải quyết bài toán nhận dạng chữ viết tay, nên chắc chắn tôi còn mắc thiếu sót rất nhiều ở phần này. Nếu phát triển tiếp thì ở phần nhận dạng chữ viết tay tôi sẽ nghiên cứu kỹ hơn các phương pháp trích chọn đặc trưng chữ viết cũng như các kỹ thuật làm tăng tốc độ nhận dạng của mạng (trong khóa luận tôi chưa dành thời gian nhiều để giải quyết vấn đề tăng tốc độ nhận dạng của mạng). Ở phần ứng dụng tôi cũng chỉ mới dừng lại mới dừng lại ở việc viết phần mềm nhận dạng chữ số viết tay, ứng dụng này không thực sự có ý nghĩa thực tiễn. Nếu tiếp tục nghiên cứu phát triển thêm thì tôi sẽ phát triển ứng dụng hướng đến việc nhận dạng ký tự tiếng việt, cũng như phát triển các ứng dụng thời gian thực. Tóm lại hướng phát triển của tôi cho đề tài khóa luận này là kết hợp giữa việc nghiên cứu sát hơn phần lý thuyết của mạng Neural RBF và việc đưa ra cách giải quyết hợp lý nhất cho bài toán nhận dạng chữ viết tay tiếng việt sử dụng mạng Neural RBF. TÀI LIỆU THAM KHẢO [1] Hoàng Xuân Huấn, Giáo trình các phương pháp số, NXB Đại học quốc gia Hà Nội, 2004 [2] Hoang Xuan Huan, Dang Thi Thu Hien and Huu Tue Huynh, A Novel Efficient Algorithm for Training Interpolation Radial Basis Function Networks, Signal Processing 87 ,2708 – 2717, 2007. [4] F. Schwenker, H.A. Kestler, Gu Ènther Palm, Three learning phases for radial-basis-function networks, Neural Networks 14 (2001) 439±458 [5] C.G. Looney, Pattern Recognition Using Neural Network, Theory and algorithm for engineers and scientist, Oxford University press, 1997. [6] N.B. Karayiannis, Member, IEEE, and Glenn Weiqun Mi. Growing Radial Basis Neural Networks: MergingSupervised and Unsupervised Learning with Network Growth Techniques. IEEE transactions on neural networks, vol. 8, no. 6, November 1997 [7] M. Vatkin, M. Selinger the system of handwritten characters recognition on the basis of legendre moments and neural network, The International Workshop on Discrete-Event System Design, DESDes’01, June 27÷29, 2001; Przytok near Zielona Gora, Poland [8] P.Y. Simard, Dave Steinkraus, John C. Platt, Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis, Microsoft Research, One Microsoft Way, Redmond WA 98052 [9] S.Theodoridis, K.Koutroumbas Pattern recognition Second edition, 2ed., Elsevier, 2003 [10] J. Shlens, A Tutorial on Principal Component Analysis, April 22, 2009 [11] T.M. Mitchell, Machine learning, McGraw-Hill, 1997 [12] D.S. Broomhead and D. Lowe. Multivariable functional interpolation and adaptive networks. Complex Systems, vol. 2, 321-355, 1988. [13] D. Gorgevik, D. Cakmakov. An Efficient Three-Stage Classifier for Handwritten Digit Recognition. Proceedings of the 17th International Conference on Pattern Recognition (ICPR’04). [14] R. H. Bartels, J. C. Beatty and B. A. Barsky, An introduction to Splines for use in computer graphics & geometrics modeling, Morgan Kaufmann Publishers, 1987 [15] K.M. Hosny, New Set of Rotationally Legendre Moment Invariants, International Journal of Electrical and Electronics Engineering 2:3 2007 [16] D. Bouchain, Character Recognition Using Convolutional Neural Networks, 2006 [17] R. Esposito, Ensemble Learning [18] Wikipedia®, k-means clustering, means_clustering [19] Wikipedia®, Principal component analysis, [20] Wikipedia®, Discrete cosine transform, [21] Wikipedia®, Image moments, [22] Wikipedia®, Eigenvalue, eigenvector and eigenspace, [23] Wikipedia®,Convolution

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN-MẠNG NEURAL RBF VÀ ỨNG DỤNG NHẬN DẠNG CHỮ VIẾT TAY.pdf