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

Một phần của tài liệu Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh ký tự (Trang 44)

Tri thức 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à:

 Thông tin gì thực sự đƣợc biểu diễn.

 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à 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ế.

45

Ở đâ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 để nắm bắt môi). 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.

46

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:

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 đủ.

47

CHƢƠNG 3

XÂY DỰNG ỨNG DỤNG 3.1. Phát biểu bài toán

Cho bài toán nhận dạng kí tự với đầ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. 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ƣ 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 bài toán:

 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. (adsbygoogle = window.adsbygoogle || []).push({});

 Hiển thị kí tự của mã Unicode thu đƣợc.

3.2. Giải quyết bài toán

Các bƣớc giải quyết bài toán sử dụng mạng nơron nhận dạng ảnh ký tự: Xây dựng mạng, xử lý dữ liệu (phân tích ảnh), huấn luyện mạng nơron và nhận dạng mạng nơron.

3.2.1. Xây dựng mạng nơron

48

Hình 3.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.

Lớp ẩn gồm 500 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.

500 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

49

Lớp đầu ra gồm 16 nơron đƣa ra giá trị nhị phân (0,1) tƣơng ứng với 16 bít của mã Unicode. Với những lớp nói ở trên ta đã xây dựng đƣợc mạng nơron nhƣ hình 3.1

3.2.2. Xử lý dữ liệu (phân tích ảnh)

Quá trình phân tích ảnh để tìm ra đặc tính của kí tự bởi việc kiểm tra điểm ảnh nó là giá trị đầu vào cho cả quá trình huấn luyện và quá trình kiểm tra. Quá trình 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. Giới hạn của giá trị là điểm đen RGB(0,0,0)

hoặc điểm trắng RGB(255,255,255). Những ảnh đầu vào đƣợc định dạng

bitmap(*.bmp).

3.2.2.1. Tách dòng kí tự

Sự liệt kê các dòng của 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:

1. Bắt đầu từ điểm ảnh x, y đầu tiên (0,0), và đặt là dòng 0. 2. Quét đến hết chiều rộng của ảnh trên một giá trị y của ảnh.

3. Nếu là phát hiện điểm đen thì lƣu giá trị y là đỉnh của hàng đầu tiên:

 Nếu không xét tiếp điểm tiếp theo.

 Nếu không thấy điểm đen nào thì tăng y và khởi động lại x để quét dòng ngang tiếp theo.

 Bắt đầu từ đỉnh của hàng tìm thấy (0, giới hạn trên).

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

 Nếu không phát hiện điểm đen nào thì đánh dấu giá trị y-1 là giới hạn dƣới của hàng. Và tăng số dòng, xét dòng tiếp theo.

 Nếu vẫn phát hiện thấy điểm đen tăng y và khởi động lại x xét hàng ngang tiếp theo.

50

5. Bắt đầu từ giới hạn dƣới của hàng ngang tìm thấy sau cùng lặp lại từ bƣớc 1 đến bƣớc 4 tìm dòng kế tiếp.

6. Nếu y bằng chiều cao của ảnh thì dừng.

Hình 3.2: Quá trình tách dòng kí tự (adsbygoogle = window.adsbygoogle || []).push({});

3.2.2.2. Tách kí tự

Thuật toán

1. Bắt đầu từ kí tự đầu tiên của hàng trên cùng với giá trị x đầu tiên.

2. Quét hết chiều rộng với một giá trị y.

 Nếu phát hiện điểm đen đánh dấu y nhƣ là đỉnh của hàng đầu tiên.

 Nếu không xét điểm tiếp theo.

3. Bắt đầu từ giới hạn trên của kí tự phát hiện đƣợc và giá trị x đầu tiên (0, giới hạn trên kí tự) .

4. Quét đến giới hạn dƣới của dòng, giữ nguyên x.

 Nếu phát hiện điểm đen đánh dấu x là phía trái của kí tự.

Ảnh đầu vào

Quá trình tách dòng

Giới hạn trên Gới hạn dƣới

51

 Nếu không xét điểm tiếp theo.

 Nếu không thấy điểm đen nào tăng x và khởi động lại y để xét đƣờng thẳng đứng tiếp theo.

5. Bắt đầu từ phía trái của kí tự tìm thấy và đỉnh của dòng hiện thời, (giới hạn trái kí tự, giới hạn trên dòng).

6. Quét hết chiều rộng của ảnh. Trên cùng một giá trị x.

 Nếu không có điểm đen nào thì đánh dấu x-1 là bên phải của kí tự.

 Nếu phát hiện điểm đen tăng x và khởi động lại y để xét đƣờng thẳng đứng tiếp theo.

Hình 3.3: Quá trình tách kí tự

3.2.2.3.Tìm giới hạn kí tự

Trong một số trƣờng hợp quá trình tách kí tự có thể không phải là giới hạn thực tế của kí tự. Ở đây xuất hiện vấn đề không sắp xếp kí tự theo quy luật nhƣ sắp xếp dòng kí tự. Tức là đỉnh của một hàng không tất yếu là đỉnh

x y Quá trình tách kí tự (0,0) Giới hạn phải kí tự Giới hạn trái kí tự

52

của tất cả và tƣơng tự đáy của của một hàng cũng không là đáy của tất cả các kí tự trên một dòng. Từ đây cần có một thủ tục tìm giới hạn kí tự.

Thuật toán

1. Bắt đầu từ đỉnh của dòng hiện thời và bên trái của kí tự.

2. Quét đến bên phải của kí tự, cùng một giá trị y.

 Nếu phát hiện điểm đen thì đánh dấu y và thay đổi lại giới hạn trên.

 Nếu không xét điểm tiếp theo. (adsbygoogle = window.adsbygoogle || []).push({});

 Nếu không tìm thấy điểm đen nào tăng y và khởi động lại x, xét đƣờng thẳng ngang tiếp theo.

3. Bắt đầu từ giới hạn dƣới của dòng và bên trái của kí tự.

4. Quét tới bên phải của kí tự trên một giá trị y.

 Nếu phát hiện điểm đen, đánh dấu y là giới hạn dƣới của kí tự.

 Nếu không phát hiện điểm đen giảm y và khởi động lại x xét đƣờng thẳng ngang tiếp theo

Quá trình tìm giới hạn Giới hạn trên ký tự Giới hạn dƣới ký tự

53

Hình 3.4: Quá trình tìm giới hạn kí tự

3.2.2.4. Ánh xạ vào ma trận

Bƣớc tiếp theo là ta phải ánh xạ ảnh của kí tự vào một ma trận nhị phân hai chiều tƣơng ứng. Một việc rất quan trọng ở đây là việc quyết định cỡ của ma trận. Nếu các điểm ảnh của kí tự đƣợc ánh xạ vào ma trận. tuy nhiên việc này dẫn đến việc xử lý các ma trận rất lớn. Để cho cân bằng hợp lý ta sẽ chuẩn hóa cỡ của ma trận bằng 10x15 với 150 phần tử.

Thuật toán:

1. Đối với chiều rộng:

Khởi tạo với 10 phần tử tƣơng ứng.

Ánh xạ điểm đầu (0,y) và điểm cuối (C_rong,y) của ảnh kí tự tƣơng ứng với giá trị đầu (0,y) và giá trị cuối (10,y) của ma trận.

Chia nhỏ chiều rộng thành 10 giá trị tƣơng ứng. 2. Đối với chiều cao:

Khởi tạo với 15 phần tử tƣơng ứng.

Ánh xạ điểm đầu (x,0) và điểm cuối (x,C_cao) của ảnh kí tự tƣơng ứng với giá trị đầu (x,0) và giá trị cuối (x,15) của ma trận.

Chia nhỏ chiều cao thành 15 giá trị tƣơng ứng.

0 15 0 10 (0,0) (10,15)

54

Hình 3.5: Quá trình chia lưới kí tự

Để đƣa giá trị vào mạng nơron ta cần chuyển ma trận điểm ảnh sang ma trận giá trị.

Thuật toán:

1. Bắt đầu từ phần tử (0,0).

2. Tăng x giữ nguyên giá trị y cho tới khi bằng chiều rộng của ma trận.

 Ánh xạ mỗi phần tử tới một phần tử của mảng tuyến tính.

 Nếu là điểm đen thì nhận giá trị bằng 1.

 Ngƣợc lại nhận giá trị bằng 0.

 Nếu x = chiều rộng thì khởi động lại x và tăng y. Lặp lại cho tới khi (x,y)=( C_Rong, C_Cao).

Hình 3.6: Quá trình ánh xạ từ ma trận điểm sang ma trận giá trị (adsbygoogle = window.adsbygoogle || []).push({});

3.2.3. Huấn luyện mạng nơron

Một mạng nơron đã đƣợc xây dựng sẽ phải đƣợc huấn luyện trên một không gian đầu vào đã đƣợc chuẩn bị trƣớc. Khi hoạt động mạng nơron sẽ đọc giá trị đã đƣợc huấn luyện.

55

Tại sao lại có sự khác nhau của không gian đầu vào? Mỗi một đầu vào khác nhau giá trị ngẫu nhiên và trong một phạm vi giới hạn không có giá trị luồng nào dự đoán đƣợc giữa các giá trị của nó.

Tại sao có sự phức tạp của các tham số cho việc huấn luyện mạng? Các tham số phức tạp là các kí tự thƣờng thƣờng bởi các đặc trƣng chồng lấp và kích cỡ dữ liệu cao.

Cái gì cần đƣợc sử dụng cho những giá trị của: - Tốc độ học.

- Hệ số góc Sigmoid. - Trọng số kết nối cơ sở.

Có bao nhiêu lần lặp cần thiết cho việc huấn luyện mạng của một tập đầu vào?

Giá trị ngƣỡng của lỗi là bao nhiêu đƣợc sử dụng để so sánh tƣơng phản trong việc xác định quá trình dừng của việc lặp lại nếu có nhu cầu xuất hiện.

Sự phức của các dữ liệu tham số riêng lẻ cũng là vấn đề khác trong quá trình nhận dạng. Mỗi một kí tự lại có một số lớn đặc tính phân biệt mà cần phải tính toán để nhận dạng nó một cách chính xác. Sự loại bỏ một số đặc tính có thể có kết quả của trong sự tƣơng đồng của các mẫu. Sự tối thiểu của dữ liệu yêu cầu cho nó là một trong những phần phức tạp nhất của không gian đầu vào trong việc nhận dạng.

Thuật toán:

1. Xây dựng mạng tƣơng ứng với mô hình tham số.

2. Khởi tạo giá trị trọng số với giá trị ngẫu nhiên. Nạp file huấn luyện (cả ảnh đầu vào và đầu ra mong muốn).

3. Phân tích ảnh và ánh xạ tất cả kí tự tìm thấy vào các mảng một chiều.

4. Đọc giá trị đầu ra mong muốn từ file và chuyển đổi từng kí tự tới giá trị nhị phân Unicode và lƣu trữ riêng biệt.

56

5. Với mỗi kí tự:

 Tính toán giá trị đầu ra của mạng Feed ForWard.

 So sánh với giá trị đầu ra mong muốn tƣơng ứng với từng kí tự và tính toán lỗi.

 Truyền ngƣợc giá trị từ đầu và với mỗi liên kết điều chỉnh trọng số liên kết.

6. Chuyển sang kí tự tiếp theo và lặp lại “6” cho tới khi hết các kí tự. 7. Tính toán trung bình lỗi cho tất cả các kí tự.

8. Lặp lại từ bƣớc 6 đến 8 cho tới khi đạt số đƣa vào của số lần lặp tối đa.

 Với phạm vi lỗi đạt đến ngƣỡng. Nếu nhƣ vậy thì bỏ lặp lại.

 Ngƣợc lại tiếp tục lặp lại.

57

Hình 3.7: Sơ đồ khối quá trình huấn luyện mạng nơron

S Đ Khởi tạo trọng số Các kí tự sẵn sàng Đ S Đọc đầu ra mong muốn Đ S Đ S Đ S BẮT ĐẦU Xây dựng mạng Nạp file huấn luyện Phân tích ảnh Phát hiện kí tự tiếp theo Các kí tự sẵn sàng ? Tính đầu ra của mạng Tính lỗi Các kí tự sẵn sàng ? Lỗi < ngƣỡng ? Số lần lặp =max epochs ? Tính trung bình lỗi Vector đầu vào tiếp theo KẾT THÚC

58

3.2.4. Nhận dạng ảnh kí tự

Quá trình nhận dạng của mạng nơron đơn giản và dễ hiểu. Khi chƣơng trình chạy sẽ gọi các modun: phân tích ảnh, vector hóa... trong quá trình huấn luyện có thể đƣợc sử dụng lại trong quá trình nhận dạng. Những bƣớc cơ sở để nhận dạng ảnh của kí tự có thể tóm tắt bởi sơ đồ hình 3.8 dƣới đây: (adsbygoogle = window.adsbygoogle || []).push({});

59 BẮT ĐẦU Tính toán đầu ra Dòng đầu tiên

Một phần của tài liệu Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh ký tự (Trang 44)