Documente Academic
Documente Profesional
Documente Cultură
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
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.
3
Figura 2.1. Reprezentarea schematică a neuronului biologic
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.
5
Scopul antrenării (învăţării) perceptronului binar este de a modifica ponderile i (i=1n), î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.
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)
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.
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 + 00 = 1,2;
2<2> = 2<1> + 2<1> = 2<1> + e<1> x2<1> = 1,0 + 00 =1,0;
<2> = <1> + <1> = <1> + e<1> x1<1> = -0,15 + 00 = -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> = 11,2 + 01 + 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> = 00,2 + 11,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 + 00 = 0,2;
2<4> = 2<3> + 2<3> = 2<3> + e<3> x2<3> = 1,0 + 01 =1,0;
<4> = <3> + <3> = <3> + e<3> x1<3> = -1,15 + 01 = -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> = 10,2 + 11,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 + 01 = 0,2;
2<5> = 2<4> + 2<4> = 2<4> + e<4> x2<4> = 1,0 + 01 =1,0;
<5> = <4> + <4> = <4> + e<4> x1<4> = -1,15 + 01 = -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
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> = 10,2 + 01 + 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> = 00,2 + 11 + 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> = 10,2 + 11 + 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
- 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
12
1 daca y 0
Fa ( y ) (10)
1 daca y 0
1 daca y 1
Fa ( y ) y daca y 1 (11)
1 daca y 1
1
Fa ( y ) (12)
1 ey
2
Fa ( y ) 1 (13)
1 ey
13
e y e y
Fa ( y ) tanh( y ) (14)
e y ey
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).
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;
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
1k
2
2 i1
1 N1 k
d i a1k
i 2
1 N1 k
2 i1
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:
ijk 1 ijk ijk ijk grad E k ij
E k (19)
ijk
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 p1
k k
yi1
E k
x j k ik x j k x j k ik
1k
y i
E k
x j k ik , 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
ik
E k
1k
E k ai1
1k 1k
ai1
1k
1k 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 ) 1k ai
1
k
2 d ik ai1 k
d i
k
ai k
yi1 2 ai1 yi1
y
k
1k ai1
i
k
d i
k
a i 1k
(22)
i
k
E k k ai
1
x j k dik 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
gradij E k
x j k ik
ij
ij
(24)
d y
k
1 k ai1
x k k
a
j i i 1 k
i
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 i1
di ai1
k
2
y
k
1k ai1
i
k
d i
k
a
i 1k
, 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.
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.
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.
ij2
yi2
k
ij2
2
yi2 ij k 1
k
ik ak i
E k k k 1k 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
k
E k 1k 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 gradij E k a1j i2
ij
(33)
d y
k
1 k 2 k ai2
aj k
ai
i 2 k
i
Î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.
1 N2 k
k k k 2
E k E k ai1 ai1 E k ai1
1k 2
1k k
i k
1k
1k
1k
1k
1k
d n an2
yi1 ai yi yi ai yi ai n1
k
2 k
2
N 2 d n an a1k 1 N2
1k k
a 1 an2
i
i
2 d n an
k 2 k
yi 1k 2 n1 ai1
k
yi1k 2 n1 ai1
k
k
yi2
k k k
ai1 N2
an2
d n an
2 k
y 1k
n1 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
n1 yi2
k
ai1 m1
m nm n
23
a1k 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
n1 n1
k
ai1 N2
n2
k k k
i1
1k
ni2 (19)
y i n1
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 gradij E k x j k i1 (21)
1 k
ij
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
p1
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 i1
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
ijk 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
1k
2 k
2
k
i
1k 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.
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ă;
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
28
I.6.1.2 Tipuri de memorii asociative
Fie setul de perechi de vectori {(x1,y1),( x2,y2),…( xN,yN)} (xiRn, yiRm, 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)
29
= x1x1t + x2x2t + … + xNxNt (10)
În acest caz, matricea de ponderi este pătratică şi simetrică.
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;
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).
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
1
unde factorul apare deoarece memoria Hopfield are un singur strat faţă de cele două
2
straturi ale MAB.
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
gi1 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.
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ă
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.
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 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.
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
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.
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.
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”.
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 .
~
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 .
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)
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.
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.
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 .
unde:
i 1, n ;
p 1, N i ;
Ni – numărul de funcţii de apartenenţă definite pe universul X i .
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
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)
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
50
II.2.5. Structuri fuzzy
2 A ( x0 ) B ( y0 )
2 2
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