6. Bố cục của luận án
2.4. Tích hợp tri thức tiên nghiệm vào mơ hình mờ trích xuất từ máy học véc-tơ
2.4.2. Thuật toán SVM-IF
Nhằm mục tiêu thỏa mãn hai điều kiện ở trên, luận án đề xuất thuật tốn SVM-IF, trong Hình 2.4, cho phép trích xuất được hệ thống mờ “có thể diễn dịch được” từ dữ liệu huấn luyện dựa vào máy học véc-tơ hỗ trợ.
Thuật toán SVM-IF(ℋ, k, 𝜀, tol)
Input: Tập dữ liệu huấn luyện ℋ;
Ngưỡng độ đo tương tự giữa 2 hàm thành viên sim;
Tham số lỗi 𝜀;
Output: Mơ hình mờ với hàm quyết định đầu ra là 𝑓(𝑥);
1. Khởi tạo các giá trị tham số: 𝐶, 𝜀, 𝜎, 𝑠𝑡𝑒𝑝; 2. Huấn luyện SVM: 𝑓(𝑥) = ∑𝑙 (𝛼𝑖− 𝛼𝑖∗) 𝑖=1 𝐾(𝑥𝑖, 𝑥) + 𝑏 ; 3. Trích xuất các 𝑆𝑉 = {(𝛼𝑖− 𝛼𝑖∗): (𝛼𝑖 − 𝛼𝑖∗) ≠ 0, 𝑖 ∈ {0, … , 𝑙}}; 4. InterpretabilityTest(c, σ, sim); 5. Điều chỉnh ma trận kernel: 𝐻′ = [ 𝐷′ −𝐷′ −𝐷′ 𝐷′ ], (công thức 1.46) với 𝐷𝑖𝑗′ = 〈𝜑(𝑥𝑖),𝜑(𝑥𝑗)〉 ∑ 〈𝜑(𝑥𝑗 𝑖),𝜑(𝑥𝑗)〉 ; (công thức 1.47) 6. Sinh ra tập luật mờ từ tập SV với hàm thành viên Gauss;
7. Tối ưu hóa tham số các hàm thành viên (công thức 1.51 và 1.52)
𝜎𝑖(𝑡 + 1) = 𝜎𝑖(𝑡) + 𝛿𝜀1,𝑖[(𝑥−𝑐)2 𝜎3 𝑒𝑥𝑝 (−(𝑥−𝑐)2 2𝜎2 )] 𝑐𝑖(𝑡 + 1) = 𝑐𝑖(𝑡) + 𝛿𝜀1,𝑖[−(𝑥−𝑐) 𝜎2 𝑒𝑥𝑝 (−(𝑥−𝑐)2 2𝜎2 )] 8. return 𝑓(𝑥) = ∑𝑙𝑖=1(𝛼𝑖−𝛼𝑖∗)𝐾(𝑥𝑖,𝑥) ∑𝑙𝑖=1(𝛼𝑖−𝛼𝑖∗)
Thuật tốn SVM-IF có sử dụng đến thuật tốn InterpretabilityTest (Hình 2.5) để kiểm tra độ đo độ tương tự, 𝑆𝐺(𝐴𝑖, 𝐴𝑗) của hai tập mờ và gộp chúng lại nếu 𝑆𝐺(𝐴𝑖, 𝐴𝑗) ≤ 𝑠𝑖𝑚. Dòng 2 và 3 cho phép tính tốn độ đo độ tương tự và xác định hai
tập mờ có độ tương tự lớn nhất. Dịng 4 đến dòng 6 cho phép kiểm tra để gộp các tập mờ có độ tương tự lớn nhất và lơn hơn giá trị 𝑠𝑖𝑚 cho trước, đồng thời cập nhật lại tập mờ mới. Việc kiểm tra và gộp các tập mờ sẽ được thực hiện lặp lại, mỗi lần gộp một cặp cho đến khi độ đo sự tương tự giữa tất cả các tập mờ không lớn hơn giá trị
𝑠𝑖𝑚 cho trước.
Thuật toán InterpretabilityTest(c, σ, sim)
Input: Tập các véc-tơ hỗ trợ (trung điểm của hàm thành viên Gauss) 𝑐;
Tham số xác định độ lệch chuẩn 𝜎;
Tham số ngưỡng độ tương tự cho trước sim; Output: Tập các véc-tơ hỗ trợ đã được rút gọn;
1. repeat
2. Tính độ đo sự tương tự giữa các cặp tập mờ 𝐴𝑖, 𝐴𝑗 (theo công thức 2.2):
𝑆𝐺(𝐴𝑖, 𝐴𝑗) = 𝑒 −𝑑2 𝜎2 2 − 𝑒−𝑑 2 𝜎2 𝑣ớ𝑖 𝑑 = √(𝑐𝑖 − 𝑐𝑗)2+(𝜎𝑖− 𝜎𝑗)2
3. Lựa chọn một cặp tập mờ 𝐴𝑖∗và 𝐴𝑗∗sao cho:
𝑆𝐺(𝐴𝑖∗, 𝐴𝑗∗) = 𝑚𝑎𝑥𝑖,𝑗{𝑆𝐺(𝐴𝑖, 𝐴𝑗)}
4. if 𝑆𝐺(𝐴𝑖∗, 𝐴𝑗∗) > 𝑠𝑖𝑚 then
5. Gộp cặp tập mờ 𝐴𝑖∗và 𝐴𝑗∗ thành một tập mờ mới 𝐴𝑘;
6. end if
7. until khơng cịn căp tập mờ nào có độ đo sự tương tự 𝑆𝐺(𝐴𝑖, 𝐴𝑗) > 𝑠𝑖𝑚;
8. Return
Cho số lượng véc-tơ hỗ trợ là 𝑙, ta có độ phức tạp tính tốn của thuật toán
InterpretabilityTest là 𝑂(𝑙2). Trong khi độ phức tạp của thuật toán huấn luyện máy học véc-tơ hỗ trợ có độ phức tạp là 𝑂(𝑁2) (với 𝑁 là kích thước tập dữ liệu huấn
luyện). Như vậy độ phức tạp của thuật toán SVM-IF là 𝑂(𝑁2+ 𝑙2) = 𝑂(𝑁2) .