+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
58 trang |
Chia sẻ: lylyngoc | Lượt xem: 4117 | Lượt tải: 2
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:
- LUẬN VĂN-MẠNG NEURAL RBF VÀ ỨNG DỤNG NHẬN DẠNG CHỮ VIẾT TAY.pdf