4. MỘT PHƯƠNG PHÁP XÂY DỰNG HỆ LÔGIC MỜ LOẠI HAI ĐẠI SỐ GIA TỬ
4.2. Xây dựng hệ lôgic mờ loại hai đại số gia tử
4.2.2. Xây dựng hệ lôgic mờ loại một
Trong mục này, chúng tôi sử dụng kỹ thuật phân cụm mờ để xây dựng T1-FLS, ở đây, mỗi tập dữ liệu tương ứng với mỗi biến vào, biến ra sẽ được phân cụm mờ độc lập bằng thuật toán FCM. Với mục đích thiết kế một hệ lôgic mờ loại một
“tốt nhất có thể”, ta áp dụng GA để tối ưu các tham số ci, mi trong thuật toán phân cụm FCM.
Để đơn giản, ta xét mô hình mờ MISO (Multi-Input Single-Ouput) với s biến vào x1, x2,…, xs và 1 biến ra y. Giả sử k1, k2,…, ks và ks+1 là số cụm tương ứng thu được khi sử dụng thuật toán FCM để phân cụm tập dữ liệu của các biến x1, x2,…, xs và y. Khi đó, các biến x1, x2,…, xs và y sẽ nhận giá trị trên k1, k2,…, ks và ks+1 tập mờ tương ứng. Hơn nữa, nhờ vào tâm và sự phân bố dữ liệu của mỗi cụm ta sẽ xác định được bộ tham số của các tập mờ này khi cho trước dạng hàm thuộc của tập mờ.
Hình 4.3. Tập tham số của các hàm thuộc loại một
Chẳng hạn, xét biến x1, giả sử k1 = 3 và hàm thuộc có dạng tam giác, khi đó 3 tập mờ loại một A1, A2 và A3 được mô tả theo bộ 3 tham số (ai, bi, ci) tương ứng, với i = 1, 2, 3. Không mất tính tổng quát, giả sử A2 nằm giữa A1 và A3, A1 nằm bên trái A2 còn A3 nằm bên phải A2 (xem hình 4.3). Từ đây, ta có thể đề xuất một cách để xác định các tham số (ai, bi, ci) cho 3 tập mờ này. Tại các điểm trùng với tâm của mỗi cụm sẽ nhận độ thuộc là 1, đó chính là các điểm b1, b2 và b3, Tức là :
( ) = 1, ( ) = 1 và ( ) = 1 (4.12)
Các giá trị còn lại được xác định như sau :
= − ( − ) (4.13)
c1 = b2 ; a2 = b1 ; c2 = b3; (4.14)
= − γ − (4.15)
trong đó, và là giá trị nhỏ nhất và giá trị lớn nhất trong tập dữ liệu của biến vào x1 tương ứng, còn là một hằng số cho trước, nó phụ thuộc vào từng ứng dụng ( = 10% , 15%, … ).
Như vậy, từ kết quả phân cụm, ta sẽ nhận được một tập gồm (k1 × k2 × … × ks× ks+1) luật. Tuy nhiên, tập luật này còn có những luật mâu thuẫn, tức là còn chứa các luật có phần giả thiết giống nhau nhưng phần kết luận khác nhau, do vậy, cần thiết phải tạo ra một tập luật “tốt hơn” từ tập luật trên. Để giải quyết vấn đề này ta dựa vào trọng số của mỗi luật. Với các luật mâu thuẫn, luật có trọng số lớn nhất sẽ được giữ lại trong cơ sở luật. Quá trình này được cụ thể hóa như sau.
Đọc bản ghi thứ t, ( , , … , , ) từ bộ dữ liệu. Đốt cháy chúng qua từng luật, gán trọng số wj cho mỗi luật. Giả sử luật j có dạng:
IF x1 is A and x1j 2 is A and … x2j s is A THEN y is sj Bj (4.16)
Khi đó, trọng số của luật j tương ứng với bản ghi t là:
= ( ), ( ), … , ( ), ( ) (4.17)
Như vậy, trọng số của luật j khi đốt cháy N bản ghi trong bộ dữ liệu:
= ∑ (4.18)
Sau khi loại bỏ các luật mâu thuẫn, k1 k2 … ks luật còn lại vẫn có thể còn dư thừa. Lúc này, một ngưỡng [0,1] được chọn để tiếp tục loại bỏ các luật mà trọng số của chúng quá nhỏ, ngưỡng này phụ thuộc vào bài toán cụ thể.
Như mục 4.2.1 đã trình bày, khi thuật toán FCM thực hiện thì hai tham số C và m cần phải được xác định. Ở đây C là số cụm còn tham số m (1m ) được gọi là chỉ số tính mờ (fuzziness index). Nhiều ứng dụng sử dụng thuật toán
FCM chọn m = 2 theo gợi ý của J. C. Bezdek từ năm 1976 [13]. Gần đây, trong [57], N. R. Pal và J. C. Bezdek đã chỉ ra rằng m có thể được lựa chọn trong đoạn [1.5, 2.5], hay trong [73] khuyến cáo m nên lấy trong đoạn [1.5, 4.0],... Khi m thay đổi thì biên giữa các cụm cũng thay đổi và nó ảnh hưởng nhiều đến hiệu năng của FCM, trong [43] đã phân tích chi tiết về sự thay đổi của m. Như vậy, việc chọn giá trị cho tham số m phụ thuộc vào đặc điểm của bộ dữ liệu.
Trong Pha 1 này chúng tôi sử dụng GA để tối ưu hai tham số m và c sao cho sai số của hệ mờ loại một được xây dựng từ kết quả phân cụm là nhỏ nhất. Để tránh bùng nổ tập luật, ở đây tham số C được giới hạn trong khoảng [2, Cmax].
Gọi CMOptimization(.) là thủ tục tối ưu tham số ci và mi trong thuật toán FCM. Giả sử với c thuộc đoạn [2, cmax] và m thuộc [1.00, 10.00], khi đó Thủ tục CMOptimization(2, cmax) được xây dựng như sau.
Mã hóa: Mỗi cá thể được mã hóa bằng một véctơ nhị phân. Như vậy, cần mã hóa 2 tham số là m và cmax thành chuỗi bits. Một cách tổng quát, để mã hóa số thực x [a, b] với k chữ số lẻ (k chữ số sau phần thập phân) sẽ cần L bits, trong đó L phải thỏa bất đẳng thức sau:
( − ) × 10 < 2 − 1 (4.19)
Việc chuyển từ chuỗi bits có độ dài L sang số thập phân dùng công thức:
= + ( ) × (4.20)
ở đây, decimal(L) là giá trị thập phân của chuỗi bits L.
Giả sử miền xác định của c là [2, cmax] với cmax = 9 thì cần 3 bits để mã hóa tham số c. Tương tự với m [1.00, 10.00] thì cần 10 bits để mã hóa m. Như vậy, mỗi nhiễm sắc thể trong Thủ tục CMOptimization(2, cmax) có độ dài 13 bits.
Chọn lọc: Sử dụng toán tử Roulette Wheel, ý tưởng của toán tử này là phần tử có độ thích nghi càng tốt thì xác suất được chọn để lai ghép càng cao. Trong thủ tục này, độ thích nghi của mỗi các thể được tính theo (4.21) hoặc (4.22). Khi đó,
- Tính tổng các giá trị thích nghi S của tất cả các cá thể;
- Chọn ngẫu nhiên n thuộc [0, S];
- Cá thể đầu tiên có tổng độ thích nghi của nó với các cá thể trước nó lớn hơn hoặc bằng n sẽ được chọn.
Lai ghép: Sử dụng toán tử lai ghép đơn điểm. Chọn cá thể cha và mẹ sau đó cho lai ghép thu được 2 cá thể con của quần thể mới. Giả sử xác suất xảy ra lai ghép là Pc [0,1], chọn ngẫu nhiên r[0,1] nếu r ≤ Pc thì tiến hành lai ghép, ngược lại thì không. Quá trình lai ghép đơn điểm được tiến hành như sau.
- Chọn ngẫu nhiên POS [0, L] là vị trí lai ghép;
- Hai cá thể con được tạo ra bằng việc sao chép các ký tự từ 1 đến POS và tráo đổi các ký tự từ POS + 1 đến L. Quá trình này được minh hoạ trong Hình 4.4.
Hình 4.4. Minh họa quá trình lai ghép đơn điểm
Đột biến : Giả sử xác suất đột biến là Pm [0,1], khi đó:
- Chọn ngẫu nhiên r [0,1] nếu r ≤ Pm thì tiến hành đột biến, ngược lại thì không;
- Chọn vị trí đột biến POS [0, L] và đảo giá trị của bit tại ví trí này.
Ngoài ra, cần quan tâm một số tham số khác trong thủ tục này: Ở mỗi thế hệ luôn giữ lại một số các cá thể có độ thích nghi cao cho thế hệ tiếp theo, thường chọn là 10%. Kích thước quần thể và số thế hệ.
Trong phương pháp này, sai số của hệ mờ chính là hàm thích nghi cho thuật toán tối ưu trên, ở đây hoặc là chọn LSE (Least Square Error):
= ∑ ( − ) (4.21)
hoặc là chọn MSE (Mean Square Error)
= ∑ ( − ) (4.22)
trong đó, N – số bản ghi huấn luyện, yt - giá trị đầu ra của hệ mờ loại một, zt – giá trị đầu ra mong muốn trong bản ghi thứ t.
Lưu ý rằng, quá trình tính toán đầu ra của hệ lôgic loại một sử dụng phép mờ hóa đơn trị, toán tử t-norm min, t-conorm max và phép khử mờ trọng tâm.
Như vậy, theo cách vừa mô tả ở phần trên, ta có thể thiết kế một hệ lôgic mờ loại một, quy trình này được hình thức hóa theo Thuật toán 4.1.
Thuật toán 4.1. Thiết kế hệ mờ loại một từ dữ liệu vào-ra Input:
- Tập dữ liệu huấn luyện – N bản ghi, mỗi bản ghi có s + 1 thành phần, trong đó s thành phần tương ứng với các biến vào x1, …, xs; và thành phần còn lại tương ứng với biến ra y;
- (s+1) bộ tham số c, m để thực hiện thuật toán FCM ;
- Tham số để xây dựng các tập mờ tam giác; - ngưỡng loại bỏ luật dư thừa Output: Một cơ sở luật và các hàm thuộc loại 1.
Method:
Bước 1: //Khởi tạo
- Với i = 1, …, s + 1 khởi tạo ci = c; mi = m;
- ; ; Cmax = √ .
Bước 2:// Xác định các hàm thuộc của các tập mờ loại 1
- Phân cụm bằng thuật toán FCM độc lập trên dữ liệu của từng biến vào và biến ra theo (c1, m1), (c2, m2), …, (cs+1, ms+1). Giả sử thu được k1, k2, …, ks+1 cụm tương ứng.
- Xác định các hàm thuộc tam giác của các tập mờ loại một , ớ = 1, 2, … , ; = 1, 2, … , và , = 1, 2, … , từ kết quả phân cụm
Bước 3: //Xác định tập luật
- Từ các tập mờ Ak và Bk ta có k1 k2 … ks+1 luật.
- Giả sử luật thứ j có dạng:
IF x1 is A and x1j 2 is A and … x2j s is A THEN y is sj Bj
Bước 4: // Loại bỏ luật mâu thuẫn và luật dư thừa để có một cơ sở luật tối ưu - Tính trọng số của luật j theo công thức (4.18)
- Nếu các luật mâu thuẫn thì giữ lại luật có trọng số lớn nhất.
- Nếu wj < thì loại bỏ luật j Bước 5: //Kết thúc
Cơ sở luật và các hàm thuộc loại 1.
Tóm lại, bằng cách áp dụng Thuật toán 4.1 ta sẽ thiết kế được một T1-FLS, tuy nhiên, như đã lập luận ở phần trên, để nhận được T1-FLS “tốt nhất”, chúng ta cần sử dụng GA để tối ưu các tham số ci và mi trong thuật toán FCM. Ở đây, mỗi thế hệ tạo ra ngẫu nhiên một quần thể, tức là sinh ra một tập cá thể các giá trị ci và mi. Sau đó, với mỗi cá thể trong quần thể, sử dụng Thuật toán 4.1 xây dựng một T1-FLS, và tính toán sai số của hệ lôgic mờ này theo công thức (4.21) hoặc (4.22). Nếu sai số của hệ lôgic mờ nhỏ hơn giá trị cho trước hoặc số thế hệ vượt quá ngưỡng Gn thì quá trình tìm kiếm kết thúc, khi đó sẽ thu được một hệ lôgic mờ loại một “tốt nhất”.