Temat: Model TS + ANFIS Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE Dr inż. Barbara Mrzygłód KISiM, WIMiIP, AGH mrzyglod@ agh.edu.pl
1 Wprowadzenie Pierwszym rodzajem modelowania rozmytego zastosowanego w praktyce było tworzenie modeli rozmytych na bazie wiedzy eksperta. Oparte jest ono o wiedzę i doświadczenie eksperta znającego system i wszystkie jego zachowania. Model werbalny tworzony na bazie wiedzy eksperta pozwala stworzyć tylko model Mamdaniego. Systemy rozmyte modelują procesy, które trudno opisać metodami klasycznymi (np. równaniami różniczkowymi) Słabości klasycznych układów rozmytych: nie ma standardowej metody do przekształcenia wiedzy eksperckiej na reguły wnioskowania rozmytego potrzebna jest efektywna metoda dostrajania funkcji przynależności (MF), tak by minimalizować błędy wnioskowania 2 Model Taki-Sugeno Sugeno i współpracownicy zaproponowali alternatywny system wnioskowania oparty na bazie reguł specjalnego formatu, który odznacza się następnikami typu funkcyjnego. We wnioskach reguł występują nie zbiory rozmyte ale funkcje zmiennych wejściowych, przy czym są to najczęściej funkcje liniowe, więc każda reguła modelu opisuje jeden płaski (liniowy) segment powierzchni modelu. If x is A1 and y is B1 then z = f(x, y) Model Sugeno (opisywany skrótami: TS Takagi-Sugeno lub TKS Takagi-Sugeno-Kanga) R1: JEŻELI (x jest A1) TO (y = -x+3) R2: JEŻELI (x jest A2) TO (y = (4x-10)/3) R3: JEŻELI (x jest A3) TO (y = (-x+24)/3) W bazie reguł w konkluzjach stosowana jest zależność funkcyjna, co powoduje, że w strukturze Takagi-Sugeno nie występują jawnie wyjściowe funkcje przynależności oraz wyostrzanie.
Na wyjściu otrzymujemy średnią wartości otrzymaną ze wszystkich uruchamianych reguł, ważoną stopniami stosowalności tych reguł. 3 Implementacje modeli rozmytych typu Sugeno (w MATLAB-ie) 3.1 Ćwiczenie 1 IF x= small THEN y=0,1x+6,4 IF x= medium THEN y= -0,5x+4 IF x= large THEN y=x-2 a) b)
3.2 Ćwiczenie 2 If X is small and Y is small then z = -x + y + 1. If X is small and Y is large then z = -y + 3. If X is large and Y is small then z = -x + 3. If X is large and Y is large then z = x + y + 2. 3.3 Zraszacz Zaprojektować sterownik rozmyty do automatyzacji podlewania ogrodu w lecie. Chodzi tu o to, by intensywność podlewania była odpowiednia w stosunku do stopnia wilgotności i temperatury powietrza. Orientacyjny schemat systemu automatyzacji podlewania pokazany jest na rys. 1. Jest to system bez sprzężenia zwrotnego. Rysunek 1 Schemat układu W zależności od wskazań czujnika temperatury i wilgotności powietrza sterownik wysyła sygnał wyjściowy, który reguluje zawór wodny ustalając intensywność podlewania, zgodnie z opracowanymi przez eksperta regułami rozmytymi (uwzględniając rodzaj gleby, uprawy itp.). Załóżmy, że termy zmiennych wejściowych i zmiennej wyjściowej (singletony) są ustalone jak na rysunkach rys. 2-4, natomiast określone przez eksperta reguły są przedstawione na rys. 5 w postaci tablicy relacji. Rozdzielczość jeśli chodzi o zmiany temperatury przyjęto na poziomie 0.5 [ o C], rozdzielczość wilgotności przyjęto co 1 [%]. Rozdzielczość zbioru wyjściowego określającego intensywność podlewania przyjęto również co 1 [%].
Rysunek 2 Zbiór termów odpowiadający zmiennej lingwistycznej temperatura Rysunek 3 Zbiór termów odpowiadający zmiennej lingwistycznej wilgotność. Rysunek 4 Zbiór termów odpowiadający zmiennej lingwistycznej intensywność podlewania jego realizacja następuje poprzez określenie stałych wartości (const) dla poszczególnych konkluzji, tj: zero = 0% Mała = 25% Średnia = 50% Duża = 75% Max=100%.
Rysunek 5 Zestaw reguł rozmytych 3.4 Zad.1. Dany jest model rozmyty typu Sugeno zapisany dwiema regułami w postaci: R(1) IF (x1 jest DUŻEE AND x2 jest SREDNIE) THEN y1 = 2 + 7x1-3x2 R(2) IF (x1 jest MAŁE AND x2 jest MAŁE) THEN y2= -2x1 +5x2 Funkcje przynależności dla zmiennych lingwistycznych x1 i x2: Tabela 1 Reprezentacja zmiennych lingwistycznych x1 oraz x2 Zmienna x1 Zmienna x2 Range [0 100] MAŁE = trójkątna/trimf [0 0 70] DUŻE = trójkątna/trimf [ 0 100 100] Range [0 150] MAŁE = trapezowa/trampf [0 0 15 60] ŚREDNIE = trójkątna/trimf [ 40 70 100] DUŻE = trapezowa/trampf [80 100 150 150] Zilustruj zmienne lingwistyczne x1 oraz x2 Wyznacz sygnał wyjściowy modelu y = dla wejściowych wartości ostrych: a) x1 x2 b) x1 x2 dla dwóch metod realizacji operatora AND zawartego w regułach, tj. MIN, PROD Zapisz wyniki końcowe w tabeli: a) x1 x2 MIN PROD b) x1 x2
3.5 Zad.2. W zależności od wskazań czujnika temperatury [Input 1] i wilgotności powietrza [Input 2] sterownik wysyła sygnał wyjściowy, który reguluje zawór wodny ustalając intensywność podlewania [Output 1], zgodnie z opracowanymi przez eksperta regułami rozmytymi [Rules]. W tabeli 1 przedstawiono model wnioskowania, który reprezentuje niniejszy problem. Analizując zapis źródłowy, wygenerowany przez Matlaba, oraz uwzględniając zadane wartości wejść, oblicz dla każdego scenariusza wynik wnioskowania. Tabela 2 [System] Name='zraszacz' Type='sugeno' NumInputs=2 NumOutputs=1 NumRules=3 AndMethod='prod' OrMethod='max' ImpMethod='prod' AggMethod='sum' DefuzzMethod='wtaver' [Input1] Name='temp' Range=[0 35] NumMFs=4 MF1='Zimno':'trapmf',[-12 0 5 15] MF2='Cieplo':'trimf',[15 25 35] MF3='Goraco':'trimf',[25 35 40] MF4='Letnio':'trimf',[5 15 25] [Input2] Name='wilgotnosc' Range=[0 100] NumMFs=3 MF1='Mala':'trapmf',[-2 0 25 50] MF2='Srednia':'trimf',[25 50 100] MF3='Duza':'trimf',[50 100 120] [Output1] Name='podlej' Range=[0 100] NumMFs=5 MF1='Zero':'constant',[0] MF2='Mala':'constant',[25] MF3='Srednia':'constant',[50] MF4='Duza':'constant',[75] MF5='MaX':'constant',[100] [Rules] 1 1, 3 (1) : 1 1 2, 2 (1) : 1 1 3, 1 (1) : 1 a) [Input 1] = 10; [Input 2]=40 b) [Input 1] = 11; [Input 2]=70
4 ANFIS Systemy wnioskowania rozmytego umożliwiają modelowanie nieprecyzyjnych danych i procesów oraz łatwą interpretację modelu. FIS należą do tzw. grupy systemów eksperckich i jako takie zostały zaprojektowane tak by można było wykorzystać wiedzę eksperta do konstrukcji modelu. Jednak nie zawsze posiadana wiedza pozwala na określenie optymalnej struktury modelu, czyli na zdefiniowanie ilości i kształtu funkcji przynależności. Potrzeba więc strategii, która pozwoliłaby nauczyć system wnioskowania rozmytego doboru parametrów konstruowanego modelu w oparciu o analizowane dane. Tu z pomocą przychodzą sieci neuronowe, które mają zdolność adaptacji do struktury danych. Algorytm ANFIS jest jednym z przykładów algorytmu/implementacji systemów neuronowo-rozmytych. Wykorzystuje on zarówno proces optymalizacji z wykorzystaniem algorytmów gradientowych jak i algorytm propagacji wstecznej. Połączenie systemów wnioskowania rozmytego i sieci neuronowych cechuje się możliwością interpretacji modelu oraz odpornością na różnego rodzaju uszkodzenia danych. W ramach tego modelu, FIS dostarczają schematu wnioskowania, a więc sposobu konstrukcji reguł logicznych, których uczenie odbywa się według algorytmu zaczerpniętego z teorii sieci neuronowych. Konstrukcja modelu polega na samodzielnym wyznaczaniu reguł logicznych na podstawie dostępnych danych. 4.1 Zadanie Zadaniem jest stworzenie systemu ANFIS zdolnego do odwzorowania zależności między dostarczonymi danymi eksperymentalnymi wykorzystując aplikacje ANFIS zawartą w Matlabie. Plik o nazwie doanfis.txt zawiera (odpowiednio sformatowane) wyniki 217 pomiarów zużycia matrycy (4 kolumna) w zależności od 4 zmiennych: Liczba odkuwek, Temperatura wsadu, Nacisk, Droga tarcia.
Rys. 1 Widok danych z pliku xlsx. W kolejnych krokach wykonaj: 1. Uruchomienie programu MATLAB a w nim modułu fuzzy. 2. W wywołanym FIS Edytorze uruchomić nowy projekt z modelem wnioskowania Sugeno 3. W nowo otwartym projekcie wprowadź odpowiednią liczbę zmiennych wejściowych (4) oraz zmienną wyjściową (1). Decyzja o ich ilości związana jest z analizą pliku z danymi eksperymentalnymi. W tworzonym projekcie możemy wnioskować tylko o jednej zmiennej wyjściowej (output). 4. Dla tak przygotowanego projektu, w kolejnym kroku uruchom algorytm ANFIS
Zostanie otwarte okno Anfis Edytor, które umożliwia wczytanie zmiennych przygotowanych w pliku doanfisa.txt 5. Teraz decydujemy o tym na ile zbiorów rozmytych zostaną podzielone zmienne i jaki przypiszemy im kształt. W pierwszym scenariuszu, każdą ze zmiennych należy podzielić na 3 zbiory rozmyte oraz przypisać im kształt gaussowski. Po dobraniu podstawowych parametrów uruchamiamy proces uczenia (trenowania sieci) dążąc do zminimalizowania błędu. Następnie zamykamy okno Anfis Edytor i wracamy do Okna FIS Edytor.
6. Uruchomiany algorytm ANFIS podzielił każdą ze zmiennych na odpowiednią (wcześniej zadaną) liczbę zbiorów rozmytych o wybranym kształcie. Opracował również zmienną wyjściową oraz wygenerował zestaw reguł dostosowując je do wprowadzonych danych wejściowych. 7. Następny krok to analiza wyników. 8. Zaproponuj rozwiązanie składające się z innej ilości zbiorów rozmytych oraz o innym kształcie.
4.2 Zaproponuj zastosowanie modułu ANFIS dla zagadnienia klimatyzatora. Przygotuj plik z danymi wejściowymi zamieniając odpowiednio nazwy zbiorów rozmytych na wielkości ilościowe. Np. B. Zimno -10 Zimno +5 Dobrze +22 Gorąco +30 B. gorąco +35