Chương 2. NHẬN DẠNG CHỮ NÔM
2.3. Các phương pháp nhận dạng chữ Nôm
2.3.2. Phương pháp mạng Nơron
Theo [6] nhâ ̣n da ̣ng chƣ̃ Nôm bằng ma ̣ng nơ -ron truyền thẳng , sƣ̉ du ̣ng thuâ ̣t toán lan truyền ngược . Kiến trúc mạng nơ-ron trong chương trình gồm 3 lớp:1 lớp vào, 1 lớp ẩn, 1 lớp xuất. Gọi số nơ-ron của mỗi lớp vào là a, số điểm ảnh trung bình của một ảnh là b, số mẫu nhận dạng là m thì ta có công thức (2.2).
a= (B+m)*0,33 (2.2) Trong chương trình, tất cả các ảnh đưa vào học đã được đưa về dạng 24x24 nên mặc nhiên số điểm ảnh trung bình b = 24x24. Gọi số nơ-ron của lớp ẩn là b, b đƣợc tính theo công thức (2.3). Số nơ-ron đầu ra là c đƣợc tính theo công thức (2.4). Nếu học một kiểu và nhận dạng 5 mẫu còn lại thì số mẫu học là 495.
b= (B+m)*0,11 (2.3) c=m (2.4)
Hình 2.5. Kiến trúc mạng nơ-ron
Trong kiến trúc ma ̣ng này dùng thêm mô ̣t lớp ta ̣m gọi là tiền đầu vào , số
phần tƣ̉ của lớp tiền đầu vào bằng số đă ̣c trƣng của lớp.
Đầu vào: Mạng truyền thẳng với n i đầu vào, n h nút ẩn và n o đầu ra (được tính theo công thức ở trên.). Hệ số học η =0,2. Tập dữ liệu huấn luyện D = {tập hợp các đặc trưng của ảnh chữ, các giá đầu ra mong muốn bao gồm cả tên ảnh học } Đầu ra: Các các trọng số phù hợp của các nơ-ron trong mạng. Đây là kết quả của quá trình huấn luyện. Trong quá trình huấn luyện, ban đầu các trọng số sẽ đƣợc tạo ra bằng giá trị ngẫu nhiên nằm trong khoảng [0,01; 0,02] và sẽ đƣợc điều chỉnh dần theo từng lần lan truyền ngƣợc sai số. Sai số này là độ lệch của đầu ra với mục tiêu huấn luyện. Độ lệch đó sẽ xuống dốc dần dần về đến giá trị chấp nhận đƣợc.
Ban đầu, khởi tạo mạng, gán các giá trị tổng lỗi, số nơ-ron đầu vào, số nơ- ron đầu ra, số nơ-ron lớp ẩn, chuẩn bị dữ liệu đầu vào và gán hệ số học: 0,2. Có các bước lấy đặc trưng của ảnh, đưa các đặc trưng đó vào ma trận đầu vào từ đó đƣa vào lớp vào, bắt đầu quá trình huấn luyện. Quá trình huấn luyện đƣợc mô tả trong hình. Lấy đă ̣c trƣng của ảnh để làm đầu và o cho ma ̣ng nơ -ron theo Hình 2.6.
Hình 2.1.Sơ đồ lấy đặc trưng của ảnh chữ Nôm
Đầu vào của giai đoạn lấy đặc trƣng là một ảnh chữ nôm, đầu ra là mảng số thực có 24x24 phần tử có giá trị nằm trong khoảng (0,1). Trong chương trình,
chọn kích thước ảnh là 24x24, do đó có một module chuyển thư mục ảnh thành thư mục ảnh có kích thước 24x24. Chọn như vậy là để có ít đặc trưng hơn và dễ xử lý hơn khi có kích thước lớn hơn. Công thức để tính cho phần tử mảng được tính theo công thức đề nghị (2.5).
A[i*24+j]= 1-(corlor ij .R x 0.3+ corlor ij .G x 0.59+ corlor ij .B x 0.11)/255 (2.5) Trong đó, i=1..24, j= 1..24, Alà phần tử của mảng corlor ij là bảng màu của ảnh, R là ma trận màu đỏ, G là ma trận màu xanh da trời, B là ma trận màu xanh nước biển của ảnh đầu vào ở hàng i, cột j. Quá trình tính toán này cứ tiếp tục cho đến khi duyệt hết ma trận ảnh đó.
Đầu vào của của quá trình này là một mảng số thực 2 chiều X[n] [m], trong đó n là số mẫu học và m là kích thước trung bình của ảnh =24x24 =576.
Trong chương trình ta lưu mỗi giá trị này với một khóa (là tên mẫu huấn luyện).Có rất nhiều phương pháp lấy đặc trưng, tuy nhiên trong đề tài này chọn cách lấy đặc trƣng theo công thức trên. Tất cả ảnh đầu vào qua lấy đặc trƣng sẽ là những mảng số thức nằm trong phạm vi nhỏ hơn 1.
Nạp thông số mạng là việc kiến thiết kiến trúc mạng, chương trình trong đề tài này cho phép tạo 1, 2, 3 lớp và số nơ-ron cho mỗi lớp mạng.Có thể chọn số nơ-ron tùy ý cho mỗi lớp mạng.Khởi tạo mạng nơ-ron là việc khởi tạo trọng số cho tất cả các nơ-ron trong mạng, ngƣỡng lỗi cho phép, hệ số học.
Như hình 2.7 mô tả, quá trình huấn luyện mạng nơ-ron được bắt đầu bằng viê ̣c cấu hình thông số ma ̣ng nhƣ ma ̣ng có bao nhiêu lớp , mỗi lớp có bao nhiêu nơ-ron. Sau đó sẽ khởi ta ̣o ma ̣ng nơ-ron này, khởi dƣ̣ng nhƣ̃ng giá tri ̣ ngẫu nhiên ban đầu của ma ̣ng là nhƣ̃ng giá tri ̣ nhỏ . Với thƣ mu ̣c ảnh đầu vào sẽ ta ̣o ra mô ̣t các mẫu dữ liệu huấn luyện . Thuâ ̣t toán lan truyền ngược lần lượt sử du ̣ng các mẫu dƣ̃ liê ̣u huấn luyê ̣n đó cho đến hết . Mỗi lần sƣ̉ du ̣ng sẽ điều chỉnh la ̣i tro ̣ng số của các nơ-ron trong ma ̣ng. Quá trình sẽ đƣợc lă ̣p lại cho đến khi tổng lỗi đạt giá trị ngƣỡng đặt ra.
Giá trị ngưỡng đặt ra là do kinh nghiệm của người thực hiện với mạng nơ- ron. Thông thươ ̀ ng ngưỡng này thường nhỏ . Tuy nhiên cũng giống với các hê ̣ học máy khác , giá trị ngưỡng này rất “mờ” . Hơn nữa, tùy thuộc vào kiến trúc mạng, giá trị lệch ban đầu có thể rất lớn , viê ̣c giảm dần đô ̣ lê ̣ch đó về giá tri ̣ ngưỡng cũng tùy thuô ̣c vào kiến trúc ma ̣ng đó . Trong nhiều trường hợp có thể
xảy ra liê ̣t ma ̣ng . Mạng liệt xảy ra khi các giá trị trọng số của các nơ-ron trong mạng rất lớn, nên tổng giá trị đầu ra của nơ-ron lớp tiếp theo sẽ rất cao (Trong lập trình, khi chọn kiểu giá trị Double sẽ xuất hiện giá trị NaN). Khi đó mạng không hoạt động nữa, tất cả các giá trị trọng số sẽ vô cùng lớn.
Hình 2.7. Lưu đồ huấn luyện mạng nơ-ron
Kết quả nhận dạng bằng phương pháp mạng nơ-ron được thể hiện trong Bảng 2.3
Bảng 2.1 Kết quả nhận dạng bằng phương pháp mạng nơ-ron
TT KIỂU HỌC
SỐ LƢỢNG
HỌC
KIỂU NHẬN DẠNG
SỐ LƢỢNG
NHẬN DẠNG
TỈ LỆ
1 HanNomA_0_0 495 HanNomA_0_0 495 89.898990%
2 HanNomA_0_0 495 HanNomA_0_1 495 86.262630%
3 HanNomA_0_0 495 HanNomB_0_0 495 75.555560%
4 HanNomA_0_0 495 HanNomB_0_1 495 74.545450%
5 HanNomA_0_0 495 NomNaTong_0_0 495 60.000000%
6 HanNomA_0_0 495 NomNaTong_0_1 495 60.000000%
7 HanNomA_0_0 495 6 kiểu (mỗi kiểu
495) 2970 74.377100%
8 HanNomA_0_0 495 5 kiểu còn lại 2475 71.272720%
Trung bình nhận dạng đƣợc: 73.464049%