3. Xây dựng mô hình Fuzzy cho bài toán dự báo dựa trên giải thuật ước lượng
3.3. Mô hình nhận dạng mờ (Fuzzy Model Identification)
Sau khi áp dụng phương pháp ước lượng phân nhóm Mountain Cluster như trong mục 3.2 để thu thập các điểm dữ liệu vào/ra, mỗi tâm nhóm tìm được có thể xem như là một nguyên mẫu đặc tính hành vi của hệ thống. Do đó mỗi tâm nhóm có thể được sử dụng như là một luật mờ (fuzzy rule) dùng để mô tả hành vi của hệ thống.
Giả sử ta tìm được một tập hợp c tâm nhóm {x1, x2,…,xc} trong không gian M chiều. Trong đó N chiều đầu chứa biến ngõ vào và M-N chiều còn lại chứa biến ngõ ra. Ta phân chia mỗi vector x*i thành hai thành phần yi* và zi*, trong đó yi*
DỰ BÁO PHỤ TẢI SỬ DỤNG MẠNG FUZZY WAVELET Trang 57 chứa N phần tử đầu vào của xi* (tọa độ tâm nhóm trong không gian ngõ vào) và
*
zi chứa M-N phần tử còn lại của xi*(tọa độ tâm nhóm trong không gian ngõ ra).
Ta xem mỗi tâm nhóm xi* như là một luật mờ mô tả hệ thống. Với mỗi vector ngõ vào y, độ thõa mãn của luật mờ thứ i được xác định theo công thức :
||y y* 2i||
i e
(3.10)
Trong đó được tính theo (3.7b). Ngõ ra z được tính như sau:
* 1
1 c
i i i
c i i
z z
(3.11)
Chúng ta có thể xem mô hình tính toán trên là một mô hình Fuzzy với các luật IF-THEN. Mỗi luật được phát biểu dưới dạng :
IF Y1 = A1 AND Y2=A2… THEN Z1=B1 AND Z2=B2…
Với Yj là biến đầu vào thứ j và Zj là biến đầu ra thứ j. Aj là một phần từ dạng hàm mũ của tập hợp và Bj đơn trị. Đối với luật mờ thứ I đại diện cho tâm nhóm
*
xi thì Aj và Bj được cho bởi công thức :
* 2
( ij)
( ) q y
A qj e (3.12)
* ij
Bj z (3.13)
Trong đó y*ij là phần tử thứ j của y*i và zij* là phần tử thứ i của z*i
Phương trình (3.10) và (3.11) cung cấp một cách tính toán đơn giản và trực tiếp để biến đổi tập hợp tâm nhóm thành một mô hình Fuzzy. Yager và Filev (1993) đã đề xướng một phương pháp tương tự, dùng các tâm tìm được từ phương pháp phân nhóm Mountain để tạo thành một tập Fuzzy. Để tối ưu các luật Fuzzy, Yager và Filev đã tạo ra một sự lan truyền ngược (backpropagation) để điều
DỰ BÁO PHỤ TẢI SỬ DỤNG MẠNG FUZZY WAVELET Trang 58 chỉnh lặp y zij*, *ij và ij trong các phương trình (3.12) và (3.13). Một cách tiếp cận khác là giả thuyết zij* trong phương trình (3.11) là một hàm tuyến tính của biến ngõ vào thay vì là một hằng số đơn giản.
Như vậy zij* được viết lại như sau : zij* G yi hi (3.14)
Trong đó Gi là một ma trận hằng số (MN)N chiều và h là một vector cột hằng số với M – N phần tử. Luật IF – THEN lúc này trở thành luật Takagi- Sugeno (Takagi and Sugeno, 1985). Trong đó mỗi hậu thức là một phương trình tuyến tính của các biến đầu vào. Mô hình Fuzzy theo kiểu Takagi-Sugeno có thể biểu diễn chính xác các hành vi phức tạp của hệ thống với chỉ một số ít luật Fuzzy (Sugeno and Tanaka,1991). Mô hình Fuzzy mà ta sẽ đề cập có giá trị z*i ban đầu bằng hằng số.
Việc xem zi*
như là một hàm tuyến tính của các giá trị đầu vào cho phép tối ưu hóa các độ thõa mãn quan trọng mà không cần phải thêm vào các tính toán phức tạp khác. Ý tưởng của Takagi-Sugeno (1985) lầ cho một tập hợp luật tiên đề bất biến, việc tối ưu hóa các tham số G và h, liên quan đến việc tập huấn dữ liệu, trong tất cả các phương trình sẽ trở thành vấn đề về ước lượng tuyến tính bình phương cực tiểu đơn giản. Vấn đề này có thể được giải quyết một cách đơn giản và đưa ra một tối ưu toàn bộ.
Để chuyển những phương trình tối ưu hóa tham số G và h thành vấn đề tối ưu hóa bình phương cực tiểu, ta định nghĩa:
1 i
i c
j j
(3.15)
Phương trình (3.11) được viết lại như sau :
*
1 1
( )
c c
i i i i i
i i
z z G y h
(3.16)
DỰ BÁO PHỤ TẢI SỬ DỤNG MẠNG FUZZY WAVELET Trang 59 Hay
1 1
1 1
T T
T T T
c c
T c T c
G h
z y y
G h
(3.17)
Trong đó zTvà yT là các vector cột. Cho một tập hợp n điểm ngõ vào
y y1, 2,...,yn.
Kết quả tập hợp đầu ra [Z] :
1
1 1,1 1 1,1 ,1 1 ,1 1
1, 1, , ,
T
T T T T
c c
T T T
T
n n n c n n c n c
n
T c
G
z y y h
y y G
z
h
(3.18)
Để ý rằng ma trận đầu tiên trong vế phải phương trình trên là một ma trận hằng số, trong khi ma trận thứ hai chứa tất cả các tham số của mô hình được tối ưu.
Để giảm sai số bình phương giữa mô hình đầu ra và mô hình huấn luyện của nó, ta giải quyết vấn đề tối ưu tuyến tính bình phương cực tiểu theo phương trình (3.18), thay ma trận bên vế trái phương trình (3.18) bằng các số liệu đầu ra thực tế của mô hình huấn luyện. Dĩ nhiên ta giả thuyết rằng số lượng dữ liệu đưa vào mô hình huyến luyện lớn hơn số lượng tham số của mô hình cần tối ưu.
Việc ước lượng bình phương cực tiểu trong phương trình (3.18) được viết dưới dạng :
AX B
Trong đó B là ma trận giá trị đầu ra, A là ma trận hằng số và X là ma trận của các tham số tối ưu. Cách giải phổ biến phương trình trên :X (A AT )1A BT Tuyên việc tính toán (A A)T 1 rất phức tạp và tốn kém vì ma trận (A A)T 1 là một ma trận rất lớn (số chiều của nó là c N( 1) c N( 1)). Khi số lượng công việc tính toán tăng lên cùng với số chiều dẫn đến nghiệm dễ bị suy biến. Ở đây
DỰ BÁO PHỤ TẢI SỬ DỤNG MẠNG FUZZY WAVELET Trang 60 ta sử dụng một cách giải khác cũng khá phổ biến để tìm X được đề xuất bởi Astrom và Wittenmark (1984) đó là tính X thông qua một phép lặp như sau :
1 1 1( T1 T1 )
i i i i i i i
X X S a b a X (3.19)
1 1
1
1 1
1
T
i i i i
i i T
i i i
S a a S
S S
a S a
,i0,1,...,n1 (3.20)
Trong đó Xi là giá trị ước lượng của X tại vòng lặp thứ i, Si là ma trận có số chiều là c N( 1) c N( 1). aiTlà ma vector hàng thứ i của ma trận A và biT là vector cột thứ i của ma trận B. Giá trị ước lượng bình phương cực tiểu của X liên qua đến giá trị của Xn. Điều kiện đầu của phép lặp trên là X0 = 0 và S0=I , trong đó I là ma trận đơn vị và là một hằng số dương đủ lớn.
Sau khi tìm được giá trị ước lượng X thì xem như kết thúc quá trình huấn luyện dữ liệu. Mô hình huyến luyện được giữ lại để thực hiện dự báo một bước phía trước (one-step ahead forecash).