Mạng nơ-ron Kohonen: Cấu trúc, phương thức làm việc và ứng dụng

MỤC LỤC

Cấu tạo và phương thức làm việc của mạng nơron

Vì mạng nơron là một hệ truyền đạt và xử lý tín hiệu, nên có thể phân biệt các loại nơron khác nhau, các nơron có đầu vào nhận thông tin từ môi trường bên ngoài khác với các nơron có đầu vào được nối với các nơron khác trong mạng, chúng được phân biệt với nhau qua vector hàm trọng số ở đầu vào w. Một mạng nơron có cấu trúc như vậy gọi là mạng một hướng hay mạng truyền thẳng một hướng (Feed forward network), và có cấu trúc mạng ghép nối hoàn toàn (vì bất cứ một nơron nào trong mạng cũng được nối với một hoặc vài nơron khác). Mạng nơron bao gồm một hay nhiều lớp trung gian được gọi là mạng Multilayer Perceptrons) (MLP-Network).

Hình 1.5 Mạng nơron ba lớp
Hình 1.5 Mạng nơron ba lớp

Các luật học

Sự thay đổi các hàm trọng số của mạng sẽ được dừng lại, nếu tổng các bình phương sai số nhỏ hơn một giá trị đặt trước, hoặc đã chạy đủ một số lần chạy xác định (trong trường hợp này, mạng có thể không thoả mãn yêu cầu đặt ra do sai lệch còn cao). Tín hiệu củng cố bên ngoài thường được xử lý bằng máy phát tín hiệu đánh giá để tạo ra nhiều hơn nữa các thông tin tín hiệu đánh giá, sau đó dùng để điều chỉnh các trọng số với mục đích đạt được tín hiệu đánh giá tốt hơn.

Hình 1.10:  Học có giám sát
Hình 1.10: Học có giám sát

Thuật toán lan truyền ngược

Với trọng số nối giữa đầu vào và các lớp ẩn, ta sử dụng thay đổi luật cùng phương pháp độ dốc Gradient, ta cập nhật trọng số để kết nối giữa phần tử thứ j của lớp đầu vào với phần tử thứ q của lớp ẩn. Chúng ta xem xét công thức (1.30), sai số tín hiệu ∂hq của phần tử lớp ẩn q có thể được xác định trong các mẫu của các tín hiệu sai số δoi của các phần tử ở lớp ra thứ i (yi) cung ứng. Các hệ số là các trọng số được sử dụng cho lan truyền thẳng, nhưng ở đây chúng truyền các tín hiệu sai số (δoi) ngược trở lại, đó chính là các đường nét đứt trong hình (1.13).

Điều này đã chứng tỏ được đặc điểm quan trọng của thuật toán lan truyền ngược – luật cập nhật cục bộ, đây chính là tính toán trọng số thay đổi dựa vào sự kết nối, và chúng ta chỉ cần giá trị ở hai đầu của kết nối này. Ở đây, (output-i) và (input-j) quy vào hai đầu của sự kết nối từ phần tử thứ j tới phần tử thứ i, xj là đầu vào cuối cùng kích hoạt từ một phần tử lớp ẩn, hoặc từ một đầu vào bên ngoài. Ngoài ra, δi là tín hiệu học được định nghĩa bởi công thức (1.26) với đầu ra hoặc lớp cuối cùng của các trọng số kết nối, và được định nghĩa bởi công thức (1.30) cho tất cả các lớp khác.

Lan truyền tín hiệu thẳng xuyên suốt mạng sử dụng công thức (1.35) cho mỗi i và q cho tới khi các đầu ra của lớp đầu ra Qyi được thực hiện. Tính toán giá trị sai lệch và tín hiệu sai lệch i. Qδ cho lớp đầu ra như sau:. Trong đó: Qδi là tín hiệu sai lệch của nơron thứ i cho lớp ra Q; là đạo hàm của hàm truyền ặ) theo tổng trọng số của phần tử i của lớp đầu ra là. Kiểm tra xem đã lặp hết các giá trị mẫu huấn luyện chưa, nếu chưa quay vòng hết (tức là k<p) tăng k=k+1, và nhảy tới bước 1, ngược lại (tức k=p) thì chuyển sang bước 6.

Hình 1.14: Mạng 3 lớp lan truyền ngược
Hình 1.14: Mạng 3 lớp lan truyền ngược

Tìm hiểu mạng nơron Kohonen

Giới thiệu

Đây là một phép chiếu phi tuyến đem lại một “ánh xạ đặc trưng” hai chiều, nó có thể được sử dụng trong việc phát hiện và phân tích những đặc trưng trong không gian đầu vào. Mạng luyện không không có thầy hướng dẫn, là một kiểu luyện mà ở đó các nơron tự xoay xở với các dữ liệu mẫu mà nó có được chứ không có “Ông thầy” gợi ý cần luyện theo hướng nào. Trường hợp riêng quan trọng là quy tắc “ thắng lấy tất cả - the winner-take-all learning rule “ của Kohonen , giải thích để hiểu qua bài toán phân cụm tập mẫu.

Mỗi dữ liệu đầu vào nên sử dụng hoàn toàn miền xác định, vì nếu các nơron đầu vào chỉ sử dụng các số giữa 0 và 1, thì thành quả của mạng nơron sẽ không cao (bị tổn thất). - Nếu tất cả các tỉ lệ sai số chỉ thay đổi bởi đa số cận biên, thì chu kỳ riêng lẻ này sẽ bị loại bỏm và các trọng số lại được khởi tạo lại với các giá trị ngẫu nhiên, đông thời một chu kỳ huấn luyện mới lại bắt đầu. Chu kỳ huấn luyện này sẽ tiếp tục chu kỳ huấn luyện trước và nó sẽ phân tích các công đoạn để đưa ra kết quả; hoặc là chu kỳ bị loại bỏ hoặc tạo ra một tập các trọng số đó mà có mức sai số có thể chấp nhận được.

Điều này làm thay đổi các vector trọng số sẽ quá lớn gây ảnh hưởng tới việc phân loại các mẫu nên ta chỉ cần chọn tỉ lệ học vừa đủ, và sử dụng nó để điều chỉnh các trọng số của các nơron. Một công đoạn xuất hiện khi dữ liệu huấn luyện được đưa vào mạng nơron Kohonen, và các trọng số được điều chỉnh dựa trên các kết quả của dữ liệu huấn luyện.

Hình 2.1: Một dạng mạng nơron Kohonen
Hình 2.1: Một dạng mạng nơron Kohonen

Thực thi mạng nơron Kohonen

Trong thực tế, phương thức lan truyền ngược hoạt động bằng cách; đầu tiên nó chạy một chương trình nhận dạng đối với dữ liệu huấn luyện để thu được một ma trận trọng số, và sau đó điều chỉnh các trọng số và độ lệch để cải thiện sai số. Nó sẽ được chạy đối với từng tập huấn luyện, và dữ liệu huấn luyện sẽ được chạy lặp đi lặp lại cho đến khi sai số của mạng nơron nằm trong mức cho phép. Do quá trình hoạt động của mạng nơron Kohonen là không có giám sát, chỉ có các phần tử dữ liệu đầu vào được cung cấp, nên đối tượng TrainingSet được xây dựng để huấn luyện cho ra dữ liệu đầu ra, nó sẽ được chuyển tới đối tượng KohonenNetwork để huấn luyện trong lần tiếp theo.

Để chuẩn bị các tập huấn luyện và thu nhận tình trạng thông tin từ quá trình huấn luyện, ta phải hiểu rừ cỏc lớp mạng Kohonen hoạt động như thế nào. Danh sách 2.13 chỉ ra một phương thức để chuẩn hóa các dữ liệu đầu vào để đưa tới mạng nơron Kohonen, và danh sách 2.14 chỉ ra sự chuẩn hóa ma trận trọng số. Vậy quá trình tính toán giá trị cho mỗi nơron đầu ra được tính toán bằng cách lấy tích vô hướng đã được chuẩn hóa của dữ liệu đầu vào và các trọng số.

Phương thức training bắt đầu bằng việc khởi tạo các ma trận trọng số với các giá trị ngẫu nhiên và điều chỉnh các giá trị trọng yếu khác. Khi khởi tạo xong, vòng lặp chính đưa các mẫu huấn luyện tới mạng nơron và tính toán các sai số dựa trên các kết quả thu được từ mạng nơron. Khi kết thúc vòng lặp chính, xác định được nơron thắng, và nó sẽ tiếp tục huấn luyện để thúc đẩy hợp nhất các khả năng của nó trong quá trình nhận dạng mẫu riêng biệt, đồng thời cho ra một ma trận trọng số tốt hơn.

// Lặp qua tất cả các tập huấn luyện để xác định giá trị hiệu chỉnh for ( tset=0 ; tset<train.getTrainingSetCount(); tset++ ) { dptr = train.getInputSet(tset);.

Nhận dạng ký tự quang sử dụng mạng nơron Kohonen

    Trong chương tiếp theo chúng ta sẽ áp dụng mạng nơron Kohonen vào ứng dụng thực tế, đó là ứng dụng nhận dạng ký tự quang (cụ thể là chữ viết tay bằng chuột và chữ ký đưa và dưới dạng ảnh). Đối với nhận dạng ký tự quang thì với mỗi dữ liệu nhập vào (có thể là ký tự viết bằng chuột hay chữ ký được scan), ta sẽ phải tìm ra được đầu ra tương ứng với nó. Máy Scanner là một loại máy scan phẳng (Flatbed Scanner) dùng để scan những tài liệu đơn lẻ như văn bản, hình ảnh, thẻ, CMND….

    • Trích chọn đặc trưng: là quá trình tìm ra các thông tin hữu ích và đặc trưng nhất cho mẫu đầu vào để sử dụng trong quá trình nhận dạng. Như đã nói, chương trình này không trực tiếp đọc để nhận dạng các ký tự mà nó phải được huấn luyện từ các ký tự được đưa vào bằng việc vẽ trực tiếp bằng chuột, hoặc đưa vào dưới dạng ảnh được scan, trước khi nó có thể nhận dạng dữ liệu đầu vào. Số nơron đầu ra được chọn cho mạng nơron Kohonen được sử dụng trong chương trình này tương ứng với số ký tự (ảnh) có trong tập mẫu.

    Để biểu diễn được tới mạng nơron, ta giảm bớt độ phân giải này bằng cách sử dụng kỹ thuật cắt xén và tải mẫu, ký tự (chữ ký) được chuyển sang một ảnh thứ hai với độ phân giải thấp hơn nhiều. Mạng nơron Kohonen được sử dụng trong ví dụ này có số nơron đầu vào bằng số pixel của ký tự (hình ảnh) được tải mẫu, và số nơron đầu ra bằng số ký tự mà ta tạo trong tập mẫu.

    Hình 3.1:Mô hình chung trong nhận dạng chữ viết.
    Hình 3.1:Mô hình chung trong nhận dạng chữ viết.