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àọ
Tự mình khám phá những quan hệ đang được quan tâm, ví dụ về các dạng ( patterns), các đặc trưng (features ) từ dữ liệu vào (input data)
sau đó chuyển thành cái ra (outputs). Như vậy thực chất : đó là các mạng tự tổ chức (hay mạng nơron Kohonen) .
Định nghĩa: Mạng noron Kohonen là mạng có khả năng sử dụng những kinh nghiệm của quá khứ để thích ứng với những biến đổi của môi trường (không dự báo trước). Loại mạng này thuộc nhóm hệ học, thích nghi không cần có tín hiệu chỉ đạo từ bên ngoàị
Trong phần này chúng ta sẽ trình bày một số quy trình luyện tham số của luyện không có thày như sau:
Mô hình
Mạng có n nơron PEi , i=1,2,..., n. Cái ra của chúng là yi , i=1,...,n.
Có m tín hiệu vào {x1, x2,..., xm},wij là trọng số liên kết từ xj với PEi . Gọi s(x), s(y) là hàm chuyển tín hiệu, giả thiết đó là hàm đơn điệu không giảm liên tục như dạng hàm Sigmoid.
Phương thức biến đổi trọng số được gọi là luật luyện Hebb, quy tắc luyện đơn giản theo dạng Hebb cho bởi phương trình :
)( ( ). ( ) ( ' j j i i ij ij ij w s y s x dt t dw w = =− + (2.40)
Bây giờ ta xét một số trường hợp riêng:
- Quy tắc luyện cạnh tranh (Competitive Learning Rule – Grossberg 1969, Rumelhart 1986)
)) ) ( )( ( ' ij j j i i ij s y s x w w = − (2.41) ở đây ( ) 1 , 0 1 i i i cy s y c e− = > + (2.42)
- Nếu dùng s xj( )j = xj ta thu được :
Quy tắc luyện cạnh tranh tuyến tính (the Linear competitive learning rule) ) )( ( ' ij j i i ij s y x w w = − (2.43)
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ẫuX ={x x1, 2,...,xp} thành n cụm , với n đã chọ
Kí hiệu m, w (w , w ,..., w )1 2 m i i i im
x∈R = ∈R , α là hệ số học.
Tại mỗi vòng lặp k, quy tắc luyện gồm 2 bước :
1/ Bước tìm cái khớp nhất (matching) – tìm nơron tạm gọi là nơron thắng (theo nghĩa gần mẫu nhất), sử dụng công thức sau:
x w x y y
y =max( 1... m)= . , (2.44) (Phương pháp tính tích vô hướng). 2/ Tính toán sai số và điều chỉnh trọng số
Ký hiệu ej là sai số ở cột thứ j, wij là biểu diễn cho cột thứ j của ma trận trọng số w, sai số này được tính theo công thức sau:
Nếu tổng sai số chưa nằm dưới mức cho phép, ta điều chỉnh trọng số theo công thức: ) ( 1 k ij i k ij k ij w x w w + = +α − với k =1,…,m (2.46)
Khi một mẫu được đưa tới một mạng Kohonen, những nơron được chọn là nơron thắng (winner) (nơron thích hợp nhất theo nghĩa mà ta đặt ra). Nơron thắng này là dữ liệu đầu ra từ mạng Kohonen. Thông thường, các nơron thắng này tương ứng với các nhóm trong dữ liệu đưa vào mạng Kohonen.
Mạng Kohonen được huấn luyện trong một chế độ không có giám sát. Sử dụng mạng Kohonen này, dữ liệu có thể được phân loại thành từng cụm. Chúng ta sẽ xem xét mạng Kohonen qua quá trình huấn luyện.
2.2.1 Mạng nơron Kohonen nhận dạng
Ta sẽ xem việc huấn luyện mạng nơron Kohonen như thế nào để nhận dạng đúng các mẫu mà ta mong muốn. Chúng ta bắt đầu bằng cách xem xét cấu trúc của mạng nơron Kohonen.
2.2.2 Cấu trúc của mạng nơron Kohonen
Mạng nơron Kohonen chỉ bao gồm một lớp dữ liệu đầu vào và một lớp dữ liệu đầu ra của các nơron và nó không chứa lớp ẩn.
Lớp dữ liệu đầu vào đối với mạng nơron Kohonen là các nơron đầu vàọ Các nơron đầu vào này tạo thành mẫu dữ liệu đầu vào của mạng. Đối với
mạng nơron Kohonen, ta nên chọn dữ liệu đầu vào chuẩn hóa trong khoảng giữa -1 và 1. Khi thực thi mẫu dữ liệu đầu vào, mạng sẽ tạo ra các nơron đầu rạ
Lớp đầu ra của mạng nơron Kohonen rất khác với lớp đầu ra của mạng nơron truyền thẳng. Đối với mạng truyền thẳng, nếu chúng ta có một mạng nơron với 5 nơron đầu ra, chúng sẽ có thể cho kết quả bao gồm 5 giá trị. Còn trong mạng nơron Kohonen chỉ có một nơron đầu ra cho ra một giá trị. Giá trị duy nhất này có thể là đúng hoặc saị Dữ liệu đầu ra từ mạng nơron Kohonen thường là các chỉ số của nơron (Ví dụ nơron số 5,…). Cấu trúc đặc trưng của mạng nơron Kohonen được chỉ ra trong hình 2.1.
Hình 2.1: Một dạng mạng nơron Kohonen
Bây giờ, chúng ta xem xét mạng nơron Kohonen xử lý thông tin như thế nàọ Để kiểm tra quá trình này, chúng ta xem xét một ví dụ sau:
Chúng ta sẽ xém xét một mạng nơron Kohonen đơn giản. Mạng này sẽ chỉ có 2 nơron đầu vào, và 2 nơron đầu rạ Dữ liệu đầu vào được cho là 2 nơron được chỉ ra trong bảng 2.1 và các trọng số kết nối giữa các nơron trong bảng 2.2.
Bảng 2.1 Bảng 2.2
Sử dụng các giá trị này, chúng ta xem xét nơron có thể thắng và cung cấp dữ liệu đầu rạ Chúng ta bắt đầu bằng cách chuẩn hóa dữ liệu đầu vàọ
2.2.3 Chuẩn hóa dữ liệu đầu vào
Mạng nơron Kohonen đòi hỏi dữ liệu đầu vào phải được chuẩn hóạ Yêu cầu của mạng nơron Kohonen là dữ liệu đầu vào của nó phải được phân hoạch trên miền xác định giữa -1 và 1. 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).
Để chuẩn hóa dữ liệu đầu vào, chúng ta sẽ tính toán độ dài vector (vector length) của các dữ liệu đầu vào, hoặc vector đầu vàọ Trong trường hợp này độ dài vector sẽ là: (0.5 * 0.5) + (0.75 * 0.75) = 0.8125.
Vậy trường hợp trên sẽ có độ dài vector là 0.8125. Sử dụng độ dài này, chúng ta có thể xác định được hệ số chuẩn hóạ Hệ số chuẩn hóa là số nghịch đảo của căn bậc hai độ dài vector đầu vàọ Trong trường hợp trên thì hệ số chuẩn hóa là:
Tính toán giá trị trên cho kết quả hệ số chuẩn hóa là 1.1094. Hệ số chuẩn hóa này sẽ sử dụng cho bước tiếp theo, đó là tính toán đầu ra cho nơron.
2.2.4 Tính toán dữ liệu đầu ra của nơron
Để tính toán dữ liệu đầu ra, vector dữ liệu đầu vào và các trọng số kế nối nơron đều phải được xem xét. Thứ nhất, tính tích vô hướng của hai vector vector đầu vào và vector các trọng số liên kết. Để tính toán tích vô hướng giữa hai vector này, ta thực hiện như saụ
Ta bắt đầu tính toán cho nơron thức nhất. Thuật toán Kohonen cho việc lấy tích vô hướng hai vector của vector đầu vào và vector trọng số được tính như sau:
Phép tính toán trên "dot product" cho kết quả là 0.395. Tính toán này sẽ được thực hiện cho nơron đầu ra đầu tiên, và nó sẽ được thực hiện như vậy
Bây giờ, dữ liệu đầu ra này phải được chuẩn hóa bằng nhân kết quả của "dot product" trên (0.395) với hệ số chuẩn hóa là 1.1094, và cho kết quả là 0.438213. Dữ liệu đầu ra đã được tính toán và chuẩn hóa, nó được ánh xạ tới một số lưỡng cực?.
2.2.5 Ánh xạ lưỡng cực
Khi tạo bản đồ lưỡng cực, số 0 sẽ là -1, và các số còn lại là 1. Tức là tạo bản đồ lưỡng cực từ [-1,1] tới [0,1].
Ví dụ, để biến đổi chuỗi 0101 về số lưỡng cực ta làm như sau:
Do dữ liệu đầu vào được chuẩn hóa trong khoảng [-1,1] nên ta phải thực hiện chuẩn hóa tương tự đối với nơron đầu rạ Để lập được bản đồ, ta cộng thêm 1 vào kết quả rồi lấy ½ kết quả đó. Theo kết quả trên có kết quả đầu ra là 0.438213, và kết quả trong dữ liệu đầu ra cuối cùng là :
(0.438213+1)/2 = 0.7191065.
Giá trị 0.7191065 là dữ liệu đầu ra của nơron đầu tiên. Giá trị này sẽ được so sánh với các dữ liệu đầu ra của nơron khác. Bằng cách so sánh các giá trị này, chúng ta có thể xác định được nơron “ thắng”.
2.2.6 Chọn nơron thắng
Nếu chúng ta muốn xác định được một nơron đầu ra thắng, chúng ta phải tính toán giá trị cho nơron đầu ra thứ haị Bây giờ, chúng ta sẽ xem nhanh quá trình tính toán cho nơron đầu ra thứ haị
Nơron dữ liệu đầu ra thứ hai sẽ sử dụng hệ số chuẩn hóa giống như đã sử dụng để tính toán cho nơron đầu ra đầu tiên. Theo trên ta có hệ số chuẩn hóa là 1.1094. Chúng ta áp dụng phương pháp tính tích vô hướng cho trọng số của nơron đầu ra thứ hai và vector dữ liệu đầu vào, chúng ta sẽ nhận được một giá trị là :
|0.5 0.75|*|0.3 0.4| = (0.5*0.75)+(0.3*0.4) = 0.45.
Giá trị này được nhân với hệ số chuẩn hóa 1.1094, chúng ta nhận được kết quả là 0.49923.
Bây giờ chúng ta đã có giá trị đầu ra cho mỗi nơron. Nơron đầu tiên có giá trị đầu ra là 0.7191065 và nơron thứ hai có một giá trị đầu ra là 0.49923. Để chọn nơron thắng, chúng ta chọn giá trị của dữ liệu đầu ra là lớn nhất. Trong trường hợp này thì nơron thắng là nơron đầu ra đầu tiên với giá trị đầu ra là 0.7191065.
Như vậy ta đã xác định được giá trị đầu ra của mạng nơron Kohonen. Ta thấy các trọng số giữa nơron đầu vào và nơron đầu ra xác định dữ liệu đầu
rạ Trong phần sau, chúng ta sẽ điều chỉnh các trọng số này để nó cung cấp dữ liệu đầu ra phù hợp với cái mà ta mong muốn.
2.2.7 Quá trình học của mạng Kohonen
Toàn bộ quá trình huấn luyện cho một mạng nơron Kohonen cần phải lặp lại qua vài công đoạn. Nếu sai số đã tính toán của mạng nơron Kohonen ở mức thấp hơn mức có thể chấp nhận được thì sẽ hoàn tất quá trình huấn luyện. Để tính toán tỉ lệ sai số cho mạng nơron Kohonen, ta sẽ điều chỉnh các trọng số cho mỗi công đoạn.
Quá trình huấn luyện cho mạng nơron Kohonen là luyện cạnh tranh nên mỗi tập huấn luyện sẽ có một nơron thắng. Nơron thắng này sẽ có trọng số được điều chỉnh sao cho ngay lập tức nó sẽ tác động trở lại mạnh mẽ hơn trong dữ liệu đầu vào ở lần tiếp theọ Sự khác nhau giữa các nơron thắng sẽ dẫn tới sự khác nhau giữa các mẫu đầu vào tiếp theọ
Chúng ta xem xét toàn bộ quá trình liên quan đến việc huấn luyện mạng nơron Kohonen. Các bước được tóm tắt trong hình 2.2.
Từ hình 2.2 ta thấy, mạng nơron Kohonen được huấn luyện bởi các công đoạn tuần hoàn cho đến khi một trong hai vấn đề sau xảy ra:
- Nếu tính toán các sai số ở mức thấp hơn mức có thể chấp nhận được thì nhiệm vụ của chu kỳ sẽ hoàn thành quá trình huấn luyện.
- 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 đầụ 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. Bắt đầu
Khởi tạo ngẫu nhiên ma trận trọng số
Tính toán sai số
Kiểm tra sai số xem có ở mức chấp nhận được
không?
Thực hiện huấn luyện, điều chỉnh trọng số dựa vào nơron
thắng
Tính toán lại tỉ lệ sai số, ghi lại những giá trị đã được cải
thiện Cải thiện tỉ lệ sai số là tầm thường? Ma trận trọng số này đã tốt nhất chưả Nếu có ma trận trọng số tốt hơn của ma trận trọng số tốt nhất? Gán ma trận trọng số này thành ma trận trọng số tốt nhất Đã quá số chu kỳ xác định? Yes No Yes Yes No No No No Yes Yes
Hình 2.2: Sơ đồ khối biểu diễn huấn luyện mạng nơron Kohonen.
2.2.8 Tỉ lệ (tốc độ) học
Tham số học là một hằng và nó là một số nhỏ hơn 1, ở trên ký hiệu là α.
Thông thường, ta đặt cho tham số học một giá trị từ 0.4 đến 0.5, nếu tỉ lệ học lớn thì quá trình huấn luyện nhanh hơn. Tuy nhiên, việc đặt cho tỉ lệ học một giá trị quá lớn có thể sẽ làm cho mạng không bao giờ hội tụ. Đ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. Trong phần tiếp theo, chúng ta sẽ xem các trọng số này được điều chỉnh sử dụng tham số học như thế nàọ
2.2.9 Điều chỉnh các trọng số (cập nhật trọng số)
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. Sự điều chỉnh các trọng số sẽ làm cho mạng có thuận lợi hơn ngay sau khi nó được đưa trở lại mạng. Ma trận trọng số cuối cùng được sử dụng sẽ là ma trận tốt nhất được xác định từ mỗi chu kỳ. Bây giờ, chúng ta sẽ xem xét các trọng số này được thay đổi như thế nàọ
Phương pháp cho việc tính toán thay đổi các trọng số sử dụng phương trình sau: ) ( 1 t t t w x w w+ = +α − (2.48)
Biến x là vector huấn luyện được đưa vào mạng. Biến wt là trọng số của nơron thắng, và biến wt+1 là trọng số mới, α là hệ số học.
2.2.10 Tính toán sai số
Khi mạng huấn luyện không giám sát bao giờ cũng có sai số, đó là sự khác nhau giữa kết quả mong đợi và kết quả thực tế của mạng nơron. Sai số mà chúng ta tính toán là những cái mà không đúng giữa kết quả mong đợi và kết quả thực tế.
ej = ||x-wj||
Mục đích của mạng nơron Kohonen là phân loại dữ liệu đầu vào vào trong các tập khác nhau, cho nên sai số của mạng nơron Kohonen phải được đo lường. Sai số này sẽ được tính toán trong quá trình huấn luyện mạng.