mềm matlab
Tính toán cơ bản dùng trong hệ thống mờ của matlab được xem như một ánh xạ phi tuyến được tham số hóa được mô tả bằng hàm f như sau:
l i l i n m l i A i 1 i 1 n m i A i 1 i 1 y ( (x ) f (x) ( (x ) = = = = µ = µ ∑ ∏ ∑ ∏ (4.4) Trong đó yl là đầu ra, l i A
µ là hàm thuộc của đầu vào tương ứng với luật hợp thành thứ l.
Luật hợp thành max – prod và phương pháp giải mờ là phương pháp điểm trọng tâm được sử dụng.
Quá trình huấn luyện trong ANFIS được mô tả như hình 4.17.
Trong ANFIS có ba chương trình con đã được viết sẵn trên matlab bao gồm GENFIS1, ANFIS, EVALFIS, ta chỉ cần gọi ra và thục hiện quá trình làm việc theo quá trình trên.
Giải thuật huấn luyện luyện Cấu trúc mạng Tín hiệu ra mong muốn Tín hiệu vào giả lập Tín hiệu vào Tín hiệu ra
Các chương trình được mô tả như sau:
GENFIS1:đây là chương trình tạo ra ma trận dữ liệu để huấn luyện mạng từ bộ dữ liệu DATA. Cấu trúc lệnh như sau:
GENFIS1(DATA, MF_N, IN_MF_TYPE).
Trong đó:
- DATA: Bộ dữ liệu huấn luyện với quy ước các cột đầu tiên tương ứng với tín hiệu đầu vào, cột cuối cùng tương ứng với tín hiệu đầu ra. - MF_N: Véc tơ xác định hàm số thuộc cho tất cả các tín hiệu đầu vào.
- IN_MF_TPYE: Mảng ký tự mà mỗi hàng xác định tên hàm thuộc của
biến đầu vào tương ứng.
Với các tham số khai báo như trên, GENFIS1 thực hiện các chức năng sau: - Xác định tín hiệu đầu vào đầu ra.
- Xác định số lượng hàm thuộc và gán các hàm thuộc đã được khai báo cho các biến vào/ra.
- Mờ hóa tín hiệu đầu vào, tín hiệu đầu ra. Trên cơ sở đó xây dựng bảng luật điều khiển.
- Lựa chọn quy tắc hợp thành (max-min, max-prod, sum-min, sum –
prod) cùng với các luật điều khiển để xây dựng cấu trúc mạng.
ANFIS:
Cấu trúc lệnh như sau:
[FISMAT1, T_ERROR, STEPSIZE, FISMAT2, C_ERROR] = ANFIS(DATA, IN_FISMAT, T_OPT, D_OPT, CHK_DATA).
- IN_FISMAT: Đầu ra của genfis1.
- T_OPT: Các tùy chọn cho quá trình huấn luyện.
- D_OPT: Các tùy chọn hiển thị thông tin của mạng ANFIS.
- CHK_DATA: Bộ dữ liệu dùng để kiểm tra khả năng khái quát hóa của mạng tại mỗi bước huấn luyện và có cấu trúc như bộ DATA.
- FISMAT1: Đầu ra dạng ma trận tương ứng bước huấn luyện hoặc sai số huấn luyện được định trước.
- T_ERROR: Sai số huấn luyện tính bằng tổng trung bình bình phương sai số cho toàn bộ tập dữ liệu kiểm tra trong một bước lặp.
- C_ERROR: Sai số kiểm tra, được tính bằng tổng trung bình bình
phương sai số cho toàn bộ tập dữ liệu kiểm tra trong một bước lặp. - STEPSIZE: Bước học trong quá trình huấn luyện. Giá trị ban đầu được
gán là 0.01 và nó được thay đổi trong quá trình học theo quy tắc sau: + Nếu sai số huấn luyện giảm 4 lần liên tiếp, thì tăng bước học bằng cách nhân với hệ số lớn hơn 1 và được chọn là 1,1.
+ Nếu sai số huấn luyện tăng – giảm hai lần liên tiếp, thì giảm bước học bằng cách nhân với hệ số nhỏ hơn một và được chọn là 0,9.
Với các tham số như trên, ANFIS huấn luyện mạng theo quá trình sau: - Đưa lần lượt từng cặp giá trị đầu vào qua mạng, giá trị đầu ra tương
ứng sẽ xác định.
- Thực hiện quá trình lan truyền ngược để hiệu chỉnh các tham số của các hàm liên thuộc và bộ trọng số của mạng.
- Quá trình huấn luyện của mạng sẽ kết thúc khi số bước huấn luyện hoặc sai số huấn luyện đạt theo yêu cầu đã đặt ra cho mạng.
Quá trình tính toán trong ANFIS mô tả theo hình 4.18.
EVALFIS: Dùng để tính toán giá trị đầu ra của mạng với đầu vào tương ứng sau khi mạng huấn luyện đạt yêu cầu.