12/08/2018, 16:14

Mạng tự tổ chức

Trong bài viết trước, mình có giới thiệu phần thuật toán của mạng lan truyền ngược. Hôm nay, mình sẽ tiếp tục giới thiệu về mạng thứ 2 được áp dụng khác phổ biến trong trí tuệ nhân tạo đó là: Mạng neural tự tổ chức. Mạng neural tự tổ chức SOM (Self-Organizing Map) được đề xuất bởi giáo sư Teuvo ...

Trong bài viết trước, mình có giới thiệu phần thuật toán của mạng lan truyền ngược. Hôm nay, mình sẽ tiếp tục giới thiệu về mạng thứ 2 được áp dụng khác phổ biến trong trí tuệ nhân tạo đó là: Mạng neural tự tổ chức. Mạng neural tự tổ chức SOM (Self-Organizing Map) được đề xuất bởi giáo sư Teuvo Kohonen vào năm 1982. Nó còn gọi là: Bản đồ/Ánh xạ đặc trưng tự tổ chức (SOFM-Self Organizing Feature Map) hay đơn giản hơn là mạng neural Kohonen. SOM được coi là một trong những mạng neural hữu ích nhất cho việc mô phỏng quá trình học của não người. Nó không giống với các mạng neural khác chỉ quan tâm đến giá trị và dấu hiệu của thông tin đầu vào, mà có khả năng khai thác các mối liên hệ có tính chất cấu trúc bên trong không gian dữ liệu thông qua một bản đồ đặc trưng. Bản đồ đặc trưng bao gồm các neural tự tổ chức theo các giá trị đầu vào nhất định; do đó nó có thể được huấn luyện để tìm ra các quy luật và sự tương quan giữa các giá trị nhập vào, từ đó dự đoán các kết quả tiếp theo. Có thể nói, nếu một hệ thống mô phỏng quá trình học của não người được thực hiện thì bản đồ đặc trưng của SOM đóng vai trò như trái tim của hệ thống. Tính tự tổ chức của SOM được thực hiện bởi nguyên tắc học cạnh tranh, không giám sát nhằm tạo ra ánh xạ của dữ liệu từ không gian nhiều chiều về không gian ít chiều hơn (thường là hai chiều), nhưng vẫn đảm bảo được quan hệ về mặt hình trạng của dữ liệu. Điều này có nghĩa là các dữ liệu có đặc trưng tương đồng nhau thì sẽ được đại diện bởi cùng một neural hoặc các neural gần nhau và các neural gần nhau thì sẽ tương đồng với nhau hơn so với những neural ở xa. Kết quả là hình thành bản đồ đặc trưng của tập dữ liệu. Đây thực chất là một phép chiếu phi tuyến tạo ra “ánh xạ đặc trưng” cho phép phát hiện và phân tích những đặc trưng trong không gian đầu vào; do đó, SOM là một công cụ hiệu quả cho việc phân cụm trực quan và phân tích dữ liệu nhiều chiều.

Mạng neural SOM có cấu trúc đơn lớp, bao gồm: các tín hiệu vào và lớp ra Kohonen

  • Hình 1. Cấu trúc mạng SOM với lớp Kohonen 2 chiều

trong đó tất cả các đầu vào được kết nối đầy đủ với mọi neural trên lớp ra Kohonen. Kiến trúc mạng của SOM thuộc đồng thời cả hai nhóm mạng truyền thẳngmạng phản hồi, do dữ liệu được truyền từ đầu vào tới đầu ra và có sự ảnh hưởng giữa các neural trong lớp Kohonen. Lớp Kohonen thường được tổ chức dưới dạng một ma trận 2 chiều các neural theo dạng lưới hình chữ nhật hoặc hình lục giác. Mỗi đơn vị i (neural) trong lớp Kohonen được gắn một vector trọng số wi= [wi1, wi2, …, win], với n là kích thước (số chiều) vector đầu vào; wi,j là trọng số của neural i ứng với đầu vào j.

Các neural của lớp ra được sắp xếp trên một mảng 2 chiều. Mảng này được gọi là lớp ra Kohonen. Lớp đầu ra này rất khác với lớp đầu ra của mạng neural truyền thẳng. Đối với mạng truyền thẳng, nếu chúng ta có một mạng neural với 5 neural đầu ra, chúng sẽ có thể cho kết quả bao gồm 5 giá trị. Còn trong mạng neural Kohonen chỉ có một neural đầu ra cho ra một giá trị. Giá trị duy nhất này có thể là đúng hoặc sai. Dữ liệu đầu ra từ mạng neural Kohonen thường là các chỉ số của neural.

Trong trường hợp lưới hai chiều, các neural nằm trên bản đồ có thể tồn tại hai loại cấu trúc liên kết là hình lục giác hoặc hình chữ nhật. Tuy nhiên, cấu trúc liên kết hình lục giác đều thì tốt hơn trong tác vụ trực quan hoá vì mỗi neural có 6 neural lân cận trong khi với cấu trúc hình chữ nhật thì chỉ là 4.

  • Hình 2: Cấu trúc hình lục giác đều và cấu trúc hình chữ nhật.

Trong đó:

Lớp vào (Input Layer): dùng để đưa dữ liệu huấn luyện vào mạng Kohonen. Kích thước lớp vào tương ứng với kích thước của mỗi mẫu học.
Lớp ra (Output Layer): các neural của lớp ra được sắp xếp trên mảng hai chiều. Mảng này gọi là lớp ra Kohonen.
Tất cả các noron của lớp vào đều được nối với các neural trên lớp ra. Mỗi liên kết giữa đầu vào và đầu ra của mạng Kohonen tương ứng với một trọng số. Kích thước của mỗi véc tơ trọng số bằng kích thước của lớp vào. Nói cách khác, mỗi neural của lớp Kohonen sẽ có thêm một vector trọng số n chiều (với n là số đầu vào).

SOM là một kỹ thuật mạng neural truyền thẳng sử dụng thuật toán học không giám sát (học ganh đua) và qua quá trình “tự tổ chức”, sắp xếp đầu ra cho một thể hiện hình học của dữ liệu ban đầu. Học không giám sát liên quan đến việc dùng các phương pháp quy nạp để phát hiện tính quy chuẩn được thể hiện trong tập dữ liệu. Mặc dù có rất nhiều thuật toán mạng neural cho học không giám sát, trong đó có thuật toán học ganh đua (Conpetitive Learning, Rumelhart & Zipser, 1985). Học ganh đua có thể coi là thuật toán học mạng neural không giám sát thích hợp nhất trong khai phá dữ liệu, và nó cũng minh họa cho sự phù hợp của các phương pháp học mạng neural một lớp. Nhiệm vụ học xác định bởi học ganh đua là sự phân chia một ví dụ huấn luyện cho trước vào trong một tập các cụm dữ liệu. Các cụm dữ liệu sẽ thể hiện các luật biểu diễn trong tập dữ liệu như các minh hoạ giống nhau được ánh xạ vào các lớp giống nhau. Biến thể của học ganh đua mà chúng ta xét ở đây đôi khi được gọi là học ganh đua đơn điệu, liên quan đến việc học trong mạng neural một lớp. Các đơn vị đầu vào trong mạng có các giá trị liên quan đến lĩnh vực đang xét, và k đơn vị đầu ra thể hiện k lớp ví dụ đầu vào được phân cụm.

  • Hình 3: Đơn vị (neural) xử lý ganh đua

Giá trị đầu vào cho mỗi đầu ra trong phương pháp này là một tổ hợp tuyến tính của các đầu vào: Trong đó:

xi  là đầu vào thứ i; i = 1,2,…,n.
wji  là trọng số liên kết đầu vào thứ i với đầu ra thứ j, j = 1,2, …,m.

Gọi S(netj ) là hàm chuyển tín hiệu (hàm tương tác hay hàm kích hoạt đầu ra), có thể là hàm đơn điệu không giảm liên tục như hàm Sigmoid hoặc hàm bước nhẩy đơn vị sau: Đơn vị đầu ra có giá trị đầu vào lớn nhất được coi là chiến thắng, và kích hoạt đó được coi bằng 1 (thắng cuộc), còn các kích hoạt khác của các đầu ra còn lại được cho bằng 0 (thua cuộc). Quá trình như vậy được gọi là ganh đua. Quá trình huấn luyện cho học ganh đua liên quan đến hàm chi phí: Trong đó:

aj  là kích hoạt của đầu ra thứ j.
xi là đầu vào thứ i.
wji là trọng số từ đầu vào thứ i với đầu ra thứ j. 

Luật cập nhật các trọng số là: với α là hằng số, chỉ tốc độ học.

Ý tưởng chính của học ganh đua là đối với mỗi đầu ra là lấy ra “độ tin cậy” cho tập con các ví dụ huấn luyện. Chỉ một đầu ra là chiến thắng trong số ví dụ đưa ra, và vectơ trọng số cho đơn vị chiến thắng được di chuyển về phía vectơ đầu vào. Giống như quá trình huấn luyện, vectơ trọng số của mỗi đầu ra di chuyển về phía trung tâm của các ví dụ. Huấn luyện xong, mỗi đầu ra đại diện cho một nhóm các ví dụ, và vectơ trọng số cho các đơn vị phù hợp với trọng tâm của các nhóm. Học ganh đua có liên quan mật thiết với phương pháp thống kê nổi tiếng như là phương pháp phân cụm K thành phần chính. Khác nhau cơ bản giữa hai phương pháp là học ganh đua là phương pháp trực tuyến, nghĩa là trong suốt quá trình học nó cập nhập trọng số mạng sau mỗi ví dụ được đưa ra, thay vì sau tất cả các ví dụ được đưa ra như được làm trong phương pháp phân cụm K thành phần chính. Học ganh đua phù hợp với các tập dữ liệu lớn, vì các thuật toán trực tuyến thường có giải pháp nhanh hơn trong mọi trường hợp.

Về bản chất, SOM được biết đến như một kỹ thuật nén dữ liệu dựa trên vecto trọng số (trực quan hóa dữ liệu).

  • Hình 4: Không gian ban đầu và không gian sau khi thực hiện thuật toán SOM

Input: Dữ liệu huấn luyện gồm tập n vectơ: V={V1, V2, …, Vi, …, Vn}, mỗi vectơ ứng với một neural (nút) đầu vào; Trong đó, mỗi vecto Vi gồm p chiều: Vi={v1, v2, …, vp}.

Khởi tạo tham số số lần lặp t=1

Bước 1: Khởi tạo vecto trọng số cho mỗi neural

Tương ứng với mỗi vector Vi, vecto trọng số Wi cũng gồm p chiều Wi={w1, w2, …, wp} Và tập vector trọng số có m bộ: W={W1, W2, …, Wi, …, Wm}

Bước 2: Chọn ngẫu nhiên một vecto Vi ϵ V làm mẫu huấn luyện

Bước 3: Tìm mẫu khớp tốt nhất BMU (Best Matching Unit)–phần tử neural chiến thắng

Tìm phần tử khớp nhất giữa các vecto trọng số Wi

0