Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
G. Oltean
Modelare fuzzy
TICE
Modelare fuzzy
❖ Problematica modelarii
❖ Sisteme fuzzy in modelare
❖ Procedura de modelare
❖ANFIS
❖ Generarea sistemului fuzzy initial
❖ Utilizare ANFIS
G. Oltean
Modelare fuzzy
TICE
Problematica modelariiModelarea – 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
G. Oltean
Modelare fuzzy
TICE
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
G. Oltean
Modelare fuzzy
TICE
Structura modeluluiModelarea (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)
G. Oltean
Modelare fuzzy
TICE
➢ 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:
Obtinerea unui optim / compromis intre
Cerinte pentru model
G. Oltean
Modelare fuzzy
TICE
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
TICE
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
TICE
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”
G. Oltean
Modelare fuzzy
TICE
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
TICE
Procedura de modelare (dezvoltarea 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
TICE
Setul de dateDate cunoscute
KKK yxx
yxx
yxx
yxx
,,
....................
,,
,,
,,
2,1,
33231
22221
11211
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
TICE
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
TICE
epochs
err
or
training
validation
Curbele de instruire
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
TICE
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
TICE
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
TICE
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
TICE
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
TICE
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
TICE
➢ 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
TICE
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
TICE
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.
G. Oltean
Modelare fuzzy
TICE
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
TICE
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
TICE
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
TICE
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
TICE
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
TICE
Din interfata grafica: anfisedit
Sistemul fuzzy rezultat poate fi exportat: File/Export
G. Oltean
Modelare fuzzy
TICE
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
TICE
Demo: modelare_genfis2
radii=0.3; 8 grupuri ≡ 8 reguli; 32 parametrii
G. Oltean
Modelare fuzzy
TICE
Slf
initial
Slf
instruit
1000
epoci
Param in1cluster8 [1.623 1.497]
Param in1cluster8 [1.061 1.5]
G. Oltean
Modelare fuzzy
TICE
radii=0.6; 3 grupuri ≡ 3 reguli; 12 parametrii
G. Oltean
Modelare fuzzy
TICE
radii=0.15; 16 grupuri ≡ 16 reguli; 64 parametrii
G. Oltean
Modelare fuzzy
TICE
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.