Biểu diễn tri thức cho mạng nơ-ron:

Một phần của tài liệu đồ án tốt nghiệp sử dụng mạng nơ ron nhận dạng ký tự (Trang 33)

Có thể đưa ra định nghĩa về tri thức như sau:

Tri thức chính là thông tin được lưu trữ hay các mô hình được con người và máy móc sử dụng để biểu diễn thế giới thực, phán đoán về thế giới và có những đáp ứng phù hợp với thế giới bên ngoài.

Các đặc tính cơ bản của diễn tri thức là:

Nguyễn Thị Quyên Trang 34  Làm thế nào thông tin được mã hóa một cách vật lý cho việc sử dụng sau

này. Trong các ứng dụng thực tế của các máy tính thông minh, có thể nói rằng một giải pháp tốt phụ thuộc vào một biến tri thức tốt. Điều đó cũng đúng với các mạng nơ-ron, một lớp đặc biệt của các máy thông minh. Tuy nhiên, các dạng biểu diễn có thể từ các đầu vào thành các tham số bên trong của mạng là rất đa dạng, và có khuynh hướng làm cho việc tìm ra một giải pháp thích hợp nhằm biểu diễn tri thức bằng phương tiện mạng nơ-ron trở nên một sự thách thức về thiết kế.

Ở đây cần nhấn mạnh rằng mạng nơ-ron lưu trữ thông tin về thế giới thực bằng chính bản thân cấu trúc của nó kể cả về mặt hình dạng cũng như giá trị tham số bên trong (có thể thay đổi được). Một nhiệm vụ chính của mạng nơ-ron là học một mô hình của thế giới thực để đạt được một số mục đích xác định cần quan tâm. Tri thức của thế giới bao gồm hai loại thông tin sau:

 Trạng thái thế giới đã biết, được biểu diễn bởi các sự kiện về những cái đã biết, dạng tri thức này được xem như là các thông tin ban đầu.

 Các quan sát (đo đạc) về thế giới, thu nhập được thông qua các bộ cảm biến được thiết kế để thăm dò môi trường mà trong đó mạng hoạt động. Nói chung, các quan sát này luôn bị nhiễu và sai lệch do nhiều nguyên nhân khác nhau. Các quan sát thu nhận được như vậy cung cấp một quỹ thông tin, mà từ đó lấy ra các ví dụ được dùng để huấn luyện mạng nơ-ron.

Do cấu trúc một mạng nơ-ron là vô cùng đa dạng, nên để có thể biểu diễn tri thức một cách có hiệu quả, người ta đưa ra bốn quy tắc chung sau:

Quy tắc 1. Các đầu vào tương tự từ các lớp tương tự cần phải luôn tạo ra những biểu diễn tương tự trong mạng, và như vậy nên được phân lớp thuộc về cùng một loại. Trong tiêu chuẩn này, người ta thường sử dụng một số thước đo để xác định độ “tương tự” giữa các đầu vào (ví dụ khoảng cách euclide).

Quy tắc 2. Các phần tử mà có thể phân ra thành các lớp riêng biệt thì nên có những biểu diễn khác nhau đáng kể trong mạng.

Quy tắc 3. Nếu một đặc trưng nào đó đặc biệt quan trọng thì nên có một số lượng lớn nơ-ron liên quan đến việc biểu diễn đặc trưng này trong mạng. Số lượng lớn các nơ-ron bảo đảm mức độ chính xác cao trong việc thực hiện các quyết định và nâng cao khả năng chịu đựng các nơ-ron hỏng.

Quy tắc 4. Thông tin ban đầu và các tính chất bất biến nên được đưa vào trong thiết kế ban đầu của một mạng nơ-ron, và như vậy sẽ giảm bớt gánh nặng cho quá trình học. Quy tắc 4 đặc biệt quan trọng vì nếu chúng ta áp dụng nó một cách thích hợp sẽ dẫn đến khả năng tạo ra các mạng nơ-ron với một kiến trúc chuyên biệt. Điều này thực sự được quan tâm do một số nguyên nhân sau:

Nguyễn Thị Quyên Trang 35

1. Các mạng nơ-ron thị giác và thính giác sinh học được biết là rất chuyên biệt.

2. Một mạng nơ-ron với cấu trúc chuyên biệt thường có một số lượng nhỏ các tham số tự do phù hợp cho việc chỉnh lý hơn là một mạng kết nối đầy đủ. Như vậy mạng nơ-ron chuyên biệt cần một tập hợp dữ liệu nhỏ hơn cho việc tích luỹ, nó học sẽ nhanh hơn, và thường có khả năng tổng quát hoá tốt hơn.

3. Tốc độ chuyển thông tin qua một mạng chuyên biệt là nhanh hơn. 4. Giá của việc xây dựng một mạng chuyên biệt sẽ nhỏ hơn do kích

thước nhỏ của nó so với mạng kết nối đầy đủ.

KẾT LUẬN CHƢƠNG:

Trong chương này em đã tìm hiểu các khái niệm, cấu trúc và khả năng ứng dụng của mạng nơ-ron nhân tạo. Trình bày chi tiết về mạng nơ-ron truyền thẳng nhiều lớp và các thuật toán học đối với loại mạng này. Mạng nơ-ron nhân tạo được coi là một công cụ mạnh, mềm dẻo để giải quyết các bài toán có tính phi tuyến, phức tạp và đặc biệt trong các trường hợp mà mối quan hệ giữa các quá trình không dễ thiết lập một cách tường minh. Do đó, khả năng ứng dụng của nó là rất lớn đặc biệt trong bài toán nhận dạng ký tự.

Nguyễn Thị Quyên Trang 36

CHƢƠNG 2: ỨNG DỤNG MẠNG NƠ-RON

TRONG NHẬN DẠNG KÝ TỰ 2.1 Sơ lƣợc:

Nhận dạng ký tự là một ứng dụng đang được rất nhiều người quan tâm nhưng nó đầy khó khăn và thử thách.

Điều rất khó của khả năng nhận dạng phù hợp kí tự là các kiểu ngôn ngữ rất phức tạp không theo quy luật do biến đổi trong font, kiểu và kích cỡ.

Với một số phương thức lập trình truyền thống đã ánh xạ ảnh kí tự vào trong ma trận, phân tích ảnh hoặc vector dữ liệu, kiểm tra đưa ra quyết định phù hợp của kết quả. Việc thực thi này trong lập trình truyền thống cần viết mã nguồn vô tận cho mỗi kiểu đối với sự không nhất quán hay sự chênh lệch với các giá trị đầu ra khác nhau. Lý thuyết này không hiện thực.

Sử dụng mạng nơ-ron nhân tạo với những mạng làm việc đúng quy tắc từ việc cập nhật lại các trọng số liên kết giữa các nút mạng. Với ưu điểm là mạng có thể nhận dữ liệu từ những phân tích sinh động của các ảnh đầu vào và việc huấn luyện cho các kí tự đầu ra cho mẫu, nói cách khác là khả năng thích nghi với môi trường dữ liệu đầu vào sinh động.

2.2 Bài toán nhận dạng ký tự:

Cho bài toán nhận dạng kí tự với đầu vào là trang văn bản trên định dạng file ảnh (*.bmp,*.jmp,…). Yêu cầu là xây dựng chương trình nhận dạng kí tự văn bản trên file ảnh. Sử dụng công cụ là mạng nơ-ron và đầu ra là tập hợp các kí tự lưu trữ dưới dạng văn bản.

Giả thiết giai đoạn tiền xử lý đã được thực hiện: ảnh đã được phân ngưỡng, xoay ảnh, lọc nhiễu... Đề tài này chỉ đi sâu nghiên cứu quá trình nhận dạng kí tự của mạng nơ-ron.

Ý tưởng giải quyết bài toán : (adsbygoogle = window.adsbygoogle || []).push({});

 Phân tích ảnh cho kí tự: Chia ảnh theo dòng và tách ký tự theo từng vùng giới hạn.

 Chuyển đổi kí tự sang ma trận điểm ảnh.

 Chuyển thành ma trận tuyến tính và đưa vào mạng nơ-ron.

 Đưa vào mạng nơ-ron tính giá trị đầu ra.

Nguyễn Thị Quyên Trang 37

2.3 Các bƣớc giải quyết bài toán nhận dạng ký tự: 2.3.1. Xác định đầu vào và đầu ra của bài toán: 2.3.1. Xác định đầu vào và đầu ra của bài toán:

Xác định dữ liệu đầu vào, và đầu ra mong muốn để tiến hành huấn luyện mạng nơ-ron.

Đầu vào: Vì đồ án này em chỉ tập trung vào nghiên cứu và cài đặt quá trình nhận dạng ký tự bằng mạng nơ-ron, nên các dữ liệu đầu vào phải qua xử lý và đạt chuẩn yêu cầu trước khi đưa vào nhận dạng. Các yêu cầu dữ liệu đầu vào là các file ảnh dạng văn bản có định dạng *.bmp, đây là dạng file ảnh chuẩn, có kiểu màu pixel đen và trắng, để việc tiến hành nhận dạng được chính xác. Các file ảnh này đã qua giai đoạn tiền xử lý : xử lý ảnh nhiễu, ảnh đa sắc, lọc ảnh...

Đầu ra mong muốn: là một file text chứa các ký tự Unicode tương ứng mà chương trình mong muốn huấn luyện để mạng học thuộc. Số ký tự đầu ra mong muốn phải tương ứng với số kí tự ảnh đầu vào cần huấn luyện.

2.3.2. Xác định cấu trúc mạng nơ-ron:

Để giải quyết bài toán, ta sử dụng mạng nơ-ron truyền thẳng 3 lớp như hình minh họa dưới đây:

Nguyễn Thị Quyên Trang 38

Hình 2.1: Sơ đồ mạng nơ-ron thiết kế

Lớp đầu vào: gồm 150 nơ-ron nhận giá trị nhị phân (0,1) của 150 thành phần của véctơ tương ứng, dữ liệu được véc tơ hóa từ ma trận điểm ảnh kí tự bằng phương pháp chia lưới.

Việc huấn luyện cho mạng học là một vòng lặp duyệt qua lần lượt các ký tự ảnh giúp mạng nơ-ron nhớ và nhận dạng các ký tự ảnh này. Với mỗi vòng lặp, một ký tự sẽ được đưa vào giảng dạy cho mạng nơ-ron học.Trong quá trình này, mỗi ký tự sẽ được phân tích và chuyển tỉ lệ vào một ma trận nhị phân 15 x 10. Ứng với mỗi điểm lưới của ma trận sẽ được tuyến tính hóa tạo ra tương ứng với một nơ-ron đầu vào. Vì vậy ma trận sẽ tạo ra 15x10=150 nơ-ron đầu vào.

250 nơ-ron Lớp ẩn 150 nơ-ron Lớp đầu vào Điểm ảnh Điểm ảnh Điểm ảnh Điểm ảnh 0 hoặc 1 0 hoặc 1 0 hoặc 1 0 hoặc 1 16 nơ-ron Lớp đầu ra

Nguyễn Thị Quyên Trang 39

Việc chọn số lượng nơ-ron đầu vào hay nói cách khác việc chọn tỉ lệ ma trận đầu vào cho kí tự là rất quan trọng:

o Nếu số lượng nơ-ron lớn quá sẽ dẫn đến việc :

 Nhận dạng những kí tự có font chữ nhỏ hoặc trung bình bị sai hoặc không chính xác.

 Chương trình viết ra phải duyệt qua rất nhiều vòng lặp dẫn đến chương trình bị chậm, hoặc gây ra tình trạng bị đứng máy khi chạy.

o Nếu số lượng nơ-ron quá nhỏ :

 Việc phân tích các kí tự ảnh thông thường và lớn sẽ dẫn đến sai số lớn, vì vậy việc nhận dạng kí tự cũng sẽ thiếu tính chính xác.

 Qua kiểm nghiệm, và dựa trên nhiều tài liệu, nhận thấy giá trị 150 nơ- ron đầu vào là khá phù hợp để nhận dạng với kiểu kí tự ảnh có font chữ trung bình, và phổ biến. Các kí tự ảnh này có chiều cao trung bình là 70 pixel và chiều rộng khoảng 54 pixel.

Lớp ẩn: gồm 250 nơ-ron, số nơ-ron này được quyết định từ những kết quả tối ưu và giá trị lỗi cơ sở trong quá trình huấn luyện.

Lớp đầu ra: 16 nơ-ron tương ứng với 16 bit nhị phân của mã Unicode. Từ 16 nơ-ron này ta tổng hợp và chuyển thành 16 bit nhị phân, sau cùng chuyển thành 1 kí tự Unicode.

Với những lớp nói ở trên ta đã xây dựng được mạng nơ-ron như hình 2.1.

2.3.3. Thuật toán huấn luyện mạng:

Mạng feed-forward sử dụng giải thuật lan truyền ngược sai số Back Propagation. Giải thuật gồm 2 bước :

Bƣớc 1: (adsbygoogle = window.adsbygoogle || []).push({});

 Lan truyền xuôi đầu vào qua mạng.

 Sử dụng các công thức :

Công thức chung tính đầu ra của một nơ-ron thứ i tại lớp thứ k:

yi = f (   n j j ijx w 0 -bi)

Nguyễn Thị Quyên Trang 40 f= 1 1 2 t    e α: hệ số góc của hàm chuyển t: biến net-input bi: hệ số ngưỡng hay độ lệch

Áp dụng đối với mô hình mạng của chƣơng trình :

 Công thức cho đầu ra của một nơ-ron thứ i (1250) tại lớp ẩn:

ai= f(   n j j ijx w 1 -bi) Với: ij

w : trọng số tại nơ-ron thứ i của lớp ẩn kết nối với đầu vào thứ j của lớp vào.

j

x : giá trị đầu vào của nơ-ron thứ j tại lớp vào.

bi : giá trị ngưỡng hay độ lệch của nơ-ron thứ i của đầu vào.

 Công thức cho đầu ra của một nơ-ron thứ k (k =116) tại lớp output:

yk= f( k n j j kja b w   1 )=f [  n j kj w 1 (f(   n j j ijx w 1 )]  Bƣớc 2 :Lan truyền ngƣợc:

 Tính toán sai lệch giữa đầu ra thực và đầu ra mong muốn của nơ-ron thứ k tại đầu ra.

ei= ti- yi

Tổng bình phương sai số của mạng ứng với mẫu học (Xs, Ts):

E=   p k 1 2 1 ( ti- yi)2 p: số phần tử đầu ra. l: vòng lặp thứ l.

Nếu E< ε và l+1<epochs thì :

Thông tin sai số sẽ được lan truyền ngược qua mạng để điều chỉnh lại trọng số tại vòng lặp l.

Nguyễn Thị Quyên Trang 41  Công thức điều chỉnh trọng số với liên kết giữa nơ-ron thứ j trong lớp ẩn và nơ-

ron thứ i trong lớp ra tại lần lặp l+1: (l+1<số lần dạy( epochs) )

ij

w (l+1) = wij(l)+ η.ei(l).yj.f’(yi(l))

Với:

η: hệ số học.

ei(l): giá trị sai lệch của nơ-ron thứ i trong lớp ra, trong lần dạy (lặp) thứ l. f’: đạo hàm của hàm chuyển lưỡng cực, công thức f’=

2 1x2

yi(l) : giá trị đầu ra của nơ-ron thứ i trong lớp ra tại vòng lặp thứ l. yj (l): giá trị đầu ra của nơ-ron thứ j trong lớp ẩn tại vòng lặp thứ l.

 Công thức điều chỉnh trọng số với liên kết giữa nơ-ron vào thứ j và nơ-ron ẩn thứ i, tại lần lặp thứ l+1 (l+1 <epochs): ij w (l+1) = wij(l)+ η.xj.f’(yi).   m k k k ki l e l f y l w 1 )) ( ( ' ). ( ). 1 ( Với : η: hệ số học. (adsbygoogle = window.adsbygoogle || []).push({});

xj : giá trị đầu ra của nơ-ron thứ j trong lớp vào. yi : giá trị đầu ra của nơ-ron thứ i trong lớp ẩn.

wki(l+1) : trọng số liên kết giữa nơ-ron thứ k trong lớp ra và nơ-ron thứ i trong lớp ẩn trong lần lặp thứ l+1 .

yk (l) : giá trị đầu ra của nơ-ron thứ k trong lớp ra.

Các tham số sử dụng trong chƣơng trình:

 Tốc độ học η = 150.

 Hệ số góc α Sigmoid= 0.014.

 Giá trị ngưỡng hay độ lệch = 30.

 Số lần dạy 300-600 tùy độ phức tạp của từng loại font.

Nguyễn Thị Quyên Trang 42

2.3.4. Xử lý dữ liệu:

Quá trình phân tích ảnh thực chất là phân tích chuỗi văn bản ảnh thành từng ký tự một. Việc phân tích này dựa trên việc nhận dạng từ ảnh đầu vào bằng phương pháp tính giá trị màu. Các pixel màu của ký tự ảnh với dữ liệu đầu vào đã được xử lý và chuyển thành định dạng bitmap (*.bmp) chỉ có 2 pixel điểm đen RGB(0,0,0) và điểm trắng

RGB(255, 255, 255).

Quá trình phân tích ảnh được thực hiện tuần tự như sau :

 Phân tích văn bản thành từng dòng văn bản .

 Phân tích từng dòng văn bản thành từng ký tự ảnh một.

2.3.4.1. Tách dòng ký tự:

Việc xác định các dòng kí tự trong một ảnh kí tự hay một trang văn bản là một trong yếu tố quan trọng trong quá trình tìm giới hạn của kí tự, khi tìm giới hạn của kí tự tiếp theo chúng ta không cần quét trên toàn bộ ảnh.

Thuật toán:

 Bắt đầu từ điểm ảnh x, y đầu tiên của file ảnh (0,0) và gán số dòng đang xét lines = 0.

a. Xác định giới hạn trên của dòng:

Quét đến hết chiều rộng của ảnh trên một giá trị y của ảnh (chạy x<= chiều rộng ảnh, giữ nguyên y).

 Nếu gặp một pixel đen thì ghi nhận y chính là tọa độ giới hạn trên của dòng (line_top). Dừng duyệt x.

 Nếu khi quét hết chiều rộng của ảnh, vẫn không tìm thấy giá trị điểm màu đen thì reset lại x=0, và tiếp tục duyệt đến dòng tiếp theo (tăng y=y+1). b. Xác định giới hạn dưới của dòng:

 Bắt đầu duyệt từ giới hạn trên (đỉnh) vừa tìm thấy của dòng (0, line_top).

 Quét đến hết chiều rộng của ảnh trên một giá trị y của ảnh.

 Nếu duyệt hết dòng mà không tìm thấy ký tự pixel đen nào thì ghi nhận y-1

Một phần của tài liệu đồ án tốt nghiệp sử dụng mạng nơ ron nhận dạng ký tự (Trang 33)