Upload
hoangdieu
View
283
Download
10
Embed Size (px)
Citation preview
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Modelare fuzzy
Problematica modelarii
Sisteme fuzzy in modelare
Procedura de modelare
ANFIS
Generarea sistemului fuzzy initial
Utilizare ANFIS
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Problematica modelarii
Modelarea – etapa importanta în orice activitate inginerească
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)
Modelarea si simularea – contribuie la reducerea costurilor si cresterea
calitatii produselor si sistemelor.
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Problematica modelariiInteres crescând in modelare si simulare:
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 este (adeseori) mult mai rapida decat procesul real, permitand
analiza eficienta a diferitelor situatii (cazul cel mai defavorabil)
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
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Problematica modelariiModelarea (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)
Cutie gri (neliniaritatile sunt partial sugerate de intelegerea la nivel fizic,
dar sunt totusi necesare ajustari)
Cutie neagra (nu se utilizeaza cunostinte la nivel fizic; modeleaza doar
relatiile intrare - iesire
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)
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Problematica modelarii – cont.
Precizie (cat mai) ridicata
Efort de calcul (cat mai) redus (memorie, procesor),
implicit timp (cat mai) redus de evaluare
Functi liniare
Functii neliniare (polinomiale, radiale, spline)
Functii liniare pe portiuni (PWL)
Functii polinomiale pe portiuni (PWP)
Sisteme fuzzy, neuro-fuzzy
Retele neuronale
Modelare prin:
Cerinte pentru model (realizare compromis)
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Problematica modelarii
Kkkk xfyKkyx cu...,,2,1,N
k Rx
• Estimarea unei funcţii necunoscute complexe (neliniară,
multivariabilă) pe baza unor eşantioane (set de date numerice):
• 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)
K – dimensiunea setului de date
x – vectorul variabilelor de intrare
y – variabila de iesire
N – dimensiunea vectorului de intrare
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
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
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Modelarea fuzzy
Modelarea fuzzy se poate realiza utilizand
• Expertiza calitativa (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”
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Sisteme fuzzy in modelareaproximatori 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)
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Procedura de modelare (dezvoltare a modelului)
Start
Stop
Modelul este
potrivit?
Determinarea
seturilor de date
Generarea sistemului
fuzzy TS iniţial
Instruirea sistemului
fuzzy TS (ANFIS)
Modelul fuzzy
DA
NU
model initial
optimizarea iterativa
a modelului
Proiectarea
experimentului (DoE)
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Setul de dateDate cunoscute
KKK yxx
yxxyxxyxx
,,....................,,,,,,
21
32313
22212
12111
intrare iesire
• consistent: sa inglobeze (toate) caracteristicile functiei de modelat
• mare (K – valoare mare) – in special pentru functii multivariabile cu
neliniaritati pronuntate
Valoare calculata
(prezisa) de catre model
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Setul de date – cont. 2 seturi de date
de antrenare (instruire)
de control (de verificare)
consistent: sa inglobeze toate caracteristicile functiei de modelat
mare (K – valoare mare) – in special pentru functii multivariabile cu
neliniaritati pronuntate
Setul de antrenare
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ă.
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
epochs
err
or
training
validation
Curbele de instruire
13 / 20
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
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
ANFIS - arhitectura
Regula n: Daca X1 este Ai si X2 este Bj atunci yn = b1n X1 + b2n X2+ b0n
N=9 reguli
Sistem cu 2 intrari si 1 iesire
N
k
k
nn
1
Echivalent cu sistem Takagi-Sugeno de ordinul 1
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
ANFIS – cont.
Regulile sunt de tipul:
Daca X1 este Ai si X2 este Bj atunci yn = b1n X1 + b2n X2+ b0n
Multimile fuzzy de intrare pot fi de exemplu de tip Gauss:
0,;)(2
2
2
ii
cx
gaussmf cex i
i
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)
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
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
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Instruirea (adaptarea) supervizată
• “Profesorul” furnizeaza
seturile de date intrare-
iesire;
• Adaptarea se realizeaza in
iteratii succesive;
• Potrivirea este adeseori
invers proportionala cu
suma erorilor;
• Buna pentru aproximarea
functiilor (curve fitting);
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
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
K
k
kdk yy
KRMSE
1
21
Eroarea medie pătratică
RMSE (root means squared error)
K – dimensiunea
setului de date
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
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.
ANFIS – instruire supervizata – cont.
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
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
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Pentru generarea unor sisteme fuzzy initiale (Takagi-Sugeno de
ordinul 1) pentru ANFIS se utilizeaza 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.
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
ExemplificareModelarea unei functii neliniare de o singura variabila
y = sin(2*x)./exp(x/5);
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
0 1 2 3 4 5 6 7 8 9 10-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
iesire:
y
intrare: x
antrenare
verificare
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
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');
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Utilizare ANFIS – genfis1
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
0 10 20 30 40 50 60 70 800
0.01
0.02
0.03
0.04
0.05
0.06
0.07
Training epochs
RM
SE
0 1 2 3 4 5 6 7 8 9 10-1
-0.5
0
0.5
1
x
y
reference
predicted
0 10 20 30 40 50 60 70 80 90 100-0.02
-0.01
0
0.01
0.02
index of discrete point
residuals
Goodnes of fit = 6.2205e-05
gbellmf pentru intrari - 3 parametri neliniari
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Utilizare ANFIS – genfis1
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
gaussmf pentru intrari - 2 parametri neliniari
0 10 20 30 40 50 60 70 800.002
0.004
0.006
0.008
0.01
0.012
0.014
0.016
0.018
0.02
Training epochs
RM
SE
0 1 2 3 4 5 6 7 8 9 10-1
-0.5
0
0.5
1
x
y
reference
predicted
0 10 20 30 40 50 60 70 80 90 100-0.02
-0.015
-0.01
-0.005
0
0.005
0.01
0.015
0.02
index of discrete point
residuals
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Comparatie in functie de numarul parametrilor
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
gaussmf pentru intrari - 2 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
gbellmf pentru intrari - 3 parametri neliniari
Goodnes of fit = 6.2205e-05
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Din interfata grafica: anfisedit
Sistemul fuzzy rezultat poate fi exportat: File/Export
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
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);
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Demo: modelare_genfis2
radii=0.3; 8 grupuri ≡ 8 reguli; 32 parametrii
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Slf
initial
Slf
instruit
1000
epoci
Param in1cluster8 [1.623 1.497]
Param in1cluster8 [1.061 1.5]
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
radii=0.6; 3 grupuri ≡ 3 reguli; 12 parametrii
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
radii=0.15; 16 grupuri ≡ 16 reguli; 64 parametrii
G. Oltean
Modelare fuzzy
Sisteme cu logica nuantata
Capacitatea de generalizare
Capacitatea de a determina corect valoarea iesirii pentru vectori de
intrare la care sistemul nu a fost expus pe durata antrenarii
iesirilorspatiul,intrarilorspatiul),( YXxfy
Setul de date
de antrenare:
antrenaredeperechidenumarul
...,2,1,x,
n
niYXyxS ii
Construirea modelului Sxxfxf ** pentru
Sistem “perfect”:
Sxxfxf
Sxxfy
),()(
,*
Poate sa nu fie valabil datorita erorilor si zgomotului
prezente in setul de date de antrenare
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.