Documente Academic
Documente Profesional
Documente Cultură
Antrenare
Retea neuronala=
Date de intrare Sistem adaptiv
(antrenabil) constituit Rezultate
din unitati simple
Retelele neuronale sunt
(Vector intrare) interconectate (Vector iesire) inspirate de modul de
structurare si functionare
a creierului
yn wn
w1,w2, ...:
Ponderi
numerice
atașate
conexiunilor
Supervizata
Se cunosc exemple de antrenare de forma (date intrare,
raspuns corect)
Scop invatare: estimarea parametrilor care minimizeaza
eroarea (diferente intre raspunsurile corecte si cele produse
de catre retea)
Nesupervizata
Se cunosc doar date de intrare
Scop invatare: estimarea parametrilor modelului pe baza
proprietatilor statistice ale datelor de intrare
Clasificare / recunoastere
Estimare
Predictie
Grupare
Asociere
Exemple
Exemple din clasa
din clasa 2 (rosie)
1 (verde)
x’ x
Algoritmi metaeuristici - Curs 12 13
Retele neuronale si optimizare
Reformulare ca problemă de optimizare:
∑∑ ( y
i j =1
i
j − F j ( X i )) 2
• Alegerea arhitecturii:
– număr de nivele
– număr de unități pe fiecare nivel
– mod de interconectare (topologie)
– funcții de activare
j =1 j =1
n n n
u =∏y u = ∑ w j y j + ∑ wij yi y j + ...
wj
j
j =1 j =1 i , j =1
− 1 u ≤ 0
f (u ) = sgn(u ) = signum
1 u>0
0 u ≤ 0
f (u ) = H (u ) = Heaviside
1 u > 0
− 1 u < −1
f (u ) = u − 1 ≤ u ≤ 1 rampă
1 u >1
f (u ) = u liniară
f (u ) = max{0, u} Semi-liniară (rectified linear unit - ReLU)
Obs: utilizate în rețelele cu structură adâncă (deep NN)
Algoritmi metaeuristici - Curs 12 19
Unități funcționale
Exemple de funcții de activare (funcții sigmoidale)
(tangenta hiperbolică) 1
exp(2u ) − 1
0.5
f (u ) = tanh(u ) =
exp(2u ) + 1 -6 -4 -2 2 4 6
1 -0.5
f (u ) =
1 + exp(−u ) -1
1
(logistică) 0.8
0.6
Observație: uneori se folosește un
parametru numit pantă (slope) care 0.4
activare: y=f(p*u) -6 -4 -2 2 4 6
1 1 1 y=H(w1x1+w2x2-w0)
Ex: w1=w2=1, w0=0.5
AND
0 1
0 0 0 y=H(w1x1+w2x2-w0)
Ex: w1=w2=1, w0=1.5
1 0 1
Problema liniar
OR
separabilă – e suficientă
o rețea uninivel
XOR
Problema neliniar separabilă –
e necesară o rețea multinivel
(care contine un nivel ascuns)
Algoritmi metaeuristici - Curs 12 22
Rețele feedforward - arhitectura
Arhitectura și funcționare (K nivele funcționale)
Nivel Nivele ascunse Nivel de ieșire
intrare
W1 W2 Wk Wk+1 WK
0 1 … k … K
Y0=X X1 Xk XK
Y1 Yk YK
1 Fk F K
F
X = vector intrare, Y= vector ieșire, F=funcție vectorială de activare
Calcul vector de ieșire: Y=FK(WK*FK-1(WK-1*FK-2(.....F1(W1*X))))
Algoritmi metaeuristici - Curs 12 23
Rețele feedforward – funcționare
Arhitectura și funcționare
(caz particular: un nivel ascuns)
N1 ( 2 ) N 0 (1)
yi = f 2 ∑ w ik f1 ∑ w kj x j , i = 1..N 2
k =0
j = 0
Obs:
• în mod tradițional se lucrează cu unul sau două nivele ascunse
• În ultimii ani au devenit din ce în ce mai folosite rețelele cu număr mare de
nivele (Deep Neural Networks) folosite în particular pentru recunoașterea
imaginilor și a vorbirii (http://deeplearning.net)
Algoritmi metaeuristici - Curs 12 24
Rețele feedforward - antrenare
Antrenare (supervizată):
• Set de antrenare: {(x1,d1), …, (xL,dL)}
(xl = vector intrare, dl = vector de ieșire corect)
• Funcție de eroare (suma pătratelor erorilor):
2
1 L N2 l N1 N0
E (W ) = ∑∑ d i − f 2 ∑ wik f1 ∑ wkj x j
l
2 l =1 i =1 k =0
j =0
• Scopul antrenării: minimizarea funcției de eroare
• Metoda de minimizare: metoda gradientului
2 l =1 i =1 k =0
Rata de învățare
j =0
xk
yk
Notații: xi
yi
El(W) (eroarea corespunzatoare exemplului l)
Algoritmi metaeuristici - Curs 12 26
Rețele feedforward - antrenare
• Calculul derivatelor partiale
2
1 L l
N2 N1 N0
E (W ) = ∑∑ d i − f 2 ∑ wik f1 ∑ wkj x j
l
2 l =1 i =1 k =0
j =0
xk
yk
∂El (W )
= −( d il − yi ) f 2' ( xi ) yk = −δ il yk xi
∂wik
y
∂El (W ) N2
' N2 i
l
= − ∑ wik ( d i − yi ) f 2 ( xi ) f1 ( xk ) x j = − f1 ( xk )∑ wikδ i x j = −δ kl x lj
l ' ' l
∂wkj i =1 i =1
Obs: δi reprezintă o măsură a erorii corespunzătoare unității de ieșire i iar δk
reprezintă eroarea de la nivelul unității ascuns k (obținut prin propagarea înapoi in
rețea a erorii de la nivelul de ieșire)
Algoritmi metaeuristici - Curs 12 27
Rețele feedforward - antrenare
∂El (W )
= −(d il − yi ) f 2' ( xi ) yk = −δ il yk
∂wik
∂El (W ) N2
' N2
l
= −∑ wik (d i − yi ) f 2 ( xi ) f1 ( xk ) x j = − f1 ( xk )∑ wik δ i x j = −δ kl x lj
l ' ' l
∂wkj i =1 i =1
/ * Etapa BACKWARD * /
N2
δ = f ( x )( d − y ), δ = f ( x )∑ wik2 δ il
i
l
2
' l
i i
l l
i
l
k 1
' l
k
i =1
/ * Etapa de ajustare * /
wkj1 = wkj1 + ηδ kl x lj , wik2 = wik2 + ηδ il ykl
ENDFOR
Algoritmi metaeuristici - Curs 12 31
Algoritmul BackPropagation
/ * Calculul erorii * /
E =0
FOR l = 1, L DO
/ * Etapa FORWARD (cu noile valori ale ponderilor) * /
N0 N1
x = ∑ w x , y = f1 ( x ), x = ∑ wik2 ykl , yil = f 2 ( xil )
l
k
1
kj
l
j
l
k
l
k
l
i
j =0 k =0
/ * Sumarea erorii * /
L
E = E + ∑ ( d il − yil ) 2
l =1
ENDFOR
E* reprezintă toleranța la erori a rețelei
pmax reprezintă numărul maxim de epoci
E = E /(2 L)
de antrenare
p = p +1
UNTIL p > pmax OR E < E *
/ * Etapa BACKWARD * /
N2
δ = f ( x )( d − y ), δ = f ( x )∑ wik2 δ il
i
l
2
' l
i i
l l
i
l
k 1
' l
k
i =1
/ * Etapa de ajustare * /
∆1kj = ∆1kj + ηδ kl x lj , ∆2ik = ∆2ik + ηδ il ykl
ENDFOR
wkj1 = wkj1 + ∆1kj , wik2 = wik2 + ∆2ik
/ * Sumarea erorii * /
L
E = E + ∑ ( d il − yil ) 2
l =1
ENDFOR
E = E /(2 L)
p = p +1
UNTIL p > pmax OR E < E *
Algoritmi metaeuristici - Curs 12 34
Probleme ale algoritmului
Backpropagation
P1. Viteza mică de convergență (eroarea descrește prea încet)
Cauze:
• Valoare inadecvată a ratei de învățare (valori prea mici conduc
la convergența lentă iar valori prea mari conduc la oscilații)
Soluție: adaptarea ratei de învățare
Exemplu: γ=0.05
∆wij ( p + 1) = ηδ i y j + α∆wij ( p )
α = 0.9
Algoritmi metaeuristici - Curs 12 38
Probleme ale algoritmului BP
Alte metode de minimizare (mai rapide însă mai complexe):
Soluții:
– Se restartează antrenarea de la alte valori inițiale ale ponderilor
– Se introduc perturbații aleatoare (se adaugă la ponderi după
aplicarea ajustărilor):
∆ ij := valori aleatoare
IF E (W + ∆) < E (W ) THEN se accepta ajustare (W := W + ∆)
Obs:
• Ajustările sunt de regulă generate în conformitate cu repartiția
normală de medie 0 și dispersie adaptivă
• Daca ajustarea nu conduce la o descreștere a valorii erorii atunci
nu se acceptă deloc sau se acceptă cu o probabilitate mică
• Algoritmii aleatori de minimizare nu garanteaza obținerea
minimului Algoritmi metaeuristici - Curs 12 43
Probleme ale algoritmului 1
BP 0.8
0.6
0.4
0.2 saturare
• Pb 3: Stagnare -6 -4 -2 2 4 6
E( r ) (W ) = E (W ) + λ ∑i, j
wij2
Ajustarea va fi:
∆(ijr ) = ∆ ij − 2λwij
∂E (W ( p − 1))
−
ij ∆ ( p ) if >0
∂wij
∆wij ( p ) =
∂E (W ( p − 1))
∆ ij ( p ) if <0
∂wij
∂E (W ( p − 1)) ∂E (W ( p − 2))
a
ij ∆ ( p − 1 ) if ⋅ >0
∂wij ∂wij
∆ ij ( p ) =
∂E (W ( p − 1)) ∂E (W ( p − 2))
b∆ ij ( p − 1) if ⋅ <0
∂wij ∂wij
0 < b <1< a
1
0.7
0.9
0.65
0.8
0.6
0.7
0.55
0.6
0.5
0.5
0.45
0.4
0.4
0.3
0.35
0.2
0.3
0.1
0.25
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0.7
0.8
0.65
0.7
0.6
0.55
0.6
0.5
0.5
0.45
0.4 0.4
0.35
0.3
0.3
0.25 0.2
0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0.1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
• Strategie incrementală:
• Strategie decrementală:
• Aplicabilitate
– Memorare asociativă
– Rezolvarea problemelor de optimizare combinatorială
– Predicție în serii temporale
– Prelucrarea imaginilor
– Modelarea sistemelor dinamice și a fenomenelor haotice
Algoritmi metaeuristici - Curs 13 53
Rețele de tip Hopfield
Arhitectura: N unități total
interconectate
Funcții de transfer:
Signum/Heaviside
Logistica/Tanh
Parametrii:
matricea cu ponderi a
conexiunilor
Starea rețelei:
- vectorul stărilor neuronilor X(t)=(x1(t), …, xN(t))
sau
- vectorul semnalelor de ieșire Y(t)=(y1(t),…,yN(t)
Descrierea dinamicii
• Timp discret – relații de recurență (ecuații cu diferențe)
• Timp continuu – ecuații diferențiale
Variante:
• Asincronă: un singur neuron își poate modifica starea la un moment
dat
• Sincronă: toți neuronii își schimbă starea simultan
N
yi (t + 1) = f ∑ wij y j (t ) + I i (t ) , i = 1, N
j =1
In simulări se utilizează fie funcții de transfer discontinue fie continue
Algoritm de funcționare:
Obs. Cea mai convenabilă variantă este cea în care rețeaua tinde către
o stare staționară stabilă (perturbații mici în condițiile inițiale nu
afectează semnificativ soluția)
Formalizare: dX (t )
= F ( X (t )), X (0) = X 0
dt
F ( X *) = 0
Atractivitate:
X* este atractivă dacă există δ > 0 cu proprietatea: ||X0-X*||< δ
implică X(t;X0)->X*
Dacă:
- matricea ponderilor este simetrică (wij=wji)
- funcția de transfer este strict crescătoare (f’(u)>0)
- semnalul de intrare este constant (I(t)=I)
Atunci toate soluțiile staționare asociate rețelei sunt asimptotic
stabile
N N N f ( xi )
1
V ( x1 ,..., x N ) = − ∑
2 i , j =1
wij f ( xi ) f ( x j ) − ∑ f ( xi ) I i + ∑
i =1 i =1
∫ f −1 ( z )dz
0
Dacă:
- matricea ponderilor este simetrică (wij=wji)
- funcția de transfer este signum sau Heaviside
- semnalul de intrare este constant (I(t)=I)
Atunci toate soluțiile staționare asociate rețelei sunt asimptotic
stabile
1 N N
V ( y1 ,..., y N ) = − ∑ wij yi y j − ∑ yi I i
2 i , j =1 i =1
Memorie asociativă:
– Informația este stocată distribuit (nu mai exista conceptul de adresă)
– Regăsirea se realizează pe baza conținutului (se pornește de la un
indiciu privind informația de regăsit – ex: imagine parțială sau
alterată de zgomot)
Modalități de implementare:
• Hardware:
– Circuite electrice
– Sisteme optice
• Software:
– Rețea de tip Hopfield
Exemplu (a)
(-1,-1,1,1,-1,-1, -1,-1,1,1,-1,-1, -1,-1,1,1,-1,-1, -1,-1,1,1,-1,-1, -1,-
1,1,1,-1,-1, -1,-1,1,1,-1,-1)
Stocarea informației:
• Stabilirea ponderilor (elementele matricii W) astfel încât
șabloanele de memorat să devină puncte fixe (stări staționare)
ale dinamicii rețelei
Regăsirea informației:
• Inițializarea stării rețelei cu indiciul de start și simularea dinamicii
rețelei până la identificarea stării staționare corespunzătoare;
starea staționară va reprezenta informația regăsită
Algoritmi metaeuristici - Curs 13 71
Memorii asociative
Set de vectori de memorat: {X1,…,XL}, Xl din {-1,1}N
Metode de stocare:
• Regula Hebb
• Metoda pseudo-inversei (algoritmul Diedierich – Opper)
Regula Hebb:
• Se bazează pe principiul enuntat de D. Hebb: “permeabilitatea
sinaptică a doi neuroni activați simultan crește”
∑
1
wij = xil x lj
N l =1
∑
1
wij = xil x lj
Nl =1
Proprietăți ale regulii Hebb:
• Dacă vectorii din setul de memorat sunt ortogonali doi câte doi (din
punct de vedere statistic ar însemna că sunt necorelați) atunci toți
sunt puncte fixe ale dinamicii rețelei
• O dată cu stocarea vectorului X se stochează și opusul său: -X
• O variantă care elimină condiția de ortogonalitate este cea bazată
pe metoda pseudo-inversei
complementari
ortogonali
Algoritmi metaeuristici - Curs 13 73
Memorii asociative
Metoda pseudo-inversei:
∑
1
wij = xil (Q −1 ) lk x lj
N l ,k
N
∑
1
Qlk = xil xik
N i =1
Atractori paraziți:
– Stări staționare ale rețelei care nu au fost explicit stocate ci au
rezultat ca urmare a stocării altor vectori
Etape:
• Transformarea problemei într-una de optimizare fără restricții
(metoda penalizării)
• Reorganizarea funcției cost ca o funcție Liapunov
• Identificarea valorilor parametrilor și a semnalelor de intrare
pornind de la forma funcției Liapunov
• Simularea rețelei
r
C * ( y1 ,..., y N ) = aC ( y1 ,..., y N ) + ∑ bk R k ( y1 ,..., y N )
k =1
a, bk > 0
1 N obj N
C ( y1 ,...., y N ) = − ∑ wij yi y j − ∑ I iobj yi
2 i , j =1 i =1
1 N k N
Rk ( y1 ,...., y N ) = − ∑ wij yi y j − ∑ I ik yi , k = 1, r
2 i , j =1 i =1
r
wij = awijobj + ∑ bk wijk , i, j = 1, N
k =1
r
I i = aI iobj + ∑ bk I ik , i = 1, N
k =1
B
A
C
D
E
N=n*n neuroni
Starea neuronului (i,j):
1 - la etapa j este vizitat orașul i
0 - altfel
B 1 2 3 4 5
A A 1 0 0 0 0
B 0 0 0 0 1
C C 0 0 0 1 0
D 0 0 1 0 0
E D E 0 1 0 0 0
Criteriu de optim:
costul traseului este minim
a n n n
C * (Y ) = ∑ ∑ ∑ cik yij ( yk , j −1 + yk , j +1 ) +
2 i =1 k =1,k ≠i j =1
2
2
b n
n n n
(∑ ∑ yij − 1 + ∑ ∑ yij − 1 )
2 j =1 i =1 i =1 j =1
Algoritmi metaeuristici - Curs 13 87
Identificarea cu fctia Liapunov
1 n n n n n n
V (Y ) = − ∑∑∑∑ wij ,kl yij ykl − ∑∑ yij I ij
2 i =1 j =1 k =1 l =1 i =1 j =1
a n n n
C * (Y ) = ∑ ∑ ∑ cik yij ( yk , j −1 + yk , j +1 ) +
2 i =1 k =1,k ≠i j =1
2
2
b n
n
n n
(∑ ∑ yij − 1 + ∑ ∑ yij − 1 )
2 j =1 i =1 i =1 j =1
• Exemple:
– Evolutia cursului valutar
– Evolutia pretului unei actiuni
– Evolutia temperaturii
– Semnale biologice (electrocardiograma –EKG)
ordinul modelului
Parametrii ce modelează
factorii externi
- Liniar - Determinist
- Neliniar - Aleator
Functionare:
Unități
contextuale
Funcționare:
Obs: unitățile
contextuale
conțin copii ale
stărilor unităților
ascunse
Ponderi:
- Ajustabile: Wx, Wc si W2
- Neajustabile: ponderile conexiunilor dintre nivelul ascuns si cel
contextual
Algoritm antrenare: BackPropagation
-2 -1 1 2
-0.5
Notatii -1
Semnal de intrare
(similar unui prag)
Obs:
• Grila asociată rețelei este bordată cu celule virtuale care produc
o valoare specifică (in funcție de condițiile la frontieră)
• Caz particular: ponderile conexiunilor dintre unitățile vecine nu
depind de poziția acestor unități
p=(i,j)
Aplicabilitate:
• Prelucrarea imaginilor alb-negru sau pe nivele de gri
• Fiecare pixel este asociat cu o unitate a rețelei
• Nivelul de gri al unui pixel este codificat în [-1,1]
http://www.isiweb.ee.ethz.ch/haenggi/CNN_web/CNNsim_adv.html
Specific:
• Utilizeaza un set de unități ascunse (numit rezervor) conectate
arbitrar (ponderile conexiunilor sunt stabilite aleator); fiecare dintre
aceste unități realizează o transformare neliniară a semnalelor
preluate de către unitățile de intrare
Variante:
Aplicații:
- recunoașterea vorbirii
- Recunoașterea scrisului de mână
- Controlul roboților
- Predicția datelor financiare
- Predicția în timp real a atacurilor de epilepsie
Specific:
• Arhitectura cu multe nivele (scop: extragerea ierarhica a caracteristicilor
datelor);
Obs:
• Boltzmann Machines = retele recurente cu unitati cu functionare aleatoare
• Restricted BM = retele recurente organizate pe nivele cu conexiuni
complete doar intre unitatile aflate pe nivele diferite
• Unele retele cu structura “adâncă” sunt rețele feed-forward (ex:
Convolutional Neural Networks)
Algoritmi metaeuristici - Curs 13 113
Alte clase de rețele recurente
Deep learning (http://deeplearning.net/)
Aplicatii:
- Clasificare imagini si identificare obiecte (ex: recunoaștere fețe – Deep
Face)
- Recunoasterea vorbirii (Google Brain, Siri)
- Indexare semantica (ex: word2vec) si traducere automata
- Simulare vise (http://npcontemplation.blogspot.ca/2012/02/machine-that-
can-dream.html)