Uploaded by Yasser Alhadad

Retele Neuronale - (Romanian)

advertisement
1
INTRODUCERE ÎN CALCULUL NEURONAL
Calculul neuronal se bazează pe modele matematice inspirate din neurobiologie, numite
reţele neuronale. O reţea neuronală are trei caracteristici generale:
• unităţi de calcul interconectate, numite neuroni
• reguli recursive pentru modificarea ponderilor conexiunilor dintre neuroni
• reguli de calcul simple.
1.1. NEURONUL BIOLOGIC
11
Unitatea celulară fundamentală a creierului este neuronul. Creierul uman are aproximativ 10
4
neuroni, fiecare fiind interconectat cu aproximativ 10 alţi neuroni.
Neuronul biologic este alcătuit din:
• corp neuronal (sau soma), constituit din membrană şi substanţă intracelulară, rolul său fiind
de a transforma semnalele de intrare în semnale de ieşire
• arbore dendridic, care reprezintă prelungiri ale corpului neuronal şi are rolul de a colecta
semnalele de intrare de la alţi neuroni
• axon, care este o prelungire a corpului neuronal cu rol de a transmite semnalul de ieşire
către alţi neuroni, prin intermediul arborelui axonic.
Neuronii sunt interconectaţi prin intermediul unor legături numite sinapse, care reprezintă
punctele de contact dintre ramurile arborelui dendridic al unui neuron pre-sinaptic cu ramurile
arborelui axonic ale unui neuron post-sinaptic. Prin intermediul dendridelor, neuronul primeşte
informaţie sub formă de impulsuri nervoase de natură electrică. Aceste impulsuri provoacă
depolarizări ale membranei neuronale, adică modificări ale diferenţei de potenţial dintre
exteriorul şi interiorul celulei.
Potenţialele locale generate pe suprafaţa membranei se însumează, iar dacă potenţialul
rezultat depăşeşte o anumită valoare – numită prag – atunci se generează un potenţial de acţiune
care se transmite de-a lungul axonului pană la legătura sinaptică.
Impulsurile ajunse la nivelul sinapsei provoacă eliberarea unor substanţe chimice purtătoare
de informaţie, numite neurotransmiţători; cantitatea de neurotransmiţători depinde de impulsurile
primite dar şi de alţi factori. Membrana post-sinaptică recepţionează neurotransmiţătorii şi
determină modificări ale permeabilităţii ionice a membranei, deci depolarizări. Sinapsele pot fi
excitatoare (dacă provoacă depolarizare pozitivă) sau inhibitoare (dacă provoacă depolarizare
negativă).
1.2. NEURONUL ARTIFICIAL
Într-o reţea neuronală, analogul neuronului biologic este neuronul artificial, numit
simplu neuron. Fiecare neuron are n intrări şi o ieşire. Intrările x1 , x2 , , xn sunt numere
reale şi reprezintă semnalele venite de la alţi neuroni sau din lumea exterioară şi corespund
semnalelor electrice din modelul biologic. Fiecare intrare xi are asociată o pondere wi , ce
corespunde valorii sinaptice din neuronul biologic. Semnalul de ieşire este dat de relaţia
 
 n

y  f ( w, x )  f wT x  f   wi xi 
 i 1


w  w1 ,, wn T  R n

T
este vectorul ponderilor. Funcţia f w x se numeşte funcţie de
activare (sau transfer). Definind variabila s ca fiind produsul scalar
unde
s  w, x  wT x  w1 x1    wn xn
în cazul cel mai simplu, ieşirea y se calculează ca fiind

1 dacă wT x  
y  f s   

0 altfel
unde  este pragul de activare.
x1










xn
w1

wn
f
y
Figura 1.1 Neuron cu o singură ieşire
Există şi alte funcţii de activare, cele mai utilizate fiind
• funcţia liniară f : R  R, f ( x)  x
• funcţia treaptă
1, x  0
f : R  0, 1, f ( x)  
0, x  0
• funcţia rampă
x 1
1,

f : R   1, 1, f ( x)   x, x   1, 1
 1, x  1

• funcţia semn
x0
1,
f : R   1, 1, f ( x)  sign( x)  
 1, x  0
• funcţia sigmoidală
f : R  (0, 1), f ( x) 
1
1  e  kx
, k 0
Alegerea unei funcţii de activare depinde de modelul de reţea neuronală ales şi de tipul
problemei de rezolvat, nefiind constrânsă decât de analogia cu modelul biologic. Valoarea
furnizată de funcţia de activare este propagată pe căile de ieşire, echivalente arborelui axonic din
modelul biologic.
Exemplul 1.1. Considerăm intrările x1 , x2  0, 1 , ieşirea y  0, 1 şi mulţimea de antrenare
definită prin
y ( x1 , x2 )  x1  x2
x1
x2
1
1
1
1
0
0
0
1
0
0
0
0
Problema învăţarii constă în găsirea ponderilor w1 , w2 şi a pragului  astfel încât ieşirea dată de
reţea să coincidă cu cea dorită. O soluţie este
1
w1  w2  ,   0.6
2
şi
1, x1 2  x2 2  0.6
y ( x1 , x2 )  
0, altfel
X1
X2
Figura 1.2. O soluţie a problemei din Exemplul 1.1
onfigurarea unei reţele neuronale constă în determinarea ponderilor şi a pragurilor.
Eliminarea pragului asociat unui neuron este o problemă simplă. Din
w1 x1    wn xn    w1 x1    wn xn  1  0
rezultă că prin adăugarea unui extra-neuron în stratul de intrare, cu valoarea fixată  1 şi
ponderea  , pragul devine zero.
x1










x1
w1

y
wn

w1





 wn
xn
y
0

1
xn
Figura 1.4. Eliminarea pragului
Deşi foarte simplu, acest model de neuron reprezintă o unitate de calcul foarte puternică,
McCullogh şi Pitts demonstrând că o reţea neuronală poate efectua orice calcul, cu condiţia
alegerii convenabile a ponderilor.
2 REŢELE CU UN SINGUR NIVEL
2.1. PERCEPTRONUL SIMPLU CU O SINGURĂ
IEŞIRE
Perceptronul simplu este cea mai studiată reţea neuronală, proprietăţile ei putând fi
regăsite la orice altă reţea. Perceptronul simplu nu are straturi ascunse şi foloseşte învăţarea
supervizată. Interesul pentru perceptronul simplu este şi de natură istorică: el reprezintă modelul
din care s-au dezvoltat toate celelalte reţele neuronale.
Considerăm o reţea de tipul celei din Figura 2.1, unde
wij
reprezintă ponderea intrării j către
w  wi1 , , wim 
neuronul de ieşire i iar i
este vectorul ponderilor către neuronul i .
T
Semnalul de învăţare este
r  d i  yi
cu
  şi di răspunsul dorit pentru neuronul de ieşire i , când la intrare se prezintă
yi  sign wiT x
vectorul x .
Fie regula de învăţare: vectorul wi creşte proporţional cu produsul dintre intrarea x şi semnalul


de învăţare r , definit în general ca o funcţie r  r wi , x, d i . Notând
wi (t )  c  r ( wi (t ), x(t ), di (t ))  x(t )
(1.1)
unde t este timpul iar c este constanta de învăţare, rezultă următoarea regulă de modificare a
ponderilor
wi (t  1)  wi (t )  wi (t ) .
(1.2)
Conform formulelor (1.1) - (1.2), ponderile se modifică astfel:
wi : wi  cd i  sign wi , x  x
wij : wij  cd i  sign wi , x  x j
unde i  1, , m,
j  1, , n, c  0 este rata de învăţare iar x, d  este perechea de instruire.
x1
w11
y1
x2


ym


wmn
xn
Figura 2.1 Reţea feedforward uninivel Considerăm un singur neuron la
ieşire şi x, d  o pereche de instruire; vectorul x va aparţine uneia din cele două clase disjuncte
C1  x / d  1, C 2  x / d  1 .
Ţinând seama de definiţia funcţiei de activare, rezultă că se doreşte căutarea unui vector pondere
w astfel încât
 w, x  0 pentru orice x  C1 şi
 w, x  0 pentru orice x  C 2 .
Dacă un astfel de vector există, atunci problema definită de perechile de instruire se numeşte
liniar separabilă.
Algoritmul perceptronului






1
K
x k  x1k , , xnk d k   1, 1 k  1,  , K
Fie perechile de instruire x , d1 , , x , d K cu
,
,
şi
L numărul maxim de cicluri de instruire admise.
Pasul 1. Se alege constanta de instruire c  0
Pasul 2. Iniţializări: E : 0, k : 1, l : 0 , w se iniţializează cu
valori mici aleatoare
Pasul 3. Se prezintă reţelei
perechea
x
k
, dk
,
simplitate x, d  şi se calculează ieşirea y
notată pentru
yx   sign w, x  .
Pasul 4. Se modifică ponderile
w : w  cd  sign w, x   x
Pasul 5. Se cumulează eroarea
E : E  d  y
Pasul 6. Dacă k  K atunci k : k  1 şi se continuă cu Pasul 3; în
caz contrar se merge la Pasul 7
Pasul 7. S-a terminat un ciclu de instruire: l : l  1 . Dacă E  0 sau
l  L algoritmul se opreşte. În caz contrar, se atribuie
valorile E : 0, k : 1 şi se iniţiază un nou ciclu de instruire,
mergându-se la Pasul 3.
2.2 PERCEPTRONUL MULTIPLU
Perceptronul multiplu este o reţea neuronală care are n neuroni de intrare total
interconectaţi cu cei m neuroni de la ieşire. Perceptronul multiplu se utilizează pentru rezolvarea
problemelor de clasificare multiplă, cele m unităţi de la ieşire permiţând clasificarea în m clase.
Folosim notaţiile amintite anterior:
w
•
= matricea ponderilor
•
wij
•
wi  wi1 ,  , win 
= ponderea intrării j către ieşirea i
T
= vectorul ponderilor spre neuronul de ieşire i
• y i = ieşirea neuronului i
i
• d = ieşirea dorită pentru neuronul i
ÎNVĂŢARE COMPETITIVĂ
m
n
Pentru un semnal de intrare x  R se obţine ieşirea y  R astfel
n
y  wx sau
yi  wi , x   wij x j , i  1, , m
j 1
Componenta maximă
vectorul de intrare x .
yj
a vectorului y determină indicatorul j al clasei căreia îi aparţine
Algoritmul de învăţare competitivă
x , d , , x
1
Fie
1
L
,d L
 mulţimea de instruire, unde
d i  1, 2, , m este indicatorul
k
i
clasei căreia îi aparţine x . Notăm cu , respectiv cu wi , matricea w , respectiv linia i din
matricea w , la iteraţia k .
1
Pasul 1. Se iniţializează w şi indicatorul iteraţiei: k : 1
Pasul 2. Pentru fiecare l  1, 2, , L se efectuează
2.1. se determină indicele j al unităţii care produce ieşirea
maximă
wkj x l  max wik x l
i 1,..., m
l
2.2. dacă j  d , nu se efectuează nimic
l
dacă j  d atunci
•
wkj 1  wkj  cx l
•
wdk l1  wdk l  cx l

k 1
k
l
• wi  wi pentru i  j, d

Pasul 3. Algoritmul se opreşte dacă este îndeplinită una din
condiţiile:
i)
la ultima parcurgere a Pasului 2 nu s-a efectuat nicio modificare a ponderilor
ii)
k a atins numărul maxim de iteraţii admis.
În
caz contrar se incrementează indicatorul iteraţiei
k : k  1 şi se merge la Pasul 2.
ÎNVĂŢARE CU AJUTORUL REGULII DELTA
Considerăm mulţimea de antrenament
x , d , , x
1
1
x k  x1k , , xnk
,
K

,d K ,
unde

T

d k  d1k , , d mk

T
, k  1,  , K .
Ideea de bază în descoperirea regulii de învăţare constă în a defini performanţa reţelei şi a
optimiza această performanţă. Putem defini performanţa ca fiind
K
1 K k
E   Ek   d  y k
2 k 1
k 1
2
adică
E

1 K m k
 d i  yik
2 k 1i 1

2



1 K m k
 d i  f  wi , x k 
2 k 1i 1

2
k
unde i este indicele unităţii de ieşire, k indexează perechea ce trebuie învăţată, d i şi respectiv


yik  f  wi , x k  reprezintă ieşirea dorită, respectiv ieşirea reţelei, corespunzătoare unităţii i
k
când la intrare se prezintă vectorul x .
Vom
considera
cazul funcţiilor de
transfer continue. Semnalul de învăţare este numit
delta şi este

   .
r  d i  f wiT x f ' wiT x
Expresia sa rezultă din condiţia de minimizare a erorii E .
Notând

 
 ik  d ik  yik f ' wiT x k

şi ţinând seama de formula (1.2), rezultă regula delta de învăţare
wi : wi  c ik x k
sau, pe componente,
wij : wij  c ik x kj
pentru i  1, , m şi j  1, , n .
Algoritmul delta
Se dau perechile de instruire
x , d , , x
1
1
K
,d K
 ,
unde

x k  x1k , , xnk

T


T
k
k
k
şi d  d1 , , d m , k  1,  , K .
Pasul 1. Se aleg c  0, Emax  0
Pasul 2. Se fac iniţializări: k : 1, eroarea totală E : 0 iar ponderile
wij
primesc valori mici aleatoare.
k
k
Pasul 3. Se prezintă perechea de intrare x : x , d : d şi se
y   y1 ,  , y m 
T
calculează ieşirea reţelei
,
yi  f ( wi , x )  f (wiT x)
pentru i  1, , m .
Pasul 4. Se corectează ponderile
 
wij : wij  cd i  yi  f ' wiT x x j
.
Pasul 5. Se calculează eroarea totală
E : E 
1
dy
2
2
Pasul 6. Dacă k  K atunci k : k  1 şi se continuă cu Pasul 3; în
caz contrar se merge la Pasul 7.
Pasul 7. S-a finalizat un ciclu de instruire. Dacă E  E max ,
învăţarea s-a terminat. Dacă E  E max atunci se începe un
nou ciclu de instruire: E : 0 , k : 1 şi se merge la Pasul 3.
În cazul când funcţia de activare este liniară, f ( x)  x, suprafaţa
de eroare este paraboloidală; prin urmare are un minim unic. Ne vom referi în continuare la acest
caz, numindu-l algoritmul delta liniar. Referitor la convergenţa acestui algoritm au loc
următoarele observaţii.
Constanta de instruire c are un rol foarte important în
controlarea convergenţei. Dacă c are o valoare prea mică, atunci vectorul pondere se mişcă prea
încet pe suprafaţa de eroare, adică instruirea devine prea lentă. Dacă c este prea mare, atunci
algoritmul poate să nu sesizeze punctele de minim, vectorul w mişcându-se haotic pe suprafaţa
paraboloidului. În acest caz algoritmul poate să nu conveargă niciodată, indiferent de numărul de
iteraţii. Viteza de convergenţă poate fi controlată prin alegerea ratei de învăţare. De obicei, se ia
c  0.01, 10, valoarea cea mai utilizată fiind c  0.1. De asemenea, iniţializarea ponderilor se
face, de obicei, cu valori aleatoare din intervalul 0, 1 sau  1, 1 .
3 REŢELE
UNIDIRECŢIONALE MULTINIVEL
3.1. GENERALITĂŢI
Reţelele cu un singur nivel au numeroase restricţii în utilizare. De exemplu, perceptronul
simplu împarte spaţiul stărilor doar în două semiplane. Pentru a realiza regiuni de decizie mai
complicate trebuie mărită complexitatea reţelei, inserându-se nivele suplimentare (numite
ascunse) între neuronii de intrare şi cei de ieşire. Un perceptron cu două nivele poate realiza
regiuni de decizie convexe, obţinute prin intersecţia semiplanelor generate de fiecare neuron de
pe nivelul ascuns.
Fiecare neuron de pe nivelul ascuns N x se comportă ca un perceptron standard şi
generează un hiperplan de separare. Un neuron de pe nivelul
Ny
generează o regiune de decizie
mai complicată, folosind semiplanele generate de neuronii primului nivel.
x1
x2








Nx
Ny
Nz
xn
N0
Figura 3.1. Exemplu de reţea multinivel
N
Să considerăm doi neuroni a şi b de pe nivelul y , şi fie A şi B regiunile lor de
decizie. Fie c un neuron de pe nivelul N z . Considerăm că ponderile conexiunilor de la a şi b
către c sunt egale cu  1 şi că pragul lui c este t  1 . Dacă unul din neuronii a sau b este
activat, atunci ieşirea neuronului c va fi  1 ; înseamnă că acest neuron realizează funcţia logică
SAU între suprafeţele A şi B .
PROPAGAREA ÎNAPOI CU UN NIVEL ASCUNS
Considerăm o reţea cu un strat ascuns şi folosim notaţiile:
• i = un neuron de pe nivelul 0 , de intrare
• k = un neuron de pe nivelul 1 , cel ascuns
• j = un neuron de pe nivelul 2 , de ieşire
• xi = semnalul de intrare în unităţile nivelului 0
• y i = semnalul de ieşire din unităţile nivelului 0
• x k = semnalul de intrare în unităţile nivelului 1
• y k = semnalul de ieşire din unităţile nivelului 1
•
xj
= semnalul de intrare în unităţile nivelului 2
•
yj
= semnalul de ieşire din unităţile nivelului 2
• n = numărul de neuroni de pe nivelul 0
• n1 = numărul de neuroni de pe nivelul 1
• m = numărul de neuroni de pe nivelul 2
1
• wk i = ponderea conexiunii între neuronii i şi k
•
w 2jk
= ponderea conexiunii între neuronii j şi k
• hk = funcţia de activare a neuronului k
•
fj
= funcţia de activare a neuronului j .
Considerăm că neuronii unui nivel sunt conectaţi cu toţi neuronii nivelului următor. Dacă

x t  x1t , , x nt
la momentul t se prezintă la intrare vectorul

d t  d1t , , d mt


T
şi se doreşte să se obţină vectorul
T
atunci
n
xkt   w1ki xit
i 1
 ,
,
y kt  hk xkt
,
y tj  f j x tj
n1
x tj   w 2jk y kt
k 1

 .

t
t
Eroarea pătratică corespunzătoare perechii x , d din mulţimea de antrenare este
Et 

1 m t
d j  y tj

2 j 1

2


 
1 m t
d j  f j x tj

2 j 1
2

2
 n1

1 m
   d tj  f j   w 2jk y kt   


2 j 1
 k 1


2
 n1 2  n 1 t   
1 m  t
 d j  f j   w jk hk   wki xi   
2 j 1
 i 1
 .
 k 1

=
Minimizarea erorii se realizează cu o metodă de tip gradient.
Notând
 tj

f j'
 
x tj
d tj

y tj
 şi
  w
 kt  hk' xkt
m
j 1
t
j
2
jk
obţinem
w2jk  
w1ki  
Et
w2jk
Et
w1ki
  tj ykt
,
  kt xit
.
Rezultă următoarele reguli de corectare a ponderilor
w 2jk,t 1  w 2jk,t  ct2 w 2jk
w1ki, t 1  w1ki, t  c1t w1ki
Se observă că
,
.
 kt se obţine prin propagarea înapoi în reţea a erorii de pe nivelul superior.
Algoritmul de propagare înapoi cu un nivel ascuns
În continuare vom nota cu l indicele perechii de instruire şi cu t iteraţia, care indică a
câta prelucrare a setului de instruire este în curs de desfăşurare. Fie
mulţimea de antrenament.
x , d , , x
1
1
L
,d L

Pasul 1. Se iniţializează:
1
2
• matricele w şi w , cu valori aleatoare mici din 0, 1
sau  1, 1
• rata de instruire c  0, 1
• eroarea maximă admisă E max (de exemplu, Emax : 0.01)
• indicele perechii de instruire l : 1
• contorul iteraţiei t : 1


l
l
Pasul 2. Se prezintă reţelei perechea de instruire x , d dată de

x l  x1l , , xnl
, d  d , , d .
l
l
1
l
m
Pasul 3. Se determină valorile de activare ale neuronilor de pe
nivelul ascuns
n
xkl   w1ki, l xil
i 1
Pasul 4. Se determină ieşirile neuronilor de pe nivelul ascuns
 
y kl  hk xkl
Pasul 5. Se calculează activările neuronilor de pe nivelul de ieşire
n1
x lj   w 2jk,l y kl
k 1
Pasul 6. Se calculează ieşirile reţelei
 
y lj  f j x lj
Pasul 7. Se calculează semnalul de eroare pentru neuronii de pe
nivelul de ieşire
 
 lj  f j' x lj d lj  y lj

Pasul 8. Se calculează semnalul de eroare pentru neuronii de pe
stratul ascuns
 kl  hk' xkl   lj w 2jk,l
m
j 1
Pasul 9. Se ajustează ponderile neuronilor de pe nivelul de ieşire
w2jk, l : w2jk, l  c lj ykl
Pasul 10. Se ajustează ponderile neuronilor de pe nivelul ascuns
w1ki, l : w1ki, l  c kl xil
Pasul 11. Se trece la următoarea pereche din mulţimea de instruire :
• dacă l  L atunci l : l  1 şi se merge la Pasul 2
• dacă l  L atunci se merge la Pasul 12.
Pasul 12. Se calculează eroarea pe setul de antrenare

1 L m l
E
d j  y lj

2 L l 1 j 1

2
.
Dacă E  E max , algoritmul se termină; în caz contrar se începe o nouă iteraţie ( t : t  1 ) şi se
parcurge setul de antrenare de la început ( l : 1 ), mergându-se la Pasul 2.
Este posibil ca propagarea înapoi să genereze un minim local, caz semnalat de faptul că eroarea
ieşirilor este destul de mare. Pentru a ieşi dintr-o astfel de stare se recomandă:
a) Schimbarea constantei de instruire.
Iniţial se alege o valoare mică, de exemplu c  0.05, 0.25 , iar pe măsură ce eroarea
descreşte se poate mări valoarea lui c . Creşterea se justifică doar dacă suprafaţa de eroare este
suficient de netedă, în caz contrar fiind posibil ca reţeaua să sară peste valoarea de minim, reală.
1
Euristic, s-a ajuns la concluzia că o valoare iniţială bună pentru c este n , n fiind numărul de
neuroni de la intrare.
O altă posibilitate este folosirea unei rate de instruire variabile; constanta c din paşii 9 şi
10 se înlocuieşte la fiecare iteraţie cu o valoare
ct mai mică. Şirul acestor valori trebuie să
descrească lent pentru a se asigura accelerarea convergenţei. Descreşterea este suficient de lentă
dacă


 ct    ct2  
t 1
şi
t 1
.
Un exemplu de şir ce satisface condiţiile anterioare este
ct 
1
t.
b) Schimbarea ponderilor inţiale.
Se
recomandă
ca ponderile iniţiale să nu fie egale, evitându-se “paralizarea reţelei”.
Pentru neuronii care au multe intrări, ponderile iniţiale trebuie să fie mici, astfel încât activările să
nu fie prea îndepărtate de zero. Dacă un neuron are n intrari, se recomandă ca ponderile să fie
 2 2
 , 
din intervalul  n n  . Pentru a ieşi dintr-un minim local se recomandă adăugarea de valori
mici, aleatoare, la vectorul pondere. Dacă noua stare este suficient de îndepărtată de acest minim,
instruirea se va desfăşura într-o altă direcţie.
c) Schimbarea numărului de neuroni ascunşi.
Se recomandă ca numărul iniţial al lor să fie aproximativ
4 MEMORII ASOCIATIVE
mn .
Reţelele de acest tip simulează evoluţia unui sistem dinamic care constă în evoluţia unui
patern de intrare către unul memorat, numit prototip. Ele memorează şi regăsesc asociaţii date
sub forma unor perechi C, A , unde C este informaţia cheie iar A este informaţia asociată.
O memorie asociativă bidirecţională (MAB) este o reţea cu două nivele de neuroni
complet interconectaţi. Doi neuroni de pe acelaşi nivel nu sunt interconectaţi, dar fiecare neuron
poate fi conectat cu el însuşi; toate conexiunile sunt bidirecţionale (Figura 4.2).
Spre deosebire de reţelele studiate anterior, în care ponderile se determină iterativ, în
cazul reţelelor MAB matricea ponderilor se fixează iniţial şi rămâne neschimbată pe durata
funcţionării reţelei.
1
1
2
2






n
m
Figura 4.2. Memorie asociativă bidirecţională




1
1
p
p
i
m
i
n
n
Considerăm mulţimea de instruire x , y , , x , y , cu x  B şi y  B , B fiind
cubul bidimensional
0, 1n
sau
 1, 1n .
Matricea ponderilor se defineşte ca în cazul
asociatorului liniar
p
 
w   yi xi
T
i 1
şi are următoarea semnificaţie :
• linia i conţine ponderile conexiunilor neuronului i din stratul de ieşire
• coloana j conţine ponderile conexiunilor neuronului j din stratul de intrare.
Algoritmul MAB
O reţea MAB se defineşte ca fiind un sistem
S  N x , N y , W , I , J , U , V 
, unde
N
• N x şi y sunt neuronii de pe nivelul de intrare şi respectiv ieşire
• W este matricea ponderilor
• I şi J sunt vectori coloană reprezentând intrările externe asupra neuronilor din N x şi,
respectiv,
Ny
• U şi V sunt vectori coloană ce reprezintă pragurile neuronilor de pe nivelele N x şi,
respectiv,
Ny
Pasul 1. Se prezintă reţelei perechile de asociaţii
x , y , , x
1
1
p
, yp

şi se calculează matricea ponderilor
p
 
W   yi xi
i 1
T
.
Pasul 2. Se pune t : 0 , reprezentând momentul iniţial.
Pasul 3. Se iniţializează stările neuronilor de pe nivelul
Ny
cu un
vector arbitrar y (0) .
Pasul 4. Se prezintă reţelei vectorul x  x0 , urmând să se
i
determine vectorul x cel mai apropiat de x0  în sensul
distanţei Hamming.
N
Pasul 5. Se propagă informaţia de la N x la y :
• se calculează vectorul B al activărilor
B  W  xt   J
N
• se calculează vectorul y (t  1) al stărilor neuronilor din y
1,
bj  v j

y j t  1   y j t , b j  v j

bj  v j
0,
Pasul 6. Se propagă informaţia de la
Ny
la N x :
• se calculează vectorul A al activărilor
A  W T  y t  1  I
• se calculează vectorul de stare x (t  1)
ai  u i
1,

xi t  1   xi t , ai  u i
0,
ai  u i

Pasul 7. Se trece la iteraţia următoare, t : t  1, şi se repetă paşii 5
şi
6
până
când
stările tuturor
neuronilor rămân
neschimbate.
i
Algoritmul se termină prin găsirea unei stări de echilibru x, y  , unde x este vectorul x
din mulţimea de instruire cel mai apropiat de x0  ; y va fi informaţia asociată lui x0  .
Algoritmul funcţionează bine dacă reţeaua nu este supraîncărcată, adică mulţimea de instruire nu
este prea mare. În cazul supraîncărcării, apare fenomenul de interferenţă care poate genera stări
de echilibru false, similare punctelor de minim local ale unei funcţii.
O MAB poate fi folosită pentru a regăsi o anumită informaţie când se prezintă reţelei o informaţie
cheie. De exemplu, se poate regăsi media unui student dacă informaţia cheie cuprinde numele şi
anul de studii. Chiar dacă informaţia este incompletă (de exemplu, nu se ştie anul) sau este
distorsionată (de exemplu, numele este eronat), reţeaua poate furniza informaţia corectă.
4.6. REŢELE HOPFIELD CU TIMP DISCRET
O reţea neuronală Hopfield este o memorie asociativă a cărei funcţionare este
caracterizată de folosirea intensivă a feedback-ului. O reţea feedback uninivel este de forma
1
w21
v1 wn1
v1
w 12
2
v2 w n 2


 w1n
v2



w2n
n
vn
vn
Figura 4.3. Reţea feedback uninivel
Reţeaua este alcătuită din n neuroni cu pragurile 1 ,  2 , ,  n . Pentru fiecare neuron se
calculează potenţialul intern
neti 
n
 wij v j  I i  i ,
i  1, 2,  , n
j 1, j  i
unde I i este intrarea externă a neuronului i . Notând
wi  wi1 ,  , win T
v  v1 ,  , vn T
,
,
putem scrie
neti  wiT v  I i  i
În acest model matricea conexiunilor sinaptice este simetrică. Considerând că funcţia de activare
este sign , neuronii îşi modifică starea după regula

vi  sign wiT v  I i   i
.
Evoluţia în timp a stărilor neuronilor se face după regula


vit 1  sign wiT v t  I i   i , i  1, , n, t  0, 1, 
4.7. MEMORII AUTOASOCIATIVE
RECURENTE
O astfel de memorie este
reţeaua Hopfield uninivel cu timp discret şi funcţionare
asincronă. Presupunem că I i   i  0, i  1, 2, , n. Funcţionarea are loc în două etape:
memorare şi utilizare.
Faza de memorare
1
L
Fie x , , x vectorii binari ce trebuie memoraţi. Matricea w a ponderilor este similară cu
matricea de autocorelaţie din cazul asociatorului liniar, singura deosebire fiind că wii  0 . Avem
L
 
w   xl xl
T
 LI
l 1
sau

wij  1   ij
 xil xlj
L
l 1
unde I este matricea unitate. Oricând se pot adăuga sau elimina autoasocieri iar memorarea este
invariantă la ordinea de prezentare a acestora.
Faza de utilizare
În această fază, un vector x este impus ca vector de stare. El reprezintă o versiune
incompletă sau distorsionată a unui vector memorat. Apoi, fiecare neuron al reţelei, ales aleator,
îşi estimează propriul potenţial de activare şi îşi stabileşte starea finală. Acest proces de
modificare a stărilor continuă până când vectorul de stare nu se mai modifică. Înseamnă că
reţeaua a găsit un vector de stare invariant în timp, ale cărui componente satisfac condiţia de
stabilitate. Deoarece reţeaua se stabilizează în unul din minimele locale ale funcţiei energie
1
E   v T wv
2
şi
E (v )  E ( v ) ,
înseamnă că regăsirea lui x este determinată de similaritarea dintre x şi v sau x şi  v ,
complementul lui v .
Algoritmul
1
L
l
Se dau vectorii x , , x , cu x   1, 1 şi vectorul iniţial x   1, 1 , ce trebuie regăsit.
n
n
Memorare
Pasul 1. Iniţializări: w  0, l  1
l
Pasul 2. Se memorează x :
 
w : w  x l x l
T
I
Pasul 3. Dacă l  L atunci l : l  1 şi se merge la Pasul 2.
Ulilizare
Notăm v  x
Pasul 4. Iniţializări: i  1,
actualizare  0 ,    (1), ,  (n)  o
permutare a mulţimii 1, 2, , n
Pasul 5. Se lucrează cu neuronul  i  :
n
net i    w i  j v j
j 1
Dacă
v i   semn
atunci
,

semn  sign net i 
v i   semn actualizare  1
,
.
Pasul 6. Dacă i  n atunci i : i  1 şi se merge la Pasul 5.
Pasul 7. Dacă actualizare  0 atunci afişează vectorul regăsit şi
STOP; în caz contrar se merge la Pasul 4.
.
5 REŢELE CU FUNCŢII
DE ACTIVARE RADIALE
5.1. STRUCTURA REŢELEI
În acest caz învăţarea se reduce la găsirea suprafeţei care se potriveşte cel mai bine cu
mulţimea de instruire. Neuronii de pe nivelul ascuns produc o mulţime de funcţii folosite pentru
reprezentarea vectorilor de intrare, numite funcţii radiale.
Aceste reţele se mai numesc şi RBF (Radial Basis Functions) şi sunt alcătuite din neuroni
aranjaţi pe trei nivele: n neuroni la intrare, K neuroni ascunşi şi m neuroni la ieşire. În 1990 s-a
demonstrat că, la fel ca reţelele feedforward cu propagare înapoi, reţelele RBF pot aproxima orice
funcţie continuă, oricât de bine. Spre deosebire de reţelele feedforward, reţelele RBF învaţă rapid
dar sunt lente în utilizare. Structura unei astfel de reţele este prezentată în figura 5.1.
u11
x1
x2




xn
1
h1
w11

2







K

Nivel
ascuns

Nivel
iesiri
y1
y2
ym
y1 S
out1
y2 S
out 2




ym S
out m
Nivel
Iesiri
normalizate
Figura 5.1. Structura reţelei RBF
Activarea h x  a neuronilor de pe nivelul ascuns dă un răspuns semnificativ doar pentru
un interval de valori ale lui x , numit domeniul receptiv al neuronului. Mărimea acestui interval
este determinată de parametrul  .
Notând
x   x1 ,  , x n 
T
•
= vectorul de intrare
u k  u k 1 , , u kn 
T
•
= vectorul ponderilor către al k -lea neuron ascuns
•  k = parametrul pentru al k -lea neuron ascuns
• z k = ieşirea neuronului ascuns k
 n
2 
   xi  u ki  
 x  u k  x  u k  

  exp   i 1
z k  hk  x  u k   exp  
2
2





k
k





.
avem
T
Vectorul u k va reprezenta centrul unităţii ascunse k . Ieşirea neuronului j , corespunzătoare
semnalului de intrare x , este
y j   w jk hk  x  u k   w j 0 ,
K
j  1, 2,  , m
k 1
unde
iar

w  w jk  j 1,m , k 0 ,K
este matricea ponderilor conexiunilor dintre nivelul ascuns şi cel de ieşire
este norma euclidiană. Se poate lucra cu ieşirile normalizate
out j 
yj
m
y
i 1
i
.

2
2
Se pot folosi şi alte funcţii de activare, dar numai cele gaussiene h( x)  exp  x / 

sunt “radiale”, adică produc o valoare semnificativă doar pentru argumentele aflate în vecinătatea
lui 0 ; vom lucra în continuare cu aceste funcţii.
5.2. INSTRUIREA REŢELEI
Parametrii care trebuie învăţaţi în procesul de instruire sunt centri u k ai neuronilor
ascunşi, ponderile w ale conexiunilor către nivelul de ieşire şi lărgimile  k ale câmpurilor
receptoare. Considerăm mulţimea de antrenament
x , d , , x
pot fi determinaţi în două moduri: simultan sau separat.
1
1
L

, d L . Parametrii de control
a) Determinarea simultană a parametrilor
Eroarea medie pătratică asociată mulţimii de antrenament este
E u , , w 
1 L
 El u, , w
L l 1
cu

1 m
El u , , w   d lj  y lj
2 j 1

2


1 m
 K

   d lj    w jk hk x l  u k  w j 0  
2 j 1 
 k 1

2
Aplicarea unei metode de tip gradient pentru minimizarea erorii pătratice impune calcularea
derivatelor parţiale
El
 d lj  y lj
w j 0
 

El
  d lj  y lj hk x l  u k   z kl d lj  y lj
w jk

El
2
 2
u ki
k
 d
m
j 1
l
j



 y lj w jk z kl xil  u ki
El
2 m
  3  d lj  y lj w jk z kl x l  u k
 k
 k j 1




2
.
Calcularea parametrilor u, w,  folosind o metodă de tip gradient se poate efectua cu următorul
algoritm.
Pasul 1. Iniţializarea parametrilor
• Matricele u, w şi vectorul  se iniţializează cu valori mici
aleatoare
• Se fixează valoarea admisibilă  pentru eroare, numărul
maxim IT de prelucrări pentru mulţimea de instruire şi
constanta de instruire c .
Pasul 2. Se iniţializează numărul prelucrărilor: t : 1
Pasul 3. Se pregăteşte instruirea reţelei: E : 0, l : 1
Pasul 4. Se actualizează parametrii, folosind perechea de instruire
x , d :
l
l
w jk : w jk  c
•
•
•
u ki : u ki  c
El u , , w
w jk
, j  1, 2, , m, k  0,1, , K 
El u , , w
u ki
,
 k :  k  c
El u , , w
 k
,
k  1, 2,  , K , i  1, 2,  , n
k  1, 2, , K 
Pasul 5. Se cumulează eroarea: se calculează E l , apoi E : E  El
Pasul 6. Dacă l  L , se prezintă următoarea formă de instruire:
l : l  1 şi se merge la Pasul 4. În caz contrar, dacă E  
sau t  IT algoritmul se opreşte iar în caz contrar se începe
o nouă prelucrare a mulţimii de instruire: t : t  1 şi se
merge la Pasul 3.
6 REŢELE BAZATE PE CĂLIRE SIMULATĂ
6.1. PRINCIPIUL DE FUNCŢIONARE A CĂLIRII SIMULATE
Călirea simulată se bazează pe analogia dintre procesul de călire a metalelor şi rezolvarea
problemelor de optimizare combinatorială. Există două posibilităţi de a rezolva o problemă de
optimizare combinatorială:
• utilizarea unui algoritm de optimizare care, însă, poate să
furnizeze o soluţie optimă
globală într-un timp care poate fi foarte mare
• utilizarea unui algoritm aproximativ, care să obţină o soluţie aproximativă, dar într-un timp
rezonabil.
Este de dorit un algoritm aproximativ general care să poată fi folosit pentru rezolvarea unei
mari varietăţi de probleme. Călirea simulată este un astfel de algoritm şi este o generalizare a
algoritmilor de ameliorare iterativă. Un algoritm de ameliorare iterativă funcţionează astfel:
1) se porneşte cu o configuraţie iniţială
2) se generează o secvenţă de iteraţii, fiecare dintre ele constând în trecerea de la
configuraţia curentă la alta nouă care are un cost mai mic şi este situată în vecinătate
3) algoritmul se opreşte când se obţine o configuraţie care are cel mai mic cost în raport cu
cel al configuraţiilor din vecinătatea sa.
Principalele dezavantaje ale algoritmilor iterativi sunt:
• oprirea poate avea loc într-un minim local şi nu ştim cât de departe este acesta faţă de
minimul global
• minimul local depinde de configuraţia iniţială.
Spre deosebire de ameliorarea iterativă, călirea simulată
nu depinde de configuraţia iniţială şi oferă o valoare apropiată de minimul global al funcţiei de
cost. Deşi mai lentă decât ameliorarea iterativă, călirea simulată este preferată datorită capacităţii
de a evita punctele de minim local.
Călirea simulată urmăreşte obţinerea echilibrului termic la o anumită temperatură T . Cea
mai rapidă metodă de obţinere a echilibrului a fost dezvoltată de Metropolis şi colaboratorii săi
[40] şi constă în:
• fiind dată starea curentă a metalului (caracterizată de poziţia particulelor sale) având energia
Ec , se aplică o perturbaţie generată aleator prin deplasarea mică a unei particule; fie E p energia
stării obţinute ca urmare a perturbaţiei.
• dacă
E  E p  Ec  0
atunci probabilitatea p de acceptare a stării perturbate este
 E 

p  exp  
 k 0T  ,
unde k 0 este constanta lui Boltzmann.
Această regulă de acceptare a noii stări (numită criteriul Metropolis) face ca sistemul să
evolueze spre echilibrul termic, adică după un număr de perturbaţii distribuţia de probabilitate a
stărilor aproximează distribuţia Boltzmann. Această metodă de obţinere a echilibrului termic se
numeşte algoritmul Metropolis şi poate fi folosită la rezolvarea problemelor de optimizare
combinatorială astfel:
• configuraţiile problemei joacă rolul stărilor metalului
• funcţia obiectiv este similară energiei
• parametrul de control joacă rolul temperaturii; în continuare îl vom nota tot cu T şi-l vom
numi temperatura sistemului.
6.2. INSTRUIREA
REŢELELOR
NEURONALE
FOLOSIND CĂLIREA SIMULATĂ
Instruirea unei reţele neuronale nu necesită valori prea mari ale
ponderilor. Dacă aceste valori sunt mari atunci activările neuronilor vor fi mari iar valorile
derivatelor funcţiilor sigmoidale de răspuns vor fi mici, ceea ce tinde să paralizeze conexiunea
respectivă. De aceea se impun limite de mărime pentru ponderi.
Considerăm o reţea neuronală cu transmisie unidirecţională şi fără straturi ascunse. Funcţia
criteriu E măsoară diferenţa dintre ieşirile reale şi cele dorite. Considerăm un pas al algoritmului
w
de călire simulată corespunzător valorii T a temperaturii. Fie ij o pondere asociată neuronului
j ; modificarea sa se face cu o valoare aleatoare wij . Probabilitatea ca modificarea wij să fie
 E 
p j  exp  

T

 , unde E este variaţia energiei datorată modificării ponderii.
acceptată este
Pentru acceptarea modificării se compară
cu un număr aleator r , ales uniform din 0, 1 :
pj
12 dacă
pj  r
atunci schimbarea este acceptată
13 dacă
pj  r
atunci ponderea
wij
rămâne neschimbată
O iteraţie a algoritmului de instruire a unei reţele neuronale prin călire simulată este:
i
Pasul 1. Se prezintă reţelei vectorul de intrare x ; se calculează
ieşirile şi valoarea funcţiei obiectiv.
Pasul 2. Se fixează o valoare T a temperaturii
Pasul 3. Se selectează aleator o conexiune (i, j ) având ponderea
wij
.
Pasul 4. Se generează aleator o modificare
wij
a ponderii
conexiunii selectate.
Pasul 5. Se calculează variaţia E a energiei asociate modificării
ponderii.
Pasul 6. Dacă valoarea funcţiei energie scade atunci se acceptă
modificarea ponderii, adică
wij : wij  wij
.
În caz contrar au loc operatiile:
1) Se calculează probabilitatea
pj
de acceptare a
 E 
p j  exp  

wij
 T 
modificării
:
2) Se generează un număr aleator r cu distribuţie uniformă pe intervalul [0, 1] .
Dacă
dacă
pj  r
pj  r
valoarea.
atunci
wij : wij  wij
iar
atunci conexiunea (i, j ) îşi menţine
Algoritmul anterior se execută pentru fiecare pondere a reţelei, ceea ce reprezintă un ciclu
de prelucrare. Se reduce apoi temperatura şi se efectuează un nou ciclu de prelucrare. Reducerea
temperaturii are loc până când se obţine o valoare acceptabilă a funcţiei obiectiv. În acest
moment se consideră un nou vector de instruire şi se reia întregul proces, pornind călirea
simulată cu valoarea maximă a temperaturii. Reţeaua este instruită pentru toţi vectorii din
mulţimea de antrenament. Ei pot fi prezentaţi ciclic până când funcţia criteriu are o valoare
rezonabilă pentru toţi vectorii de instruire.
7 REŢELE CU INSTRUIRE NESUPERVIZATĂ
În învăţarea nesupervizată nu există antrenor, reţeaua trebuind să descopere singură
modele, trasături, corelaţii existente în mulţimea datelor de intrare şi să le codifice sub forma
unor date de ieşire. În învăţarea nesupervizată cunoaşterea este asigurată de redundanţa existentă
în mulţimea datelor de intrare. Acest tip de învăţare se recomandă în următoarele situaţii:
• mulţimea datelor de intrare este mare
• caracteristicile formelor se pot schimba în timp, ele putând fi urmărite mult mai bine în cadrul
învăţării nesupervizate
• este necesar să avem informaţii a priori despre mulţimea datelor de intrare.
7.1. ÎNVĂŢARE COMPETITIVĂ
Acest tip de învăţare împarte mulţimea datelor de intrare
în clase. Într-o astfel de reţea, fiecare neuron de ieşire i este conectat cu toţi neuronii de intrare
j , cu ponderile wij . Presupunem că atât vectorul de intrare x cât şi vectorul wi al ponderilor
către neuronul de ieşire i sunt normalizaţi. Activarea neuronului i este
n
neti   wij x j  wiT x
j 1
.
Va fi declarat câştigător neuronul k care are activarea maximă:
neti  net k , i  k
Neuronul de ieşire se mai numeşte “câştigătorul ia totul” şi este ales, de obicei, prin
selectarea neuronului cu cea mai mare activare. Un alt mod de implementare este specific reţelei
MAXNET, în care un neuron i este conectat cu el însuşi cu o pondere excitatoare iar cu ceilalţi
neuroni j cu ponderi inhibitoare
  , i  j
wij  
 1, i  j
Odată selectat câştigătorul k , ponderile se modifică cu regula
wk (t  1) 
wk (t )  cx(t )  wk (t ) 
wk (t )  cx(t )  wk (t ) 
unde împărţirea se face pentru a asigura normalizarea vectorului w .
Pentru a putea lucra cu vectori nenormalizaţi trebuie schimbată regula de selectare a
neuronului câştigător k : se alege acel neuron k care este cel mai apropiat de vectorul de intrare
x , în norma euclidiană
wk  x  w j  x , j
.
Ponderile se modifică cu regula
wk (t  1)  wk (t )  cx(t )  wk (t )
(7.1)
În abordările anterioare se modifică doar ponderile către neuronul câştigător, celelalte rămânând
constante. Este posibil să se modifice şi celelalte ponderi după regula
wl (t  1)  wl (t )  c' x(t )  wl (t ) l  k şi c'  c .
Pentru a măsura calitatea învăţării competitive se foloseşte eroarea pătratică
E   wk  x p
2
,
p
p
unde k este neuronul câştigător când la intrare se prezintă vectorul x . Ponderile w sunt
interpretate ca centri ai claselor. Modificarea ponderilor după regula (7.1) asigură minimizarea
p
funcţiei eroare pentru vectorul de intrare x :
Ep 

1
wkj  x jp

2 j

2
,
unde k este neuronul câştigător.
7.2. ÎMBUNĂTĂŢIRI ALE ÎNVĂŢĂRII
COMPETITIVE
Principalul dezavantaj al învăţării competitive constă în faptul că unii neuroni ai reţelei
pot fi utilizaţi foarte rar sau chiar deloc în procesul de instruire. Algoritmul Kohonen (care va fi
discutat mai târziu) este un mijloc de a depăşi această situaţie, dar nu reuşeşte întotdeauna. Alte
posibilităţi sunt prezentate în continuare.
a) Algoritmul cu conştiinţă
Denumirea provine de la faptul că fiecare neuron este
“conştient” de performanţele sale iar cei care au ieşit prea des învingători îşi micşorează şansele
de a învinge în etapele următoare. Pentru aceasta, pentru fiecare neuron se reţine de câte ori a
ieşit învingător. Algoritmul funcţionează astfel [5]:
Pasul 1. Se determină vectorul pondere wk cel mai apropiat
de vectorul de intrare x :
x  wk  min x  wi
i
, i  1, 2,, m
Pasul 2. Se numără, pentru fiecare neuron j , de câte ori a câştigat
competiţia:

n j : n j  B y j  n j

unde
1, dacă neuronul j este castigator
yj  
0, altfel
0  B  1 şi n j  0 la începutul algoritmului
Pasul 3. Determinarea neuronului
învingător
prin
folosirea
conştiinţei
x  wk  min  x  wi  ti 
i
unde
, i  1, 2,  , m
ti poate fi asimilat cu pragul de activare definit prin
1

ti  c  ni 
m
,
c fiind o constantă iar m este numărul neuronilor de ieşire.
Pasul 4. Se modifică ponderile neuronului câştigător al competiţiei
wk : wk   x  wk 
unde  este rata de învăţare.
7.3. METODE DE GRUPARE K-MEDII
Fiind dată o mulţime de forme de clasificat X  x1 , , xn  şi o mulţime de ponderi
ataşate P  P1 , , Pn  se urmăreşte determinarea centrilor C  c1 , , cm  ai claselor astfel
încât să se minimizeze funcţia de cost
m
F   fi
i 1
unde
 Pj
fi 
jI i
x j  ci
 Pj
j I i
iar mulţimea

I i  j / x j este mai aproape de centrul ci
,
 se numeşte mulţimea index. Ea poate fi
reformulată cu ajutorul diagramei Voronoi. Diagrama Voronoi este o partiţie a spaţiului de
clasificat în regiuni Ri cu proprietăţile:
i)
centrul ci aparţine unei singure regiuni
ii)
Ri  x / x  ci  x  c j j  i

.
Deci, regiunea Ri este formată din mulţimea punctelor de clasificat care au ca cel mai apropiat


I  j / x j  Ri
centru pe ci . Acum mulţimea index se poate scrie i
. Metoda k-medii este o
metodă iterativă de obţinere a centrilor claselor prin deplasarea iterativă a centrului fiecărei clase
către centrul său de greutate. Prin aceasta se asigură deplasarea către minimul global al funcţiei
de cost
f i , ataşată unei clase.
Algoritmul k-medii-1
Pasul 1. Se iniţializează clasele, distribuind în fiecare cel puţin un
element, şi se aleg centri c1 , , cm .
Pasul 2. Pentru fiecare clasă K i , i  1, 2, , m se execută:
2.1. Se determină noul centru ci ca fiind media ponderată a
formelor de intrare
xj
definite de I i :
 Pj x j
ci 
jI i
 Pj
j I i
2.2. Se actualizează mulţimea index


I i  j / x j  ci  x j  ck , k  i
Pasul 3. Se repetă Pasul 2 până când nicio clasă nu se mai modifică.
Algoritmul anterior are avantajul că este simplu, dar are şi dezavantaje:
• lucrează cu un numar fix de clase, ceea ce impiedică distribuţia într-un număr suficient de
mare de clase astfel încât eroarea să scadă sub o limită dată
• rezultatul depinde de iniţializările de la Pasul 1
• actualizarea mulţimilor index necesită un efort mare de calcul, trebuind să fie determinată
distanţa de la fiecare formă de intrare la fiecare centru
• algoritmul funcţionează pentru clase bine separabile, alcătuite din nori compacţi. În cazul
claselor neuniforme apare fenomenul de captare de către clasa mai mică a punctelor periferice ale
norului mai mare, aflate mai aproape de centrul clasei mici.
Observaţia 7.1. Cel mai des algoritmul este utilizat pentru cazul ponderilor egale cu
unitatea: Pi  1 i  1, , n .
O altă versiune a algoritmului general k-medii constă în inserarea de noi centri în regiunea
cu cea mai mare eroare relativă la funcţiile
anterior.
f i [10]; deci numărul claselor nu mai este fixat
Algoritmul k-medii-2
Pasul 1. Se consideră un singur centru, dat de media ponderată a
formelor de intrare
xi  R m , i  1, 2,  , n
; diagrama
Voronoi corespunzătoare va fi întregul spaţiu al datelor de
intrare.
Pasul 2. Se determină regiunea Re cu cea mai mare eroare şi se
partiţionează în două regiuni:
2.1. Se determină axa de coordonate, k , care are cea mai mare
varianţă a proiecţiei
k

max   Pi xij  cej
j1, , miI
 k




2.2. Ducând prin punctul ce un hiperplan perpendicular pe a
k -a axă de coordonate, se separă regiunea Re în două
submulţimi definite de mulţimile index I e1 şi I e 2 :

 i / x

, iI 
I e1  i / xik  cek , i  I e
I e2
k
i
 cek
e
2.3. Se calculează centri c e1 şi ce 2 ai noilor clase
 Pi xi
ce1 
 Pi xi
iI e1
ce 2 
 Pi
iI e1
,
i I e 2
 Pi
i I e 2
Pasul 3. Se actualizează diagrama Voronoi:
3.1. Se elimină centrul
ce şi se adaugă centri ce1 şi ce 2
3.2. Se actualizează mulţimile index ale regiunilor noi
Pasul 4. Pentru regiunile modificate se execută operaţiile:
4.1. Se deplasează centrul clasei în punctul care reprezintă
media aritmetică ponderată a punctelor ce aparţin acelei
regiuni
4.2. Se actualizează diagrama Voronoi, mulţimile index şi
mulţimile de puncte ale regiunilor modificate
Pasul 5. Se repetă paşii 2 – 4 până când este verificată condiţia de
oprire:
• s-a obţinut un numar suficient de mare de clase şi/sau
• eroarea maximă a devenit mai mică decât o valoare impusă
şi/sau
• fiecare clasă conţine cel puţin un număr dat de elemente.
7.4. ALGORITMUL ISODATA
Algoritmul ISODATA (Iterative Self-Organizing Data Analysis Techniques Algorithm)
este una din metodele iterative cel mai des folosite în problemele de clasificare. Se porneşte cu o
partiţie iniţială (aleasă arbitrar sau furnizată de un alt algoritm) şi se mută formele dintr-o clasă în
alta în vederea îmbunătăţirii funcţiei obiectiv.
Folosim notaţiile următoare


1
2
p
• X  x , x , , x = mulţimea formelor de clasificat,
• K = numărul de centri de clase, specificat iniţial în mod arbitrar
1
2
K
• c , c , , c = centri
Pasul 1. Se definesc parametri algoritmului:
• n = numărul de clase dorit
•  e = numărul minim de elemente dintr-o clasă
•  d = parametrul dispersiei standard
•
f
= distanţa maximă pentru fuzionare
• L = numărul
maxim
de perechi de centri ce pot
fuziona concomitent
• I = numărul maxim de iteraţii permise
Pasul 2. Se distribuie cele p forme din X în clase după regula
x  Ki  x  ci 
min
j1, , K 
xcj
Pasul 3. Se elimină clasele cu mai puţin de  e elemente, repartizând
componentele lor
în
alte clase,
şi
se
micşorează
corespunzator K .
Pasul 4. Se calculează centrii claselor cu formula
ci 
1
 x, i  1, 2, , K 
card K i  xK
i
În continuare, pentru simplitatea scrierii,
vom
nota
pi  card ( Ki ) .
Pasul 5. Se calculează diametrul mediu al fiecarei clase
Di 
1
pi

x  c i , i  1, , K 
xK i
Pasul 6. Se calculează distanţa medie faţă de centrii claselor
D
1 K
 pi Di
p i 1
Pasul 7. i) Dacă algoritmul este la ultima iteraţie, se pune
f 0
şi
se merge la Pasul 11.
ii) Dacă numărul iteraţiei este par sau K  2n atunci se
merge la Pasul 11.
iii) În rest se continuă cu pasul următor.
Pasul 8. Pentru fiecare clasă K i , i  1,  , K  se calculează
dispersia
 ij
a datelor în direcţia j :
 ij 
1
pi
 x j  cij 
2
xK i
Pasul 9. Pentru fiecare clasă se determină componenta maximă a
dispersiei
j  1,  , K 
 ij *  max  ij ,
j
 *  d
Pasul 10. Dacă există o clasă K i astfel încât ij
şi
Di  D,
pi  2 e  1
sau
K
n
2
i
atunci clasa K i se împarte în două clase cu centrii c şi
c i  , se şterge centrul c i şi se pune K : K  1 . Centrii noi
se calculează după regula:
c i  : c ij*  c ij *   ij *
c i  : c ij*  c ij *   ij *
cu 0    1 . Dacă s-a realizat o separare la acest pas, se
merge la Pasul 2; în caz contrar se continuă.
Pasul 11. Se calculează distanţele dintre oricare doi centrii
d ij  c i  c j , i  1, , K  1, j  i  1, , K 
d
Pasul 12. Se aranjează primele L distanţe ij mai mici decât
în
ordine crescătoare.
Pasul 13. Considerând perechea
K , K 
i
j
cu distanţa centrilor cea
mai mică, se modifică centri după regula:
13.1. Dacă centrii celor două clase nu au fost modificaţi, se
i
j
înlocuiesc c şi c prin
c 
*
şi se pune K : K  1 .
pi c i  p j c j
pi  p j
K
13.2. Dacă K i sau j are centrul modificat atunci perechea i, j  nu se consideră şi se
trece la perechea următoare.
Pasul 14. Dacă aceasta este ultima iteraţie sau dacă numărul şi
poziţia centrilor coincid cu cele de la iteraţia anterioară
atunci algoritmul se opreşte; în caz contrar se merge la
Pasul 2.
7.5. REŢELE KOHONEN
Reţeaua Kohonen, numită şi harta cu auto-organizare a lui Kohonen sau harta topologică,
are rolul de a realiza proiecţia spaţiului de intrare înalt dimensional într-un spaţiu de ieşire unisau bi-dimensional, păstrând topologia spaţiului de intrare. După învăţare, doi vectori din spaţiul
de intrare apropiaţi unul de celălalt în raport cu distanţa din acest spaţiu vor fi proiectaţi pe doi
neuroni apropiaţi din spaţiul de ieşire. În literatura de specialitate, o astfel de reţea este referită
prin abreviera SOFM (Self-Organizing Feature Map).
SOFM conţine un strat de neuroni şi două straturi (tipuri) de conexiuni. Vom
presupune că dimensiunea spaţiului de ieşire este 2 , neuronii fiind aranjaţi pe un grilaj
bidimensional. Fiecare neuron are conexiuni externe la vectorii de intrare, dar şi conexiuni
laterale la vecinii săi până la o anumită distanţă.
SOFM presupune, de obicei, că vectorii de intrare şi de încărcare sunt normalizaţi;
produsul scalar poate, astfel, fi considerat ca o măsură a distanţei dintre doi vectori x şi w .
Valorile conexiunilor laterale sunt fixe în timpul învăţării, ele depinzând doar de distanţa dintre
neuronii de pe grilaj. Este evident că între doi neuroni
neurij
şi neurkl va fi aceeaşi conexiune ca
neurij
între neurkl şi
.
Consideram un model simplificat, in activările neuronilor se calculează cu formula
aij  x  wij
.
Învăţarea pe o hartă Kohonen este nesupervizată: vectorii de intrare sunt prezentaţi reţelei iar
încărcările sunt calculate fără a cunoaşte nicio valoare de ieşire dorită; pentru aceasta se
utilizează relaţiile:

wij t  1  wij (t )   (t ) x(t )  wij (t )
wij (t  1)  wij (t )
dacă
 dacă neurij V (neurab )
neurij  V neurab 
unde
•
wij (t )
este vectorul de încărcare dintre neuronul
reţelei la momentul t al învăţării,
neurij
şi vectorul de intrare xt  prezentat
•  t  este un factor de învăţare care descreşte în timp, pentru a asigura convergenţa
• neurab este neuronul cel mai potrivit, ales în conformitate cu relaţia (7.3)


• V neurab este o vecinătate a neuronului neurab , care descreşte cu timpul.
O versiune a acestui model simplificat utilizează relaţiile

wij t  1  wij (t )   (t )    i  a  j  b  x(t )  wij (t )
dacă

neurij  V (neurab )
wij (t  1)  wij (t )
dacă
neurij  V neurab 
neurij
unde  () este o funcţie monoton descrescătoare în raport cu distanţa dintre neuronii
şi
neurab . Alegerea parametrilor ce depind de timp este importantă pentru rapiditatea convergenţei.


Vecinătatea V neurab
N 
 
se alege iniţial ca fiind  2  , N fiind numărul neuronilor de ieşire, şi
apoi scade la fiecare iteraţie.

V neur ab
neurab
Figura 7.1. Exemplu de vecinătăţi
Algoritmul de învăţare a hărţii Kohonen este următorul.
Algoritmul Kohonen
Pasul 0. Se aleg: numărul N al claselor, eroarea admisibilă   0 ,
rata de învăţare  t   0, 1 , mărimea vecinătăţii ca fiind
N 
2
  şi se iniţializează cu valori mici şi aleatoare wij .
Pasul 1. Se determină distanţele euclidiene dintre vectorul de intrare
şi vectorii de încărcare asociaţi neuronilor din hartă.
Pasul 2. Se determină neuronul neurab , cel mai potrivit: cel cu
distanţa minimă faţă de vectorul de intrare.


Pasul 3. Se determină vecinătatea V neurab , asociată celui mai
potrivit neuron.
Pasul 4. Se modifică ponderile neuronilor aflaţi în vecinătatea
V neurab  .
Pasul 5. Se repetă paşii 1 – 4 pentru fiecare vector de intrare.

Pasul 6. Dacă
wij (t )  wij (t  1)  
pentru toţi neuronii de ieşire,
algoritmul se opreşte. În caz contrar se trece la iteraţia
următoare, efectuându-se operaţiile:
• t : t  1 ,
• se micşorează  t  ,
• se micşorează cu 1 vecinătatea neuronului cel mai potrivit
şi se revine la Pasul 1.
Download