Sunteți pe pagina 1din 52

Grif Horaţiu Ştefan

INTELIGENŢĂ ARTIFICIALĂ
CURS

1
I. Reţele neuronale artificiale ............................................................................... 3
I.1 INTRODUCERE ................................................................................................................................................ 3
I.2 NEURONUL BIOLOGIC ..................................................................................................................................... 3
I.3 PERCEPTRONUL BINAR ................................................................................................................................... 5
I.3.1 Structura generală a perceptronului binar ............................................................................................ 5
I.3.2 Algoritm de antrenare al perceptronului binar ..................................................................................... 6
I.4 NEURONUL ARTIFICIAL ................................................................................................................................ 12
I.5 REŢELE NEURONALE ARTIFICIALE FEED-FORWARD MULTISTRAT ................................................................. 15
I.5.1 Introducere .......................................................................................................................................... 15
I.5.2 Reţele neuronale artificiale feedforward (RNAFF) fără strat ascuns ................................................. 15
I.5.2.1 Structura RNAFF ........................................................................................................................................... 15
I.5.2.2 Regla de învăţare Widrow-Hoff (Delta) ......................................................................................................... 16
I.5.2.3 Procedură iterativă pentru antrenarea RNAFF utilizând regula Delta ............................................................ 18
I.5.3 RNAFF cu unul sau mai multe straturi ascunse .................................................................................. 19
I.5.3.1 Structura RNAFF ........................................................................................................................................... 19
I.5.3.2 Regula de învăţare Delta generalizată ............................................................................................................ 20
I.5.4 Procedură iterativă pentru antrenarea RNA cu strat ascuns utilizând regula Delta generalizată ..... 24
I.5.4 Reţele neuronale artificiale cu funcţii de activare radiale .................................................................. 25
I.5.4.1 Structura RNA-RBF ....................................................................................................................................... 25
I.6 MEMORII ASOCIATIVE .................................................................................................................................. 28
I.6.1 Definiţii ................................................................................................................................................ 28
I.6.1.1 Distanţa Hamming ......................................................................................................................................... 28
I.6.1.2 Tipuri de memorii asociative.......................................................................................................................... 29
I.6.2 Memorii asociative bidirecţionale (MAB) ........................................................................................... 29
I.6.2.1 Structura MAB ............................................................................................................................................... 29
I.6.2.2 Procesarea în MAB ........................................................................................................................................ 30
I.6.2.3 Formalismul matematic al MAB .................................................................................................................... 30
I.6.2.4 Funcţia de energie a MAB ............................................................................................................................. 32
6.3. Memoria Hopfield ................................................................................................................................. 33
6.3.1. Memoria Hopfield discretă .............................................................................................................................. 33
5.3.2. Memoria Hopfield cu valori continue.............................................................................................................. 34
7. REŢEAUA CARPENTER-GROSSBERG .............................................................................................................. 35
7.1 Prezentare generală ............................................................................................................................... 35
7.2. Dilema stabilitate-plasticitate ............................................................................................................... 35
7.3. Arhitectura ART1. Funcţionarea de bază ............................................................................................. 36
7.4. Algoritmul de antrenare ART1 .............................................................................................................. 41

II. Logica fuzzy ....................................................................................................43


II.1 NOŢIUNI DE LOGICĂ FUZZY ......................................................................................................................... 43
II.1.1. Introducere ........................................................................................................................................ 43
II.1.2. Definiţii ............................................................................................................................................. 43
II.2. STRUCTURA GENERALĂ A UNUI SISTEM FUZZY .......................................................................................... 44
II.2.1 Variabile, valori şi reguli lingvistice .................................................................................................. 44
II.2.1.1 Universul de discurs (de variaţie) ................................................................................................................. 44
II.2.1.2 Variabile lingvistice ...................................................................................................................................... 45
II.2.1.3 Valori lingvistice .......................................................................................................................................... 45
II.2.1.4 Reguli lingvistice .......................................................................................................................................... 46
II.2.1.5 Mulţimea fuzzy şi conectori şi operatori fuzzy ............................................................................................. 46
II.2.1.5.2 Conectori şi operatori ai mulţimilor fuzzy .................................................................................................47
II.2.2 Fuzzyficarea ....................................................................................................................................... 47
II.2.3 Mecanismul de decizie........................................................................................................................ 48
II.2.3.1 Etapa de potrivire.......................................................................................................................................... 48
II.2.3.2 Etapa de decizie ............................................................................................................................................ 49
II.2.4 Defuzzyficarea .................................................................................................................................... 50
II.2.5. Structuri fuzzy .................................................................................................................................... 51
II.2.5.1. Structura Mamdani ...................................................................................................................................... 51
II.2.5.2. Structura Takagi-Sugeno ............................................................................................................................. 51
BIBLIOGRAFIE ................................................................................................................................................... 52

2
I. Reţele neuronale artificiale

I.1 INTRODUCERE
Reţelele neuronale artificiale (RNA) sunt modele simplificate ale reţelelor de neuroni naturali,
neuronii fiind conectaţi prin sinapse artificiale (numite ponderi) artificiale.
RNA mai sunt cunoscute şi sub numele de:
- modele conexioniste,
- modele de prelucrare paralelă distribuită,
- sisteme neuromorfe,
- sisteme neurodinamice,
- calculatoare neuronale.
Modelele de reţele neuronale sunt formate din elemente simple (unităţi de procesare) de calcul
interconectate printr-o reţea densă de conexiuni. Fiecare unitate de procesare este capabilă să
execute calcule simple dar reţeaua, ca întreg, poate avea calităţi remarcabile în rezolvarea
problemelor pentru care nu posedăm un algoritm, deoarece posedă capacitatea de învăţare din
exemple sau experienţă.
RNA fiind modele ale reţelelor de neuroni biologici vor avea la rândul lor aceleaşi
caracteristici fundamentale, şi anume:
- paralelismul înalt,
- capacitatea de învăţare.
Pentru o înţelegere mai bună reţelelor neuronale se va studia în continuare elementul de bază
dintr-o reţea neuronală şi anume neuronul.

I.2 NEURONUL BIOLOGIC


Simplificat neuronul biologic (Figura 2.1) este format din:
- corpul celulei (soma)
- dendrite (intrările în neuron)
- axon (ieşirea din neuron)

3
Figura 2.1. Reprezentarea schematică a neuronului biologic

“Punctele” de interconectare între neuroni poartă numele de joncţiuni sinaptice (sau


simplificat sinapse), prin intermediul lor realizându-se schimbul de informaţii. La nivelul unei
sinapse anumite substanţe chimice vor modifica permeabilitatea (starea de polarizare
electrostatică) membranelor celulelor presinaptică şi postsinaptică, favorizând difuzia
anumitor specii de ioni spre interiorul celulei postsinaptice. În funcţie de semnul ionilor va
apărea un efect excitator sau inhibitor al conexiunii dintre cele două celule neuronale. Aceste
efecte sunt în realitate potenţiale electrice, de diferite nivele, ce se transmit prin dendrite spre
corpul celulei neuronale postsinaptice, şi mai departe spre axon. Potenţialele electrice
transmise se vor însuma la rădăcina axonului şi dacă această sumă este mai mare decât un
anumit prag atunci va fi generat un potenţial de acţiune.

4
I.3 PERCEPTRONUL BINAR

Perceptronul binar este prima reţea neuronală care avut un real impact în comunitatea
ştiinţifică cât şi cea inginerească datorită implicaţiilor pe care le poate avea o “maşină” reală
ce poate învăţa. Multe din reţelele neuronale cu învăţare complexa ce vor apărea mai târziu,
nu sunt, decât nişte modeste extensii ale perceptronului. Perceptronul a fost propus de
psihologul Frank Rosenblatt în 1958 în cadrul unui răspândit raport tehnic al Cornell
Aeronautical Laboratory.

I.3.1 Structura generală a perceptronului binar


Structura generală a perceptronului binar este prezentată în Figura 3.1.

Figura 3.1. Strucura generală a perceptronului binar


Semnificaţia notaţiilor din Figura 3.1 este urmăatoarea:
- x1, x2, … , xn – intrările perceptronului binar (valori: 0 sau 1);
- n – numărul de intrări ale perceptronului binar;
- 1, 2, … , n,  – ponderi (echivalentul sinapselor neuronului biologic), intrarea care
prezintă ponderea  poartă numele de intrare de offset (bias);
- y - intrarea generală a perceptronului;
- Fa(y) – funcţia de activare a perceptronului binar, este funcţia treaptă unitară
0 daca y  0
Fa  y    (1)
1 daca y  0
- a– ieşirea perceptronului
a = Fa(y) (2)
O altă formă de reprezentare (mai compactă) a perceptronului binar este prezentată în Figura
3.2.

Figura 3.2. Forma compactă de reprezentare a perceptronului binar

5
Scopul antrenării (învăţării) perceptronului binar este de a modifica ponderile i (i=1n),  în
vederea realizării transformării dorită T(.):
T(x, ): {0,1}n  {0,1} (3)
unde:
- x - reprezintă vectorul intrărilor;
-  - reprezintă vectorul ponderilor.
În continuare se va prezenta algoritmul general de antrenare a unui perceptron binar cu n
intrări.

I.3.2 Algoritm de antrenare al perceptronului binar


Pas 1:Se alege numărul de intrări ale perceptronului binar. Se aleg aleator valorile iniţiale
(numere reale) ale elementelor vectorului de ponderi. Se alege o variabilă e pentru memorarea
erorii de învăţare în pasul curent a perceptronului. Se alege o variabilă E pentru memorarea
erorii globale de învăţare şi se iniţializează cu valoarea E=0. Fie P numărul vectorilor de
instruire (invăţare) disponibili. Un vector de antrenare reprezintă cuplul de vectori (x, d), unde
x reprezintă vector de intrare iar d ieşirea dorită corespunzătore vectorului de intrare x. Se
utilizează o variabilă contor k şi se iniţializează k=1, valoarea maximă pe care o poate lua k
este valoarea lui P.
k 
Pas 2. Se prezintă perceptronului vectorul de intrare x şi ieşirea corectă d k  (ieşirea
dorită),
Pas 3. Se calculează intrarea totală a perceptronului:

 
n
y k     j k  x j k    k  (4)
j 1

unde:
 j – ponderea de pe intrarea j a neuronului
n – numărul de intrări.
Se calculează ieşirea perceptronului:

a k   F y k   (4)
unde F(.) este funcţia treaptă unitară.
Pas 4. Se calculează eroarea de învăţare globală:
E  E  e  k   E  d k   a  k  (5)

Pas 5. Se modifică ponderile perceptronului folosind relaţiile:


ik 1  ik   ik  
 ik   ek   xik   (7)
 
 ik   d k   a k   xik  , i  1, n

 k 1   k    k  
  k   e k   1  (8)

  k   d k   a k  
Pas 6. Se realizează incrementarea k=k+1

6
Dacă k  P salt la pasul P2, altfel se continuă cu pasul P7 (s-a efectuat o epocă de
antrenare).
Pas 7. Dacă eroarea de învăţare globală E are valoarea 0, atunci STOP. În caz contrar, se
setează E=0, k=1 şi se efectuează salt la pasul P2 (se începe o nouă epocă de antrenare).

Exemplu
Se pune problema antrenării unui perceptron binar în vederea redării comportării unei porţi
logice ŞI (AND) cu două intrări.
Simbolul şi tabelul de adevăr ale porţii logice ŞI sunt presentate în Figura 3.3.

Figura 3.3. Poarta logică ŞI: a) simbol; b) tabel de adevăr


Rezolvare:
Se aplică algoritmul de antrenare a perceptronului binar.
Pas1.
Din descrierea problemei se deduc următoarele: perceptronul trebuie să prezinte două intrări
pe lângă cea de offset, valorile de intrare şi ieşire fac parte din mulţimea {0,1}, se cunosc
vectorii de învăţare de intrare (toate perechile de valori (x1,x2) din tabelul din Figura 3.3b),
se cunosc valorile dorite (valorile lui d din tabelul din Figura 3.3b) la ieşirea perceptronului
corespunzătoare vectorilor de intrare de învăţare. Numărul vectorilor de antrenare P=4 (este
dat de numărul de linii ale tabelului din Figura 3b). În practică valorile ponderilor se aleg în
mod aleator. Pentru problema de faţă s-au ales valorile ponderilor de la începutul ultimei
epoci de antrenare a perceptronului binar, acestea fiind:
1 = 1,2; 2 = 1,0;  =  0,15
Se alege variabila contor k şi se va seta cu valoare 1. Se alege variabila e pentru memorarea
valorii erorii de învăţare curente şi variabila E pentru memorarea erorii globale de învăţare
şi se iniţializează cu valoarea E=0.
Prima epocă de antrenare
 k=1
Pas 2 Se alegege primul vector de intrare de antrenare (k=1) şi valoarea dorită
corespunzătoare la ieşirea perceptronului binar (sunt valorile din prima linie a tabelului de
adevăr al perceptronului binar din Figura 3.3b)
x1<1>= 0; x2<1> = 0; d <1> = 0;
Pas 3 Calcularea ieşirii (activarea) perceptronului binar
- Se calculează intratea totală a perceptronului binar
y <1>
= x1<1>1<1> + x2<1>2<1> + 1 <1> = 01,2 + 01 + 1(-0,15) = -0,15;
- Se calculează activarea perceptronului binar
<1>
a = Fa(y<1>) = Fa(-0,15) = 0;

7
Pas 4 Calcularea eroarii de învăţare
e<1> = d <1> - a <1> = 0 – 0 = 0;
E= E+ abs(e<1>) = 0 + 0 = 0;
Pas 5 Actualizarea ponderilor
1<2> = 1<1> + 1<1> = 1<1> + e<1>  x1<1> = 1,2 + 00 = 1,2;
2<2> = 2<1> + 2<1> = 2<1> + e<1>  x2<1> = 1,0 + 00 =1,0;
 <2> =  <1> +  <1> =  <1> + e<1>  x1<1> = -0,15 + 00 = -0,15
Pas 6 k = k + 1 = 2  P=4 salt la Pas 2.
 k=2
Pas 2 Se alegege al doilea vector de intrare de antrenare (k=2) şi valoarea dorită
corespunzătoare la ieşirea perceptronului binar (sunt valorile din a doua linie a tabelului de
adevăr al perceptronului binar din Figura 3.3b)
x1<2>= 1; x2<2> = 0; d <2> = 0;
Pas 3 Calcularea ieşirii (activarea) perceptronului binar
- Se calculează intratea totală a perceptronului binar
y<2> = x1<2>1<2> + x2<2>2<2> + 1 <2> = 11,2 + 01 + 1(-0,15) = 1,2-0,15=1,05;
- Se calculează activarea perceptronului binar
a<2> = Fa(y<2>) = Fa(1,05) = 1;
Pas 4 Calcularea eroarii de învăţare
e<2> = d <2> - a <2> = 0 – 1 = -1;
E= E+ abs(e<2>) = 0 + abs(-1) = 1;
Pas 5 Actualizarea ponderilor
1<3> = 1<2> + 1<2> = 1<2> + e<2>  x1<2> = 1,2 + (-1)1 = 0,2;
2<3> = 2<2> + 2<2> = 2<2> + e<2>  x2<2> = 1,0 + (-1)0 =1,0;
 <3> =  <2> +  <2> =  <2> + e<2>  x1<2> = -0,15 + (-1)1 = -1,15
Pas 6 k = k + 1 = 3  P=4 salt la Pas 2.
 k=3
Pas 2 Se alegege al treilea vector de intrare de antrenare (k=3) şi valoarea dorită
corespunzătoare la ieşirea perceptronului binar (sunt valorile din a treia linie a tabelului de
adevăr al perceptronului binar din Figura 3.3b)
x1<3>= 0; x2<3> = 1; d <3> = 0;
Pas 3 Calcularea ieşirii (activarea) perceptronului binar
- Se calculează intratea totală a perceptronului binar
y<3> = x1<3>1<3> + x2<3>2<3> + 1 <3> = 00,2 + 11,0 + 1(-1,15) = 1-1,15=-0,15;
- Se calculează activarea perceptronului binar
a<3> = Fa(y<3>) = Fa(-0,15) = 0;
Pas 4 Calcularea eroarii de învăţare
e<2> = d <2> - a <2> = 0 – 0 = 0;
E= E+ abs(e<2>) = 1 + 0 = 1;

8
Pas 5 Actualizarea ponderilor
1<4> = 1<3> + 1<3> = 1<3> + e<3>  x1<3> = 0,2 + 00 = 0,2;
2<4> = 2<3> + 2<3> = 2<3> + e<3>  x2<3> = 1,0 + 01 =1,0;
 <4> =  <3> +  <3> =  <3> + e<3>  x1<3> = -1,15 + 01 = -1,15
Pas 6 k = k + 1 = 4  P=4 salt la Pas 2.

 k=4
Pas 2 Se alegege al patrulea vector de intrare de antrenare (k=4) şi valoarea dorită
corespunzătoare la ieşirea perceptronului binar (sunt valorile din a patra linie a tabelului de
adevăr al perceptronului binar din Figura 3.3b)
x1<4>= 1; x2<4> = 1; d <4> = 1;
Pas 3 Calcularea ieşirii (activarea) perceptronului binar
- Se calculează intratea totală a perceptronului binar
y<3> = x1<3>1<3> + x2<3>2<3> + 1 <3> = 10,2 + 11,0 + 1(-1,15) = 1,2-1,15=0,05;
- Se calculează activarea perceptronului binar
<3>
a = Fa(y<3>) = Fa(0,05) = 1;
Pas 4 Calcularea eroarii de învăţare
e<2> = d <2> - a <2> = 1 – 1 = 0;
E= E+ abs(e<2>) = 1 + 1 = 2;
Pas 5 Actualizarea ponderilor
1<5> = 1<4> + 1<4> = 1<4> + e<4>  x1<4> = 0,2 + 01 = 0,2;
2<5> = 2<4> + 2<4> = 2<4> + e<4>  x2<4> = 1,0 + 01 =1,0;
 <5> =  <4> +  <4> =  <4> + e<4>  x1<4> = -1,15 + 01 = -1,15
Pas 6 k = k + 1 = 5 > P=4 continuare cu Pas 7.
Pas 7 E=2>0  E = 0, k=1, 1<1>= 1<5>, 2<1>= 2<5>,  <1>= <5>, salt la Pas 2

Epoca a doua de antrenare


 k=1
Pas 2 Se alegege primul vector de intrare de antrenare (k=1) şi valoarea dorită
corespunzătoare la ieşirea perceptronului binar
x1<1>= 0; x2<1> = 0; d <1> = 0;
Pas 3 Calcularea ieşirii (activarea) perceptronului binar
- Se calculează intratea totală a perceptronului binar
y<1> = x1<1>1<1> + x2<1>2<1> + 1 <1> = 00,2 + 01 + 1(-1,15) = -1,15;
- Se calculează activarea perceptronului binar
<1>
a = Fa(y<1>) = Fa(-1,15) = 0;
Pas 4 Calcularea eroarii de învăţare
e<1> = d <1> - a <1> = 0 – 0 = 0;
E= E+ abs(e<1>) = 0 + 0 = 0;

9
Pas 5 Actualizarea ponderilor – deoarece eroarea de învăţare e<1> = 0 valorile ponderilor nu
se modifică.
Pas 6 k = k + 1 = 2  P=4 salt la Pas 2.

 k=2
Pas 2 Se alegege al doilea vector de intrare de antrenare (k=2) şi valoarea dorită
corespunzătoare la ieşirea perceptronului binar
x1<2>= 1; x2<2> = 0; d <2> = 0;
Pas 3 Calcularea ieşirii (activarea) perceptronului binar
- Se calculează intratea totală a perceptronului binar
y<2> = x1<2>1<2> + x2<2>2<2> + 1 <2> = 10,2 + 01 + 1(-1,15) = -0,95;
- Se calculează activarea perceptronului binar
<2>
a = Fa(y<2>) = Fa(-0,95) = 0;
Pas 4 Calcularea eroarii de învăţare
e<2> = d <2> - a <2> = 0 – 0 = 0;
E= E+ abs(e<2>) = 0 + 0 = 0;
Pas 5 Actualizarea ponderilor – deoarece eroarea de învăţare e<2> = 0 valorile ponderilor nu
se modifică.
Pas 6 k = k + 1 = 3  P=4 salt la Pas 2.
 k=3
Pas 2 Se alegege al treilea vector de intrare de antrenare (k=3) şi valoarea dorită
corespunzătoare la ieşirea perceptronului binar
x1<3>= 0; x2<3> = 1; d <3> = 0;
Pas 3 Calcularea ieşirii (activarea) perceptronului binar
- Se calculează intratea totală a perceptronului binar
y<3> = x1<3>1<3> + x2<3>2<3> + 1 <3> = 00,2 + 11 + 1(-1,15) = -0,15;
- Se calculează activarea perceptronului binar
a<3> = Fa(y<3>) = Fa(-0,15) = 0;
Pas 4 Calcularea eroarii de învăţare
e<3> = d <3> - a <3> = 0 – 0 = 0;
E= E+ abs(e<3>) = 0 + 0 = 0;
Pas 5 Actualizarea ponderilor – deoarece eroarea de învăţare e<3> = 0 valorile ponderilor nu
se modifică.
Pas 6 k = k + 1 = 4  P=4 salt la Pas 2.
 k=4
Pas 2 Se alegege al patrulea vector de intrare de antrenare (k=4) şi valoarea dorită
corespunzătoare la ieşirea perceptronului binar
x1<4>= 1; x2<4> = 1; d <4> = 0;

10
Pas 3 Calcularea ieşirii (activarea) perceptronului binar
- Se calculează intratea totală a perceptronului binar
y<4> = x1<4>1<4> + x2<4>2<4> + 1 <4> = 10,2 + 11 + 1(-1,15) = 0,05;
- Se calculează activarea perceptronului binar
a<4> = Fa(y<4>) = Fa(0,05) = 1;
Pas 4 Calcularea eroarii de învăţare
e<4> = d <4> - a <4> = 1 – 1 = 0;
E= E+ abs(e<4>) = 0 + 0 = 0;
Pas 5 Actualizarea ponderilor – deoarece eroarea de învăţare e<4> = 0 valorile ponderilor nu
se modifică.
Pas 6 k = k + 1 = 5  P=4 continuare cu Pas 7.
Pas 7 E=0  Stop algoritm de antrenare. Perceptronul binar a invăţat.

11
I.4 NEURONUL ARTIFICIAL

Modelul general al unui neuron artificial este prezentat în Figura 4.1.

Figura 4.1. Modelul general al neuronului artificial

Semnificaţiile notaţiilor din Figura 4.1 sunt:

 
- xi i  1, n reprezintă intrările în neuron. Aceste intrări în cazul integrării neuronului
într-o reţea de neuroni vor reprezenta activările tuturor neuronilor conectaţi la acest
neuron în cauză. Setul celor n intrări x=(x1 x2 …xn) mai este cunoscut şi sub numele de
vector de intrare
 
- wi i  1, n reprezintă ponderarea intrării i. Această pondere determină efectul pe care
îl are semnalul oferit de intrarea i asupra ieşirii neuronului. Ponderile reprezintă
echivalentul joncţiunilor sinaptice întâlnite la reţelele de neuroni biologici.
- Neuronul “vede” toate intrările ca o intrare generală (totală) y care este calculată
folosind o funcţie de intrare la care se adaugă o valoare de offset sau bias (). În
majoritatea cazurilor funcţia de intrare utilizată este funcţia sumă ponderată a tuturor
intrărilor xi. Expresia matematică de calcul a intrării generale în acest caz este dată de
relaţia:
n
y  Fin x      xi wi   (9)
i 1

Alte tipuri de funcţii folosite ca funcţii de intrare:


- funcţia max{xiwi}, i=1…n,
- funcţia min{xiwi}, i=1…n,
- funcţia (xiwi), i=1…n,
- Funcţia de activare stabileşte activarea neuronului. Din cele prezentate în paragraful
anterior, neuronul biologic poate fi activ (excitat) sau nu. Deci prezintă o “stare de
activare”. La fel şi neuronii artificiali pot să aibă, unii, două stări de activare (cazul
perceptronului binar) sau mai multe stări de activare (cazul “neuronilor artificiali
reali”).
Tipuri de funcţii pentru funcţia de activare (Fa) a neuronului artificial:
- funcţia prag (Figura 4.2):

12
 1 daca y  0
Fa ( y )   (10)
 1 daca y  0

Figura 4.2. Funcţie de activare prag

- funcţia liniară (Figura 4.3):

 1 daca y  1

Fa ( y )   y daca y  1 (11)
 1 daca y  1

Figura 4.3. Funcţie de activare liniară

- funcţia sigmoid unipolară (Figura 4.4):

1
Fa ( y )  (12)
1  ey

Figura 4.4. Funcţie de activare


sigmoid unipolară
- funcţia sigmoid bipolară (Figura 4.5):

2
Fa ( y )  1 (13)
1  ey

Figura 4.5. Funcţie de activare


sigmoid bipolară
- funcţia tangentă hiperbolică (Figura 4.6):

13
e y  e y
Fa ( y )  tanh( y )  (14)
e y  ey

Figura 4.6. Funcţie de activare


tangentă hiperbolică
- a reprezintă activarea (ieşirea) neuronului:
a=Fa(y) (15)
adică valoarea oferită de funcţia de activare.

14
I.5 REŢELE NEURONALE ARTIFICIALE FEED-FORWARD MULTISTRAT

I.5.1 Introducere
Din punct de vedere topologic se disting două tipuri de reţele neuronale artificiale (RNA):
- reţele neuronale feedforward
- reţele neuronale recurente
RNA feed-forward sunt reţele de neuroni care nu conţin conexiuni inverse, adică conexiuni de
la ieşiri către intrările neuronilor din acelaşi strat sau către intrările unor neuroni din straturile
anterioare. Astfel transmisia de date se face într-un singur sens, de la neuronii din stratul de
intrare spre neuronii din stratul de ieşire. În contrast cu reţelele feedforward, reţelele
neuronale recurente conţin conexiuni inverse de la neuronii din stratul de ieşire la neuronii din
straturile anterioare (conexiuni feed-back).

I.5.2 Reţele neuronale artificiale feedforward (RNAFF) fără strat ascuns

I.5.2.1 Structura RNAFF


RNAFF fără strat ascuns mai sunt cunoscute si sub următoarele denumiri: RNAFF cu două
straturi (nu ambele straturi sunt formate din neuroni) sau RNAFF cu un singur strat de
neuroni. Uneori se produc confuzii datorită acestor denumiri. Pentru a clarifica situaţia şi a
înlătura confuzia, în Figura 5.1 este prezentată structura generală a unei RNAFF fără strat
ascuns (semnificaţia noţiunii strat ascuns va fi prezentată în secţiunea dedicată RNAFF cu
strat/straturi ascuns/ascunse).

Figura 5.1. Structura generală a unei RNAFF fără strat ascuns


După cum se poate observa în Figura 5.1 o RNAFF fără strat ascuns este compusă doar din
două straturi de elemente de procesare (noduri): strat de intrare şi strat de ieşire. Nodurile
stratului de intrare nu sunt neuroni artificiali, aceste noduri având doar rolul de a distribui
valorile semnalul de la intrarea lor la intrările nodurilor din stratul de ieşire. Nodurile stratului
de ieşire sunt defapt neuroni artificiali. Astfel, autorii care numesc acest tip de RNAFF ca
RNAFF cu două strauri scot în evidenţă observaţia prin care se afirmă că nodurile stratului de
intrare au doar rol de a distribui semnalul de la intrarea lor la intrarea neuronilor din stratul de
ieşire. Autorii care numesc acest tip de RNAFF ca RNAFF cu un singur strat nu scot în
evidenţă existenţa stratului de intrare ci doar stratul de neuroni artificiali, care este defapt
startul de ieşire ale RNA reprezentate în Figura 5.1. În continuare, în lucrarea de faţă acest tip
de RNAFF va fi nominalizat cu noţiunea general valabilă: RNAFF fără strat ascuns.
Semnificaţia notaţiilor din Figura 5.1 este următoarea:

15
- N0 numărul de noduri din stratul de intrare;
- N1 numărul de neuroni artificiali din stratul de ieşire;

 
- xi i  1, N 0 reprezintă intrările în RNA. Setul celor N0 intrări x=(x1 x2 …xN0) mai este
cunoscut şi sub numele de vector de intrare;
 
- ij i  1, N1 , j  1, N 0 reprezintă ponderarea dintre neuronul artificial i din stratul de ieşire
şi nodul j din stratul de intrare (cu alte cuvinte este ponderea intrării j a neuronului i din
stratul de ieşire);
-  10 matricea de ponderi dintre stratul de ieşire (STRAT 1) şi stratul de intrare (STRAT 0);

 
- i1 i  1, N1 reprezintă ponderea intrării de bias a neuronului artificial i din stratul de ieşire;

- a i  1, N  reprezintă activarea neuronului artificial i din stratul de işire. Cu alte cuvinte


1
i 1
este valoarea calculată a ieşirii i a RNA.

I.5.2.2 Regla de învăţare Widrow-Hoff (Delta)


Regula de învăţare Delta este folosită pentru antrenarea unei RNA feedforward fără strat
ascuns.
În continuare se va considera o RNA cu structura celei din Figura 5.1, funcţia de intrare a
neuronilor din stratul de ieşire fiind funcţia sumă ponderată.
Notă: În continuare se va defini ca vector de învăţare (sau model de antrenare) cuplul (x,d),
unde x reprezintă vectorul de învăţare de intrare în RNA, iar d reprezintă vectorul de ieşire, de
învăţare, dorit (corespunzător lui x) al RNA.
Eroarea globală de învăţare (de antrenare, de instruire) este dată de relaţia:
q
E   E k  (16)
k 1

unde:
q - numărul vectorilor de antrenare;
E<k> reprezintă eroare medie pătratică de învăţare, atunci când reţelei neuronale îi este
prezentată vectorul de învăţare (x<k>,d<k>) şi este dată de relaţia:

E k  
1 k 
2
d a
1k 
2
 
2 i1

1 N1 k 
d i  a1k 
i 2
  
1 N1 k 
2 i1
 
di  Fa yi1
k  2
(17)

unde:
N1 – numărul de neuroni din stratul de ieşire
di – ieşirea dorită pentru neuronul i din stratul de ieşire
ai1 – activarea neuronului i din stratul de ieşire (ieşirea curentă (reală) a neuronului i)
yi1 – intrarea totală a neuronului i din stratul de ieşire care conform alegerii făcute
pentru funcţia de intrare (sumă ponderată) şi relaţiei (9) se poate exprima prin:
N0
yi1   ij x j   i1 (18)
j 1

unde:
N0 – numărul de neuroni din stratul de intrare;

16
ij – reprezintă ponderea dintre neuronul i din stratul de ieşire şi nodul j din
stratul de intrare;
xj – reprezintă intrarea j a neuronului i din stratul de ieşire;
i1 – reprezintă ponderea intrării de bias a neuronului i din stratul de ieşire.
Regula Delta găseşte valorile tuturor ponderilor care minimizează funcţia de eroare folosind
metoda gradientului descrescător. Astfel ponderile vor fi modificate proporţional cu derivata
erorii în sens invers, măsurată pe vectorul curent de antrenare în raport cu fiecare pondere:
ijk 1  ijk   ijk   ijk      grad E k   ij

 E k   (19)
 ijk      
 ij 

unde  este rata de învăţare.
În continuare se va dezvolta termenul E<k>/ij considerând ponderile ij ca fiind ale
stratului de ieşire (Figura 5.2):
k 
E k  E k  yi1 E k    N0 
    ip x p   i1  
ij ij  
yi1 ij  p1
 k   k 
yi1 
E k 
 x j k    ik  x j k   x j k  ik 
1k 
y i

E k 
 x j k  ik  , i  1, N1 , j  1, N 0 (20)
ij

Figura 5.2. Explicativă pentru actualizarea ponderilor din stratul de ieşire. 10 matricea de
ponderi dintre stratul de intrare (Stratul 0) şi stratul de ieşire (Stratul 1)
Variaţia erorii în funcţie de intrarea totală (yi<k>) a neuronului i din stratul de ieşire se poate
scrie:
k 
E k  E k  ai1
 i
k 
 k 
 k 
 k  (21)
yi1 ai1 yi1
Utilizând relaţia (17) relaţia (21) devine:
k  k 
 1 N1 k 
 ik  
E k 
1k 

E k  ai1
1k  1k 

ai1
1k 

1k   2 
 
d j  a j k    
2

y i a i y i y i ai  j 1 

17
   
k  k  k 
ai1 1 k  (ai1 ) 1k  ai
1
 k 
  2  d ik   ai1  k 
  d i
k 
 ai k 
yi1 2 ai1 yi1

  y
k 
1k  ai1
 i
k 
d i
k 
a i 1k 
(22)
i

Folosind relaţia (22) relaţia (20) devine:

 
k 
E k  k  ai
1
  x j k  dik   ai1 , i  1, N1 , j  1, N 0 (23)
ij yi1
k 

Astfel, ponderile stratului de ieşire vor fi actualizate adăugând la vechea valoare, valoarea
dată de relaţia:
E k 
 k 
   gradij E k 
     x j k  ik  
ij
ij

(24)
d  y
k 
1 k  ai1
 x k  k 
a
j i i 1 k 
i

I.5.2.3 Procedură iterativă pentru antrenarea RNAFF utilizând regula Delta


Dându-se un număr q de vectori de antrenare aranjaţi în următorul set de vectori de antrenare
{(x<1> , d<1> ), …,(x<q> , d<q> ) }
unde
x<k> = (x1<k> , …, xN0<k> ) – vector de intrare de antrenare,
d<k> = (d1<k> , …, dN1<k> ) - vector de ieşire de antrenare,
k{1,2, ..., q},
N1 - numărul de neuroni din stratul de ieşire.
Pas 1 Se alege valoarea pentru rata de învăţare 0 < < 1, valoarea admisibilă a erorii  > 0
precum şi funcţia de activare (Fa(.)) a neuronilor din stratul de ieşire. Ponderile  ij sunt
iniţializate cu valori mici aleatoare (de ex. în intervalul [-1,1]), se setează variabila contor k =
1, şi se iniţializează eroarea globală E = 0.
Pas 2 Se alege cuplul de vectori de antrenare (x<k>, d<k>).
Pas 3 Se calculează ieşirea reţelei neuronale
a<k> = (a1<k> , …, aN1 <k> ),
unde

   F   
N0
k  k 
ai1  Fa yi1 a
k 
ij x j k    i1 
 j 1 
i = 1,…, N1,
N1 – numărul de neuroni din stratul de ieşire,
N0 – numărul de noduri din stratul de intrare,
Pas 4 Se calculează eroarea globală adăugând eroarea pătratică curentă (E<k>) la E

18
E  E  E k   E 
1 N1 k 

2 i1

di  ai1
k 
2

Pas 5 Se actualizează ponderile dintre straturi:



ijk 1  ijk   ijk   ijk      x j k    ik   ,

unde  ik  este dat de următoarea relaţie:

  y
k 
1k  ai1
 i
k 
d i
k 
a
i 1k 
, i  1, N1 .
i

Pas 6 Dacă k <q atunci k= k + 1 salt la pasul Pas 2, altfel se continuă cu pasul Pas 7
Pas 7 Este completă o epocă de antrenare (în literatura de specialitate termenul epocă se
referă la prezentarea reţelei neuronale a tuturor vectorilor de antrenare). Dacă E <  atunci se
încheie antrenarea. Dacă E >  atunci E este setat la valoarea 0, k = 1 şi se iniţiază o nouă
epocă de antrenare printr-un salt la pasul Pas 2.

I.5.3 RNAFF cu unul sau mai multe straturi ascunse

I.5.3.1 Structura RNAFF


O RNAFF multistrat spre deosebire de RNAFF fără strat acuns prezintă unul sau mai multe
straturi ascunse. Astfel, RNAFF multistrat va fi compusă din următoarele tipuri de straturi:
- un strat de intrare;
- unul sau mai multe straturi ascunse;
- un strat de ieşire.
Structura generală a unei RNA multistrat feedforward este prezentată în Figura 5.3.

Figura 5.3 Structura generală a unei RNA multistrat feedforward

După cum se poate vedea din Figura 5.3 fiecare strat este compus din neuroni care au ca
intrări ieşirile neuronilor din stratul imediat inferior iar ieşirile neuronilor sunt trimise în
stratul imediat superior. Astfel un vector x de intrare este prezentat reţelei neuronale prin
intermediul stratului de intrare cu N0 noduri (stratul de intrare nu este alcătuit din neuroni
artificiali), valorile de la ieşirile nodurilor din acest strat sunt prezentate primului strat ascuns
(cu N1 neuroni), valorile de la ieşirile neuronilor din acest strat sunt prezentate celui de-al

19
doilea strat ascuns (cu N2 neuroni), s.a.m.d. până la ultimul strat ascuns (cu NL neuroni) ale
cărui valori de ieşire sunt prezentate stratului de ieşire cu NL+1 Ieşirile neuronilor din acest
strat reprezentând ieşirile întregii RNA.
Observaţie: Stratul de intrare al RNFF este format din noduri (nu sunt neuroni artificiali) care
au rolul de a distribui semnalul (datele) de la intrarea lor la neuronii artificiali din stratul
imediat superior (stratul ascuns dacă RNAFF are un strat ascuns sau primul strat ascuns dacă
RNAFF are mai multe straturi ascunse).
Existenţa stratului ascuns conferă RNAFF calităţi superioare. În cazul RNAFF fără strat
ascuns există restricţii severe: ele sunt capabile să proiecteze forme de intrare similare în
forme de ieşire similare, ceea ce poate duce la o instabilitate în ce priveşte învăţarea de către
RNAFF a unor funcţii. Astfel sunt situaţii în care structurile de similaritate ale formelor de
intrare şi acelor de ieşire sunt foarte diferite. În această situaţie o RNAFF care nu construieşte
o reprezentare internă, deci nu are straturi ascunse, va fi incapabilă să realizeze funcţia
respectivă. Stratul ascuns realizează o extindere a formelor de intrare, în sensul că există
întotdeauna o recodificare, adică o reprezentare internă convenabilă a formelor în unităţile
ascunse. Prin această recodificare similaritatea formelor în raport cu unităţile ascunse permite
realizarea oricărei funcţii de la câmpul de intrare la cel de ieşire. Astfel Hornik şi White în
1989 au arătat că o reţea neuronală feedforward - în cazul căreia neuronii au ca funcţie de
activare funcţia sigmoid - poate să aproximeze cu orice precizie orice funcţie măsurabilă în
sens Borel.

I.5.3.2 Regula de învăţare Delta generalizată


Regula de învăţare Delta generalizată este folosită pentru antrenarea unei RNA feedforward
cu unul sau mai multe straturi ascunse.
În continuare se va considera o RNAFF cu un singur strat ascuns, funcţia de intrare a
neuronilor din stratul ascuns şi cel de ieşire este funcţia sumă ponderată. Eroarea globală de
învăţare are o formă similară cu cea dată de relaţia (16):
q
E   E k  (25)
k 1

unde:
q - numărul vectorilor de antrenare;
E<k> reprezintă eroare medie pătratică de învăţare, atunci când reţelei neuronale i se
prezintă cuplul de vectori de învăţare (x<k>,d<k>) şi este dată de relaţia:

E k  1 k 
 d a
2
2 k 
2

1 N2 k 
  di  ai
2 i 1
2 k 
2

1 N2 k 
2 i 1
 
  di  Fa yi2
k  2
(26)

unde:
<k> - exprimă pasul curent;
N2 – numărul de neuroni din stratul de ieşire
di – ieşirea dorită pentru neuronul i din stratul de ieşire (Strat 2)
ai2 – activarea neuronului i din stratul de ieşire (ieşirea curentă (reală) a neuronului i)
a2 – vectorul de activări a stratului de ieşire (Strat 2) a RNAFF
yi2 – intrarea totală a neuronului i din stratul de ieşire (Strat 2) care conform relaţiei (1)
se poate exprima prin:

20
N1
yi2    ij2 a1j  i2 (27)
j 1

unde:
N1 – numărul de neuroni din stratul ascuns;
ij2 – reprezintă ponderea dintre neuronul j din ultimul strat ascuns şi neuronul
i din stratul de ieşire (exponentul 2 reprezintă numărul stratului de care
aparţine ponderea respectivă – Srat 2);
xj – reprezintă intrarea j a neuronului i din stratul de ieşire care nu reprezintă
altceva decât activarea (aj) neuronului j din ultimul strat ascuns;
i2 – reprezintă ponderea intrării de ofset a neuronului i din stratul de ieşire.
Observaţie: variabilele a, y, ,  prezintă un exponent (1 sau 2) a cărui valoare reprezintă
numărul stratului de neuroni de care aparţine respectiva variabilă.
Ca şi în cazul regulii Delta, ponderile vor fi modificate proporţional cu derivata erorii în sens
invers, măsurată pe vectorul curent de antrenare în raport cu fiecare pondere:

ij k 1  ij k   ij k   ij k      grad E  k   ij

 E  k   (28)
 ij k      
 ij 

Expresia derivatei erorii în funcţie de ponderi va avea diferite expresii în funcţie de poziţia
ponderilor  ij, adică, între ce straturi de neuroni se află ponderile respective.
Notă: Pentru a simplifica exprimarea se va face următoarea convenţie: ponderile dintre două
straturi consecutive se vor considera ca aparţinând stratului de neuroni pe care-l preced
ponderile. De exemplu, ponderile dintre neuronii dintre ultimul strat ascuns şi cel de ieşire vor
fi referite ca ponderile stratului de ieşire.

 Actualizarea ponderilor stratului de ieşire


În continuare se va dezvolta termenul E<k>/ ij considerând ponderile  ij =  ij2 fiind ale
stratului de ieşire (Figura 5.4):
k 
E  k  E  k  yi2 E  k    N1 2 1 2

ij2

yi2
 k 
ij2
 
2  
yi2 ij  k 1
 k 
ik ak   i
 

E  k  k  k  1k  k  k 
 2 k 
a1j   i2 a j  a1j  i2
yi

E k  k  k 
 a1j  i2 , i  1, N 2 , j  1, N1 (29)
ij
2

k 
unde  i2 este sensibilitatea neuronului i din stratul de ieşire şi reprezintă influenţa pe care o
are intrarea totală a neuronului respectiv asupra erorii de învăţare.

21
Figura 5.4 Explicativă pentru actualizarea ponderilor din stratul de ieşire
Variaţia erorii în funcţie de intrarea totală (yi<k>) a neuronului i din stratul de ieşire (Strat 2) se
poate scrie:
k 
2 k  E  k  E  k  ai2
 i  k 
 k 
 k 
(30)
yi2 ai2 yi2
Utilizând relaţia (26) relaţia (30) devine:

   
k  k 
E  k  E  k  ai2 ai2   1 N2 k 
  d j  a 2j
2
2 k  k 
  k 
 k  k 
 k  
ai  2 j 1
i
yi2 ai2 yi2 yi2 

   
k  k  k 
ai2 1 k  (ai2 ) 2  k  ai
2
 k 
  2  di k   ai2  k 
  d i
k 
 ai k 
yi2 2 ai2 yi2

 y
k 
2 k  2 k  ai2
 i d i
k 
a i 2 k 
(31)
i

Folosind relaţia (31) relaţia (29) devine:

 
k 
E  k  1k  k  2  k  ai
2
 a j di  ai , i  1, N 2 , j  1, N1 (32)
ij yi2
k 

unde aj1 reprezintă activarea neuronului j din stratul ascuns (Strat 1).
Astfel ponderile stratului de ieşire vor fi actualizate adăugând la vechea valoare, valoarea dată
de relaţia:
k  E k  k  k 
ij2    gradij E k       a1j  i2 
ij
(33)
d y
k 
1 k  2 k  ai2
  aj k 
 ai
i 2 k 
i

 Actualizarea ponderilor stratului ascuns

În continuare se va dezvolta termenul E<k>/ij considerând ponderile ij =  ij1 ca fiind ale
stratului ascuns (Figura 5.5):

22
k 
E k  E k  yi1 E k    N0 1 k  
    ik xk   i  
 ij
1
yi1
 k 
 ij
1
yi1  ij  k 1
 k  1

E k  k  k 
 x j k    i1 x j k   x j k  i1
1 k 
yi

E k  k 
 x j k  i1 , i  1, N1 , j  1, N 0 (34)
 ij
1

k 
unde N0 reprezintă numărul de noduri din stratul de intrare iar  i1 reprezintă sensibilitatea
neuronului i din stratul ascuns.

Figura 5.5 Explicativă pentru actualizarea ponderilor din stratul ascuns


Variaţia erorii în funcţie de intrarea totală (yi1<k>) a neuronului i din stratul ascuns (Strat 1) se
poate scrie:
k 
1 k  E k  E k  ai1
 i  k 
 k 
 k  (18)
yi1 ai1 yi1

Prin dezvoltarea termenului E<k>/ai<p> se obţine:

  1 N2 k 
   
k  k  k  2
E k  E k  ai1 ai1 E k  ai1
1k   2 
1k  k 
 i  k 

1k 

1k 

1k 

1k 

1k 
 d n  an2
yi1 ai yi yi ai yi ai  n1 

  k  
2 k   

   
2
 N 2   d n  an   a1k  1 N2 

1k  k 
a 1     an2
 i
 
   i
  2  d n  an
 k  2 k 

yi 1k   2 n1 ai1
k 
 yi1k  2 n1  ai1
k  

 
 
 k 
  
yi2  
k  k  k 
ai1 N2
  an2
   d n  an
 2 k 
  
y 1k  
n1  yi2
k 
ai1 
k 
i


  
k  k 
ai1 N2
an2   N1 1 k  2 k  2 k   
    d n  an
 k  2 k 
  
k    a    
 
yi1
k  
n1  yi2
k 
ai1  m1
m nm n


23

 
 a1k  N2 2 k  2 k 
 
k  k 
ai1 N2
an2
    d n  an
 k  2 k 
 2 k  
 ni  i k     n  ni
yi1
k   yi2 k  
 yi
1
n1  n1

 
k 
ai1 N2
   n2
k  k  k 
 i1 
1k 
ni2 (19)
y i n1

unde

  y
k 
2 k  2 k  an2
 n d k 
n a n 2 k 
, n  1, N 2 (20)
n

Astfel ponderile stratului ascuns (Strat 1) vor fi actualizate adăugând la vechea valoare,
valoarea dată de relaţia:
k  E k  k 
ij1    gradij E k       x j k  i1 (21)
1 k 
ij

unde termenul i1<k> este dat de relaţia (19).


I.5.4 Procedură iterativă pentru antrenarea RNA cu strat ascuns utilizând regula Delta
generalizată
Dându-se un număr P de vectori de antrenare aranjaţi în următorul set de vectori de antrenare
( x 1
,d
1
),..., ( x
 P
,d
P

)
unde
x k   ( x1k  ,..., xNk0  )

d k   (d1k  ,..., d Nk2  )

k[1,P]
N0 – numărul de noduri din stratul de intrare;
N2 - numărul de neuroni din stratul de ieşire.
Pas 1 Se alege valoarea pentru factorul de învăţare 0 < < 1, valoarea admisibilă a erorii  > 0
precum şi funcţia de activare (Fa(.)) a neuronilor din stratul ascuns şi cel de ieşire. Ponderile
 i j sunt iniţializate cu valori mici aleatoare, se setează k = 1, şi se iniţializează eroarea
globală E = 0.
Pas 2 Este selectat cuplu de vectori intrare şi de ieşire de antrenare (x<k>, d<k>) şi este
prezentat RNAFF
Pas 3 Se calculează ieşirea
a2<k> = (a12<k> , …, aN e2<k> ),
unde

   F    
N1
k  k  2 k  1 k  k 
ai2  Fa yi2 a   i2 
a ij j 
 j 1 
 N1 2 k   N0 1 k  k  k   k  
 Fa   ij Fa    jp x p   1j    i2 
 j 1 
  p1  
i = 1, N 2 ;

24
N2 – numărul de neuroni din stratul de ieşire;
N1 – numărul de neuroni din stratul ascuns;
N0 – numărul de noduri din stratul de intrare.
Pas 4 Se calculează eroarea globală (E) adăugând eroarea pătratică curentă (E<k>) la E

E  E  E k   E 
1 N 2 k 

2 i1

d i  ai2
k 

2

Pas 5 Pornind de la stratul de ieşire spre stratul de intrare se actualizează ponderile dintre
straturi.

ijnr. strat
k 1
 ijnr. strat
k 
 ijk   ijnr. strat
k 

    a nr
j
k 
. strat k 
  inr. strat  ,
k 
unde  inr. strat este dat de următoarele relaţii:

  y
k 
2 k  2 k  ai2
 i d i
k 
a i 2 k 
, i  1, N 2 , pentru stratul de ieşire (Strat 2)
i

k  N
ai1
1k 
 2 k 
2
k 
 i 
1k  j  2j i , i  1, N1 , pentru stratul ascuns (Strat 1) unde
y i j 1
k 
 j2 , j  1, N 2 este calculat folosind relaţia utilizată în cazul stratului de ieşire.
Pas 6 Dacă k <P atunci k= k + 1 salt la pasul Pas 3, altfel se continuă cu pasul Pas 7
Pas 7 Este complet un ciclu de antrenare (cunoscut în literatura de specialitate şi sub
denumirea de epocă). Dacă E <  atunci se încheie antrenarea. Dacă E >  atunci E este setat
la valoarea 0, k = 1 şi se iniţiază o nouă epocă de antrenare printr-un salt la pasul Pas 3.

I.5.4 Reţele neuronale artificiale cu funcţii de activare radiale


În acest capitol se va prezenta o altă abordare de proiectare şi instruire a reţelelor neuronale
artificiale feedforward. În acest caz se pune problema aproximării curbelor într-un spaţiu
multidimensional. Astfel, procesul de învăţare este echivalent cu găsirea acelei suprafeţe care
produce cea mai bună potrivire cu mulţimea datelor de instruire, cu alte cuvinte, suprafaţa
multidimensională este utilizată pentru a interpola datele de test.
O astfel de reţea neuronală, ce posedă această proprietate, este reţeaua neuronală artificială cu
funcţii de activare radiale, cunoscută în literatura de specialitate sub numele de reţea
neuronală RBF (Radial Basis Functions).
Reţelele neuronale artificiale RBF (RNA-RBF) au fost intensiv studiate în ultimii ani. Acest
tip de reţele având proprietatea de aproximator universal (poate aproxima orice funcţie
continuă cu orice eroare impusă), pot fi utilizate pentru problemele de interpolare. Ele sunt
utilizate cu succes în probleme de identificare şi reglare a sistemelor dinamice neliniare.

I.5.4.1 Structura RNA-RBF


Structura generală a unei RNA-RBF (Figura 5.6) este asemănătoare unei RNA feedforward cu
trei straturi dar, cu setările:
- funcţia de intrare tip sumă ponderată a neuronilor din stratul ascuns este înlocuită cu
funcţia normă, (de obicei este aleasă norma Euclidiană), a diferenţei dintre vectorii de
intrare şi vectorul pondere corespunzător fiecărui neuron în parte;

25
- neuronii din stratul ascuns au ca funcţie de activare o funcţie radială (de obicei tip
gaussian);
- neuronii din stratul de ieşire au ca funcţie de activare funcţia liniară;

Figura 5.6 Structura generală a unei RNA-RBF


Există mai multe tipuri de funcţii radiale, din care se vor prezenta câteva în continuare:
- funcţie gaussiană
x2

f ( x)  e 2 2 , (1)
- funcţie multicuadratică


f ( x)  c 2  x 2  , (0 <  < 1), (2)
- funcţie multicuadratică inversă
1
f ( x)  , (  0),
c 
(3)
2
 x2
- funcţie spline de tipul
f ( x)  x 2 log( x) , (4)
- funcţie spline cubică
f ( x)  x 3 , (5)
- funcţie spline liniară
f ( x)  x . (6)
În literatura de specialitate se specifică faptul că tipul de funcţie radială ales nu este esenţial
pentru performanţele obţinute de RNA-RBF în ansamblu.
În continuare pentru neuronii din stratul ascuns se va lua în considerare doar funcţia de
activare de tip gaussian dată de relaţia


 x  2
f ( x  )  e 2 2 . (7)
Pentru a fi în concordanţă cu notaţiile din subcapitolul “Neuronul artificial” relaţia (7) devine

26
y2

Fa ( y )  e 2 2 (8)
unde,
y  x  . (9)
Relaţia (8) este valabilă pentru cazul unui neuron cu o singura intrare (x) ponderată cu
ponderea . Dacă neuronul are mai multe intrări (de ex. N0 intrări) atunci funcţia de activare
este aceeaşi însă cu diferenţa
y  x  . (10)
Deci, combinând relaţiile (8) şi (10) se obţine
2
x 

Fa ( x   )  e 2 2 , (11)
unde
x – vectorul de intrări în neuron;
 - vectorul de ponderi corespunzător neuronului.
Revenind la relaţia (8), dacă o reprezentăm grafic va avea forma din Figura 2a. Dacă se
reprezintă grafic relaţia


 x  2
Fa ( x)  e 2 2 (12)
va avea forma din Figura 2b.
Astfel,  şi  pot fi interpretate ca media şi dispersia funcţiei gaussiene. Valoarea lui  fiind
valoarea centrală a funcţiei, în literatura de specialitate, mai este numită şi “centrul” funcţiei.
Se observă că funcţia este simetric radială, adică valori diferite ale lui x dar care se află la
aceeaşi distanţă de  vor produce aceeaşi valoare de ieşire a funcţiei ((x1 x2, (x1-)2=(x2-)2
 Fa(x1-)=Fa(x2-)2). Valoarea funcţiei este maximă pentru x = , pe măsură ce x se
îndepărtează de  valoarea funcţiei descreşte tot mai rapid. Funcţia va avea valori
semnificative numai pentru un domeniu restrâns a lui x, domeniu ce determină câmpul
receptiv al neuronului. Mărimea câmpului receptiv este dată de valoarea lui .
Pentru a fi în concordanţă cu teoria RNA-RBF pentru funcţia de activare gaussiană se vor
considera relaţiile (10) şi (11), adică argumentul funcţiei de activare este o normă.
Algoritmul de învăţare (instruire) a RNA-RBF presupune două etape:
1. Stabilirea vectorilor de ponderi (vectorii centru) corespunzătoare intrărilor în neuronii din
stratul ascuns precum şi a dispersiilor funcţiilor de activare gaussiene, alese pentru aceşti
neuroni;
2. Determinarea printr-o metodă de învăţare (de ex. regula Delta) a ponderilor neuronilor din
stratul de ieşire.

27
I.6 MEMORII ASOCIATIVE
I.6.1 Definiţii

I.6.1.1 Distanţa Hamming


În general, un spaţiu Hamming n-dimensional poate fi definit prin mulţimea:
Hn = {x = (x1, x2, … xn)t  Rn  xi  {-1,1}, i = 1…n}. (1)
Cu alte cuvinte, spaţiul Hamming n-dimensional este mulţimea vectorilor n-dimensionali,
elementele vectorilor fiind numere reale supuse condiţiei ca fiecare element sa aibă valori din
mulţimea {-1,1}.
În Figura 1 este prezentat spaţiul Hamming tridimensional are 23 puncte, toate fiind
echidistante faţă de originea spaţiului Euclidian, fiind cunoscut şi sub numele de cubul
tridimensional Hamming.

Figura 1 Cubul Hamming pentru cazul tridimensional


În continuare se va defini distanţa Hamming şi se va prezenta relaţia de legătură dintre aceasta
şi distanţa Euclidiană.
Fie vectorii x = (x1, x2, … xn)t şi y = (y1, y2, … yn)t din spaţiul Euclidian n-dimensional, cu
restricţia ca xi şi yi  {-1,1}, astfel, vectorii x şi y sunt şi în spaţiul Hamming n-dimensional.
Distanţa Euclidiană dintre cei doi vectori este

d x1  y1 2  x2  y2 2  ...  xn  yn 2 (2)

Dacă xi, yi  {-1,1} atunci (xi - yi)2 {0,4}:


0, xi  yi
xi  yi 2   (3)
4, xi  yi
Astfel, distanţa euclidiană poate fi scrisă ca
d  4 nr. de componentediferite dintre x şi y (4)
Se va defini distanţa Hamming ca
h = nr. de componente diferite dintre x şi y (5)
Relaţia de legătură dintre distanţa Euclidiană şi distanţa Hamming este
d 2 h (6)
sau
d2
h (7)
4

28
I.6.1.2 Tipuri de memorii asociative
Fie setul de perechi de vectori {(x1,y1),( x2,y2),…( xN,yN)} (xiRn, yiRm, i  1, N ) care
exprimă o asociere corectă. Aceşti vectori poartă numele de vectori exemplari (similari cu
vectorii de antrenare folosiţi în cazul reţelelor neuronale feedforward).
Se disting trei tipuri de memorii asociative:
- memoria heteroasociativă – asigură transformarea (xi) = yi, cu proprietatea: dacă
vectorul x se află la distanţa cea mai mică de vectorul xi faţă de toţi ceilalţi vectori xj,
j  1, N , atunci (x)=yi;
- memoria asociativă cu interpolare – asigură transformarea (xi) = yi, cu proprietatea:
dacă vectorul de intrare diferă de unul din vectorii exemplari cu vectorul d, x=xi + d,
atunci vectorul de ieşire va diferi de unul din vectorii exemplari printr-un vector e:
(x) = (xi + d) = yi + e; (8)
- memoria autoasociativă – în cazul acestui tip de memorie, intre vectori de intrare şi ieşire
există relaţia xi = yi, astfel memoria asigură transformarea (xi) = xi cu proprietatea: dacă
vectorul x se află la distanţa cea mai mică de vectorul xi faţă de toţi ceilalţi vectori xj,
j  1, N , atunci (x)=xi.
I.6.2 Memorii asociative bidirecţionale (MAB)

I.6.2.1 Structura MAB


O reţea neuronală de tip memorie asociativă bidirecţională, prescurtat MAB, (Figura 2) constă
din două straturi (A şi B) de neuroni (artificiali) cu interconectare totală, fiecare neuron
(unitate de procesare) putând să aibă sau nu o conexiune sau legătură de la ieşirea sa la
intrarea sa. Legăturile dintre cele două straturi sunt bidirecţionale.

Figura 2 Structura generală a MAB


O caracteristică importantă a reţelelor neuronale de tip MAB este dată de faptul că matricea
de ponderi poate fi calculată a priori dacă sunt cunoscuţi vectorii exemplari (vectorii
memoraţi de MAB). Astfel, dacă se consideră un set de N perechi de vectori exemplari care se
doresc a fi memoraţi, se poate construi matricea:
  x1B  ( x1A )t  x 2B  ( x 2A )t  ...  x BN  ( x NA )t (9)
care reprezintă matricea de ponderi corespunzătoare conexiunilor de la stratul A la stratul B.
De exemplu w12 reprezintă ponderea conexiunii primului neuron din stratul A cu al doilea
neuron din stratul B. Matricea de ponderi corespunzătoare conexiunilor de la stratul B la
stratul A se construieşte simplu, considerând transpusa matricei de ponderi de la stratul A la
stratul B, adică wt.
În cazul unei memorii autoasociative matricea de ponderi se construieşte cu ajutorul
următoarei relaţii matematice:

29
 = x1x1t + x2x2t + … + xNxNt (10)
În acest caz, matricea de ponderi este pătratică şi simetrică.

I.6.2.2 Procesarea în MAB


Odată ce matricea de ponderi a fost construită, MAB poate fi folosită pentru a extrage
informaţii (de exemplu, un număr de telefon), când este prezentată memoriei o informaţie
cheie (de exemplu, un nume corespunzător numărului de telefon considerat). Dacă informaţia
dorită este cunoscută doar parţial în avans sau este afectată de zgomot (un nume scris greşit,
de ex. “Poepscu”), memoria asociativă bidirecţională este capabilă să completeze informaţia
(dând numele corect “Popescu” şi numărul corect de telefon).
Pentru a extrage informaţie dintr-o MAB, se efectuează următorii paşi:

1. Se aplică o pereche iniţială de vectori ( x0A , x0B ), neuronilor (elementelor de procesare)


memoriei;
2. Se propagă informaţia de la stratul A la stratul B, şi se actualizează ieşirile (se calculează
activările) neuronilor stratului A;
3. Se propagă informaţia actualizată în stratul B spre stratul A unde sunt actualizate valorile
ieşirilor (se calculează activările) neuronilor din acest strat;
4. Se repetă paşii 2 şi 3 până când nu vor mai fi modificări în ieşirile celor două straturi.
Acest algoritm exprimă natura bidirecţională a MAB. Termenii intrare şi ieşire sunt relativi la
direcţia curentă de propagare a informaţiei: dacă propagarea informaţiei are loc de la stratul B
la stratul A, vectorul xB este considerat ca vector de intrare în reţeaua neuronală iar vectorul
xA, vector de ieşire. Situaţia se inversează când sensul propagării informaţiei se schimbă.
Dacă totul decurge bine, vectorii xA şi xB corespunzători stării finale (stabilă) vor reprezenta
una din perechile de vectori exemplari utilizaţi pentru construcţia matricei de ponderi. În acest
exemplu s-a presupus că se cunoaşte ceva despre vectorul dorit xA, însă nu se cunoaşte nimic
despre vectorul xB asociat vectorului xA. Se speră, că ieşirea finală este vectorul exemplar xiA
care este cel mai apropiat din punct de vedere al distanţei Hamming de vectorul iniţial de
intrare, x0A. Acest scenariu funcţionează bine dacă nu s-a supraîncărcat MAB cu vectori
exemplari. Dacă se încearcă a se stoca prea multă informaţie într-o MAB, va apărea
fenomenul cunoscut sub numele de crosstalk. Acest fenomen apare când vectorii exemplari
sunt prea apropiaţi unii de alţii. Interacţiunea dintre aceşti vectori exemplari pot genera aşa
numitele stări stabile false. În aceste situaţii, MAB după obţinerea aşa zisei stări stabile
vectorii corespunzători stării nu au nici o semnificaţie pentru utilizatorul memoriei. Dacă se
raţionează în termenii unei suprafeţe în spaţiul ponderilor, stările stabile false corespund unor
minime situate între minimele corespunzătoare vectorilor exemplari.

I.6.2.3 Formalismul matematic al MAB


Pornind de la structura generală a unui neuron artificial, un neuron al unei MAB poate fi
descris în felul următor: nu are intrare de biass, are ca funcţie de intrare, funcţia sumă
ponderată
yiA  Fin ( x)  ij x j  ija Bj (11a)
j j

y Bj  Fin ( x)   ji xi   jiaiA (11b)


j j

iar, funcţia de activarea este funcţia prag cu modificarea:

30
  1, dacă yiA  0

aiA (k  1)  Fa ( yiA )  aiA (k ), dacă yiA  0 (12a)
  1, dacă y A  0
 i

  1, dacă yiB  0

aiB (k  1)  Fa ( yiB )  aiB (k ), dacă yiB  0 (12b)
  1, dacă y B  0
 i

unde:
- x – vector de intare în neuron;
- yiA – intrarea totală a neuronului i ( i  1, n ) din stratul A;

- yjB – intrarea totală a neuronului j ( j  1, m ) din stratul B;


- ij – ponderea dintre activarea neuronului j din stratul B şi neuronul i din stratul A;
- ji – ponderea dintre activarea neuronului i din stratul A şi neuronul j din stratul B;
- aiA(k) – activarea neuronului i din stratul A în pasul de calcul k;
- aiA(k+1) – activarea neuronului i din stratul A în pasul de calcul k+1.

Exemplu: Fie următorii vectori exemplari:


x1A = (1,-1,-1,1,-1,1,1,-1,-1,1)t, x1B = (1,-1,-1,-1,-1,1)t
x2A = (1,1,1,-1,-1,-1,1,1,-1,-1)t, x2B = (1,1,1,1,-1,-1)t
Folosind relaţia (9) se calculează matricea de ponderi:
 2 0 0 0 2 0 2 0 2 0 
 
 0 2 2 2 0 2 0 2 0  2
 0 2 2 2 0 2 0 2 0  2
  
 0 2 2 2 0 2 0 2 0  2
 2 0 0 0 2 0 2 0 2 0 

 0 2 2 2 0 2 0 2 
 0 2
Pentru testare, se alege mai întâi următorul vector a cărui distanţă Hamming faţă de vectorul
x1A este 1: x0A = (-1,-1,-1,1,-1,1,1,-1,-1,1)t. Se poate considera că vectorul de intrare este unul
din vectorii exemplari afectat de zgomot. Ca vector iniţial pentru stratul B se consideră unul
din vectorii de antrenare (exemplari), x2B: x0B = (1,1,1,1,-1,-1)t. (În cazul problemelor reale,
se poate întâmpla a nu se şti nimic despre vectorul de ieşire, în acest caz, dacă este nevoie, se
recomandă utilizarea unui vector aleator bipolar).
Se porneşte prin propagarea informaţiei de la stratul A spre stratul B. Vectorul de intrări
totale ale neuronilor din startul B este: yB = (4, -12, -12, -12, -4, 12)t. Astfel, noul vector la
ieşirea stratului B va fi: xnouB = (1,-1,-1,1,-1,1,1,-1,-1,1)t. Mai multe propagări ale informaţiei
între straturi nu vor mai produce modificări în vectorii de ieşire ale celor două straturi, astfel
MAB s-a stabilizat. Se observă ca s-a obţinut primul set de vectori de antrenare.
Pentru o nouă testare se aleg următorii doi vectori de testare:
x0A = (-1,1,1,-1,1,1,1,-1,1,-1)t, x0B = (-1,1,-1,1,-1,-1)t

31
Distanţele Hamming ale vectorului x0A faţă de vectorii de antrenare sunt h(x0A, x1A)=7 şi
h(x0A, x2A)=5. Distanţele Hamming ale vectorului x0B faţă de vectorii de antrenare sunt h(x0B,
x1B)=4 şi h(x0B, x2B)=2. În funcţie de aceste rezultate este de aşteptat ca în momentul
stabilizării MAB să ofere la ieşirile celor două straturi cel de-al doilea set de vectori de
antrenare.
Dacă se propagă informaţia de la stratul A la stratul B se va obţine la ieşirea stratului B
vectorul xnouB = (-1,1,1,1,1,-1)t. Propagând informaţia de la startul B spre stratul A se va
obţine la ieşirea stratului A vectorul xnouA = (-1,1,1,-1,1,-1,-1,1,1,-1)t. Propagări suplimentare
ale informaţiei între cele două straturi nu vor determina modificări în vectorii de ieşire ale
celor două straturi. Şi se observă că nu corespund nici unui set de vectori de antrenare. Dacă
se priveşte cu atenţie rezultatul obţinut se observă că vectorii oferiţi de MAB nu sunt altceva
decât vectorii complement ai primului set de vectori de antrenare adică (xnouA,xnouB)=
((x1A)c,(x1B)c), unde exponentul “c” se referă la noţiunea de complement. Prin acest exemplu
este ilustrată proprietatea de bază a MAB: dacă este memorat un set de vectori exemplari (xA,
xB) atunci vor fi memoraţi şi vectorii complement ((xA)c,(xB)c).

I.6.2.4 Funcţia de energie a MAB


În cazul RNA feedforward, în timpul procesului de antrenare, ponderile formează un sistem
dinamic. Orice modificare a valorilor ponderilor determină o modificare a valorii erorii de
învăţare, modificarea fiind tradusă vizual printr-o deplasare pe suprafaţa erorii de învăţare. În
procesul de antrenare, deplasarea este realizată pe direcţia şi în sensul găsirii unui minim
(local sau global).
În cazul MAB situaţia este puţin diferită: valorile ponderilor se calculează în avans (a priori)
folosind vectorii exemplari (de antrenare).
În momentul în care se prezintă reţelei neuronale de tip MAB un vector necunoscut vor fi
necesare mai multe treceri prin MAB până când aceasta se va stabiliza (vectorii de la ieşirile
celor două straturi A şi B nu se vor mai modifica). Astfel, vectorii aA şi aB formează un sistem
dinamic. Din punct de vedere al sistemului dinamic astfel format, aceşti vectori poartă numele
de stări.
În teoria sistemelor dinamice există conceptul de funcţie de energie sau funcţie Lyapunov care
reprezintă o funcţie ce depinde de stările sistemului, este mărginită inferior şi descreşte dacă
apare o modificare a stărilor sistemului. Dacă unui sistem dinamic i se poate ataşa o astfel de
funcţie atunci sistemul va avea stări stabile.
În cazul memoriilor asociative bidirecţionale se poate ataşa următoarea funcţie de energie:
m n
E( x , x )   x  ( x )  
A B B A t
 xiBij xiA (13)
i 1 j 1

În cazul memoriilor asociative bidirecţionale este definită următoarea teoremă a funcţiei de


energie:
Teoremă
1. Orice schimbare în vectorii aA şi aB în timpul procesării MAB va determina o descreştere
a funcţiei de energie E.

2. Funcţia de energie E este limitată inferior cu valoarea Emin   ij .
i, j
3. Dacă E se modifică ea trebuie să se modifice cu o cantitate finită.
Punctele 1 şi 2 dovedesc faptul că E este o funcţie Lyapunov. Punctul 2 suplimentar specifică
faptul că E poate scădea până la o valoare sigură şi cunoscută (E nu va tinde niciodată spre -
). Punctul 3 asigură atingerea unui minim într-un număr finit de paşi şi faptul că
32
modificările funcţiei de energie nu sunt infinitezimale mici ceea ce duce la evitarea situaţiei
de atingere a minimului într-un număr infinit de paşi.
Starea iniţială a MAB este dată de vectorul/vectorii iniţiali aplicaţi. Pe parcursul procesării, se
va realiza o deplasare pe suprafaţa (“peisajul”) corespunzătoare funcţiei de energie în sens
descrescător, lucru asigurat de teorema funcţiei de energie, până la găsirea minimului (Figura
3).

Figura 3 Reprezentarea în plan a unei secţiuni


în peisajul funcţiei de energie a unei MAB
Notă
Matricea de ponderi este cea care determină: conturul suprafeţei funcţiei de energie (“peisajul
funcţiei de energie este format din văi şi dealuri”), numărul de văi (minime) de energie,
adâncimea acestor văi. Tot matricea de ponderi este răspunzătoare de prezenţa văilor false
(stărilor false). Starea falsă este aceea stare (vector) care apare după stabilizarea memoriei la
ieşirea s-a şi nu are nici un înţeles pentru utilizator.
6.3. Memoria Hopfield
În continuare va fi descrisă un tip de reţea neuronală care derivă din clasa memoriilor
asociative bidirecţionale, şi anume memoria Hopfield. Memoria Hopfield este de două tipuri
(discretă, continuă) în funcţie de transformarea intrărilor, asigurată de memorie: discretă sau
continuă.

6.3.1. Memoria Hopfield discretă


În secţiunea 6.2.1 s-a definit memoria autoasociativă ca memoria care poate stoca şi evoca un
set de vectori {x1, x2,…, xN} care au fost prezentaţi la intrările ambelor straturi (Figura 4a). În
secţiunea respectivă se propune pentru calcularea matricei de ponderi relaţia:
N
   x i x ti (14)
i 1

unde  este o matrice pătratică şi simetrică, ceea ce înseamnă că


ij = ji (15)

a) b) c)
Figura 4 Obţinerea arhitecturii memoriei Hopfield: a) arhitectura MAB autoasociativă
(sunt omise legaturile inverse în cazul fiecărui neuron); b) arhitectura MAB autoasociativă cu
un singur strat; c) arhitectura memoriei Hopfield

33
Deoarece fiecare nivel are acelaşi număr de neuroni iar ponderile satisfac relaţia (15) atunci
structura memoriei autoasociative cu două straturi de neuroni din Figura 4a poate fi redusă la
o structură cu un singur strat de neuroni ca cea prezentată în Figura 4b. Din structura MAB
autoasociativă din Figura 4b se poate obţine structura memoriei Hopfield din Figura 4c cu
următoarele modificări:
- renunţarea la conexiunea inversă de la ieşire la intrare în cazul fiecărui neuron
- introducerea unei intrări externe Ii ( i  1, n ), ceea ce implică următoarea relaţie pentru
intrarea totală a fiecărui neuron
n
yi   x j wij  Ii (16)
j 1

- pornind de la funcţia de activare a neuronilor MAB, introducând un prag de comparaţie Ui


diferit de zero iar valorile activării sunt convertite de la valori bipolare {-1,1} la valori
binare {0,1} (memoria Hopfield în forma s-a originală memorează vectori binari şi nu
bipolari) funcţia de activare va avea forma
 1, dacă yi  U i

ai (k  1)  Fa ( yi )  ai (k ), dacă yi  U i (17)
 0, dacă yi  U i

- pentru ca matricea de ponderi a memoriei Hopfield să fie calculată cu vectori bipolari
(vectori ce au elementele în mulţimea {-1,1}) ca şi în cazul MAB autoasociativă atunci
vectorii binari de intrare, notaţi cu vi ( i  1, n ), în reţeaua neuronală vor fi transformaţi în
vectori bipolari, notaţi cu xi ( i  1, n ), conform relaţiei
x i  2  v i 1 (18)
unde 1 este un vector ce are toate componentele egale cu valoarea 1 iar dimensiunea
vectorului este egală cu dimensiunea lui vi.
Utilizând relaţia (18) relaţia (14) devine
N N
   xi xti   2  vi  1  2  vi  1t (19)
i 1 i 1

unde elementele de pe diagonala principală a matricei de ponderi au valoarea 0.


În urma modificărilor făcute unei MAB autoasociative pentru a obţine memoria Hopfield
funcţia de energie corespunzătoare acestei ultime memorii poate fi scrisă în forma

 viijv j   Iivi  Uivi


1
E (20)
2 i j i i
j i

1
unde factorul apare deoarece memoria Hopfield are un singur strat faţă de cele două
2
straturi ale MAB.

5.3.2. Memoria Hopfield cu valori continue

34
Hopfield a dezvoltat memoria discretă prin incorporarea în memorie a unor rezultate din
neurologie, astfel ca neuronii folosiţi de memorie să reproducă mai fidel neuronii biologici.
De exemplu se ştie că valorile de ieşire ale neuronilor reali sunt funcţii continue ale intrărilor
lor. Reţelele Hopfield cu valori continue au aceleaşi proprietăţi ca şi memoriile discrete. Mai
mult această memorie reprezintă un circuit electronic analogic ce utilizează rezistori şi
amplificatoare neliniare, ceea ce sugerează posibilitatea implementării acestor memorii
utilizând tehnologia VLSI.
În continuare se defineşte ui ca fiind intrarea neuronului i. Din punct de vedere biologic, ui
este echivalentul potenţialelor de acţiune însumate la baza axonului neuronului biologic.

vi

   gi1 v dv   I i vi
1 1 1
E Tij vi v j  (4.25)
2 i j
2 i
Ri i
0
i j

7. REŢEAUA CARPENTER-GROSSBERG
7.1 Prezentare generală
Reţeaua Carpenter-Grossberg mai este cunoscută sub denumirea de ART (Adaptive
Resonance Theory) şi este o reţea de clasificare cu antrenare nesupervizată. Vectorii de intrare
sunt clasificaţi în funcţie de forma stocată cu care seamănă cel mai bine.
Reţeau ART poate crea adaptiv un nou neuron corespunzător unui vector de intrare dacă s-a
determinat că acest vector de intrare este „suficient” de diferit faţă de grupurile de vectori
memoraţi de RNA. Acest mecanism de determinare a asemănării unui vector de intrare cu o
formă memorată, numit test de vigilenţă este încorporat în reţeaua neuronală. Astfel,
arhitectura ART permite utilizatorului să controleze gradul de similaritate al formelor plasate
în acelaşi grup de forme.
În Figura 1 este prezentată configuraţia simplificată a arhitecturii ART.

Figura 1 Configuraţia simplificată a arhitecturii ART


7.2. Dilema stabilitate-plasticitate
Creierul uman are abilitatea de a învăţa şi memora multe lucruri noi fără a fi necesar să fie
uitate informaţii deja memorate (de exemplu: ştiu să ma dau pe bicicletă; dacă învăţ să mă
caţăr nu înseamnă că trebuie să uit cum mă dau pe bicicletă). Pentru a proiecta o maşină cu

35
adevărat inteligentă pentru recunoaşterea formelor, compatibilă cu creierul uman, va fi de
dorit să prezinte această abilitate a creierului uman.
Multe din metodele întâlnite în cazul reţelor neuronale tind să uite informaţia anterioară dacă
încearcă să stocheze noi pattern-uri în mod incremental. Odată antrenate aceste reţele nu
permit modificarea parametrilor sau a ponderilor.
Capacitatea unei RNA de a învăţa bine o nouă formă în orice stadiu al operării (funcţionării)
este numită plasticitate.
Grossberg descrie dilema stabilitate-plasticitate în felul următor :
„Cum poate fi proiectat un sistem cu învăţare să ramână plastic sau adaptiv, ca răspuns la
evenimentele semnificative şi de asemenea să rămână stabil la evenimentele irelevante? Cum
ştie sistemul să aleagă între modul stabil şi cel plastic pentru a obţine stabilitate fără haos? În
particular, cum poate sistemul să conserve informaţiile anterior învăţate în timp ce continuă să
înveţe noi lucruri? Cum poate preveni ca o nouă învăţare să şteargă din memorie informaţii
învăţate anterior?”
7.3. Arhitectura ART1. Funcţionarea de bază

Figura 2 Arhitectura generală ART


Există două tipuri de arhitecturi ART: ART1 şi ART2. Intrările reţelei ART2 au valori reale
(ex. nivele de gri ale pixelilor unei imagini). Intrările reţelei ART1 au valori binare. În
continuare se va prezenta arhitectura şi funcţionarea reţelei ART1.
După cum se poate observa şi din Figura 2, reţeaua ART este alcătuită din 2 subsisteme:
subsistmul atenţionare şi subsistemul de orientare. Subsistemul atenţional determină dacă
forma de intrare se potriveşte cu una dintre formele învăţate de RNA. Dacă apare o potrivire,
se stabileşte rezonanţa. Subsistemul de orientare este responsabil de sesizarea diferenţelor
dintre formele ce sosesc ascendent şi descendent pe stratul de comparaţie.
Arhitectura ART1 are în componenţa sa două straturi de neuroni: stratul de comparaţie şi
stratul de recunoaştere. Decizia de clasificare este indicată de activarea unui singur neuron
din stratul de recunoaştere. Neuronii din stratul de comparaţie răspund la trăsăturile formei de
intrare analog grupurilor de celule dintr-o zonă a cortexului cerebral. Între cele două straturi
(de comparaţie şi de recunoaştere) există două seturi de ponderi. Primul set de ponderi ce
leagă ieşirile tuturor neuronilor din stratul de comparaţie de intrările tuturor neuronilor din
stratul de recunoaştere. Aceste ponderi au valori reale. Cel de-al doilea set de ponderi leagă
ieşirile neuronilor din stratul de recunoaştere de intrările neuronilor din stratul de comparaţie.
Aceste ponderi au valori binare. Pentru modificarea celor două seturi de ponderi se utilizează
36
2 reguli diferite de antrenare. Neuronii din stratul de recunoaştere sunt interconectaţi prin
intermediul unor conexiuni inhibitorii permiţând astfel implementarea mecanismului de
competiţie între neuoni.
Răspunsul stratului de recunoaştere (Figura 3) la un vector de intrare este comparat cu
răspunsul stratului la vectorul original (memorat) cu ajutorul unui mecanism numit vigilenţă
sau toleranţă. Vigilenţa oferă o măsură a distanţei dintre vectorul de intrare şi grupul cluster
de vectori memoraţi care activează acelaşi neuron din stratul de recunoaştere. Când vigilenţa
este mai mică decât un prag prestetat, trebuie să fie creat un nou grup cluster, o nouă categorie
de vectori şi, în acest nou grup (cluster) va fi stocat vectorul de intrare. Astfel va fi alocat un
nou neuron în stratul de recunoaştere pentru noua categorie de vectori asociată vectorului
(formei) de intrare.

Figura 3 Stratul de recunoaştere al arhitecturii ART


Stratul de recunoaştere utilizează paradigma „învingătorul ia tot” (această comportare este
referită în unele lucrări sub numele de MAXNET). Dacă vectorul de intrare trece testul de
vigilenţă, atunci neuronul învingător va fi antrenat în aşa fel încât centrul grupului de vectori
consideraţi a fi similari asociat acestui neuron se va muta, în spaţiul trăsăturilor, înspre
trăsăturile vectorului de intrare.
Stratul de comparaţie mai este referit ca „stratul F1” şi reprezintă un strat ascendent.
Stratul de recunoaştere mai este referit ca „stratul F2” şi reprezintă un strat descendent.
Fiecare neuron din stratul de recunoaştere are asociat un vector de ponderi. Exemplu:
neuronul j (j=1,...,n) are ataşat vectorul de ponderi Bj. Acest vector reprezintă o formă
(vector) exemplară corespunzătoare unei categorii de forme de intrare. Fiecare neuron
primeşte ca şi intrare ieşirea stratului de comparaţie (vectorul C) prin intermediul vectorului
de ponderi corespunzător (neuronul j din stratul de recunoaştere primeşte la intrare ieşirea
stratului de comparaţie prin intermediul vectorului de ponderi Bj ). Ieşirea neuronului j din
stratul de recunoaştere este dată de:
m
y j   bij a yi
r C
(1)
i 1


1, daca y j  yi pentru i diferit de j
r r

a yj  f ( y j )  
r r
(2)

0, altfel
Unde ayic = ieşirea neuronului i din stratul de comparaţie

f = funcţie treaptă

37
m = numărul de neuroni din stratul de comparaţie
Aşa cum se observă în figura următoare, fiecare neuron i din stratul de comparaţie primeşte
următoarele trei intrări:
1). O componentă a formei de intrare x, de exemplu xi
2). Semnalul de câştig, G1, care este un scalar (o valoare binară); deci aceeaşi valoare intră în
fiecare neuron
3). Un semnal feedback de la stratul de recunoaştere care este o sumă ponderată a ieşirilor
stratului de recunoaştere. Semnalul de feedback Pi, prin intermediul ponderilor binare tij este
dat de:
n
Pi   t ji a yi , pentru i = 1,...,m
r
(3)
j 1

unde ayjr este ieşirea celui de-al j-lea neuron al stratului de recunoaştere.

n = numărul de neuroni din stratul de recunoaştere.

Figura 4 Stratul de comparaţie al arhitecturii ART


În Figura 4, Tj este vectorul de ponderi asociat cu neuronul j din stratul de recunoaştere.
Vectorul ayC reprezintă ieşirea stratului de comparaţie, ay c reprezentând ieşirea neuronului i.
i

Câştigul 1 (G1) este „1” atunci când vectorul ayr este zero şi atunci când SAU- logic între
componentele vectorului de intrare X este „1”, după cum se poate vedea în ecuaţia:

G1  (a y1 a y 2  a yn )( x1 x2  xm )
r r r

(4)

Câştigul 2 (G2) este „1” când SAU- logic între componentele vectorului de intrare X este „1”,
după cum se poate vedea în ecuaţia:
G2  ( x1 x2  xm ) (5)

38
Stratul de comparaţie utilizează o regulă de genul două treimi care susţine că, dacă două din
trei intrări sunt 1, atunci ieşirea este 1. Altfel rezultatul este 0. Ecuaţia următoare arată regula
două treimi:

0, pentru G1  x j  Pj  2

a yj  
C
(6)
1, pentru G1  x j  Pj  2

Procesul ART apare în mai multe faze. La început nu este nici o intrare, deci din ecuaţia (5)
putem observa că G2 este zero. Când un vector de intrare care apare în Figura 4 şi în Figura 5.
ca X este prezentat pentru prima dată reţelei, reţeaua intră în faza de recunoaştere. Vectorul
ayrde feedback din stratul de recunoaştere, este întotdeauna pus pe zero la începutul fazei de
recunoaştere. Bazându-ne pe ecuaţiile (4) şi (5), putem observa că prezentarea vectorului X în
această fază pune atât pe G1 cât şi pe G2 pe „1”. Aşa cum se poate vedea din condiţiile iniţiale
ale fazei de recunoaştere, ieşirea ayC a stratului de comparaţie va fi vectorul de intrare X
nemodificat. Deci stratul de comparaţie trece vectorul X prin el spre stratul de recunoaştere,
aşa cum se observă în Figura 5.
După aceea, fiecare neuron din stratul de recunoaştere calculează un produs între vectorul său
de ponderi Bj (ce are o valoare reală) şi vectorul ayC (care este ieşirea stratului de
comparaţie). Vectorul câştigător inhiba toţi ceilalţi neuroni ai stratului de recunoaştere (a se
ţine cont de inhibiţiile laterale din Figura 3). Aşadar o singură componentă ayjr a vectorului
ayr va fi „1” şi toate celelalte componente ale acestui vector vor fi „0”. Acest lucru iniţiază
faza de comparaţie.
Cu alte cuvinte, faza de recunoaştere are ca efect compararea fiecărui neuron din stratul de
recunoaştere, de fapt a prototipului său (stocat în ponderile de jos în sus) cu forma aplicată la
intrare (produsul dintre Bj şi ayC ). Mecanismul de inhibare mutuală determină ca cel cu
potrivirea cea mai bună să se activeze.
În timpul fazei de comparaţie trebuie determinat dacă o formă aplicată la intrare este suficient
de asemănătoare cu „învingătorul”(winner-ul) stocat, pentru a fi asimilat prototipului acestuia.
În timpul acestei faze este făcut, practic, testul de vigilenţă.
În faza de comparaţie, vectorul ayr nu mai este zero, deci G1 va fi zero. După regula 2/3,
numai neuronii care au simultan 1 în vectorul X şi în vectorul P se vor activa. Am reţinut
faptul că ponderile tij sunt valori binare. Acest feedback de sus în jos forţează apoi
componentele lui ayC să fie zero de fiecare dată în care vectorul de intrare X nu se potriveşte
cu forma memorată.

39
Figura 5 Operaţiile ART: pasul 1. G1 = 1.Vectorul de intrare este trecut prin intermediul
stratului de comparaţie, stratului de recunoaştere

Figura 6 Operaţiile ART: pasul 2. Cel mai „bun” neuron al stratului de recunoaştere
a fost ales câştigător. El trimite semnalul său înapoi prin stratul de comparaţie, prin
intermediul ponderilor sus-jos
Să presupunem că D este numărul valorilor de „1” din vectorul X şi K numărul valorilor de
„1” din vectorul ayC . Atunci raportul de asemănare (similaritate) este S = K/D.
Vectorul de asemănare S este deci o măsură a asemănării prototipului cu forma de intrare.
Acum trebuie să stabilim un criteriu după care să accepte sau să respingă clusterele, folosind
această metrică. Testul de vigilenţă poate fi reprezentat astfel:
S > ρ => test de vigilenţă trecut
S ≤ ρ => test de vigilenţă picat
Dacă e trecut testul de vigilenţă, atunci nu există o diferenţă substanţială între vectorul de
intrare şi prototipul câştigătorului. Deci acţiunea ce va fi executată va fi doar stocarea
vectorului de intrare în centrul clusterului neuronului câştigător.
În acest caz nu avem un semnal de reset. De aceea atunci când începe faza de căutare,
ponderile pentru acest vector de intrare sunt actualizate. În acest moment, funcţionarea reţelei
este completă.
Dacă S este mai mic decât un prag prestabilit, nivelul de vigilenţă ρ, atunci forma P nu este
suficient de asemănătoare cu centrul clusterului neuronului câştigător şi neuronul va trebui
inhibat. Inhibarea neuronului o realizează blocul de reset, care resetează ieşirea /activarea
neuronului curent pe tot parcursul clasificării curente (vezi Figura 7). Astfel se încheie faza de
comparaţie.
Se începe faza de căutare şi dacă nu a fost generat nici un semnal de reset, potrivirea e
considerată ca fiind adecvată şi procesul de clasificare e complet. Astfel, cu neuronul stratului
R care fusese activat, acum fiind dezactivat, vectorul R (ayr) este încă o dată pus pe zero.
Drept urmare, G1 trece în 1 deci X apare încă o dată pe stratul C (ayC) şi un alt neuron al
stratului de recunoaştere va ieşi învingător. Noul câştigător este supus testului de vigilenţă ca
mai înainte şi procesul se repetă până când fie este găsit un neuron care să se potrivească
intrării X cu o asemănare mai mare decât nivelul de vigilenţă (S > ρ). Vectorii de pondere Tj
şi Bj ai neuronului câştigător sunt actualizaţi, fie au fost încercate toate formele stocate. Apoi

40
un nou neuron anterior nealocat este asociat cu forma de la intrare şi Tj şi Bj sunt setate astfel
încât să se potrivească formei de la intrare.

Figura 7 Operaţiile ART: pasul 3. Vectorul de intrare X şi vectorul P din


stratul de recunoaştere sunt comparaţi. Testul de vigilenţă nu a fost trecut. De
aceea este inhibat neuronul câştigător prin mecanismul de reset.

Figura 8 Operaţiile ART: pasul 4. Învingătorul anterior rămâne dezactivat. Vectorul de intrare
este prezentat din nou stratului de recunoaştere (G1 = 1) şi un nou câştigător va fi selectat.

7.4. Algoritmul de antrenare ART1


La început ponderile bij sunt iniţializate la aceeaşi valoare mică calculată astfel:
bij < L / (L - 1 + m) (7)

unde m = numărul de componente ale vectorului X şi L o constantă (de obicei L = 2).


Pasul 1. Când o formă de intrare X este prezentată reţelei, stratul de recunoaştere selectează
învingătorul ca fiind ieşirea cea mai mare a reţelei.
n
y j   bij a yi
C
(8)
i 1

41
Pasul 2. Se face testul de vigilenţă. Un neuron j a trecut testul dacă şi numai dacă:
n
y j /  xi   , (9)
i 1

unde ρ = pragul de vigilenţă.


Pasul 2a). Dacă învingătorul nu trece testul de vigilenţă, se dezactivează (se pune pe zero) şi
se merge la pasul 1 pentru a selecta alt învingător.
Pasul 2b). Se repetă ciclul (pasul 1 până la 2a) până este găsit un învingător care trece testul
de vigilenţă, apoi se trece la pasul 4.
Pasul 3. Dacă nici un neuron nu a trecut testul de vigilenţă, se creează un nou neuron pentru
stocarea noii forme.
Pasul 4. Se ajustează ponderile feedforward pentru neuronul câştigător/ învingător. Se
actualizează ponderile feedback de la neuronul învingător către intrările sale.
Ecuaţiile care actualizează ponderile de jos în sus şi de sus în jos sunt următoarele:
bij = (L ayiC ) / (L – 1 +  aykc) (10)

tij = ayiC (11)

unde ayiC este neuronul i din stratul de recunoaştere.

42
II. Logica fuzzy
II.1 NOŢIUNI DE LOGICĂ FUZZY
II.1.1. Introducere

II.1.2. Definiţii

43
II.2. STRUCTURA GENERALĂ A UNUI SISTEM FUZZY

Structura generală a unui sistem fuzzy cu n intrări şi m ieşiri este prezentată în Figura 1.

Figura 1 Structura generală a unui sistem fuzzy

Din Figura 1 se observă că un sistem fuzzy este format din patru blocuri principale: blocul de
fuzzyficare, blocul de decizie, baza de reguli şi blocul de defuzzyficare.
Blocul de fuzzificare este responsabil de transformarea intrărilor crisp în mulţimi fuzzy.
Baza de legi conţine setul de legi lingvistice de forma DACĂ...ATUNCI... definite pe
variabilele lingvistice fuzzy. Ea conţine informaţii despre universul de discurs al variabilelor
precum şi, informaţii despre mulţimile fuzzy ataşate valorilor lingvistice ale variabilelor
fuzzy.
Blocul de decizie este răspunzător de, determinarea influenţei fiecărei legi în concluzia finală
precum, şi de generarea concluziei finale a sistemului fuzzy. Concluzia finală va fi o valoare
fuzzy în cazul în care sistemul fuzzy are o singură ieşire şi, va fi un vector de valori fuzzy,
dacă sistemul fuzzy va avea mai multe ieşiri (fiecare element al acestui vector va corespunde
unei singure ieşiri a sistemului fuzzy).
Blocul de defuzzificare are rolul de a converti concluzia fuzzy finală într-o valoare reală
(crisp) sau într-un vector de valori reale în funcţie de numărul de ieşiri pe care le are sistemul
fuzzy. Valoarea/vectorul de valori crisp obţinută/obţinut va reprezenta comanda/vectorul de
comandă pentru procesul condus.

II.2.1 Variabile, valori şi reguli lingvistice

II.2.1.1 Universul de discurs (de variaţie)


Intrările sistemul fuzzy sunt notate cu xi ( i  1, n ), unde xi Xi, iar ieşirile sunt notate cu yj
( j  1, m ), unde yj Yj. Intrările şi ieşirile sunt valori crisp (numere reale) şi nu mulţimi fuzzy.
Mulţimile Xi ( i  1, n ) respectiv Yj ( j  1, m ) reprezintă domeniile de variaţie pentru
variabilele xi respectiv yj. În literatura de specialitate domeniul de variaţie al unei variabile
mai poartă numele de universul de discurs al variabilei respective. În practică, universul de
discurs al unei variabile este mulţimea numerelor reale dar din considerente tehnice el se
restricţionează la intervale continue finite.

44
II.2.1.2 Variabile lingvistice
După cum se va vedea mai târziu, în această secţiune, expertul uman va utiliza o “descriere
lingvistică” a regulilor ce vor forma baza de reguli. Din această cauză, pentru descrierea
intrărilor şi ieşirilor sistemului fuzzy, se vor utiliza “variabile lingvistice”. O variabilă
lingvistică ataşată unei intrări sau ieşiri a sistemului fuzzy este o descriere simbolică (folosind
cuvinte ale limbajului uman) a ceea ce reprezintă valorile reale variabile în timp ce apar la
intrarea/ieşirea respectivă a sistemului fuzzy.
Pentru descrierea intrării xi a sistemului fuzzy din Figura 1 se va utiliza variabila lingvistică
xi iar, pentru ieşirea yj se va utiliza variabila lingvistică notată cu ~y j .
notată cu ~
Exemplu:
Pentru regulatorul fuzzy, utilizat de un sistem de reglare automată a iluminării pe suprafaţa
unui birou (planul de lucru), s-au ales ca intrări eroarea de reglare, notată cu e, şi variaţia
erorii de reglare, notată cu e. Pentru aceste două intrări sau ataşat variabilele lingvistice
~
e = “eroarea de reglare” şi ~ e =“variaţia erorii de reglare”. Ieşirea regulatorului fuzzy este
variaţia comenzii u. Pentru ieşire s-a ataşat variabila lingvistică u~ = “variaţia comenzii”.
Exemplu:
Pentru cazul unui sistem de estimare a preţului unui laptop se consideră intrările: anul de
fabricaţie, notat cu a, şi dotările laptopului, notate cu d. Ieşirea sistemului fuzzy este preţul
laptopului notat cu p. Pentru aceste variabile de intrare/ieşire se pot ataşa variabilele
~
lingvistice: a~ = “anul de fabricaţie”, d = “dotări laptop” şi ~p = “preţ laptop”.

II.2.1.3 Valori lingvistice


Simiar cu variabilele crisp xi şi yj, care iau diferite valori din domeniile de variaţie Xi şi Yj, şi
variabilele lingvistice ~ xi şi ~y j vor lua diferite “valori lingvistice” ce vor fi utilizate pentru a
descrie caracteristicile variabilelor.
~
Se va nota cu X ik valoarea lingvistică k a variabilei lingvistice ~ xi definită pe domeniul X i .
Dacă se consideră că există mai multe valori lingvistice definite pe X i atunci variabila ~ xi va
lua valori din mulţimea de valori lingvistice notată cu:
~

~

X i  X ik : k  1, 2,..., N i ,

unde Ni reprezintă numărul de valori lingvistice ale variabilei lingvistice ~


xi .
~
În mod similar pentru variabilele lingvistice de ieşire notaţia Y jl semnifică valoarea
lingvistică l a variabilei lingvistice ~y j definită pe domeniul Yj. Dacă se consideră că există
mai multe valori lingvistice definite pe Y atunci variabila ~y va lua valori din mulţimea de
j j

valori lingvistice notată cu:


~ ~
Y j  {Y jl : l  1, 2,..., M j } ,

unde Mj reprezintă numărul de valori lingvistice ale variabilei lingvistice ~y j .


Valorile lingvistice sunt în general termeni descriptivi cum sunt: “mare”, “mic”, “mediu”,
“lung”, “scurt”, “slab”, “pozitiv mediu”, “zero”, “negativ mare”.
Exemplu:

45
Se presupune că ~
x1 descrie variabila lingvistică “iluminare”. Astfel dacă se ataşează valorile
~ ~ ~
lingvistice X 11 =“slabă”, X 12 =“standard”, X 13 =“mare” atunci ~
x1 va avea valori în mulţimea
~

~ ~ ~

X 1  X 11 , X 12 , X 13 .
Exemplu:
În cazul sistemului fuzzy de estimare a preţului unui laptop considerăm că, lingvistic, preţul laptopului
~
poate fi caracterizat prin: “mic”, “rezonabil” şi “mare”. Astfel putem ataşa valorile lingvistive: P1 =
~ ~
“mic”, P 2 = “rezonabil” şi P 3 = “mare”. În acest caz variabila lingvistică ~
p va avea valori în
~
~ ~ ~

mulţimea P  P1, P 2 , P 3 . În practică, când numărul de valori lingvistice ataşate unei variabile
lingvistice este mic, se preferă notarea intuitivă a acestor valori, pentru citirea mai uşoară de către
expertul uman a tabelelor de reguli. Astfel în cazul acestui exemplu cele trei valori lingvistice se pot
nota: Mi = “mic”, R = “rezonabil” şi Ma = “mare”, astfel mulţimea valorilor lingvistice este:
P  Mi, R, Ma .
~

II.2.1.4 Reguli lingvistice


“Funcţia” ce leagă intrările de ieşirile sistemului fuzzy este caracterizată de un set de reguli de
tipul condiţie→acţiune sau în forma modus ponens (DACĂ...ATUNCI...)
DACĂ premiză ATUNCI consecinţă. (1)
De obicei, intrările sistemului fuzzy sunt asociate cu premize, iar ieşirile, sunt asociate cu
consecinţe. Aceste reguli DACĂ...ATUNCI... pot fi reprezentate în multe forme. În
continuare vor fi prezentate doar două forme standard:
- forma “multe-intrări multe-ieşiri” cunoscută în literatura de specialitate sub denumirea de
forma MIMO (Multi-Input Multi-Output)
~ ~ ~
DACĂ ~ x1 este X 1j şi ~
x2 este X 2k şi ... şi ~
xn este X nl
~ ~ ~
ATUNCI ~y1 este Y1 p şi ~y 2 este X 2r şi ... şi ~
xm este X ms ; (2)
- forma “multe-intrări o singură -ieşire” cunoscută în literatura de specialitate sub denumirea
de forma MISO (Multi-Input Single-Output)
~ ~ ~
DACĂ ~ x1 este X 1j şi ~
x2 este X 2k şi ... şi ~
xn este X nl
~
ATUNCI ~y q este Yq p . (3)

II.2.1.5 Mulţimea fuzzy şi conectori şi operatori fuzzy

II.2.1.5.1 Mulţime fuzzy


Pentru a fi în concordanţă cu notaţiile din secţiunile precedente vom considera următoare
formă de definire a unei mulţimi fuzzy.
~
Dacă se consideră variabila lingvistică ~
xi cu valoarea lingvistică X ik definită pe universul de
discurs X i , şi funcţia de apartenenţă  X k xi  definită pe X i cu valori în [0,1], atunci,
i

“mulţimea fuzzy” notată cu X se defineşte prin setul de perechi


i
k

X ik  {( xi ,  X k ( xi )) : xi X i} . (4)
i

46
Exemplu:
Se consideră variabila crisp iluminarea măsurată în planul de lucru notată cu x1 . Se va ataşa
~
variabila lingvistică ~
x1 = “iluminare” cu valoarea lingvistică X 11 = “slabă”. În acest caz X 11 este o
mulţime fuzzy a cărei funcţie de apartenenţă descrie gradul de certitudine ca valoarea numerică a
~
iluminării măsurate la momentul de timp t ( x1 (t )  X 11 ) să posede proprietatea caracterizată de X 11 .

II.2.1.5.2 Conectori şi operatori ai mulţimilor fuzzy


Diferitele cerinţe de tratare a informaţiei vagi necesită existenţa unor conectori lingvistici
(cuplori) ai termenilor lingvistici prin care se caracterizează mulţimile fuzzy. Rezolvarea
matematică (evaluarea) a conexiunilor se bazează pe utilizarea unor operatori adecvat definiţi;
corespunzător, regulile de acţiune a operatorilor sunt specifice teoriei mulţimilor fuzzy.

Conectorul ŞI (operatorul ŞI)


Corespunde intersecţiei mulţimilor fuzzy (definită în subcapitolul “Noţiuni de logică fuzzy”)
cu funcţiile de apartenenţă 1, 2, … definite pe acelaşi univers de discurs X şi se evaluează
(de exemplu) prin operatorul minimum (MIN).

Conectorul SAU (operatorul SAU)


Corespunde reuniunii mulţimilor fuzzy (definită în subcapitolul “Noţiuni de logică fuzzy”) cu
funcţiile de apartenenţă 1, 2, … definite pe acelaşi univers de discurs X şi se evaluează (de
exemplu) prin operatorul maximum (MAX).

Produsul Cartezian
După cum s-a văzut anterior intersecţia şi reuniunea sunt definite pentru mulţimi fuzzy pe
acelaşi univers de discurs. Produsul Cartezian fuzzy este utilizat pentru a cuantifica operaţiile
pe mai multe universuri de variaţie. Dacă X 1j , X 2k ,..., X nl sunt mulţimi fuzzy definite pe
universurile de discurs X 1 , X 2 ,..., X n atunci produsul lor Cartezian este mulţimea fuzzy
(uneori numită “relaţie fuzzy”) notată cu X 1j  X 2k  ...  X nl şi cu funcţia de apartenenţă
definită prin
X ( x1 , x2 ,..., xn )   X j ( x1 )   X k ( x2 )   X l ( xn ) (5)
1  X 2  X n
j k l
1 2 n

II.2.2 Fuzzyficarea
Mulţimile fuzzy sunt utilizate pentru a cuantifica informaţiile în baza de reguli, iar
mecanismul de decizie operează cu mulţimi fuzzy pentru a produce mulţimi fuzzy. Astfel,
este necesar a specifica mecanismul prin care un sistem (în mod general) sau un sistem (în
mod particular) fuzzy va converti intrările sale numerice xi  X i în mulţimi fuzzy – proces
numit fuzzyficare – astfel ca acestea să poată fi utilizate de sistemul sau sistemul fuzzy.
Se va nota cu X i* mulţimea tuturor mulţimilor fuzzy ce pot fi definite pe universul de discurs
X i . Fie xi  X i , blocul de fuzzyficare va transforma xi într-o mulţime fuzzy notată cu X̂ i fuz
definită pe universul de discurs X i . Această transformare este produsă de operatorul de
fuzzyficare F definit prin
F : X i  X i*

47
unde
F( xi ) = X̂ i fuz . (6)

Mulţimea fuzzy X̂ i fuz obţinută în urma fuzzyficării poate fi o mulţime fuzzy:

a) singleton cu suportul xi ;  Xˆ ( xi ' )  1 dacă xi '  xi şi  Xˆ ( xi ' )  0 dacă


fuy fuy
i i

xi '  xi , xi  X i .
b) nonsingleton.
Astfel, denumirea metodei de fuzzyficare va fi dată de numele funcţiei de apartenenţă ataşată
mulţimii fuzzy X̂ i fuz . De exemplu funcţia de apartenenţă Gaus va implica fuzzificare
gausiană, funcţia de apartenenţă triunghi va implica fuzzyficare triunghiulară.
În multe aplicaţii practice din domeniul reglării fuzzy este utilizată fuzzyficarea singleton.
Motivele pentru care metodele de fuzzyficare nonsingleton nu sunt prea utilizate, sunt: aduc
procesului de decizie o complexitate de calcul suplimentară; nevoia utilizării lor nu afost
destul de bine justificată; practica a dovedit faptul că utilizarea fuzzyficării singleton conferă
o foarte bună funcţionare sistemelor fuzzy de reglare automată. Totuşi utilizarea fuzzyficării
nonsingleton nu a fost exclusă definitiv din teoria generală a sistemelor fuzzy, fiind totuşi
propusă de unii autori (dar nu şi utilizată de ei) pentru aplicaţiile în care semnalele de intrare
în sistemul fuzzy sunt perturbate de zgomot.

II.2.3 Mecanismul de decizie

Mecanismul de decizie se efectuează în două etape de bază: a) etapa de potrivire (matching),


în care, se determină care reguli din baza de reguli sunt relevante pentru situaţia curentă
(caracterizată de intrările xi , i  1, n ); b) etapa de decizie (inference), în care, utilizând
intrările curente xi şi informaţiile din baza de reguli se vor genera concluziile.

Notă: Pentru etapa de potrivire produsul Cartezian X 1j  X 2k  ...  X nl este mulţimea fuzzy ce
reprezintă premiza regulii (j,k,...,l;p,q)i, i  1, R , unde R este numărul de reguli din baza de
reguli.

II.2.3.1 Etapa de potrivire


Fie xi , i  1, n intrările la un moment dat de timp. În urma fuzzyficării se obţin mulţimile
fuzzy X̂ i fuz , ce vor reprezenta intrările fuzzy.
Etapa de potrivire se va realiza în doi paşi:
- combinarea intrărilor fuzzy cu premizele regulilor;
- determinarea regulilor active.

II.2.3.1.1 Pas 1 - Combinarea intrărilor fuzzy cu premizele regulilor


Acest pas presupune găsirea mulţimilor fuzzy X̂ ip ( i  1, n , p  1, N i ) cu funcţiile de
apartenenţă

48
 Xˆ ( xi )   X ( xi )   Xˆ ( xi )
i
p
i
p
i
fuz (7)

unde i  1, n ;

p  1, N i ;
Ni – numărul de funcţii de apartenenţă definite pe universul X i .

Relaţia (4.27) combină mulţimile fuzzy, obţinute în urma fuzzyficării intrărilor xi , cu


mulţimile fuzzy utilizate în fiecare din termenii premizelor regulilor. Dacă se utilizează
fuzzyficarea singleton atunci relaţia (4.27) devine
 Xˆ ( xi )   X ( xi ) ,
p p (8)
i i

unde:
i  1, n ;

p  1, N i ;
Ni – numărul de funcţii de apartenenţă definite pe universul X i .

II.2.3.1.2 Pas 2 - Determinarea regulilor active


Dacă se utilizează toate valorile posibile ale variabilelor de intrare x1 , x2 ,..., xn atunci se poate
obţine o funcţie de apartenenţă multidimensională pentru premiza fiecărei reguli utilizând
următoarea relaţie
i premiza
( x1 , x2 ,..., xn )   Xˆ j ( x1 )   Xˆ k ( x2 )   Xˆ l ( xn ) ,
2 n
(9)
1

unde:
i  1, R ;
R – numărul de reguli din baza de reguli.
Dacă se utilizează fuzzyficare singleton atunci relaţia (4.29) devine
i premiza
( x1 , x2 ,..., xn )   X j ( x1 )   X k ( x2 )     X l ( xn ) .
2 n
(10)
1

Se consideră x1 , x 2 ,..., x n ca fiind valorile corespunzătoare variabilelor de intrare x1 , x2 ,..., xn


la un moment dat de timp. În acest caz valoarea funcţiei de apartenenţă i premiza ( x1 , x 2 ,..., x n )
( i  1, R ), poate fi interpretată în felul următor: “cât de sigur” este proiectantul (sistemului
fuzzy) “ca a i-a regula să fie utilizată pentru a specifica comanda pentru proces”. Aceeaşi
valoare din punct de vedere matematic poate fi interpretată ca “ponderea” pe care o va avea
regula i în ce priveşte construirea deciziei finale a sistemului fuzzy (calcularea comenzii
pentru procesul supus reglării).

II.2.3.2 Etapa de decizie


Pentru realizarea acestei etape există două variante standard: prima variantă, presupune
utilizarea “mulţimilor fuzzy implicate” iar, cea de-a doua variantă presupune utilizarea
“mulţimii fuzzy implicată totală”.

49
II.2.3.2.1 Determinarea mulţimilor fuzzy implicate
În acest caz, etapa de decizie presupune calcularea pentru regula (j,k,...,l;p,q)i, a “mulţimii
fuzzy implicate” Yˆqi cu funcţia de apartenenţă

Yˆ ( yq )  i
q
i
premiza
( x1 , x2 ,..., xn )  Y p ( yq ) .
q
(11)

II.2.3.2.2 Determinarea mulţimii fuzzy implicată totală


În acest caz este determinată “mulţimea fuzzy implicată totală” Yˆq cu funcţia de apartenenţă

Yˆ ( yq )  Yˆ ( yq )  Yˆ ( yq )  ...  Yˆ ( yq ) ,


q
1
q q
2
q
R (12)

care reprezintă concluzia obţinută considerând toate regulile din baza de reguli.

II.2.4 Defuzzyficarea
Defuzzificarea este operaţia care produce valori non-fuzzy asociate unor mulţimi fuzzy. Altfel
spus o reuniune de mulţimi fuzzy obţinută în urma evaluării legilor
~ ~ ~ ~
R i  : DACA x1 este X 1j şi x2 este X 2k ... şi xn este X nl ATUNCI y este Yq p , i  1, N , active, va fi
transformată într-o valoare crisp.
În literatura de specialitate există multe abordări în ce priveşte operaţia de defuzzyficare. În
lucrarea de faţă, în construcţia regulatoarelor fuzzy folosite pentru aplicaţiile experimentale, s-
a utilizat metoda centrului de greutate prezentată în, după care, o valoare crisp y qcrisp este
calculată utilizând centrul ariei şi aria fiecărei mulţimi fuzzy implicate Yˆ i (prezentate în
q

secţiunea 2.4.2.1):
R

c  q
i
yq
Yˆ ( y q )dy q
q
i

y crisp
q  i 1
R
(13)

i 1
yq
Yˆ ( y q )dy q
q
i

unde:
R - numărul de reguli;
ciq - centrul ariei funcţiei de apartenenţă corespunzătoare mulţimii fuzzy Yqp asociată cu
mulţimea fuzzy implicată Yˆ i corespunzătoare regulii i;
q

yq
Yˆ ( yq )dyq - aria funcţiei de apartenenţă Yˆ ( yq ) ;
q
i
q
i

yq – ieşirea q a sistemului, q  1, m , m – numărul de ieşiri ale sistemului.


Metoda de faţă este prezentată în sub numele de metoda centrului sumei. În lucrarea de faţă
referirea la această metodă de defuzzyficare se va face prin metoda centrului de greutate.

50
II.2.5. Structuri fuzzy

II.2.5.1. Structura Mamdani


Pentru simplitate se consideră următoarele două reguli:

II.2.5.2. Structura Takagi-Sugeno


În cazul acestei structuri, regulile sunt sub forma:
R1: DACĂ ~ x este A1 ŞI ~y este B1 ATUNCI z1=a1x + b1y
SAU
R2: DACĂ ~
x este A2 ŞI ~y este B2 ATUNCI z2=a2x + b2y
SAU

Se consideră că:
- intrările au valorile: x = x0, y = y0;
- Baza de reguli are doar 2 reguli lingvistice (R1, R2).
Se cere calcularea valorii ieşirii (z0) sistemului fuzzy.
Soluţionare:
- Se calculează ponderea de activare a fiecărei reguli:
1   A ( x0 )  B ( y0 )
1 1

 2   A ( x0 )  B ( y0 )
2 2

- Se calculează ieşirea fiecărei reguli:


z1*  a1 x0  b1 y0

z 2*  a2 x0  b2 y0
- Se calculează valoarea crisp a ieşirii
1 z1*   2 z 2*
z0 
1   2
Dacă baza de reguli are n reguli atunci valoarea crisp a ieşirii sistemului se calculează cu:
n

 z *
i i
z0  i 1
n
, unde i reprezintă ponderea de activare a i-a reguli, i=1,…,n

i 1
i

Exemplu:[2]
Fie sistemul fuzzy Takag-Sugeno cu următoarea bază de reguli:

51
BIBLIOGRAFIE

[1] Abhijit S. Pandya, Robert B. Macy, Pattern Recognition with Neural Networks in C++,
CRC Press. Boca Raton, 1996;
[2] Anderson, J., A., An Introduction to Neural Networks, Massachusetts Institute of
Technology, 1995
[3] http://vv.carleton.ca/~neil/neural/neuron-a.html
[4] David, L., Marton, L., Retele neuronale si logica fuzzy in automatizari, Editura
Universitatii "Petru Maior", Tg.-Mures, 2000;
[5] Dumitrache,. I., Constantin, N., Drăgoicea, Monica, Reţele neuronale. Identificarea şi
conducerea proceselor, Editura Matrix Rom, Bucureşti, 1999.
[6] J., A., Freeman, D., M., Skapura, Neural Networks: algorithms, applications and
programming techniques, Addison-Wesley Publishing Company, 1991;
[7] Fuller, R.,Neural Fuzzy Systems, Abo Akademi University,Abo,1995;
[8] Lackes, R., Mack, D., Neural Networks. Basics and Applications, CBT Program on Neural
Nets (c) Springer-Verlag Berlin, Heidelberg, 1998.
[9] Passino, K., M., Yurkovich S., Fuzzy Control, Addison Wesley, 1998.
[10] Preitl, Şt., Precup, R., E, Introducere în conducerea fuzzy a proceselor, Editura Tehnică,
1997.
[11] Trifa, V., Gaură, E.,I., Reţele neuronale artificiale. Arhitecturi fundamentale, Editura
Mediamira, Cluj-Napoca, 1996;
[12] L., A., Zadeh, Fuzzy Sets, Information and Control, 8, pp. 338-353, 1965;
[13] Dumitrescu, D., Costin, H., Reţele neuronale. Teorie şi aplicaţii, Ed. Teora, 1996
[14] Tiponuţ, V., Căleanu, C., D., Reţele neuronale. Arhitecturi şi algoritmi, Ed. Politehnica, Timişoara,
2002
[15] Gupta, M.,M., L., Jin, N. Homma, Static and dynamic neural networks. From fundamentals to
advanced theory, John Wiley & Sons, Inc., 2003
[17] Hristev, R., M., The ANN Book, Edition 1, 1998
ftp://ftp.funet.fi/pub/sci/neural/books/
[18] Andonie, R., Caţaron, A., Inteligenţă computaţională, Universitatea “Transilvania”, Braşov, 2002

52

S-ar putea să vă placă și