Thuật toán gradient về cơ bản là chậm và thƣờng rơi vào cực tiểu cục bộ. Luật học lai kết hợp thuật toán gradient và phƣơng pháp ƣớc lƣợng sai số bình phƣơng tối thiểu (LSE - Least Square Error) để cập nhật các tham số.
Từ (2.6), chúng ta có ( , ) output F I S (2.7) F là hàm mạng I
là vector đầu vào và S là tập các tham số của mạng. Ta có 1 1 1 0 0 0 w [w ( )] n n m m n k k k k i k k k i y f p r (2.8) Từ mối quan hệ (2.8) ta thấy y là hàm tuyến tính của tham số (p rik, k). Gọi
1
S là các tập các tham số tầng thứ nhất, S2 là tập các tham số ở tầng thứ 4.
- S1[c , s ]i j, i j, , với i,(0 i n 1) và j,(0 j m 1)(chỉ số tƣơng ứng với nhãn ngôn ngữ).
- S2 [p ,p ,...,p0k 1k nk1,r ]k với (0 k mn1) S là hợp của hai tập S1 và S2.
1 2
SS S (2.9) Do y là tuyến tính với các tham số trong S2 , với mỗi giá trị cho trƣớc của các phần tử trong tập S1, thay lần lƣợt các mẫu trong N mẫu dữ liệu huấn luyện vào (2.8) ta thu đƣợc:
Số hóa bởi trung tâm học liệu http://lrc.tnụedụvn/
ở đây X là vector chứa các phần tử trong S2 là các tham số chƣa biết. Giả sử rằng
2
S M (M tham số), kích thƣớc của A, X, B tƣơng ứng là N x M, M x 1, N x 1. Do N (số mẫu dữ liệu dùng để huấn luyện) thƣờng lớn hơn M (số các tham số của tầng 4), nên không tìm đƣợc nghiệm chính xác X trong (2.10) . Thay vào đó ta tìm phiên bản gần đúng của X là X* bằng phƣơng pháp sai số bình phƣơng tối thiểu LSE . Nghĩa là tìm X sao cho AXB 2, đạt giá trị nhỏ nhất với . là modul Euclidẹ Thông thƣờng * X đƣợc xác định theo công thức * 1 ( T ) T X A A A B (2.11) ở đây T A là chuyển vị của A và 1
(A AT ) ATlà giả nghịch đảo của A nếu T A Alà không suy biến. Công thức (2.11) là ngắn gọn và tƣờng minh, nhƣng tốn rất nhiều thời gian để tính vì liên quan đến việc tính ma trận nghịch đảo và vấn đề sẽ trở thành xác định yếu nếu ATA suy biến. , do đó ta dùng phƣơng pháp lặp tuần tự để tính X. phƣơng pháp lặp tuần tự này rất hiệu quả khi M nhỏ và có thể dễ dàng sử dụng cho phƣơng pháp học từng mẫụ
Lấy vector hàng thứ i của ma trận A là T i
a và phần tử thứ i của B là T j
b , khi đó X đƣợc điều chỉnh dần từng bƣớc theo các công thức:
1 1 1 1 1 1 1 1 1 1 X ( ) , ( 0, 1) 1 T T T i i i i i i i i i i i i i T i i i S a a S X S a b a X S S i N a S a (2.12)
Với Si là ma trận hiệp phƣơng sai và ƣớc lƣợng bình phƣơng nhỏ nhất X* bằng XN. giá trị ban đầu của X và s là: X0 0 và S0 I, với là số dƣơng lớn xác định và I là ma trận đơn vị có kích thƣớc M x M.
Nhƣ vậy các tham số trong ANFIS đƣợc cập nhật bằng việc kết hợp thuật toán gradient và ƣớc lƣợng bình phƣơng nhỏ nhất (thuật toán học lai). Trong thuật toán lai mỗi epoch (số lần huấn luyện) là sự kết hợp của bƣớc đi tiến và bƣớc đi luị Ở bƣớc đi tiến, S1 đƣợc cố định, dữ liệu vào đƣợc sử dụng để ƣớc lƣợng cho mỗi nút đầu ra cho đến khi các ma trận A và B thỏa mãn (2.10). Kết quả là ta tìm đƣợc tập các tham số S2 bằng phƣơng pháp LSE sau đó tiếp tục tính toán để tìm đƣợc sai
Số hóa bởi trung tâm học liệu http://lrc.tnụedụvn/
số đầu rạ Trong bƣớc đi lui, S2 là cố định, chúng ta sử dụng phƣơng pháp truyền ngƣợc gradient để cập nhật S1.