Sunteți pe pagina 1din 6

1 Perceptroni multistrat

Perceptronul simplu este unul din elementele de bază care ajută la inţelegerea şi
studierea aplicaţiilor cu reţele neurale artificiale. Faptul că funcţiile de activare de tip
treaptă şi semn nu sunt diferenţiabile conduce la limitări ale strategiilor de învăţare
Perceptronii multistrat (MLP – MultiLayer Perceptrons) sunt reţele neurale formate
din un strat de intrare, unul sau mai multe straturi ascunse şi un strat de ieşire. Reţeaua
neurală este complet interconectată, orice neuron dintr-un strat altul decât cel de
intrare are câte o conexiune cu fiecare neuron din stratul anterior (Figura 1 -1).
strat de strat strat strat de
intrare ascuns 1 ascuns 2 ieşire

Figura 1-1: Arhitectura unei reţele cu doua straturi ascunse


Straturile ascunse şi stratul de ieşire sunt compuse din neuroni, în timp ce stratul de
intrare este format din aşa numite unităţi senzoriale care nu prelucrează informaţia
primită. Spre deosebire de perceptronii simpli, neuronii care compun reţelele de tip
perceptron multistrat utilizează funcţii de activare diferenţiabile. Cele mai folosite
funcţii de activare sunt: funcţia identică, funcţia tangentă hiperbolică şi funcţia
logistică (Figura 1 -2).

1 1 1
1  ex 1
f ( x)  x f ( x) 
f ( x)  1  e x
1  ex
-1 0 1 0 0

-1 -1

Figura 1-2: Funcţii de activare


Perceptronii multistrat sunt de departe cele mai folosite reţele neurale artificiale
datorită ariei foarte largi de aplicaţii. Câteva dintre cele mai elocvente exemple ar
putea fi: procesarea semnalelor, recunoaşterea formelor, compresia de datelor,
controlul automat. Pentru antrenarea reţelelor de tip perceptron multistrat se foloseşte
una dintre cele mai populare metode de învăţare, metoda de propagare înapoi,
cunoscuta în literatură sub denumirea de back–propagation.

1.1 Metoda de învăţare back–propagation


Metoda de învăţare back–propagation este este o metodă de corecţie a erorii şi se
bazează pe un algoritm de tip gradient. Metoda de învăţare back–propagation are două
faze:
1. Faza de propagare înainte: Un vector din setul de date este aplicat la intrarea
reţelei neurale. Acesta se propagă prin reţea strat cu strat, generând un vector
de ieşire. Pe durata acestei faze ponderile conexiunilor ramân neschimbate.
Semnalul corespunzător propagării înainte se numeşte semnal funcţional.
2. Faza de propagare înapoi a erorii: Se face o evaluare a diferenţei dintre
vectorul de ieşire obţinut şi vectorul de ieşire dorit. Ponderile conexiunilor
sunt ajustate de la ieşire către intrare în funcţie de diferenţa (eroarea) obţinută,
în scopul minimizării acesteia. Semnalul corespunzător propagării înapoi se
numeşte semnal de tip eroare.
semnale funcţionale
semnale tip eroare

Figura 1-3: Semnalele implicate în algoritmul de învăţare back–propagation


Pentru exemplificarea metodei de învăţare back–propagation se consideră o reţea
neurală cu ni intrări, un strat ascuns cu nh neuroni, şi un strat de ieşire cu no neuroni.
În procesul de antrenare a reţelei se foloseşte un set de date care constă în N perechi
de vectori intrare–ieşire.
Metoda back–propagation este o metodă iterativă. O iteraţie a metodei de învăţare are
N paşi. Fiecare pas are două faze, propagarea înainte şi propagarea înapoi a erorii, şi
constă în prezentarea către reţeaua neurală a unei perechi de vectori intrare–ieşire.
Regula de corecţie pentru un neuron din stratul de ieşire
Fie k ( k  1, no ) un neuron din stratul de ieşire (Figura 1 -4). Eroarea la ieşirea
neuronului k la pasul n ( n  1, N ) este
e k ( n)  Ok ( n)  y k ( n) ,
unde O este ieşirea dorită, iar y este ieşirea reală.
Valoarea instantanee a erorii pătratice pentru neuronul k la pasul n se defineşte ca
1 2
2 e k ( n) . Corespunzător, suma valorilor instantanee ale erorilor pătratice, sau eroarea
pătratică instantanee la pasul n pentru toţi neuronii din stratul de ieşire este
1 no 2
E ( n)   e k ( n) .
2 k 1
Eroarea pătratică medie se defineşte drept
N
1
Em 
N
 E ( n)
n 1

şi Em se mai numeşte funcţie cost, reprezentând o măsură a performanţelor reţelei


neurale. Obiectivul procesului de învăţare constă în ajustarea parametrilor reţelei
neurale (ponderile conexiunilor între neuroni) cu scopul minimizării funcţiei cost.
Minimizarea funcţiei cost se face minimizând la fiecare pas eroarea pătratică
instantanee.
x0 wk0
neuron k
x1 wk1
sk
wkj yk
xj ∑ fk
wknh
xnh

Figura 1-4: Neuron din stratul de ieşire


La fiecare pas n ponderile sunt modificate după o regulă de tip gradient descendent,
E (n)
wkj (n)   , j  1, nh ,
wkj ( n)

unde  este un scalar numit rată de învăţare.


Raportul E (n) wkj (n) se explicitează ca
E ( n) E (n) ek (n) y k (n) s k ( n)
 ,
wkj (n) ek ( n) y k (n) s k ( n) wkj (n)

unde s k (n)   j 0 wkj (n) x j (n) se numeşte valoare de activare a neuronului k, iar
nh

y k ( n)  f k ( s k (n)) (fk fiind funcţia de activare a neuronului k).

Derivatele parţiale sunt


E ( n) ek (n) y k ( n) s k ( n)
 e k ( n) ,  1 ,  f k' ( s k ( n)) ,  x j (n)
ek ( n) y k ( n) s k ( n) wkj ( n)
.
Cantitatea cu care este modificată ponderea conexiunii kj este
wkj ( n)   e k (n) f k' ( s k ( n)) x j ( n) .
Variaţia ponderii wkj la pasul n se mai scrie şi sub forma
E (n) ek ( n) y k ( n)
wkj ( n)    k ( n) x j ( n) ,  k ( n)    ek (n) f k' ( s k ) ,
ek (n) y k ( n) s k ( n)

unde  k (n) se numeşte gradientul local al neuronului k la pasul n.


Regula de corecţie pentru un neuron din stratul ascuns
Fie j ( j  1, nh ) un neuron din stratul ascuns (Figura 1 -5). Deoarece în acest caz nu
există o ieşire dorită dată (specificată în setul de date de antrenare), semnalul de
eroare se determină recursiv în funcţie de semnalele de eroare ale neuronilor din
stratul următor (de ieşire) cu care este conectat neuronul din stratul ascuns.
x0 x0

x1 wj1 wj0 x1 wk1 wk0

neuron j neuron k

wji sj wkj sk
xi yk
∑ fj ∑ fk
yj = xj
wjni

wknh
xni xnh

Figura 1-5: Neuron din stratul ascuns


Gradientul local pentru neuronul ascuns j se redefineşte ca
E (n) y j (n) E (n) '
 j ( n)    f j ( s j (n)) ,
y j ( n) s j (n) y j ( n)

raportul E ( n) y j ( n) fiind explicitat sub forma


 1 no 
  ek2 (n)  no
E ( n) 2 ek ( n) no e (n) s k ( n) .
  k 1 
 e k ( n )   ek (n) k
y j (n) y j (n) k 1 y j ( n) k 1 s k (n) y j ( n)
Derivatele parţiale sunt calculate ca
ek (n)  (Ok (n)  y k (n))  (Ok (n)  f k ( s k (n)))
    f k' ( s k (n)) ,
s k (n) s k (n) s k ( n)

 nh 
  wkj (n) x j ( n) 
s k (n) s k ( n)   w ( n) ,
 
j 0
 kj
y j ( n) x j (n) x j (n)

astfel încât raportul E ( n) y j ( n) devine


E (n) no no
  e k ( n) f k' ( s k (n)) wkj (n)    k (n) wkj ( n) .
y j (n) k 1 k 1

Gradientul local pentru neuronul ascuns j este


no
 j (n)  f j' ( s j (n))  k (n) wkj (n) ,
k 1

în consecinţă, cantitatea cu care se modifică ponderile conexiunilor de intrare pentru


neuronul j este
 ' no

w ji (n)    j (n) xi (n)    f j ( s j (n))  k (n) wkj (n)  xi (n) , i  1, ni .
 k 1 
Criteriul de oprire
Pentru terminarea unui algoritm de învăţare se folosesc două tipuri de teste de oprire:
 valoarea funcţiei obiectiv a scăzut sub o valoare minimă impusă (ieşirile
estimate se încadrează într-o clasă de precizie acceptată);
 scăderea funcţiei obiectiv în timpul ultimelor iteraţii este mai mică decât o
valoare minimă impusă (funcţia obiectiv a ajuns la o valoare minimă
locală/globală şi încercările de obţinere a unei performanţe mai bune au eşuat).
Generalizarea
Generalizarea unei reţele neurale este dată de precizia cu care sunt estimate ieşirile
(diferenţa faţă de ieşirile dorite) pentru anumite intrări. Capacitatea de a generaliza a
unei reţele neurale este evaluată după ce procesul de învăţare a luat sfârşit. Pentru
evaluarea capacităţii de generalizare a reţelei neurale se utilizează perechi de date
intrare–ieşire care nu au fost folosite pe durata procesului de învăţare, reţeaua
funcţionând cu ponderile îngheţate la valorile obţinute în urma procesului de învăţare.
Scopul procesului de învăţare a reţelei neurale constă în obţinerea unei capacităţi de
generalizare cât mai bune. Pentru a realiza acest lucru, setul de date disponibil
(perechile intrare–ieşire) se împarte în două: un set de date pentru antrenare şi un set
de date pentru testare. La rândul său, setul de date pentru antrenare este împărţit în
două subseturi: un set de date pentru estimarea modelului şi un set de date pentru
evaluarea performanţelor (aproximativ 10% din setul de date de antrenare).
Setul de date pentru estimarea modelului este folosit pentru modificarea ponderilor
conexiunilor dintre neuronii care compun reţeaua neurală. Setul de date pentru
evaluarea performanţelor se mai numeşte şi set de validare şi este folosit cu scopul de
a obţine o capacitate de generalizare cât mai bună.
Pentru a obţine o capacitate de generalizare cât mai bună se preferă ca uneori procesul
de antrenare să fie oprit doar funcţie de performanţele care se obţin pentru setul de
validare. Performanţele obţinute pentru setul de validare sunt în general mai reduse
decât cele care se obţin pentru setul de estimare al modelului.

1.2 Modalităţi de creştere a vitezei de învăţare


Există mai multe modalităţi de creştere a vitezei de învăţare a reţelelor de tip
perceptron multistrat care sunt antrenate cu algoritmul back–propagation:
 Iniţializarea ponderilor astfel încât neuronii să funcţioneze în zona liniară şi
nu în zona saturată. Pentru a realiza acest lucru ponderile conexiunilor sunt
iniţializate cu valori aleatoare uniform distribuite într-un interval îngust. Pentru un
neuron k cu o funcţie de transfer tip tangentă hiperbolică ponderile sunt distribuite
uniform în intervalul
  2.4 Fk ; 2.4 Fk  ,
unde Fk este numărul de intrări (fan–in) ale neuronului k.
 Utilizarea funcţiilor de activare impare ( f ( s )   f ( s ) ). Aceasta condiţie
este indeplinită de funcţia identică şi funcţia tangentă hiperbolică.
 Prezentarea într-o ordine aleatoare a perechilor de intrare–ieşire pe durata
unei iteraţii a algoritmului de învăţare. În acest fel procesul de învăţare este
menţinut stocastic scăzând probabilitatea de împotmolire în minime locale.
 Utilizarea unei rate de invăţare variabile. Cantitatea cu care sunt modificate
ponderile este direct proportională cu rata de învăţare. În consecinţă, cu cât rata de
învăţare este mai mică, cu atât variaţia ponderilor este mai mică şi viteza de
convergenţa mai redusă. Dacă rata de învăţare este mare, atunci variaţia ponderilor
este mai mare. În multe cazuri acest lucru face ca procesul de învăţare să devină
instabil (de exemplu oscilant) şi nu conduce la creşterea vitezei de convergenţă.
Din aceste motive este necesar un control al valorii ratei de învăţare funcţie de
anumiţi parametri. Iată câteva exemple:
 dacă valoarea cu care s-a modificat funcţia obiectiv pe iteraţia curentă
este redusă (este posibil ca funcţia obiectiv să se afle în vecinătatea unei
valori minime locale), atunci rata de învăţare este crescută
 dacă valoarea cu care s-a modificat funcţia obiectiv pe iteraţia curentă
este mare, atunci rata de învăţare este scăzută (se favorizează astfel direcţia
de căutare curentă).
 Utilizarea unui termen moment. Metoda termenului moment are rolul de a
creşte viteza de convergenţă (mărind variaţia ponderilor prin favorizarea direcţiei
de căutare de la pasul anterior) şi de a menţine procesul de învăţare cât mai stabil.
Metoda termenului moment constă în aceea că modificarea ponderilor la un
anumit pas ţine cont de modificarea la pasul anterior. Pentru un neuron k variaţia
ponderii pentru intrarea j la pasul n este
wkj (n)   wkj (n  1)    k (n) x j ( n) ,
unde α este termenul moment (remanent).

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