Documente Academic
Documente Profesional
Documente Cultură
Rezolvarea
problemelor de asociere
x’ x
Calcul neuronal si evolutiv - Curs 2-3 5
Probleme de asociere
Reformulare ca problemă de optimizare:
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 signum
f (u ) = sgn(u ) =
1 u>0
0 u ≤ 0 Heaviside
f (u ) = H (u ) =
1 u > 0
− 1 u < −1
rampă
f (u ) = u − 1 ≤ u ≤ 1
1 u >1
f (u ) = u liniară
(tangenta hiperbolică) 1
exp(2u ) − 1
f (u ) = tanh(u ) =
0.5
exp(2u ) + 1 -6 -4 -2 2 4 6
1
f (u ) =
-0.5
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
Problema neliniar
separabilă – e necesară
XOR o rețea multinivel
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))))
Calcul neuronal si evolutiv - Curs 2-3 16
Rețele feedforward – funcționare
Arhitectura și funcționare
(caz particular: un nivel ascuns)
Parametrii modelului: matricile
cu ponderi W1 si W2 (setul
tuturor ponderilor e notat cu
W)
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)
Calcul neuronal si evolutiv - Curs 2-3 17
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)
Calcul neuronal si evolutiv - Curs 2-3 19
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 reprezinta 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)
Calcul neuronal si evolutiv - Curs 2-3 20
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
Calcul neuronal si evolutiv - Curs 2-3 24
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 *
Calcul neuronal si evolutiv - Curs 2-3 27
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
Calcul neuronal si evolutiv - Curs 2-3 31
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 Calcul neuronal si evolutiv - Curs 2-3 36
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
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ă:
– Funcții de agregare: N
• Unități ascunse: distanța dintre G( X , C ) = X − C
k k
= ∑ i i)
( x − c k 2
Funcții de transfer:
FF: funcții sigmoidale
RBF: funcții cu simetrie radială
0.8
0.6
0.4
0.2
-3 -2 -1 1 2 3
Calcul neuronal si evolutiv - Curs 2-3 47
Rețele cu funcții radiale
Funcționare:
K
yi = ∑ wik g ( X − C k ) − wi 0 , i = 1, M
k =1
N K M
K
yi = ∑ wik z k − wi 0 , z k = g ( X − C k ) C W
k =1
Matrice centri Matrice ponderi
0.8
0.6 g2 (σ=1)
g1 (u ) = exp(−u 2 /(2σ 2 )) 0.4
g 2 (u ) = 1 /(u 2 + σ 2 ) 0.2
g 3 (u ) = 1 / u 2 + σ 2
-3 -2 -1 1 2 3
g1 (σ=1)
0.4
0.2
-3 -2 -1 1 2 3
0.6
0.4
0.2
2σ
-10 -7.5 -5 -2.5 2.5 5 7.5 10
subacoperire supraacoperire
Calcul neuronal si evolutiv - Curs 2-3 51
Rețele cu funcții radiale
• O bună acoperire a domeniului datelor Acoperire adecvată
de intrare de către câmpurile receptive
ale funcțiilor radiale de transfer este
esențială pentru calitatea aproximării
• Valori prea mici conduc la incapacitatea
de a produce rezultate pentru întreg
domeniul datelor
σ=1
• Valori prea mari nu surprind
variabilitatea datelor
σ=0.01
σ=100
Supraacoperire
Subacoperire Calcul neuronal si evolutiv - Curs 2-3 52
Rețele cu funcții radiale
Exemplu (caz particular) : rețea RBF pentru reprezentarea lui XOR
• 2 unități de intrare
• 4 unități ascunse
• 1 unitate de ieșire Centrii: Ponderi:
u.a. 1: (0,0) w1: 0
0 u.a. 2: (1,0) w2: 1
1 u.a. 3: (0,1) w3: 1
u.a. 4: (1,1) w4: 0
1
Funcție de activare:
0 g(u)=1 if u=0
g(u)=0 if u<>0
Etape:
(a) Stabilirea parametrilor corespunzatori nivelului ascuns: centrii
C și parametrii σ
• Proces iterativ:
– Se asignează datele la clase
folosind criteriul distanței
minime (sau a celui mai
apropiat centru)
• Proces iterativ:
– Se asigneaza datele la clase
folosind criteriul distantei
minime (sau a celui mai
apropiat centru)
REPEAT
FOR l:=1,L
Determină k(l) astfel încât d(Xl,Ck(l)) <=d(Xl,Ck)
Asignează Xl clasei k(l)
ENDFOR
Calculează
Ck: = media elementelor ce au fost asignate clasei
UNTIL “nu s-au mai efectuat modificări ale centrilor”
Obs:
• Centrii nu vor fi neapărat vectori din setul de antrenare
• Numărul de clase trebuie cunoscut de la început.
Calcul neuronal si evolutiv - Curs 2-3 60
Rețele cu funcții radiale
Varianta incrementală:
• Se pornește cu un număr mic de centri inițializați aleator
• Reguli euristice:
d max
σ= , d max = distanta maxima dintre centri
2K
σ k = γd (C k , C j ), C j = centrul cel mai apropiat de C k , γ ∈ [0.5,1]
m
∑
1
σk = d (C k , C j ), C 1 ,..., C m : cei mai apropiati m centri de C j
m j =1
2
1 L M
l K
l
E (W ) = ∑∑
2 l =1 i =1
d i − ∑
k =1
wik k , g k = g ( x − C )
g
l l k
2
1 L l 1 L l
E (W ) = ∑ d − Wg l = ∑ (d − Wg l )T (d l − Wg l )
2 l =1 2 l =1
L
∇E (W ) = −∑ ( g l )T (d l − Wg l ) = 0
l =1
G T GW = G T d
W = (G T G ) −1 G T d
Calcul neuronal si evolutiv - Curs 2-3 64
Rețele cu funcții radiale
Determinarea ponderilor conexiunilor dintre nivelul ascuns și nivelul
de ieșire:
• Problema este similară cu cea a antrenării unei rețele cu un
singur nivel de unități cu funcții liniare de activare
• Algoritm: Widrow-Hoff (caz particular al algoritmului
BackPropagation)
Initializare:
wij(0):=rand(-1,1) (ponderile sunt initializate aleator in [-1,1]),
p:=0 (contor de iteratii)
Proces iterativ
REPEAT
FOR l:=1,L DO
Calculeaza yi(l) si deltai(l)=di(l)-yi(l), i=1,M
Ajusteaza ponderile: wik:=wik+eta*deltai(l)*zk(l)
ENDFOR
Calculeaza E(W) pentru noile valori ale ponderilor
p:=p+1
UNTIL E(W)<E* OR p>pmax
Calcul neuronal si evolutiv - Curs 2-3 65
Comparație: RBF vs. BP
Rețele de tip RBF: Rețele de tip
BackPropagation(BP):
• 1 nivel ascuns • Mai multe nivele ascunse
• Funcții de agregare bazate pe • Funcții de agregare bazate pe
distanțe (pt. nivelul ascuns) suma ponderată
• Funcții de activare cu simetrie • Funcții de activare sigmoidale
radială (pt. nivelul ascuns) (pt. nivelul ascuns)
• Unități de ieșire cu funcție • Unitati de ieșire liniare sau
liniară neliniare
• Antrenare simultană a
• Antrenare separată a
parametrilor adaptivi
parametrilor adaptivi
• Similare cu tehnicile de
• Similare cu tehnicile de aproximare globală
aproximare locală
m
wx+b=1
Se determină w și b care
Minimizează ||w||2
(maximizează marginea separatoare)
m
m
și satisface
wx+b=1 (wxi+b)yi-1>=0
pentru toate elementele setului de
wx+b=-1 antrenare {(x1,y1),(x2,y2),…,(xL,yL)}
wx+b=0
yi=-1 pentru clasa verde
yi=1 pentru clasa rosie
(clasifică corect exemplele din setul de
antrenare)
Calcul neuronal si evolutiv - Curs 2-3 70
Support Vector Machines
Problema de minimizare cu restricții se poate rezolva folosind metoda
multiplicatorilor lui Lagrange:
Problema inițială:
Minimizează ||w||2 astfel încât (wxi+b)yi-1>=0 pentru i=1..L
Introducerea multiplicatorilor lui Lagrange transformă problema în
determinarea punctului șa (saddle point) pentru V:
1 2 L
V ( w, b, α ) = w − ∑ α i ( yi ( w ⋅ xi + b) − 1), α i ≥ 0
2 i =1
( w*, b*, α *) este punct sa daca : V ( w*, b*, α *) = maxα min w,b V ( w, b, α )
Construirea funcției duale:
W (α ) = min w,b V ( w, b, α )
∂V ( w, b, α ) L
∂V ( w, b, α ) L
= 0 ⇒ w = ∑ α i yi xi = 0 ⇒ 0 = ∑ α i yi
∂w i =1 ∂b i =1
Calcul neuronal si evolutiv - Curs 2-3 71
Support Vector Machines
Se ajunge astfel la problema maximizării funcției duale (în raport cu α):
L
1 L
W (α ) = ∑ α i − ∑ α iα j yi y j ( xi ⋅ x j )
i =1 2 i , j =1
Cu restricțiile: (cunoscute din setul de antrenare)
L
α i ≥ 0, ∑α y
i =1
i i =0
L
D( z ) = sgn(∑ α i yi ( x i ⋅ z ) + b*)
i =1
w ⋅ xi + b ≥ 1 − ξ i , daca yi = 1
w ⋅ xi + b ≤ −1 + ξ i , daca yi = −1
Funcția de minimizat devine:
L L
1 2
V ( w, b, α , ξ ) = w + C ∑ ξ i − ∑ α i ( yi ( w ⋅ xi + b) − 1)
2 i =1 i =1
in loc de α i ≥ 0 se introduce 0 ≤ α i ≤ C
K ( x, x' ) = ( x ⋅ x'+1) d
x − x'
2
K ( x, x' ) = exp(− )
2σ 2
SVM-Light [http://www.cs.cornell.edu/People/tj/svm_light/]:
implementare in C
Spider [http://www.kyb.tue.mpg.de/bs/people/spider/tutorial.html]:
implementare Matlab