Modelare fuzzy Problematica modelarii Sisteme fuzzy in modelare Procedura de modelare ANFIS Generarea sistemului fuzzy initial Utilizare ANFIS
Modelare fuzzy Problematica modelarii Modelarea etapa importanta în orice activitate (inginerească, management) Rezolvarea unei noi probleme poate presupune etapele: 1) Dezvoltarea unui model - modelare 2) Utilizarea de diferite tehnici pentru a gasi o solutie optima utilizand modelul dezvoltat - simulare 3) Aplicarea solutiei optime pe un sistem real - implementare Modelarea și simularea folosirea de modele (emulatoare, prototipuri, simulatoare, etc), fie statistice, fie dinamice (cu evolutie in timp), pentru a obtine date si informatii pe baza carora se iau decizii tehnice sau de management, sau se realizeaza invatarea) Modelul reprezintă sistemul real Simularea imită comportarea sistemului
Caracteristicii ale modelarii si simularii mai ieftin si mai sigur decat realizarea experimentelor cu dispozitive reale (simularea experimentelor nucleare, a catastrofelor naturale, sisteme electronice complexe, etc) uneori este mai aproape de realitate decat experimente traditionale, permitand configurarea parametrilor de mediu la valorile intalnite in domeniul operational de aplicatie (operatiuni la mare adancime, simularea suprafetor planetelor, etc) simularea permite comprimarea / expandarea timpului, permitand analiza eficienta (in time) a diferitelor scenarii permite realizarea si studierea unui mediu coerent care integreaza mai multe sub-sisteme, inclusiv a unui mediu de test virtual modelul se dezvolta o data si se utilizeaza de nenumarate ori
Structura modelului Modelarea (identificarea) liniara este un domeniu bine determinat Modelarea (identificarea) neliniara este un domeniu de cercetare intensa Modele neliniare Cutie alba: neliniaritatile sunt descrise complet utilizand cunostinte anterioare despre procesul de modelat modelul este perfect cunoscut. Cutie gri (neliniaritatile sunt partial sugerate de intelegerea la nivel fizic, sunt necesare totusi ajustari pe baza observatiilor) Cutie neagra (nu utilizeaza cunostinte la nivel fizic; modeleaza doar relatiile intrare iesire; modelul apartine unei familii cunoscute pentru o buna flexibilitate, care a furnizat rezultate bune in trecut Pentru modelele cutie alba si cutie gri, cunostintele introduse in structura modelului sunt in mod necesar cantitative Optim (compromis) intre precizie si complexitatea de calcul Aplicatia in cauza (pentru care s-a dezvoltat modelul) este cea care determina punctul de optim (compromis)
Obtinerea unui optim / compromis intre Precizie (cat mai) ridicata Cerinte pentru model Efort de calcul (cat mai) redus (memorie, procesor), implicit timp (cat mai) redus de evaluare Modelare prin: Functi liniare Functii neliniare (polinomiale, radiale, spline) Functii liniare pe portiuni (PWL) Functii polinomiale pe portiuni (PWP) Sisteme fuzzy, neuro-fuzzy Retele neuronale
Problematica modelarii Estimarea unei funcţii necunoscute complexe (neliniară, multivariabilă) pe baza unor eşantioane (set de date numerice): x, y k 1,2,..., K cu y f x k k k K x k R N K dimensiunea setului de date x vectorul variabilelor de intrare y variabila de iesire N dimensiunea vectorului de intrare aproximarea funcţiei pe baza unui set finit de tupluri intrare-ieşire a învăţa o aplicaţie funcţională necunoscută între vectorii de intrare şi ieşire folosind un set de date cunoscute pentru antrenare (instruire). modelul o dată generat, poate fi folosit pentru a prezice valoarea ieşirii pentru orice nou vector de intrare (care nu a facut parte din setul de date de antrenare)
Modelare fuzzy Exemplificare Analiza si proiectarea unui circuit electronic La nivel fizic circuit fizic + aparatura de laborator Modelare si simulare (nivel abstract) model + simulator ecuatii analitice aproximative (creion si hartie, matlab, etc) SPICE: - modelare structurala (la nivel de componente) - modelare functionala (la nivel de blocuri functionale) sisteme neuro-fuzzy, retele neuronale modelare comportamentala intrare-iesire + evaluarea sistem fuzzy (retea neuronala) - simulare
Modelare fuzzy Modelarea fuzzy Modelarea fuzzy se poate realiza utilizand Experienta exprimata calitativ (expert uman) cand aceasta este disponibila Seturi de date numerice intrare-iesire tehnica de modelare neliniara de tip cutie neagra Un model fuzzy poate fi descris ca o cale particulara de generare a unei transformari (functii) neliniare de la variabile de intrare - intrari ale sistemului fuzzy la o variabila de iesire - iesirea sistemului fuzzy
Modelare fuzzy Sisteme fuzzy in modelare aproximatori universali capacitate de interpolare operaţii matematice simple (min, max, suma, prod, impartire) pot fi construite automat pe baza unui set de date numerice modelare fuzzy sau identificare fuzzy a sistemelor explorare sistematica pentru prima dată de Takagi şi Sugeno Roger Jang (1993) a propus un sistem de inferenţă fuzzy TS implementat în cadrul reţelelor adaptive (sistem fuzzy bazat pe reţea adaptivă): ANFIS (Adaptive-Network-based Fuzzy Inference System; Adaptive-Neuro-Fuzzy Inference System) serveşte la optimizarea unei baze de cunostinte fuzzy (multimi si reguli) ce contine funcţii de apartenenţă potrivite generării seturilor de date intrare-ieşire prescrise (actioneaza asupra multimilor fuzzy de intrare si de iesire)
Modelare fuzzy Procedura de modelare (dezvoltarea modelului) Start Proiectarea experimentului (DoE) Determinarea seturilor de date Generarea sistemului fuzzy TS iniţial Instruirea sistemului fuzzy TS (ANFIS) model initial optimizarea iterativa a modelului NU Modelul este potrivit? DA Modelul fuzzy Stop
Modelare fuzzy Setul de date Date cunoscute intrare x, x x x x 11 21 31,, K,1, x x 12 22 32 x K,2 iesire y, y y...,,, 1 2 3 y K Valoare calculata (prezisa) de catre model consistent: sa inglobeze (toate) caracteristicile functiei de modelat mare (K valoare mare) in special pentru functii multivariabile cu neliniaritati pronuntate
2 seturi de date de antrenare (instruire) Setul de date cont. de control (de verificare) Setul de antrenare consistent: sa inglobeze toate caracteristicile functiei de modelat mare (K valoare mare) in special pentru functii multivariabile cu neliniaritati pronuntate Setul de control reprezentativ pentru functia de modelat distinct de setul de instruire Poate apare fenomenul de suprapotrivire al modelului cu datele din setul de instruire scade puterea de interpolare potrivire perfectă (suprapotrivire) cu datele din setul de instruire. eroarea pentru datele de control scade pe durata antrenarii până cand apare suprapotrivirea, apoi, în mod neaşteptat eroarea începe să crească.
error Modelare fuzzy training validation Curbele de instruire epochs If the validation error increases (positive slope) while the training error steadily decreases (negative slope) then a situation of overfitting may have occurred. The best predictive and fitted model would be where the validation error has its global minimum
Modelare fuzzy Sistem cu 2 intrari si 1 iesire ANFIS - arhitectura N=9 reguli n N k 1 n k Regula n: Daca X 1 este A i si X 2 este B j atunci y n = b 1n X 1 + b 2n X 2 + b 0n Echivalent cu sistem Takagi-Sugeno de ordinul 1
Modelare fuzzy Regulile sunt de tipul: ANFIS cont. Daca X 1 este A i si X 2 este B j atunci y n = b 1n X 1 + b 2n X 2 + b 0n Multimile fuzzy de intrare pot fi de exemplu de tip Gauss: gaussmf ( x) e xc 2 2 i 2 i ; c i, i 0 Pe durata antrenarii (instruirii, adaptarii) trebuie determinate (optimizate, ajustate) valorile tuturor parametrilor ce definesc multimile fuzzy: parametri neliniari pentru mf din antecedentul regulii (2 parametri pentru fiecare multime de intrare, pentru multimi gauss ) parametri liniari pentru mf din consecinta regulii (3 parametri pentru fiecare multime de iesire, la un sistem cu 2 intrari)
Instruirea (adaptarea) supervizată Procesul de ajustare (adaptare) al sistemului astfel ca el sa produca o iesire specificata ca raspuns la o intrare specificata. Supervizat iesirea este apriori cunoscuta pentru toate intrarile si algoritmul de antrenare al sistemului utilizeaza eroarea pentru a dirija antrenarea (Reed and Marks 1999). Exista o masura directa a nivelului de potrivire
Modelare fuzzy Instruirea (adaptarea) supervizată Profesorul furnizeaza seturile de date intrareiesire; Adaptarea se realizeaza in iteratii succesive; Potrivirea este adeseori invers proportionala cu suma erorilor; Buna pentru aproximarea functiilor (curve fitting);
Modelare fuzzy ANFIS instruire supervizata Prezentare completă a setului de instruire (însoţită de adaptare) se numeşte epocă de instruire Instruirea se încheie la: indeplinirea unui criteriu de eroare atingerea numarului maxim de epoci Eroarea medie pătratică RMSE (root means squared error) RMSE 1 K K d y k yk k1 K dimensiunea setului de date 2
ANFIS instruire supervizata cont. Algoritm hibrid prin combinarea: algoritmului de estimare a celei mai mici medii pătratice (least mean square estimation). algoritmului de propagare inversă (backpropagation), pentru a învăţa parametrii din antecedent Fiecare pas al procedurii iterative de învăţare are două părţi: 1. Propagare înainte: se aplică vectorii de intrare; semnalele se propagă până în stratul 4 unde se actualizează parametrii consecinţă utilizând procedura iterativă a estimării celor mai mici medii pătratice. Parametrii antecedent se consideră cu valori fixate pe durata ciclului curent. 2. Propagarea inversă pentru a actualiza parametrii antecedent utilizând metoda gradientului, în timp ce parametrii consecinţă se consideră fixaţi.
Generarea sistemului fuzzy TS initial (modelul fuzzy initial) Furnizat de catre utilizator Generat automat prin: Partitionare simpla Gruparea datelor fiecare grup fiind echivalent cu o regula fuzzy grupare substractivă grupare utilizand algoritmul fuzzy C-Means
Modelare fuzzy Pentru generarea de sisteme fuzzy initiale (Takagi-Sugeno de ordinul 1) pentru ANFIS se pot utiliza in matlab functiile genfis1 utilizeaza grid partition, fara gruparea datelor, parametrii mf de iesire au toti valoarea 0 (este obligatorie antrenare ANFIS), se generează o baza de reguli complete; genfis2 utilizeaza subclust; genereaza o baza de reguli rezultată prin gruparea datelor; fiecare regulă reprezinta un grup (cluster) genfis3 utilizeaza fcm; generează o baza de reguli (prin clasificare); fiecare regulă reprezinta un grup (cluster); se poate genera si SLF Mamdani dar acesta nu se mai poate antrena cu anfis Observații: SLF generat cu genfis1 trebuie neapărat antrenat, având în vedere valoarea 0 la ieșirea SLF generat SLF generate cu genfis2 și genfis3 nu trebuie neaparat antrenate modelând deja relațiile din seturile de date, in special genfis3 care se bazeaza pe algoritmul iterativ (cu optimizare) fcm.
Exemplificare Modelarea unei functii neliniare de o singura variabila y = sin(2*x)./exp(x/5); iesire: y x y 0 0 0.1000 0.1947 0.2000 0.3741 0.3000 0.5318 0.4000 0.6622 0.5000 0.7614 0.6000 0.8266 0.7000 0.8567 0.8000 0.8518 0.9000 0.8134 1.0000 0.7445 1.1000 0.6488 1.2000 0.5313 1.3000 0.3975 1.4000 0.2532 1.5000 0.1045 1.6000-0.0424 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6 antrenare verificare -0.8 0 1 2 3 4 5 6 7 8 9 10 intrare: x
Utilizare - genfis1 - anfis De la linia de comanda (cu rulare in matlab modelare_genfis1) clear all, close all, clc x = (0:0.1:10)'; y = sin(2*x)./exp(x/5); epoch_n = 75; in_fis = genfis1([x y],5,'gbellmf'); [out_fis, error] = anfis([x y],in_fis, epoch_n); plot(error), xlabel('training epochs'), ylabel('rmse') figure plot(x,y,x,evalfis(x,out_fis)); legend('training Data','ANFIS Output');
RMSE y Modelare fuzzy gbellmf pentru intrari - 3 parametri neliniari ANFIS info: Number of nodes: 24 Number of linear parameters: 10 Number of nonlinear parameters: 15 Total number of parameters: 25 Number of training data pairs: 101 Number of checking data pairs: 0 Number of fuzzy rules: 5 Utilizare ANFIS genfis1 1 0.5 0-0.5 reference predicted -1 0 1 2 3 4 5 6 7 8 9 10 x 0.07 0.06 0.02 residuals 0.05 0.01 0.04 0.03 0.02 0-0.01 0.01 0 0 10 20 30 40 50 60 70 80 Training epochs -0.02 0 10 20 30 40 50 60 70 80 90 100 index of discrete point Goodnes of fit = 6.2205e-05
RMSE y Modelare fuzzy gaussmf pentru intrari - 2 parametri neliniari ANFIS info: Number of nodes: 24 Number of linear parameters: 10 Number of nonlinear parameters: 10 Total number of parameters: 20 Number of training data pairs: 101 Number of checking data pairs: 0 Number of fuzzy rules: 5 Utilizare ANFIS genfis1 1 0.5 0-0.5 reference predicted -1 0 1 2 3 4 5 6 7 8 9 10 x 0.02 0.018 0.016 0.014 0.012 0.01 0.008 0.006 0.004 0.002 0 10 20 30 40 50 60 70 80 Training epochs 0.02 0.015 0.01 0.005 0-0.005-0.01-0.015 residuals -0.02 0 10 20 30 40 50 60 70 80 90 100 index of discrete point Goodnes of fit = 5.1038e-06
Modelare fuzzy Comparatie in functie de numarul parametrilor gbellmf pentru intrari - 3 parametri neliniari ANFIS info: Number of nodes: 24 Number of linear parameters: 10 Number of nonlinear parameters: 15 Total number of parameters: 25 Number of training data pairs: 101 Number of checking data pairs: 0 Number of fuzzy rules: 5 Goodnes of fit = 6.2205e-05 gaussmf pentru intrari - 2 parametri neliniari ANFIS info: Number of nodes: 24 Number of linear parameters: 10 Number of nonlinear parameters: 10 Total number of parameters: 20 Number of training data pairs: 101 Number of checking data pairs: 0 Number of fuzzy rules: 5 Goodnes of fit = 5.1038e-06 Demo: modelare_genfis1
Din interfata grafica: anfisedit Sistemul fuzzy rezultat poate fi exportat: File/Export
Utilizare ANFIS genfis2 De la linia de comanda (genfis2 partitionare substractiva).. radii=0.3 in_fis = genfis2(x,y,radii); %% antrenare 10 epoci disp ('antrenare 10 epoci') trn_data=[x y ]; epoch_n = 10; TRNOPT=epoch_n; DISPOPT=[]; [OutFis10, Err, step, CFis, CErr ] = anfis(trn_data, in_fis, TRNOPT, DISPOPT, c_data);
radii=0.3; 8 grupuri 8 reguli; 32 parametrii Demo: modelare_genfis2
Slf initial Param in1cluster8 [1.061 1.5] Slf instruit 1000 epoci Param in1cluster8 [1.623 1.497]
radii=0.6; 3 grupuri 3 reguli; 12 parametrii
radii=0.15; 16 grupuri 16 reguli; 64 parametrii
Capacitatea de generalizare Capacitatea de a determina corect valoarea iesirii pentru vectori de intrare la care sistemul nu a fost expus pe durata antrenarii y f ( x), X spatiul intrarilor, Y spatiul iesirilor Setul de date de antrenare: S x i, y i X xy n numarul de perechide antrenare f, i 1,2,... n * Construirea modelului * S y f Sistem perfect : * f x ( x), f x S ( x), x S x f x pentru Poate sa nu fie valabil datorita erorilor si zgomotului prezente in setul de date de antrenare x Poate fi suparator daca S se imparte in set de antrenare si set de test In urma antrenarii poate apare suprapotrivirea sistemului cu setul de date de antrenare performante slabe pentru setul de test.