Sunteți pe pagina 1din 55

Universitatea „Aurel Vlaicu” din Arad

Facultatea de Inginerie

Marius M. Bălaş

Sisteme inteligente fuzzy-hibride

Curs

- 2015 -

1
Cuprins

1. Introducere în Sistemele Fuzzy Hibride


2. Tool-kit-ul Fuzzy Inference System
3. Implementarea FIS a unui regulator PD
4. Regulatoarele fuzzy-interpolative
5. Regulatoare neuro-fuzzy
6. Calcul evolutiv şi algoritmi genetici
7. Studii de caz

2
1. Introducere în Sistemele Fuzzy Hibride

1.1. Sisteme inteligente hibride


Sistemele inteligente hibride fac parte din categoria sistemelor Soft Computing. Ele
combină diferite metode şi tehnici provenite din subdomenii ale Inteligenţei Artificiale,
cu scopul de a obţine în urma hibridizării performanţe mai bune decât ale fiecărei din-
tre componente, luate în parte. Câteva astfel de realizări sunt: sistemele neuro-fuzzy,
sistemele fuzzy-expert, sistemele conexionist-expert, sisteme evolutiv-neuronale, siste-
mele fuzzy-genetice, etc.

Se observă că o mare parte dintre sistemele inteligente hibride au în componenţă latura


care ţine de teoria şi practica Sistemelor Fuzzy. Explicaţia acestui fapt rezultă din stu-
diul sistemelor fuzzy:

a) Teoria mulţimilor fuzzy permite cea mai avantajoasă reprezentare matematică şi pe


calculator a cunoştinţelor exprimabile lingvistic, cu care operează de regulă raţiona-
mentele umane;

b) Teoria mulţimilor fuzzy în sine nu oferă soluţiile concrete ale aplicaţiilor;

Aşa cum se va observa în continuare, un sistem fuzzy poate fi considerat ca o formă


particulară de sistem expert, alcătuit dintr-o bază de reguli de tipul „Dacă … atunci …”
a căror modelare şi prelucrare logică se face prin teoria mulţimilor fuzzy, dar a căror
conţinut trebuie completat de către experţi. Diferitele tehnici preluate din arsenalul
Inteligenţei Artificiale au tocmai scopul de a juca rolul expertului uman, prin ajustarea
automată a regulilor de conducere.

Acest îndrumător ilustrează principalele tehnici de dezvoltare a sistemelor inteligente


hibride care includ componente fuzzy. Principalul instrument utilizat este pachetul
software Matlab, care prin toolkit-urile dezvoltate de-a lungul timpului oferă o platfor-
mă avantajoasă de testare şi implementare a soluţiilor, larg utilizată în toată lumea, atât
în mediile academice cât şi în cele industriale.

3
1.2. Mulţimi fuzzy
În teoria clasică a mulţimilor, o mulţime C este definită ca o colecţie de n elemente xi,
cu i = 1 ... n, definite într-un domeniu de definiţie X. Fiecărui element i se poate ataşa
o funcţie de apartenenţă FA, notată (xn), având valoarea:
0, dacă xn  C
(xn) = (1.1)
1, dacă xn  C
O astfel de mulţime poate fi denumită „fermă” (crisp), deoarece gradul de apartenenţă
respectă principiul terţului exclus din algebra Booleană, fiind posibile numai două situ-
aţii: apartenenţa sau non-apartenenţa, sau în termeni logici, adevăr sau fals.
Spre deosebire de mulţimile ferme, o mulţime fuzzy MF acceptă pentru FA orice va-
loare aparţinând intervalului [0 ... 1]. Valorile 0 şi 1 au aceeaşi semnificaţie ca şi în
cazul mulţimilor ferme, adică non-apartenenţa respectiv apartenenţa totală a elemen-
tului la MF. Valorile intermediare indică măsura în care elementul x aparţine catego-
riei descrisă de mulţime. Un grad de apartenenţă de 0,9 indică o legătură puternică a
elementului cu mulţimea în timp ce 0,5 arată că elementul poate la fel de bine să fie
inclus sau exclus din mulţime. O MF A definită pe domeniul X va fi caracterizată de
funcţia de apartenenţă
A (x) : X  [0 ... 1] (1.2)
xX
Se defineşte înălţimea mulţimii A, hgt(A), valoarea maximă a funcţiei de apartenenţă:
hgt(A) = sup A(x) (1.3)
Dacă hgt(A) = 1 mulţimea fuzzy A se va numi normală. Dacă hgt(A) < 1, atunci A se
va numi subnormală.
Suportul (baza, lăţimea) mulţimii A este format din mulţimea elementelor xX pentru
care A(x)  0:
supp(A) = { xX  A(x) > 0 } (1.4)
Toleranţa mulţimii A este format din mulţimea elementelor xX pentru care A(x)= 1:
tol(A) = { xX  A(x) = 1 } (1.5)

Fig. 1.1 Reprezentările fermă şi fuzzy ale noţiunii de temperatură confortabilă

4
În acest caz reprezentarea prin MF permite modelarea percepţiei umane a confortului
termic, concept prin excelenţă subiectiv şi incert. Să presupunem că utilizăm această
reprezentare în cadrul unui sistem de condiţionare a aerului. Deşi aparent renunţarea la
definirea precisă a obiectivelor reglării ar putea părea hazardată, prin formularea fuzzy
se obţin performanţe mult mai bune ale reglării temperaturii, nu în termeni de precizie,
care oricum este nesemnificativă în acest caz, ci în termeni de economie de energie,
reducere a numărului de acţiuni de reglare, adaptare la condiţiile interne şi de mediu,
etc. Toate acestea sunt posibile prin simpla înglobare a cunoştinţelor de tip expert prin
intermediul regulilor fuzzy de conducere.
Un sistem secvenţial de condiţionare a aerului utilizând logica lui G. Boole ar porni
încălzirea imediat după scăderea temperaturii sub 21oC şi ar opri încălzirea la depăşirea
temperaturii de 23oC. Această funcţionare asigură o anumită precizie şi siguranţă
reglării, dar necesită un număr mare de acţionări ale elementului de execuţie, ceea ce
produce în general uzura prematură a elementelor sistemului şi nu ţine cont de
tendinţele naturale de evoluţie ale sistemului. De exemplu, dacă temperatura este de
20,7oC, mai mică decât limita inferioară admisibilă, dar tendinţa ei este de creştere,
sistemul s-ar încadra singur, în scurt timp, în domeniul 21oC - 23oC. Pornirea încălzirii
accelerează intrarea în domeniul de temperatură dorit dar cu preţul unei energii supli-
mentare injectate în sistem, în plus existând mari şanse ca din cauza din cauza inerţiei
termice temperatura să depăşească repede 23oC. Ar urma astfel fie o nouă disipare de
energie necesară răcirii sistemului, fie o lungă perioadă de supraîncălzire.
Un sistem fuzzy având în setul de reguli de conducere şi o regulă referitoare la econo-
mia de energie ar putea admite ca destul de confortabilă şi temperatura de 20,5oC, fără
a porni încălzirea. Decizia nu va fi greşită, întrucât foarte puţini oameni ar putea sesiza
cele 0,5oC cu care temperatura este inferioară domeniului impus. Datorită tendinţei
naturale de încălzire se va ajunge treptat în domeniul 21oC - 23oC fără irosirea energiei.
Pentru FA se pot folosi diferite forme, cele mai uzuale dintre ele fiind prezentate în
figura următoare.

Fig. 1.2 Forme folosite pentru FA

Dreptunghiul şi singleton-ul sunt de fapt proprii mulţimilor Booleene, dar ele se întâl-
nesc frecvent în aplicaţii, asociate cu alte variabile fuzzy, de exemplu în cazul comen-
zilor aplicate unui element de execuţie cu stări discrete.

5
Când aplicaţia necesită precizie şi sensibilitate se poate apela la curbele de tip Gauss
(““ sau “”) care au şi avantajul de a putea fi corelate cu mărimile probabilistice. În
principiu se pot utiliza orice altă formă sau combinaţie de forme uzuale.
În marea majoritatea a aplicaţiilor se constată însă că cele mai des utilizate forme sunt
cele triunghiulară şi trapezoidală, mai uşor de reprezentat şi necesitând un volum mai
mic de calcule şi de memorie. Alegerea formelor simple de FA este justificată şi prin
constatarea des menţionată în literatura de specialitate că esenţiale în aplicaţii sunt
suportul şi toleranţa unei MF, forma flancurilor FA având un efect mai redus asupra
rezultatelor obţinute.

1.3. Logica fuzzy


Se consideră F familia mulţimilor fuzzy definite pe un domeniu de definiţie X. Între
mulţimile incluse în F se pot defini operaţii care într-un mod analog algebrei booleene
generează o structură algebrică de tip latice. Aceste operaţiile se vor nota  şi  ca şi
în cazul teoriei clasice a mulţimilor:
A  B : X x X  [0 ... 1] (1.6)
A  B : X x X  [0 ... 1]
Se introduce şi complementul mulţimii fuzzy A :
A : X  [0 ... 1] (1.7)
Construcţia algebrei booleene utilizează reuniunea şi intersecţia (în termeni logici
SAU şi ŞI), singura variantă alternativă fiind reprezentată de implicaţiile logice, a căror
utilizare este însă incomodă. În cazul logicii fuzzy LF se poate face apel la un număr
mult mai mare de operaţii, fapt care conferă acestei logici un potenţial ridicat de adap-
tare la diferite condiţii de lucru. L.A. Zadeh a propus utilizarea maximului şi minimului
funcţiilor de apartenenţă ale celor doi operanzi ca operaţii de constituire a LF.
Operaţiile se pot descrie cu ajutorul funcţiilor de apartenenţă  : X  [0 ... 1].

 A B (x) = max ( A(x), B(x) ) = A(x)  B(x) (1.8)


 A B (x) = min ( A(x), B(x) ) = A(x)  B(x)
sau, simplificând notaţia (A(x)  A(x)) :
(A  B) (x) = max ( A(x), B(x) ) = A(x)  B(x) (1.9)
(A  B) (x) = min ( A(x), B(x) ) = A(x)  B(x)

Complementul mulţimii A, notat A, se va defini prin:

 A (x) = 1 -  A (x) sau A(x) = 1 - A(x) (1.10)

6
Structura astfel obţinută este o latice distributivă deoarece se bucură de următoarele
proprietăţi: asociativitate, comutativitate, absorbţie, idempotenţă şi distributivitate în
ambele sensuri.
De asemenea se verifică legile lui de Morgan, principiul dublei negaţii şi legile lui 0
şi 1 (elementele neutre faţă de cele două operaţii):
A(x)  1 = 1 A(x)  0 = A(x) (1.11)
A(x)  1 = A(x) A(x)  0 = 0
Spre deosebire de logica booleană, în cazul LF nu se mai respectă însă principiile
terţului exclus şi nici cel al contradicţiei, din cauza modului de alcătuire a funcţiilor de
apartenenţă:
( A  A )(x)  1 şi ( A  A )(x)  0 (1.12)
De exemplu, în cazul în care A(x) = 0,5, caz în care incertitudinea atribuirii unei valori
logice este maximă, ( A  A )(x) = ( A  A )(x) = 0,5. Diferenţa A(x) - A(x) poate
reprezenta o măsură a caracterului vag al mulţimii A: cu cât diferenţa este mai mică, A
este mai vagă. În cazul anterior A - A = 0. În cazul mulţimii lor ferme A - A = 1.
În perioada de început a logicii fuzzy s-au utilizat şi suma probabilistică şi produsul:
(A  B) (x) = A(x) + B(x) - A(x)  B(x) (1.13)
(A  B) (x) = A(x)  B(x)

Faţă de laticea min-max gradele de apartenenţă depind în acest caz de ambii operanzi.
În consecinţă regulatoarele fuzzy care vor utiliza aceste operaţii vor fi mai “senzitive”
decât cele bazate pe operaţia min-max.
De fapt există o clasă largă de operaţii utilizabile ca funcţii logice  şi , denumite
norme triangulare. Prin normă t se înţelege o funcţie de două argumente t : [0 ... 1] x
[0 ... 1]  [0 ... 1] având următoarele proprietăţi:
 asociativitate: (x t y) t z = x t (y t z)
 comutativitate: xty=ytx (1.14)
 condiţii de limită: xt0=0 , xt1=x
 nedescrescătoare pt. fiecare argument: pentru x  y , w  z, xtwytz

O normă t este arhimediană dacă şi numai dacă:

 este continuă pentru fiecare argument (1.15)


xtx<x

7
Din cele de mai sus se observă că norma t prezintă majoritatea proprietăţilor funcţiei
logice ŞI. Funcţia logică SAU poate fi modelată cu norma s (conorma t), care la rândul
ei este:
 asociativă;
 comutativă; (1.16)
 satisface condiţiile: xs0=x , xs1=1
 nedescrescătoare.

Este însă de remarcat că normele triangulare nu respectă în mod necesar proprietăţile


de idempotenţă (x t x  x şi x s x  x) şi absorbţie (x t (x s y)  x şi x s (x t y)  x).
În tabelul următor sunt prezentate câteva dintre normele t-s mai des utilizate.

norme t norme s
x t y = min(x, y) x s y = max (x, y)
xty=xy xsy=x+y-xy
x t y = 1-min([1, ((1-x) + (1-y) ) ], p  1
p p 1/p
x s y = min (1, (xp + yp)1/p) , p1
x t y = max[0, (+1)(x+y-1)- x y],  -1 x s y = min [1, x + y +  x y] ,   -1

Normele t şi s îndeplinesc următoarele inegalităţi:

x , dacă y = 1
min (x, y)  x t y  y , dacă x = 1 (1.17)
0 , în celelalte cazuri

x , dacă y = 0
max (x, y)  x s y  y, dacă x = 0 (1.18)
1 , în celelalte cazuri
Alegerea unor norme t şi s diferite de min-max (sau eventual de produsul şi suma
probabilistică) este totuşi mai rară, volumul de calcule necesar fiind mai mare, fără a se
obţine întotdeauna îmbunătăţiri semnificative.
Utilizarea operaţiilor min-max, prin lipsa de interacţiune dintre operanzi (unul dintre ei
nu participă la stabilirea rezultatului) nu este indicată în cazurile care reclamă funcţii
de apartenenţă precise, dar în schimb oferă avantajul robusteţii şi imunităţii la zgomot.

8
1.4. Variabile lingvistice şi fuzzificare
Termenul de variabilă lingvistică VL, introdus de L. A. Zadeh în 1975 defineşte o
variabilă care ia valori lingvistice, cum ar fi încet, repede, înalt, etc. Aceste valori sunt
modelabile prin MF. Orice VL conţine câţiva termeni lingvistici TL primari - etichete
lingvistice. Aplicând reguli sintactice şi semantice se pot construi termeni derivaţi şi
propoziţii. Să luăm de exemplu VL temperatură, cu domeniul de definiţie cuprinzând
gama de temperaturi care se pot realiza în interiorul unui vagon. Termenii lingvistici
primari pot fi mic, mediu şi mare. Aceşti termeni pot fi în continuare ponderaţi cu mo-
dificatori, cum ar fi foarte, mai mult sau mai puţin, etc. Se obţin propoziţii corecte prin
combinarea termenilor primari şi a modificatorilor, de exemplu (temperatură) foarte
mare. Cu ajutorul VL este posibilă reprezentarea cunoştinţelor într-un mod familiar
percepţiei umane. Instrumentul matematic, bazat pe VL, prin care cunoştinţele pot fi
reprezentate şi prelucrate se numeşte cadru cognitiv (frame of cognition) CC.
Familia de mulţimi fuzzy A = {A1, A2, ... Ac} formează un CC dacă îndeplineşte urmă-
toarele două condiţii:
 A acoperă domeniul de definiţie X. Fiecare element al domeniului de definiţie poate
fi atribuit cu un grad de apartenenţă diferit de zero cel puţin unei MF din A:
  Ai (x) >  (1.19)
x i

 > 0 fiind denumit nivel de acoperire a lui X .


 Elementele lui A sunt mulţimi fuzzy unimodale. Se pot astfel identifica în X regiuni
(câte o regiune pentru fiecare TL) care să fie în mare măsură compatibile cu acestea
(cu grad semnificativ de apartenenţă la Ai). Aceste regiuni posedă un înţeles semantic
clar.

Fig. 1.3. Cadru cognitiv


Partiţia fuzzy PF este un CC care se mai caracterizează şi prin proprietatea:

 Ai (x) = 1, xX (1.20)


i=1...c

O PF va încadra fiecare punct din domeniul de definiţie X într-unul sau doi TL, fără
zone insuficient caracterizate, la care suma gradelor de apartenenţă ar fi mai mică de 1.
În perspectiva utilizării PF la reglările automate, această condiţie exprimă faptul că
suficiente informaţii pentru luarea unor decizii sigure în orice zonă a domeniului X.
Dacă informaţiile ar fi insuficiente suma ar trebui să fie subunitară iar o sumă supra-
unitară indică reguli contradictorii.

9
Fig. 1.4. Partiţie fuzzy
Operaţia de proiectare a CC sau PF se numeşte fuzzificare. Fuzzificarea este operaţia
esenţială de reprezentare în calculator a cunoştinţelor formulate lingvistic. De exemplu,
în partea aplicativă a tutorialului, la fuzzificarea variabilei eroarea de reglare vom uti-
liza următorii TL: negativ mare, negativ mic, zero, pozitiv mic şi pozitiv mare.

1.5. Controlere fuzzy


În sens larg un controler fuzzy CF este un sistem expert care utilizează variabile fuzzy.
Un sistem expert SE este un program care urmăreşte un grup de cunoştinţe pentru obţi-
nerea unor rezultate, în acelaşi mod ca şi experţii umani. Putem spune că acest gen de
sisteme sunt tipice pentru IA. Un SE este materializat printr-o bază de cunoştinţe şi
printr-un algoritm de căutare, bazat pe metode de raţionare. Cunoştinţele sunt repre-
zentate prin reguli care pot fi uşor citite şi modificate de către utilizatori, de forma:
dacă < premiză > atunci < concluzie > (1.21)
Aşa cum am văzut deja, rolul LF în acest domeniu constă din reprezentarea cunoştin-
ţelor şi din generarea mecanismelor de inferenţă asemănătoare raţionamentelor umane.
Nu este deci întâmplător faptul că SF pot fi cel mai uşor implementate în domeniile în
care există o experienţă umană anterioară. Inferenţa este operaţiunea prin care se pro-
duc concluzii, estimări sau previziuni pornind de la un set de premize.
Acum putem defini mai precis noţiunea de controler, ca dispozitiv care materializează
inferenţa în cazul sistemelor de luare de decizii sau generează o lege de conducere într-
un sistem de reglare în buclă închisă.
Din punct de vedere informaţional, structura unui CF cuprinde 3 blocuri fundamentale:
defuzzificarea (interfaţa de intrare), inferenţa şi fuzzificarea (interfaţa de ieşire).

Fig. 1.5. Controler fuzzy într-o buclă de reglare

10
Fig. 1.6. Structura de tip sistem expert

O variantă mai complexă, proprie sistemelor expert, este prezentată în Fig. 1.6. Prin
separarea bazei de reguli de mecanismul de inferenţă se câştigă în flexibilitate, iar în
cazul proiectelor mari se poate lucra în paralel asupra celor două blocuri, de către echi-
pe specializate.
În funcţie de natura fuzzy sau non-fuzzy a variabilelor de intrare şi ieşire sunt posibile
patru forme de CF, prezentate în tabelul următor. Forma (1), tipică pentru aplicaţiile de
reglare automată se mai numeşte şi regulator fuzzy RF.

Informaţia de Informaţia de ieşire


intrare NUMERICĂ FUZZY
NUMERICĂ Sisteme de reglare în Sisteme de asistare a deciziilor
buclă închisă (1) în buclă deschisă (3)
FUZZY Sisteme de reglare în Sist. inteligente de asistare a
buclă închisă (2) deciziilor în buclă deschisă (4)

În cazul RF mărimile de intrare provin de la traductoare iar cele de ieşire se adresează


diferitelor elemente de execuţie.
Cea mai potrivită formă de reprezentare a inferenţei este în acest caz tabelul de infe-
renţă MacVicar-Whelan, care elimină riscul omiterii unor regiuni din cadrul dome-
niului de definiţie al variabilelor, dacă este completat corect, fără omiterea unor reguli.
În cazul RF, cea mai populară alegere este regulatorul PD (proporţional-derivativ), care
are ca intrări eroarea de reglare  şi derivata ei ε .

Tabel de inferenţă MacVicar-Whelan pentru un regulator PD


ε E1 E2 E3 E4 E5
ε
DE1 R1 R4 R7 R10 R13
DE2 R2 R5 R8 R11 R14
DE3 R3 R6 R9 R12 R15

11
În cazul în care alegem pentru  cinci TL iar pentru ε trei, vom avea un tabel cu 15
reguli de conducere. O modalitate tipică de alegerii TL care alcătuiesc variabilele de
intrare este următoarea:
E1 = negativ mare, E2 = negativ mic, E3 = zero, E4 = pozitiv mic, E4 = pozitiv mare
DE1 = pozitiv, DE2 = zero, DE3 = negativ
Principala sarcină a proiectantului este în această fază alegerea ieşirilor aferente fiecă-
rei reguli în parte. O regulă specială este regula R8, care corespunde atingerii obiecti-
vului reglării:  = 0 şi ε = 0. Enunţarea acestei reguli este următoarea:
DACĂ  = zero ŞI ε = 0, ATUNCI se activează regula R8
Proiectantul mai trebuie să aibă în vedere două aspecte esenţiale ale inferenţei:
a) Ce funcţii logice sunt folosite pentru inferenţă, în cazul nostru pentru ŞI? Aşa cum
s-a văzut în secţiunea 1.3, foarte des se folosesc operaţiile min-max şi prod-sum.
b) Care va fi efectul regulii activate asupra ieşirii? Pentru aceasta trebuie fuzzyficată şi
mărimea de ieşire a controlerului, care în cazul RF este mărimea de comandă.
Dacă ieşirea este fuzzificată în acelaşi mod ca şi intrările, utilizând TL modelaţi prin
MF, atunci controlerul este de tipul Mamdani, purtând numele celui care a realizat
prima aplicaţie practică a RF.
O variantă simplificată a acestei versiuni de bază a fost propusă de M. Sugeno, care a
fuzzificat mărimea de ieşire utilizând exclusiv singletonuri. CF nu-şi pierde în acest fel
caracterul fuzzy, dar implementările practice se simplifică semnificativ.

1.6. Defuzzificarea
Ultima, dar nu şi cea mai puţin importantă dintre operaţiile dintr-un FC, este
defuzzificarea, prin care mulţimea fuzzy obţinută prin inferenţă este transformată într-o
mărime fermă şi transferată ieşirii. Necesitatea defuzzificării apare pentru că mai multe
reguli pot fi active în acelaşi timp, fiind necesară fie alegerea uneia singure dintre ele,
fie sintetizarea unei ieşiri care să ţină cont într-o anumită măsură de fiecare dintre ele.
Dacă în cazul fuzzificării şi a inferenţei există aproape un consens asupra utilizării par-
tiţiilor fuzzy modelate prin forme triunghiulare sau trapezoidale, respectiv asupra me-
todei min-max, în cazul defuzzificării există două metode de defuzzificare cu o popu-
laritate largă, MOM (mean-of-maxima) şi COG (center-of-gravity), fiecare la rândul ei
prezentând mai multe variante. Alegerea metodei de defuzzificare se face în funcţie de
mai multe criterii, dintre care cele mai importante sunt:
 caracteristicile MF de ieşire Y = {y1 , y2 , ... yn} şi ale elementului de execuţie;
 viteza cerută de aplicaţie şi capacitatea de calcul disponibilă.

12
1) Metoda maximului constă din atribuirea pentru ieşirea fermă yo a valorii obţinută
prin alegerea elementului cu cel mai înalt grad de apartenenţă din componenţa MF de
ieşire: Y (yo) = max { yi (y) yY, i=1 ... n }.
La stabilirea acestei valori concurează toate VL active yi, fiind aleasă doar cea având
contribuţia cea mai puternică. Metoda se poate aplica numai în cazul în care se poate
stabili o valoare unică yo, adică atunci când Y are în componenţă MF triunghiulare sau
singleton-uri. În cazul în care există mai multe MF având grade de apartenenţă maxime
cu valori egale se poate alege la întâmplare una dintre ele sau se poate face media valo-
rilor ferme rezultate din fiecare. În cazul în care Y(y) nu prezintă maxime punctuale
(de exemplu în cazul formelor trapezoidale), se pot aplica variantele: primul dintre
maxime FOM (first of maxima), ultimul dintre maxime LOM (last of maxima) sau mij-
locul maximelor MOM.

Mamdani Sugeno

Fig. 1.7. Exemple de defuzzificare după metoda maximului


2) Metoda centrelor de greutate COG este metoda de defuzzificare cea mai sensibilă,
care ţine seama, într-o manieră ponderată, de influenţa fiecărui termen lingvistic al ieşi-
rii, considerând toate valorile posibile pentru gradele de apartenenţă. Prin COG dome-
niul valorilor discrete de ieşire devine continuu.

Fig. 1.8. O comparaţie între defuzzificările MOM şi COG


După cum se vede în fig. 1.8 COG este influenţată şi de VL y1, valoarea comenzii de
la ieşire fiind mai mică decât în cazul MOM, care ţine seama numai de y2.

13
2. Tool-kit-ul Fuzzy Inference System

2.1. Lansarea FIS


Principalul instrument din MATLAB prin care se pot construi sisteme fuzzy este inter-
faţa grafică (graphic user interface) numită Fuzzy Inference System FIS. FIS aparţine
toolkit-ului Fuzzy Toolbox din componenţa pachetului MATLAB. FIS poate fi lansată
fie din fereastra de comenzi (command window) tastând fuzzy, fie din SIMULINK.
Editorul FIS afişează pe fiecare dintre cele trei elemente ale unui SF generic: fuzzifica-
rea, inferenţa şi defuzzificarea. Fereastra principală FIS este prezentată în Fig. 2.1.

Fig. 2.1. Fereastra principală FIS

La deschiderea FIS-ului sunt implicite o variabilă de intrare input 1, una de ieşire out-
put 1 şi blocul de inferenţă Mamdani. Aşa cum vom vedea, inferenţa Mamdani poate
fi înlocuită cu inferenţa Sugeno.
Numele variabilelor selectate poate fi tastat în căsuţa de dialog Name.

14
2.2. Fuzzificarea
Blocul de fuzzificare primeşte la intrare valori ferme şi oferă la ieşire valori fuzzy.
Variabilele fuzzy sunt construite sub forma de cadre cognitive sau de partiţii fuzzy.
Setarea unei variabile de intrare începe printr-un dublu click pe pictograma variabilei.
Pentru input 1 se va activa editorul de funcţii de apartenenţă din figura următoare.

Fig. 2.2. Variabila de intrare input 1


Comenzile necesare pentru editare se găsesc în meniul Edit al acestei ferestre. Tastând
comanda Add MFs obţinem o căsuţă de dialog cu opţiunile necesare: numărul de ter-
meni lingvistici TL şi formele funcţiilor de apartenenţă fiecăruia. Pentru formele func-
ţiilor de apartenenţă există mai multe opţiuni:
trimf (triunghiulară),
trapmf (trapezoidală),
gaussmf (gauss), etc.
Utilizatorul poate defini şi funcţii de apartenenţă proprii, de tip custom.
Dacă dorim să construim o variabilă cu 5 TL vom obţine următoarea fereastră.

15
Fig. 2.3. Partiţia fuzzy aferentă unei variabile de intrare
Fiecare funcţie de apartenenţă poate fi acum editată. Parametrii formei (în cazul triun-
ghiului, cele trei puncte marcate în Fig. 2.3) pot fi tastate în căsuţa Params sau pozi-
ţionate cu ajutorul mouse-ului. Fiecare MF poate fi etichetată prin căsuţa Name. De
exemplu, în loc de mf1, mf2, mf3, mf4 şi mf5 putem tasta zero, small, medium, great
şi very great. Domeniul variabilei poate fi de asemenea definit cu ajutorul căsuţei de
dialog Range. De exemplu, dacă dorim să fuzzificăm variabila glicemie (concentraţia
de zahăr din sânge), domeniul de definiţie ar trebui schimbat de la [0 1] cum este cel
implicit din Fig. 2.3 la [0 200].
Părţi din domeniul de definiţie pot fi selectate pentru afişare cu ajutorul căsuţei display
range. O recomandare importantă: domeniul de definiţie al variabilelor fuzzy trebuie
să fie mai extins decât cel cerut de aplicaţie. În caz contrar, unele dintre metodele de
inferenţă pot produce erori în vecinătatea limitelor domeniului! Aceasta se realizează
dacă range este mai larg decât display range iar funcţia de apartenenţă are valoarea 1
în exteriorul valorilor din display range, care defineşte de fapt domeniul aplicaţiei.
Noi variabile de intrare pot fi adăugate prin meniul Edit din fereastra principală FIS
utilizând comanda Add input.

16
2.3. Defuzzificarea
Etapa de defuzzificare produce valori ferme pornind de la valori fuzzy. Această ope-
raţie, opusă fuzzificării, este necesară doar când avem nevoie de valori ferme la ieşire,
de exemplu în cazul sistemelor de reglare (viteză, poziţie, presiune, etc). Când sistemul
fuzzy trebuie să producă ieşiri lingvistice, de exemplu în cazul sistemelor de decizie de
tipul expert, defuzzificarea nu mai este necesară şi ieşirea poate rămâne ca variabilă
fuzzy.
FIS poate produce inferenţe atât de tip Mamdani cât şi de tip Sugeno. Aşa cum se ob-
servă în §2.4, regulile de conducere ale inferenţei pot avea ca rezultat fie valori fuzzy
în cazul inferenţei Mamdani, fie valori ferme în cazul inferenţei Sugeno. Evident siste-
mele fuzzy de tip Sugeno sunt mai simple decât cele de tip Mamdani. De aceea infe-
renţa Sugeno este recomandabilă când la ieşire avem nevoie de valori ferme. Când la
ieşire avem nevoie de valori lingvistice inferenţa Mamdani este singura posibilă. Ale-
gerea tipului de inferenţă trebuie făcută chiar la începutul aplicaţiei, din fereastra prin-
cipală FIS¸ prin meniul File: fie New Mamdani FIS, fie New Sugeno FIS.

Fig. 2.4. Fuzzificarea Mamdani

17
Fuzzificarea Mamdani este ilustrată în Fig. 2.4 pentru cazul unui CC cu trei VL de
formă Gauss-iană mf1, mf2 şi mf3.
Sistemul Sugeno este ilustrat în Fig. 2.4, pentru cazul unei variabile de ieşire cu trei TL
definită în domeniul [0 1]: zero (singletonul 0), small (singletonul 0.5, cel selectat în
figură) şi great (singletonul 1).

Fig. 2.5. Fuzzificarea Sugeno


Metoda de defuzzificare se allege din fereastra principală FIS (Fig. 2.1). Putem alege
între defuzzificarea de tip COG (centroid în terminologia FIS) şi defuzzificarea MOM
(Mean of Maxima).

18
2.4. Inferenţa fuzzy
Partea centrală a unui sistem fuzzy constă din mecanismul său de inferenţă, care este
realizat de către baza de reguli. Blocul de inferenţă permite scrierea rapidă şi uşoară a
regulilor printr-un tabel McVicar-Whelan. Tipul inferenţei este specificat prin alegerea
normei t (and method) şi normei s (or method) în fereastra principală FIS (Fig. 2.1).

Fig. 2.6. Fereastra de inferenţă FIS

Aşa cum se poate vedea în Fig. 2.5 blocul conţine butoane de editare care permit adău-
garea de reguli noi Add rule precum şi ştergerea Delete rule sau modificarea regulilor
existente Change rule. La formularea regulilor se pot utiliza şi opţiunile not pentru
complementare şi none atunci când variabila respectivă nu este implicată. Totodată se
poate alege între formele conjunctivă and sau disjunctivă or.
Două instrumente importante pentru aplicaţii, care vor fi utilizate în cele ce urmează se
pot accesa din meniul View:
- View rules prin care se văd în timp real regulile activate şi gradul lor de activare;
- View surface prin care se vizualizează suprafaţa de comandă realizată de aplicaţie.

19
2.5. Posibilităţi de utilizare a FIS
O primă observaţie extrem de utilă este aceea că în general aplicaţiile Matlab, şi mai
ales FIS, necesită o atenţie deosebită la salvarea fişierelor. Opţiunile de salvare se gă-
sesc ca de obicei în meniul File. Aplicaţiile FIS sunt salvate ca fişiere cu extensia *.fis,
pe hard disk, pe dispozitive externe sau în workspace. În această situaţie, la terminarea
sesiunii de lucru este necesară şi salvarea workspace-ului, ca fişier *.mat.
Cea mai directă variantă de utilizare a FIS este prin intermediul ferestrei de comenzi
(command window). Pentru aceasta toolbox-ul fuzzy include un set larg de comenzi
aferente FIS: evalfis, ruleviewer, gensurf, readfis, etc. prin care se pot accesa şi ajusta
toate componentele FIS. Sintaxa lor poate fi studiată cu ajutorul comenzii Help.
Ce mai productivă modalitate de lucru cu FIS este însă obţinută prin Simulink-Matlab.
Tool-kit-ul Simulink permite modelarea vizuală pe calculator, prin tehnica drag-and-
drop, astfel încât aplicaţiile pot fi realizate extrem de eficient. În acest fel fişierele *.fis
pot fi incluse în modelele Simulink şi pot fi testate în aplicaţii beneficiind de biblioteca
de funcţii predefinite care a plasat Simulink pe poziţia dominantă a segmentului său de
piaţă.

Fig. 2.7. Funcţiile disponibile în biblioteca Fuzzy Logic Toolbox din Simulink
Pentru a putea utiliza cele două controlere disponibile Fuzzy Logic Controller şi Fuzzy
Logic Controller with Ruleviewer trebuie ca fişierul *.fis să fie instalat în workspace.

20
Controlerului Simulink este asociat fişierului *.fis cu ajutorul căsuţei de dialog care
apare în urma unui dublu click. În căsuţă trebuie tastat numele fişierului *.fis din work-
space.
Blocurile Fuzzy Logic Controller au o singură intrare, motiv pentru care vom apela şi la
un bloc de multiplexare Mux. Ordinea în care apar variabilele de intrare în FIS, de sus
în jos, trebuie respectată şi la conectarea multiplexorului.

21
3. Implementarea FIS a unui regulator PD
3.1. Formularea temei proiectului
În cele ce urmează se va realiza un regulator fuzzy de tip PD, atât în varianta Mamdani
cât şi în varianta Sugeno. Configuraţia acestui regulator este următoarea:
 Intrări: eroarea e, şi derivata erorii de
 Ieşire: comanda c
Fuzzificarea va fi realizată după următoarea formulă:
 pentru intrarea e, şapte TL: NG, NM, NS ,Z ,PS ,PM şi PG
 pentru intrarea de, cinci TL: NG, NS, Z, PS şi PG
 pentru ieşirea c: cinci TL - NG, NS, Z, PS şi PG
Etichetele lingvistice utilizate sunt tradiţionale:
NG – negative great/negativ mare
NM – negative medium/negativ mediu
NS – negative small/negativ mic
Z – zero/zero
PS – positive small/pozitiv mic
PM – positive medium/pozitiv mediu
PG – positive great/pozitiv mare.
Se vor utiliza exclusiv variabile normalizate, adaptarea la procesul condus realizându-
se prin trei factori de scalare: factorul de scalare pentru eroare FSe, factorul de scalare
pentru derivata erorii FSde şi factorul de scalare pentru comandă FSc.

Fig. 3.1. Factorii de scalare ai regulatorului

Scopul final al acestui proiect este realizarea unui regulator de uz general care să poată
funcţiona într-o gamă largă de aplicaţii. El va fi testat în urma implementării Simulink
pentru diferite procese conduse.

22
3.2. Implementarea regulatorului Mamdani
Fuzzificarea variabilelor este prezentată în figura următoare.

Fig. 3.2. Fuzzificarea

23
Baza de reguli propusă este următoarea:

1. If (e is NG) then (c is PG)


2. If (e is NM) and (de is NG) then (c is PG)
3. If (e is NM) and (de is NS) then (c is PG)
4. If (e is NM) and (de is Z) then (c is PS)
5. If (e is NM) and (de is PS) then (c is PS)
6. If (e is NM) and (de is PG) then (c is Z)
7. If (e is NS) and (de is NG) then (c is PG)
8. If (e is NS) and (de is NS) then (c is PS)
9. If (e is NS) and (de is Z) then (c is PS)
10. If (e is NS) and (de is PS) then (c is Z)
11. If (e is NS) and (de is PG) then (c is NS)
12. If (e is Z) and (de is NG) then (c is PS)
13. If (e is Z) and (de is NS) then (c is PS)
14. If (e is Z) and (de is Z) then (c is Z)
15. If (e is Z) and (de is PS) then (c is NS)
16. If (e is Z) and (de is PG) then (c is NS)
17. If (e is PS) and (de is NG) then (c is PS)
18. If (e is PS) and (de is NS) then (c is Z)
19. If (e is PS) and (de is Z) then (c is NS)
20. If (e is PS) and (de is PS) then (c is NS)
21. If (e is PS) and (de is PG) then (c is NG)
22. If (e is PM) and (de is NG) then (c is Z)
23. If (e is PM) and (de is NS) then (c is NS)
24. If (e is PM) and (de is Z) then (c is NS)
25. If (e is PM) and (de is PS) then (c is NG)
26. If (e is PM) and (de is PG) then (c is NG)
27. If (e is PG) then (c is NG)
Deşi nu avem decât 27 de reguli, baza de reguli corespunde unui tabel de 35 de reguli,
deoarece regulile 1 şi 27 au fost editate cu ajutorul opţiunii none: indiferent de valoa-
rea variabilei de, starea ieşirii este decisă doar de către e.
Suprafaţa de comandă realizată prin defuzzificarea COG este prezentată în Fig. 2.9.
Defuzzificarea MOM produce suprafaţa de comandă din Fig. 2.10.

Observaţie: Regulile au fost formulate conform logicii lingvistice „dacă eroarea are un
anumit semn, atunci comanda trebuie să fie de sens opus”. De exemplu dacă (e este
NG) atunci (c este PG). Din acest motiv semnul comenzii c trebuie schimbat (se înmul-
ţeşte cu constanta -1).

24
Fig. 3.3. Suprafaţa de comandă cu defuzzificare COG

Fig. 3.4. Suprafaţa de comandă cu defuzzificare MOM

Se remarcă faptul că suprafaţa de comandă generată prin defuzzificarea COG este mai
netedă comparativ cu defuzzificarea MOM.
Cu cât mai multe reguli există în baza de reguli, cu atât mai multe puncte de fixare a
suprafeţei de comandă avem la dispoziţie, dar pe de altă parte implementarea este mai
greoaie.
Implementarea Simulink este prezentată în Fig. 2.11. Schimbarea semului comenzii
datorată formulării regulilor se realizează prin factorul de scalare FSc. Blocul de
saturare care limitează acţiunea regulatorului are limitele ±10.

25
FSe
e
1 c 1
-10
Step du/dt 1 s2 +2s+1
de FSc Saturation Transfer Fcn Scope
Derivative FSde Fuzzy Logic
Controller
with Ruleviewer out

Fig. 3.5. Implementarea Simulink a regulatorului fuzzy PD


Răspunsul indicial din figura următoare ilustrează comportarea sistemului. Notaţiile
folosite sunt: intrarea u, ieşirea out şi comanda c.

out
u, out

0.5

0
0 1 2 3 4 5 6 7 8 9 10

10

5
c

-5
0 1 2 3 4 5 6 7 8 9 10
t [s]

Fig. 3.6. Răspunsul indicial al regulatorului Mamdani cu baza de reguli 7 x 5


Se remarcă eroarea staţionară precum şi chattering-ul care afectează regimul staţionar,
datorate lipsei efectului integrativ. Pe de altă parte regimul tranzitoriu este ferm, fără
suprareglaje sau oscilaţii.

În secţiunea următoare acest regulator Mamdani va fi comparat cu un regulator Sugeno


care diferă în principal doar prin fuzzificarea variabilei/variabilelor de ieşire. Orice
controler Mamdani poate fi convertit automat într-un controler Sugeno prin comanda
mam2sug lansată din fereastra de comandă MATLAB.

26
3.3. Implementarea regulatorului Sugeno
O simplificare importantă a regulatorului anterior se obţine în varianta Sugeno. În plus
reducem baza de reguli la dimensiunea 5 x 5, utilizând numai 5 TL pentru e.

Fig. 3.7. Fuzzificarea regulatorului PD Sugeno; de este identic cu e


1. If (e is NG) then (c is PG)
2. If (e is NS) and (de is NG) then (c is PG)
3. If (e is NS) and (de is NS) then (c is PG)
4. If (e is NS) and (de is Z) then (c is PS)
5. If (e is NS) and (de is PS) then (c is Z)
6. If (e is NS) and (de is PG) then (c is NS)
7. If (e is Z) and (de is NG) then (c is PG)
8. If (e is Z) and (de is NS) then (c is PS)
9. If (e is Z) and (de is Z) then (c is Z)
10. If (e is Z) and (de is PS) then (c is NS)
11. If (e is Z) and (de is PG) then (c is NG)
12. If (e is PS) and (de is NG) then (c is PS)
13. If (e is PS) and (de is NS) then (c is Z)
14. If (e is PS) and (de is Z) then (c is NS)
15. If (e is PS) and (de is PS) then (c is NG)
16. If (e is PS) and (de is PG) then (c is NG)
17. If (e is PG) then (c is NG)
Fig. 3.8. Baza de reguli a regulatorului PD Sugeno

27
Suprafaţa de comandă rezultată este prezentată în figura următoare.

Fig. 3.9. Suprafaţa de comandă a regulatorului PD Sugeno


Se remarcă o asemănare în linii mari cu suprafaţa de comandă a regulatorului Mamdani
care are însă mai multe puncte de ajustare. Răspunsul indicial este foarte asemănător cu
cel din Fig. 3.6, al regulatorului Mamdani cu baza de reguli de dimensiune 7 x 5. Acest
fapt justifică utilizarea regulatorului Sugeno în aplicaţiile de reglare în buclă închisă,
deoarece este mai simplu şi mai rapid decât regulatorul Mamdani, în timp ce perfor-
manţele lor sunt perfect comparabile. Se remarcă lipsa chatteringului, asociată însă cu
o eroare staţionară mai mare, comportament cauzat de reducerea bazei de reguli.

1
u, out

0.5

0
0 1 2 3 4 5 6 7 8 9 10

10

0
c

-5

-10
0 1 2 3 4 5 6 7 8 9 10
t [s]

Fig. 3.10. Răspunsul indicial al regulatorului Sugeno cu baza de reguli 5 x 5

28
4. Regulatoarele fuzzy-interpolative
4.1. Sistemele fuzzy-interpolative
În urma executării simulărilor cu fişiere de tip *.fis se observă că în general simulările
necesită mult timp iar în unele cazuri se produc chiar blocaje, în funcţie şi de configu-
raţia calculatorului şi de parametrii aleşi pentru simulare (metoda de integrare, erori
admisibile, etc.) şi de parametrii sistemului de reglare. O metodă eficace de înlăturare a
cestui aspect, fără însă a renunţa la avantajul fundamental al sistemelor fuzzy, adică la
reprezentarea lingvistică, este apelul la conceptul de sistem fuzzy-interpolativ SFI.
Un SFI este un sistem fuzzy care poate fi direct echivalat cu un tabel de căutare TC cu
interpolare liniară (look-up-table LUT). Un TC este una dintre structurile de date cele
mai des întâlnite în ştiinţa calculatoarelor, constând dintr-o arie n–dimensională sau o
arie asociativă n–dimensională. Utilizarea TC în locul altor algoritmi de calcul al func-
ţiilor algebrice, ca de exemplu seria Taylor, necesită o capacitate mare de memorie, dar
oferă în schimb o accelerare semnificativă a calculului. În esenţă calculul constă din
căutarea în tabel a unor valori şi interpolarea lor, fie prin interpolări spline sau polino-
miale, fie cel mai simplu, prin interpolări liniare. Deoarece capacitatea memoriilor a
crescut continuu, la fel ca şi viteza şi fiabilitatea lor, în timp ce preţul lor este în conti-
nuă scădere, utilizarea TC este tot mai populară.
În aplicaţiile noastre vom apela la un TC bidimensional cu două intrări e şi de şi o ieşi-
re c. În cazul regulatorului Mamdani TC poate fi modelat printr-o matrice cu dimensiu-
nea 7 x 5 iar in cazul regulatorului Sugeno printr-o matrice cu dimensiunea 5 x 5. Un
astfel de TC este disponibil în Simulink sub forma prezentată în Fig. 4.1.

Fig. 4.1. Tabelul de căutare bidimensional din biblioteca Simulink

29
Coordonatele nodurilor de interpolare sunt fixate de valorile numerice înscrise în vec-
torii corespunzători celor două intrări row şi column iar valorile din tabel table data
definesc ieşirile tabelului. Valorile vectorilor de intrare trebuie înscrise în ordine cres-
cătoare. Dacă intrările depăşesc domeniul de definiţie calculul ieşirii se poate face fie
prin extrapolare fie prin limitare (păstrarea înafara tabelului a valorilor marginale).

Fig. 4.2. Ilustrarea funcţionării unui regulator PD fuzzy-interpolativ

30
Trecerea de la cazul bidimensional PD mai uşor de reprezentat mental la cazurile n-
dimensionale, de exemplu la regulatorul tridimensional de tip PID, se poate ilustra prin
figura următoare, în care regulatoarele PD pot fi asemănate cu paginile unei cărţi.

Fig. 4.3. Regulatorul fuzzy-interpolativ PID

Sintaxa care trebuie respectată în această situaţie este următoarea:


table: cat(3, [pagina e<0], [pagina e=0], [pagina e>0])

4.1. Implementările fuzzy-interpolative


Implementările fuzzy-interpolative ale regulatoarelor PD Mamdani cu 35 de reguli şi
Sugeno cu 25 de reguli prezentate anterior sunt următoarele:
Regulatorul Mamdani:
row (e): [-1 -0.3 -0.1 0 0.1 0.3 1]
column (de): [-1 -0.1 0 0.1 1]
table (c): [-1 -1 -1 -1 -1; -1 -1 -0.3 -0.3 0; -1 -1 -0.3 0 0.3; -0.3 -0.3 0 0.3 0.3;
-0.3 0 0.3 1 1; 0 0.3 0.3 1 1; 1 1 1 1 1]

Regulatorul Sugeno:
row (e): [-1 -0.1 0 0.1 1]
column (de): [-1 -0.1 0 0.1 1]
table (c): [-1 -1 -1 -1 -1; -1 -1 -0.3 0 0.3; -0.3 -0.3 0 0.3 0.3; -0.3 0 0.3 1 1; 1 1 1 1 1]

31
FSe

1
1
25
Step du/dt 1 s2 +2s+1
FSc Saturation Transfer Fcn Scope
Derivative FSde Lookup
Table (2-D)

Fig. 4.4. Implementarea Simulink a regulatorului PD fuzzy-interpolativ (7 x 5)

32
După implementarea celor două regulatoare se poate constata cu uşurinţă că simulările
nu mai ridică absolut nici o problemă computaţională, ele se derulează practic instan-
taneu, fără riscul blocajelor. Spre deosebire de cazul utilizării fişierului *.fis în care
pentru anumite valori ale parametrilor sistemului de reglare se produc blocaje, acum
putem încerca orice combinaţie de parametri ai sistemului de reglare, de exemplu creş-
terea factorului de scalare de la ieşire de la 10 ca şi în Fig. 3.5 la 25. Comportarea regu-
latoarelor cu 35 şi cu 25 de reguli la un semnal de test reprezentat cu linie întreruptă se
poate analiza în figurile următoare.

0.5
u & out

-0.5

-1

0 1 2 3 4 5 6 7 8 9 10
t [s]

Fig. 4.5. Un răspuns în timp al regulatorului PD fuzzy cu 35 de reguli

0.5
u & out

-0.5

-1

0 1 2 3 4 5 6 7 8 9 10
t [s]

Fig. 4.6. Un răspuns în timp al regulatorului PD fuzzy cu 25 de reguli

33
Se remarcă marea asemănare dintre cele două răspunsuri în timp, argument în favoarea
utilizării variantei mai simple, cu 25 de reguli. Numărul de reguli în sine este însă mai
puţin relevant decât modul în care aceste reguli sunt formulate şi ajustate. După cum se
observă, răspunsurile suportă multe îmbunătăţiri.
Diferenţa majoră a regulatoarelor fuzzy faţă de regulatoarele convenţionale este numă-
rul mult mai mare de mecanisme de ajustare care pot influenţa performanţele. Aceasta
le oferă un avantaj fundamental, mai ales în aplicaţiile dificile sau despre care nu avem
cunoştinţe suficiente pentru a le trata în mod optimal, dar pe de altă parte presupune o
ajustare mai laborioasă. Dacă în cazul unui regulator PD liniar sunt doar doi parametri
de ajustare, la care putem adăuga factorii de scalare de la intrare, în cazul regulatorului
fuzzy-interpolativ putem identifica cel puţin următorii parametri de ajustare: factorul
de scalare de la ieşire FSc, fuzzificarea de la intrare care cuprinde 25 de noduri de
interpolare şi fuzzificarea de la ieşire cu 5 valori. În cazul unui sistem fuzzy obişnuit
mai intervin şi formele funcţiilor de apartenenţă, prin posibilitatea utilizării funcţiilor
Gauss, sigmoidale, etc.
În figura următoare se prezintă rezultatele unei ajustări orientate în direcţia reducerii
suprareglajelor din Fig. 4.6, alte obiective fiind la fel de uşor de atins.

0.5
u & out

-0.5

-1

0 1 2 3 4 5 6 7 8 9 10
t [s]

Fig. 4.6. Un răspuns în timp cu minimizarea suprareglajelor

Studenţii sunt invitaţi să încerce diferitele mecanisme de ajustare posibile şi efectele


lor asupra performanţelor regulatorului.

34
5. Regulatoarele neuro-fuzzy
5.1. Introducere în reţelele neuronale
Mulţimea de posibilităţi de ajustare a controlerelor fuzzy creează complicaţii, care se
pot evita prin automatizarea elaborării relaţiei fuzzy. Sinteza automată sau chiar auto-
sinteza sistemelor de comandă poate fi obţinută prin metode ale inteligenţei artificiale.
Ce mai promiţătoare abordare constă din fuzionarea logicii fuzzy cu reţelele neuronale
RN. În această abordare mulţimile fuzzy sunt utilizate în reprezentarea cunoştinţelor,
în timp ce reţelele neuronale sintetizează regulile fuzzy prin învăţare pe bază de exem-
ple. Controlerele neuro-fuzzy astfel obţinute sunt capabile de a rezolva unele dintre
cele mai complicate sarcini, cum ar fi recunoaşterea imaginilor, fără intervenţia sub-
stanţială a omului.
RN sunt alcătuite din mulţimi de elemente de prelucrare a informaţiei - neuroni - inter-
conectaţi într-o reţea. Un neuron i are n intrări, x1i, x2i, ... , xni şi o ieşire yi, fiecare
aparţinând mulţimii numerelor reale. O legătură ieşire-intrare dintre nodurile reţelei
este reprezentată prin ponderea sinaptică, valoare reală care ponderează efectul semna-
lului de intrare în neuronul receptor. Neuronul va fi afectat de n ponderi sinaptice: w1i,
w2i, ... , wni. Ponderile pot fi excitatoare dacă wi > 0 sau inhibatoare dacă wi < 0. Acti-
varea neuronului se defineşte prin suma ponderată a semnalelor de intrare:
n
S =  wji xji (5.1)
j=1

Ieşirea neuronului va fi dată de funcţia neuronală (de ieşire) yi = f(s), care poate avea
diferite forme: treaptă, rampă, funcţii sigmoidale, etc.
Neuronii sunt aranjaţi în straturi, capacitatea de reprezentare a reţelei depinzând de
mărimea şi de numărul straturilor. Dacă funcţiile neuronale sunt norme t sau s se obţin
neuroni logici de tip AND şi OR. Cu aceştia se pot construi reţele multistrat capabile
să modeleze o mare varietate de funcţii logice. O astfel de structură (denumită şi pro-
cesor logic), rezultată prin analogie cu logica booleeană a fost propusă de K. Hirota şi
W. Pedrycz în 1991. Ea cuprinde trei straturi de neuroni (de intrare, de ieşire şi stratul
ascuns), fiecare strat conţinând neuroni de acelaşi tip. O prezentare mai detaliată a RN
se găseşte în secţiunea 5.5.
Controlerul neuro-fuzzy poate fi grefat pe procesorul logic neuronal, fiecare variabilă
de intrare reprezentând gradul de apartenenţă a unei mărimi de intrare la TL corespun-
zător din CC aferent mărimii respective. Prin topologia lor, sinapsele codifică regulile
de conducere de tip dacă ...atunci. În cazul procesorului logic de mai sus, fiecare nod
din stratul intermediar poate fi considerat ca şi corespunzând unei clauze, fiind analog
unui minitermen din cazul exprimării analitice prin forma canonică disjunctivă a func-
ţiilor logice. În cazul general cunoştinţele sunt “împărţite” între neuroni şi sinapse,
astfel că este cvasi-imposibilă exprimarea inteligibilă a relaţiei fuzzy conţinută în reţea.

35
AND

x1
AND OR
Variabile de intrare y
Ieşire
x2 AND

Strat de intrare Strat ascuns Strat de ieşire

Fig. 5.1 Procesor logic cu reţea neuronală

RN sunt capabile de a învăţa pe bază de exemple. Exemplele constau din seturi de mă-
rimi de intrare şi mărimile de ieşire pe care dorim să le obţinem în cazul acelor intrări.
Învăţarea este de tip parametric, constând din ajustarea ponderilor sinaptice, astfel încât
un anumit indice de performanţă (de exemplu distanţa euclidiană) să fie optimizat.
Dintre parametrii algoritmilor de învăţare, esenţiali sunt convergenţa, fără de care nu s-
ar obţine soluţii şi factorul de învăţare indicând viteza de soluţionare.

N
Intrare 1
Z

P Ieşire

N
Intrare 2
Z
Evaluarea regulilor
P şi defuzzificarea

Fuzzificarea Baza de reguli

Fig. 5.2 Controler neuro-fuzzy

36
5.2. Descrierea toolkitului ANFIS
Tool-kit-ul destinat implementării sistemelor neoro-fuzzy în Matlab se numeşte ANFIS
(adaptive neuro-fuzzy inference system). Fiind dat un set de date intrare-ieşire de antre-
nare, ANFIS generează un fişier de tip *.fis având parametrii astfel ajustaţi încât să
producă un răspuns identic cu datele de antrenare. Învăţarea se realizează fie printr-un
algoritm de tip backpropagation fie printr-o variantă a metodei celor mai mici pătrate.

Metodele de tip backpropagation urmează următoarele etape:


1. Se introduce în RN setul de date de antrenare.
2. Se compară ieşirile calculate cu setul de date de antrenare. Se calculează erorile
pentru fiecare dintre neuronii de ieşire.
3. Pentru fiecare neuron de ieşire se calculează o valoare şi un factor de scalare, care
ar produce ieşirea dorită pentru întreaga reţea. Pe baza aceasta se calculează erorile
locale la nivelul fiecărui neuron de ieşire.
4. Se ajustează ponderile fiecărui neuron în sensul scăderii erorilor locale.
5. Neuronii din stratul precedent care produc cele mai mari erori locale sunt ponderaţi
în sensul scăderii ponderii lor.
6. Se repetă etapele 3, 4 şi 5 asupra neuronilor din stratul anterior.

Tool-kit-ul ANFIS are un caracter preponderant didactic, prezentând o serie de limitări:


• Se aplică numai sistemelor Sugeno cu funcţii de apartenenţă liniare sau singleton;
• Se aplică numai sistemelor cu o singură ieşire;
• Nu suportă funcţii de apartenenţă, norme t-s sau defuzzyficări definite de utilizator;

Lansarea toolkit-ului se face prin comanda anfisedit, obţinându-se interfaţa grafică din
figura 5.3. Rolul principalelor elemente de acţionare este prezentat în figură.
Operaţiile pe care interfaţa ANFIS le poate executa sunt următoarele:
- Încărcarea datelor de antrenare, testare şi verificare, sub controlul comenzilor din
zona Load Data.
- Generarea sau încărcarea unui model iniţial FIS cu comenzile din zona Generate FIS.
- Vizualizarea modelului FIS (atât cel iniţial cât şi cel rezultat în urma antrenării reţelei
prin butonul Structure.
- Alegerea parametrilor metodei de optimizare (backpropagation sau hibridă).
- Alegerea numărului de iteraţii de antrenare (traning epochs) şi eroarea de antrenare.
- Antrenarea reţelei neuronale, comandată prin butonul Train Now. Procesul iterativ de
învăţare automată ajustează parametrii FIS-ului. Se afişează erorile fiecărei iteraţii.

37
Operaţii Undo Deschidere Zona de Afişare parametri:
cu fişire şi editare afişare nr. de intrări/ieşiri
.fis fişire .fis şi funcţii de apar-
tenenţă

Structura
Legendă: intrare/
- Date de testare: linie punctată albastră; ieşire a
- Date de antrenare: linie din o albastre; FIS-ului
- Date de verificare: linie din + albastre;
- Ieşirea FIS-ului: linie din * roşii;
Testarea
FIS-ului
cu datele
de antre-
nare

Introdu-
cerea
datelor
de antre- Ştergere date Încărcare sau gene- Antrenare FIS după setarea
nare de antrenare rare fişier .fis metodei de optimizare

Fig. 5.3. Interfaţa grafică ANFIS

- Ieşirea FIS-ului este vizualizată şi comparată cu datele de antrenare, verificare şi tes-


tare, după acţionarea butonului Test Now.
Prin intermediul barei de meniu ANFIS se pot încărca sau salva fişierele FIS, se poate
deschide un nou controler Sugeno sau accesa alte interfeţe grafice din componenţa
Matlab.

38
5.3. Implementarea ANFIS a unui regulator PD Sugeno
În continuare se va exemplifica optimizarea regulatorului PD Sugeno descris în §3.3 cu
ajutorul ANFIS. În urma încărcării fişierului .fis corespunzător, se obţine reţeaua neu-
ronală din figura 5.4.

Fig. 5.4. Structura RN corespunzătoare regulatorului PD Sugeno

Corespondenţa dintre RN şi controlerul Sugeno este evidentă:


- intrările input corespund erorii e şi derivatei sale de.
- stratul inputmf corespunde termenilor lingvistici rezultaţi prin fuzzificare.
- stratul rule - outputmf asociază câte un neuron fiecărei reguli de conducere.
- ieşirea output corespunde ieşirii controlerului Sugeno.

Principala problemă care se ridică în faţa proiectării unei aplicaţii ANFIS este alegerea
seturilor de date de antrenare, testare şi validare.

39
În vederea optimizării regulatorului fuzzy PD s-a realizat un set de date de antrenare
prin prelevarea datelor obţinute din simularea funcţionării sistemului de reglare pentru
cazul răspunsului indicial. Datele au fost prelevate chiar de la intrările şi ieşirea regula-
torului, deoarece ANFIS generează doar fişierul .fis, el neputând fi extins la întreaga
aplicaţie. A rezultat un fişier de date cu dimensiunea 25 x 3. Parametrii simulării gene-
ratoare de date de antrenare pot fi astfel aleşi încât să reprezinte o îmbunătăţire a func-
ţionării, care nu ar fi putut fi obţinută prin ajustarea manuală. Convergenţa învăţării şi
parametrii ANFIS-ului se observă în fig. 5.5.

Fig. 5.5. Convergenţa învăţării pentru un set de date reprezentând un răspuns indicial

Din păcate regulatorul astfel obţinut produce un răspuns indicial de slabă calitate, cu o
tendinţă înspre suprareglaj şi oscilaţii pe durata regimurilor tranzitorii. Aşa cum se va
observa în continuare, principala cale de îmbunătăţire a calităţii sistemelor neuro-fuzzy
este alegerea unui set de date de antrenare cât mai adecvat.

40
5.4. Sinteza unui regulator neuro-fuzzy
Utilitatea RN stă în sinteza automată a sistemelor şi/sau optimizarea lor. În continuare
se ilustrează sintetizarea unui regulator PD neuro-fuzzy. Se porneşte de la ideea obţi-
nerii unui set de date de antrenare bogat, care să cuprindă o comportare mai nuanţată a
regulatorului PD, respectiv un semnal de intrare mai complex, care pe lângă răspunsul
indicial să mai cuprindă şi alte elemente.

Fig. 5.6. Sistem de reglare cu regulator PD liniar pentru generarea datelor de antrenare

0.9
intrare u
0.8

0.7

0.6

0.5

0.4

0.3
iesire y

0.2

0.1

0
0 2 4 6 8 10 12 14 16 18 20
t [s]
Fig. 5.7. Răspunsul sistemului de reglare cu regulator PD liniar
Fişierul de date de antrenare obţinut are dimensiunea 123 x 3. Reprezentarea grafică a
datelor de antrenare apare în fig. 5.8.

41
1
e

-1
0 20 40 60 80 100 120 140
40

20
de

-20
0 20 40 60 80 100 120 140
40

20
c

-20
0 20 40 60 80 100 120 140

Fig. 5.8. Datele de antrenare


În urma încărcării datelor de antrenare şi a alegerii variantei în care ANFIS va genera
un FIS cu două intrări având 7 respectiv 5 TL (o bază de 7 x 5 reguli), se obţine antre-
narea convergentă din fig. 5.9.

Fig. 5.9 Antrenarea în cazul unei baze de reguli 7 x 5 (linear)

42
Regulatorul PD Sugeno generat de RN este prezentat în figura următoare. Se remarcă
variabila sa de ieşire alcătuită din 35 de valori diferite (singleton), fiecare dintre ele
fiind optimizată în cursul antrenării. În acest caz a fost aleasă opţiunea linear pentru
MF de ieşire.

Fig. 5.10. Regulatorul neuro-fuzzy cu baza de reguli 7 x 5


În cazul alegerii opţiunii constant convergenţa învăţării este chiar mai bună (vezi fig.
5.11), ceea ce nu creşte însă în mod necesar calitatea regulatorului.

43
Fig. 5.11. Antrenarea sistemului neuro-fuzzy cu baza de reguli 7 x 5 (constant)
Răspunsul produs de către regulatorul astfel obţinut este prezentat în fig. 5.12.

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 2 4 6 8 10 12 14 16 18 20
t [s]

Fig. 5.12. Răspunsul sistemului neuro-fuzzy cu baza de reguli 7 x 5

44
Marele avantaj al RN, capacitatea de învăţare automată, poate fi ilustrată prin varianta
regulatorului cu doar 15 reguli, având baza de reguli cu dimensiunea 5 x 3. Răspunsul
acestui regulator, prezentat în fig. 5.13, foarte asemănător cu răspunsurile regulatoare-
lor mai complicate, justifică alegerea sa pentru aplicaţii, având în vedere simplitatea şi
costul mai redus, la performanţe asemănătoare.

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 2 4 6 8 10 12 14 16 18 20
t [s]

Fig. 5.13. Răspunsul sistemului neuro-fuzzy cu baza de reguli 5 x 3


Fereastra de dialog prin care se alege structura FIS asociată, în acest caz cu 15 reguli,
precum şi tipul mulţimilor fuzzy de la ieşire, în acest caz linear, este prezentată în figu-
ra următoare. Această fereastră de dialog apare prin acţionarea butonului Generate FIS.

Fig. 5.14. Generarea FIS-ului asociat ANFIS

45
Dezavantajul principal al RN este acela că ele maschează cunoştinţele referitoare la
structura şi ajustarea lor. Din valorile numerice ale TL variabilei de ieşire, ca de altfel
din valorile parametrilor oricărui neuron, nu se poate trage absolut nici o concluzie cu
privire la o eventuală strategie care să le justifice. Aceste valori sunt practic aleatoare,
iar în cazul în care datele de testare sunt mult diferite de cele de antrenare întreaga apli-
caţie poate eşua.

5.5. Reţelele neuronale avansate


Pentru aprofundarea cunoştinţelor despre RN se prezintă în continuare o viziune de sin-
teză asupra lor, preluată din lucrarea “Neural Network Applications in Power Electro-
nics and Motor Drives - An Introduction and Perspective” de Bimal K. Bose, publicată
în IEEE Transactions on Industrial Electronics, Vol. 54, No. 1, Feb. 2007, pag. 14-33.

5.5.1. Structura de tip neuron. Neuroni biologici şi neuroni artificiali


O reţea neuronală RN constă dintr-un număr de neuroni artificiali interconectaţi. Struc-
tura neuronilor artificiali este inspirată din structura neuronilor biologici prezentată în
Fig. 5.15 (a). Neuronul este celula de bază a sistemelor nervoase, capabilă să proceseze
informaţii, prin recepţionarea şi combinarea de semnale provenite de la alţi neuroni
similari, prin mii de trasee de intrare, numite dendrite. Fiecare semnal de intrare (de
natură electrică), care trece prin dendrite, trece printr-o sinapsă (legătură sinaptică), ca
în figură. Această legătură este formată dintr-un interstiţiu infinitezimal umplut cu fluid
neurotransmiţător care fie accelerează fie întârzie curgerea semnalului. Aceste semnale
sunt acumulate in nucleu (soma), modificate în mod neliniar la ieşire, înainte de a-şi
continua circulaţia spre alţi neuroni, prin ramurile axonilor, ca în figură. Modularea
impedanţei (conductanţei) legăturii sinaptice prin lichidul neurotransmiţător contribuie
la „memoria” sau „inteligenţa” creierului. Conform teoriei neuronului, suntem înclinaţi
să credem că în creierul nostru memoria asociativă şi elementele de inteligenţă sunt
datorate legăturilor sinaptice dintre celule. E interesant să observăm că la naştere un
om are în creier aproximativ 100 de miliarde de neuroni. După depăşirea vârstei de 40
de ani cam un milion de neuroni mor zilnic.
Modelul unui neuron artificial (numit deseori şi element de procesare, neurod, nod, sau
celulă), care urmăreşte îndeaproape structura neuronului biologic, este prezentat în Fig.
5.15 (b). În principiu structura sa este asemănătoare unui sumator cu amplificatoare
operaţionale. Fiecare semnal de intrare (cu variaţie continuă în timp sau impuls), este
modulat printr-un factor numit amplificare sau pondere sinaptică PS care poate fi pozi-
tiv (excitant) sau negativ (inhibator), întreg sau neîntreg. Nodul de însumare acumu-
lează toate semnalele de intrare ponderate împreună cu semnalul ponderat de polarizare
b, după care rezultanta S este prelucrată prin funcţia de activare FA (nonliniară sau
liniară) şi dirijată înspre ieşire.

46
Figura 5.15. Neuronul biologic şi neuronul artificial

47
Figura 5.16. Câteva dintre FA folosite în construcţia neuronilor

Funcţia de activare (transfer): Câteva dintre cele mai uzuale FA sunt prezentate în
Fig. 5.16: lineară, prag, signum, sigmoidală sau log-sigmoidală şi tangentă hiperbolică.
O altă familie de funcţii des folosite este familia funcţiilor Gaussiene. Amplitudinea
acestor funcţii poate fi cuprinsă între 0 şi 1 sau între -1 şi 1. Funcţia liniară poate fi uni-
polară (cuprinsă între 0 şi 1) sau bipolară (între -1 şi 1). Când panta ei este  ea se
poate transforma în funcţiile prag respectiv signum. Funcţiile sigmoidale şi tangenta
hiperbolică se întâlnesc frecvent în electronica de putere. Formulele acestor funcţii sunt
prezentate în Fig. 5.16, unde α este coeficientul (câştigul) prin care se ajustează panta.
Toate aceste funcţii sunt diferenţiabile cu maximul derivatei dF/dS pentru S = 0. Toate
aceste funcţii comprimă într-un fel sau altul răspunsul neuronului între două valori
asimptotice (fie -1 şi 1, fie 0 şi 1). Neliniaritatea FA contribuie la neliniaritatea carac-
teristicilor de transfer ale RN globale.

48
5.5.2. Structuri de reţele neuronale artificiale

A. Modele de reţele
Interconectarea neuronilor artificiali formează RN artificiale (neurocomputere sau sis-
teme conecţioniste), care au obiectivul de a emula funcţionalitatea creierului uman într-
un anumit domeniu, rezolvarea problemelor ştiinţifice, inginereşti, etc. Structurile deta-
liate ale RN biologice nu au fost încă înţeles pe deplin, astfel că există mai multe mo-
dele de RN. Câteva modele de RN des întâlnite în literatură sunt:
1) Perceptronul
2) Adaline & Madaline
3) RN cu propagare inversă – Backpropagation (BP)
4) RN cu bază radială (RBNN)
5) RN modulare (MNN)
6) RN cu cuantizare prin vector de învăţare (LVQ)
7) Reţele neuro-fuzzy (FNN)
8) Kohonen
9) RN cu recurenţă în timp real
10) Elman
11) Hopfield
12) Boltzman, etc.

În general RH pot fi clasificate în:


- RN cu propagare directă (feedforward);
- RN cu propagare inversă (feedback);
- RN recurente.
La RN cu propagare directă semnalele circulă doar înainte (dinspre intrare înspre ieşi-
re, vezi Fig. 5.17 şi 5.18) în timp ce în cazul reţelelor recurente semnalele pot circula şi
invers sau lateral (vezi Fig. 5.19). În funcţie de natura sistemului emulat, RN poate fi
statică sau dinamică. Pentru sistemele statice se utilizează de obicei RN cu propagare
directă sau inversă, iar pentru sistemele dinamice sau temporale RN recurente. Princi-
pala caracteristică a unei RN este dependenţa sa funcţională intrare-ieşire.

B. Reţele neuronale de tip perceptron

Perceptronul (inventat de Frank Rosenblatt la sfârşitul anilor ’50) este o RN simplă cu


un singur strat cu propagare directă (feedforward) care este folosită pentru clasificarea
semnalelor de intrare a căror modele sunt separabile linear. Structura generică a unui
astfel de reţea (perceptroni multipli) cu S neuroni, care utilizează o FA de tip prag este
prezentată în Fig. 5.17 (a). Vectorul semnalelor de intrare p are R elemente. El este
înmulţit de matricea de ponderare W (RXS) înaintea însumării. Un element oarecare din
W, notat Wi,j, asigură conexiunea ponderată dintre intrarea j şi neuronul i. Vectorului
rezultant Wp i se adaugă vectorul de polarizare b constituindu-se astfel vectorul n = Wp
+ b. Fiecare semnal de polarizare este generat de o sursă +1 ponderată ca în figură.
Vectorul de ieşire a este a = prag(Wp + b).

49
Figura 5.17. (a) Reţea perceptron. (b) Ilustrarea limitei de clasificare a semnalelor de
intrare pentru perceptronul cel mai de sus

Ilustrarea proprietăţii de clasificare a modelelor de semnal de intrare pentru perceptro-


nul cel mai de sus este explicată în Fig. 5.17 (b), pentru intrările p1 şi p2 , unde w1,1 = -1
iar w1,2 = +1. Aria umbrită din figură clasifică p1 şi p2 care dau ieşire +1, iar aria neum-
brită p1 şi p2 care dau ieşire 0. Delimitarea celor două zone este reprezentată de dreapta
L. Polarizarea are ca efect translaţia orizontală a dreptei L, păstrând aceeaşi înclinare a
dreptei, în timp ce ponderile intrărilor modifică înclinarea dreptei. Pentru mai mult de

50
două intrări limita clasificării este o hiperplan. Hiperplanul de delimitare a clasificării
poate fi proiectat individual, prin alegerea ponderilor şi polarizării.
O aplicaţie simplă a reţelelor de tip perceptron poate fi izolarea semnalelor corecte de
cele afectate de zgomot, în sistemele electronice de putere. Ele pot fi antrenate şi pen-
tru rezolvarea funcţiilor complexe booleene, cu semnale logice de intrare şi identifica-
rea caracteristicilor răspunsurilor sistemului de execuţie.
Reţelele neuronale de tip Adaline si Madaline (Adaline multiple) au aceeaşi structură
ca şi a perceptronului, cu diferenţa că FA este de tip liniar bipolar. Reţelele neuronale
liniare pot oferi doar dependenţe intrare-ieşire liniare. Pe lângă utilizarea în clasificarea
formelor ele mai pot fi folosite la liniarizarea funcţiilor neliniare (aproximarea funcţii-
lor neliniare) sau asocierea formelor.

C. Reţele neuronale de tip propagare inversă (backpropagation)


Topologia cu propagare inversă formată din mai multe straturi între care propagarea
este directă prezentată în Fig. 5.18 este cel mai des utilizat în electronica de putere şi
acţionările electrice. Termenul propagare inversă – backpropagation provine din mo-
dul în care se realizează procesul de antrenare supervizată a reţelei, prin cele două blo-
curi din partea de jos a figurii 5.18. Aceasta reţea poate fi numită şi perceptron multi-
strat (multilayer perceptron MLP), din cauza că provine din perceptronul prezentat
anterior, dar FA poate diferi de funcţia prag. Reţelele MLP sunt mult mai puternice
decât cele de tip perceptron. Algoritmul de antrenare supervizată prin reacţie inversă a
erorii a fost descris pentru prima dată de Paul Werbos în 1974. Alte contribuţii au adus
Rumelhart, Hinton, Williams, McClelland, Parker, LeCun, etc.
În exemplul din Fig. 5.18. există trei semnale de intrare X1 , X2 şi X3 şi două de ieşire Y1
şi Y2. Cercurile reprezintă neuroni cu FA asociate (care nu sunt reprezentate), iar pon-
derile sunt indicate prin linii întrerupte (adesea nu sunt nici ele reprezentate). Reţeaua e
formată din trei straturi: (a) stratul de intrare, (b) stratul ascuns şi (c) stratul de ieşire.
Cu cei cinci neuroni în stratul ascuns, reţeaua se simbolizează 3-5-2. Stratul de intrare
nu face altceva decât să distribuie semnalele înspre stratul ascuns, motiv pentru care
uneori reţeaua este considerată ca având de fapt numai două straturi. Sursa de polari-
zare este în mod normal cuplată atât la stratul ascuns cât şi la cel de ieşire, deşi în figu-
ră, pentru simplitate, este prezentată doar legătura cu stratul ascuns. Deşi reţeaua prelu-
crează variabile continue, semnalele de intrare şi de ieşire pot fi continue, logice, sau
discret bidirecţionale. Dacă intrările/ieşirile sunt bipolare neuronii stratului ascuns vor
avea de obicei FA tangentă hiperbolică iar cei ai stratului de ieşire vor avea FA liniare
bipolare. Pe de altă parte, pentru semnale unipolare, aceste FA pot fi sigmoidale res-
pectiv unipolar liniare. Semnalele în RN sunt normalizate, motiv pentru care este nevo-
ie de operaţiuni de scalare atât la intrare cât şi la ieşire. Deşi teoretic RN cu trei straturi
pot rezolva toate problemele de aproximare funcţională, ocazional se pot utiliza mai
mult de trei straturi.

51
Figura 5.18. Reţea neuronală cu propagare inversă cu trei straturi
Ca şi într-o RN biologică, în care memoria şi inteligenţa sunt distribuite în sinapse, în
cazul RN artificiale aceste atribute sunt distribuite în PS. Acest tip de inteligenţă per-
mite operaţiile primare cerute reţelelor: aproximările funcţionale şi recunoaşterea for-
melor. Astfel se pot construi şi memorii asociative, la care atunci când anumite forme
de semnal (pattern) sunt aplicate la intrare, la ieşire sunt generate forme corespunză-
toare de semnal. Aceste recunoaşteri şi generări de forme devin posibile prin antrena-
rea adecvată a RN.
O trăsătură distinctă a neurocomputing-ului este aceea că el devine extrem de rapid
când se implementează cu ajutorul unor structuri masive de calcul paralel, de tipul cip-
urilor ASIC. Un circuit ASIC dispune de memorii RAM/ROM, în care PS pot fi me-
morate iar FA pot fi implementate prin tabele de căutare. Această tehnică diferă de
tehnicile DSPP (microcomputere bazate pe calcul secvenţial) care sunt mai lente. Tot
datorită calculului paralel RN sunt tolerante faţă de defecţiuni, deteriorarea unor PS sau
a unor legături nu afectează semnificativ calitatea semnalului de ieşire. RN prezintă şi
proprietăţi de filtrare armonică sau a zgomotului.

52
1. Antrenarea prin propagare inversă (backpropagation): spre deosebire de progra-
marea convenţională, specificul RN constă din posibilitatea de antrenare supervizată
pornind de la seturi de date de antrenare. Acest procedeu este similar învăţării din RN
biologice.
Pentru început trebuie generat setul de date de antrenare, care poate fi obţinut fie pe
bază experimentală (prin înregistrarea vectorilor de intrare-ieşire din sistemul studiat în
condiţii semnificative, de exemplu răspunsul indicial), fie prin simulări pe calculator,
fie chiar prin metode analitice. Se creează o configuraţie iniţială a reţelei cu compoziţia
straturilor de intrare şi de ieşire dictată de dimensiunile vectorilor semnalelor de in-
trare/ieşire, cu un strat ascuns compus dintr-un număr limitat de neuroni şi de FA
corespunzătoare. Valori aleatoare dar suficient de mici pentru a nu satura neuronii sunt
alese pentru iniţializarea funcţiilor de activare. Apoi se aplică la intrare setul de date
ales şi se urmăresc ieşirile furnizate de reţea, care sunt comparate cu setul de date de
antrenare de ieşire. Se calculează eroarea E (de obicei sub forma erorii medii pătratice
MSE – mean square error sau a sumei pătratelor erorilor SSE – sum square error). În
continuare ponderile sunt modificate printr-un algoritm de bazat pe propagarea inversă,
până când eroarea scade sub o limită acceptabilă. Un astfel de ciclu de calcul se numeş-
te epocă. Antrenamente similare se repetă pentru toate seturile de date de antrenare,
până se reuşeşte satisfacerea ansamblului cerinţelor, caz în care RN se consideră a fi
suficient de bine antrenată. În cazul în care convergenţa antrenării este nesatisfăcătoare
se măreşte numărul neuronilor stratului ascuns sau chiar se adaugă straturi ascunse
suplimentare. S-a demonstrat că o RN cu trei straturi poate în principiu rezolva orice
problemă de aproximare funcţională.
În locul prelucrării câte unui singur set de date de antrenare, în mod secvenţial, se poa-
te utiliza antrenamentul în grup, în care toate seturile de date de antrenare sunt proce-
sate simultan.
Ajustarea ponderilor în sensul minimizării erorilor utilizează tehnica gradientului scă-
zător sub forma sa standard, în care ponderile sunt iterate pe rând, începând dinspre
stratul de ieşire. Să considerăm că o reţea a fost antrenată cu setul de date de intrare p,
iar eroarea pătratică pentru toţi neuronii stratului de ieşire este


Ep = d p  y p 2 =  d
Q

j 1
p
j  yj 
p 2 (5.2)

p p
unde d j este ieşirea dorită a neuronului j din stratul de ieşire, y j este ieşirea actuală a
p
aceluiaşi neuron, Q este dimensiunea vectorului de ieşire, d este vectorul dorit la
p
ieşire iar y este vectorul actual de ieşire. Suma totală a pătratelor erorilor SSE pentru
o mulţime de P seturi de date de antrenare este

53
 
P P Q 2
SSE = E = Ep =  p p
 dj  yj (5.3)
p 1 p 1 j 1

Ponderile neuronilor sunt ajustate în sensul minimizării valorii funcţiei obiectiv SSE,
conform ecuaţiei

 δE p 
Wij(k+1) = Wij(k) - η    (5.4)
 δWij ( k ) 
 
unde  este rata de învăţare, Wij(k+1) este noua pondere dintre neuronii i respectiv j
iar Wij(k) ponderea anterioară. Ponderile sunt recalculate iterativ pentru toate cele P
seturi de date de antrenare. Uneori se ia ca funcţie obiectiv eroarea medie pătratică
(MSE = SSE / Q). Pentru a ne asigura că SSE converge înspre minimul global (adică
nu este captat de un minim local), un termen  ∙ [Wij(k) - Wij(k-1)] este adăugat la
dreapta ecuaţiei (3),  având o valoare mică. O altă îmbunătăţire a algoritmului este
posibilă prin adoptarea unei rate de învăţare adaptive

 (k+1) = u ∙  (k) cu u <1 (5.5)


astfel încât să se minimizeze oscilaţiile posibile pe durata stabilizări în punctul de mi-
nim global. Mai multe metode de antrenare cu propagare inversă au fost propuse, dar
algoritmul Levenberg–Marquardt (L-M) este de departe cel mai popular, datorită con-
vergenţei sale rapide. Odată antrenată reţeaua ea trebuie testată cu seturi de date inter-
mediare. În mod normal antrenarea RN se face prin programe specializate cum ar fi
Neural Network Toolbox din pachetul Matlab.

2. Antrenarea online: În antrenamentul offline, prezentat mai sus, ponderile RN odată


stabilite rămân fixe sau neadaptive. În multe aplicaţii RN trebuie să emuleze funcţii ne-
liniare sau variabile în timp, caz în care RH necesită antrenarea continuă online. Acest
gen de RN se numeşte adaptivă deoarece fie ponderile fie chiar structura lor sunt adap-
tive. Variante rapide şi îmbunătăţite ale algoritmilor cu propagare inversă (L-M de
exemplu) pot fi aplicate în antrenarea online, fie rulând pe PC-uri de mare viteză, fie pe
DSP-uri, dacă viteza procesului nu este foarte ridicată. Din fericire viteza DSP-urilor a
crescut mult în ultimii ani iar costul memoriilor a scăzut. Dacă domeniul de variaţie a
parametrilor procesului este cunoscut dinainte, RN poate fi antrenată offline cu para-
metrii nominali, după care ajustarea adaptivă online cade în sarcina DSP-urilor de mare
viteză. Un algoritm de schimbare aleatorie a ponderilor (random weight change RWC)
a fost propus pentru creşterea vitezei de învăţare online. Metodele bazate pe filtrele
Kalman extinse pot fi de asemenea aplicate.

54
Figura 5.19. Structura unei reţele neuronale recurente în timp real RNN (a) cu schema bloc a
antrenării

55