Sunteți pe pagina 1din 8

ALGORITMI DE PRELUCRARE NEURONALA

A IMAGINILOR COLOR

Asist.univ. ROMANA OANCEA


ABSTRACT
Standard backpropagation is a gradient descendent algorithm. The term backpropagation refers to the
manner in which the gradient is computed for nonlinear multilayer networks. There are a number of
variations on the basic algorithms which are based on other standard optimization techniques, such as
conjugate gradient and Newton methods. This article aims at explaining the means to use some of these
routines and at discussing the advantages and performances.
1. Algoritmul backpropagation
Algoritmul backpropagation este cel mai cunoscut şi utilizat algoritm de învăŃare supervizată.
Numit şi algoritmul delta generalizat, deoarece extinde modalitatea de antrenare a reŃelei
MADALINE (regula delta), el se bazează pe minimizarea diferenŃei dintre ieşirea dorită şi ieşirea
reală, prin metoda gradientului descendent. Metoda a fost propusă pentru prima dată de Bryson şi
Ho (1969), dar la momentul respectiv a fost practic ignorată, deoarece presupunea un volum de
calcule prea mare. A fost redescoperită apoi de Werbos (1974), însă abia la mijlocul anilor ’80 a
fost lansată de Rumelhart, Hinton şi Williams (1986) ca instrument general acceptat de antrenare a
perceptronului multistrat. Ideea de bază este găsirea minimului funcŃiei de eroare în raport cu
ponderile conexiunilor.
Algoritmul pentru un perceptron multistrat cu un strat ascuns (Negnevitsky, 2002):
Pasul 1: IniŃializarea
Toate ponderile şi pragurile reŃelei sunt iniŃializate cu valori aleatorii nenule, distribuite
uniform într-un mic interval.
Dacă valorile acestea sunt 0, gradienŃii care vor fi calculaŃi pe parcursul antrenării vor fi tot 0
(dacă nu există o legătură directă între intrare şi ieşire) şi reŃeaua nu va învăŃa. Este chiar indicată
încercarea mai multor antrenări, cu ponderi iniŃiale diferite, pentru găsirea celei mai bune valori
pentru funcŃia cost (minimul erorii). Dacă însă valorile iniŃiale sunt mari, ele tind să satureze
unităŃile respective. În acest caz, derivata funcŃiei sigmoide este foarte mică. Ea acŃionează ca un
factor de multiplicare în timpul învăŃării şi deci, unităŃile saturate vor fi aproape blocate, ceea ce
face învăŃarea foarte lentă.
Pasul 2: O nouă epocă de antrenare
O epocă reprezintă prezentarea tuturor exemplelor din setul de antrenare. În majoritatea
cazurilor, antrenarea reŃelei presupune mai multe epoci de antrenare.
Pentru a păstra rigoarea matematică, ponderile vor fi ajustate numai după ce toŃi vectorii de
test vor fi aplicaŃi reŃelei. În acest scop, gradienŃii ponderilor trebuie memoraŃi şi ajustaŃi după
fiecare model din setul de antrenare, iar la sfârşitul unei epoci de antrenare, se vor modifica ponderile
o singură dată .
Se iniŃializează toŃi gradienŃii ponderilor şi eroarea curentă cu 0: ∆wij = 0 , E = 0.
Pasul 3: Propagarea semnalului înainte
3.1. La intrările reŃelei se aplică un exemplu din setul de antrenare.
3.2. Se calculează ieşirile neuronilor din stratul ascuns:
n
yi ( p ) = f (∑ xi ( p ) wij ( p ) − θ j ) (1)
i =1
unde: – n este numărul de intrări ale neuronului j din stratul ascuns;
– f este funcŃia de activare sigmoidă.
3.3. Se calculează ieşirile reale ale reŃelei:
m
y k ( p ) = f (∑ x jk ( p ) w jk ( p ) − θ k (2)
i =1
unde: – m este numărul de intrări ale neuronului k din stratul de ieşire.
3.4. Se actualizează eroarea pe epocă:
(e ( p )) 2
E=E+ k (3)
2
Pasul 4: Propagarea erorilor înapoi şi ajustarea ponderilor
4.1. Se calculează gradienŃii erorilor pentru neuronii din stratul de ieşire:
δ k ( p ) = f ' ek ( p ) (4)
unde: eroarea este ek ( p ) = yd ,k ( p ) − y k ( p ) (5)
4.2. Se actualizează gradienŃii ponderilor dintre stratul ascuns şi stratul de ieşire:
∆w jk ( p ) = ∆w jk ( p ) + y j ( p )δ k ( p ) (6)
4.3. Se calculează gradienŃii erorilor pentru neuronii din stratul ascuns.
4.4. Se actualizează gradienŃii ponderilor dintre stratul de intrare şi stratul ascuns.
Pasul 5: O nouă iteraŃie
Dacă mai sunt vectori de test în epoca de antrenare curentă, se trece la pasul 3.
Dacă nu, se actualizează ponderile tuturor conexiunilor pe baza gradienŃilor ponderilor:
wij = wij + η∆wij (7)
unde η D este rata de învăŃare.
Dacă s-a încheiat o epocă, se testează dacă s-a îndeplinit criteriul de terminare ( E < E max sau
s-a atins un număr maxim de epoci de antrenare). Dacă nu, se trece la pasul 2. Dacă da, algoritmul
se termină.
Pornind de la algoritmul backpropagation standard pot fi dezvoltate diferite variante care
diferă între ele prin:
– modul de alegere a ratei de învăŃare: constantă sau adaptivă;
– relaŃiile de ajustare (determinate de algoritmul de minimizare utilizat, ce poate fi diferit de
algoritmul gradientului simplu: algoritmi de tip gradient conjugat, algoritmi de tip Newton,
algoritmi aleatori de descreştere, algoritmi genetici etc.);
– modul de iniŃializare a parametrilor: iniŃializare aleatoare sau bazată pe un algoritm de
căutare;
– parcurgerea setului de antrenare (influenŃează doar varianta serială a algoritmului):
secvenŃială sau aleatoare;
– funcŃia de eroare: pe lângă eroarea medie pătratică, se pot folosi şi măsuri ale erorii
specifice problemei de rezolvat;
– criteriul de oprire: pe lângă criteriul bazat pe numărul maxim de epoci şi pe eroarea
corespunzătoare setului de antrenare, se pot folosi şi criterii legate de eroarea pe setul de validare şi
de mărimea ajustărilor din cadrul ultimei epoci.
MotivaŃia dezvoltării unor variante ale algoritmului standard o reprezintă faptul că acesta
prezintă o serie de inconveniente:
– convergenŃa lentă: necesită multe epoci pentru a atinge o valoare suficient de mică pentru
eroarea pe setul de antrenare;
– blocarea în minime locale: odată ce algoritmul ajunge într-un minim local al funcŃiei de
eroare, algoritmul nu permite evadarea din acest minim pentru a atinge optimul global;
– stagnarea (paralizarea): algoritmul stagnează într-o regiune care nu este neapărat în
vecinătatea unui minim local ca urmare a faptului că ajustările aplicate parametrilor sunt foarte
mici;
– supraantrenarea: reŃeaua asigură o bună aproximare pe setul de antrenare, însă posedă o
capacitate de generalizare redusă.
2. Metode de accelerare a vitezei de convergenŃă
Alegerea unei valori adecvate pentru rata de instruire η are un efect semnificativ asupra
performanŃelor reŃelei. În mod obişnuit, se consideră η∈(0,1), dar e posibil ca acest interval să fie
prea larg. Stabilind o rată de învăŃare în jurul valorii de 0.2, se asigură obŃinerea unei soluŃii, deşi
reŃeaua va necesita pentru instruire un număr mare de iteraŃii.
Este, de asemenea, posibil ca valoarea parametrului de învăŃare să crească în timpul instruirii,
pe măsură ce eroarea reŃelei descreşte, situaŃie care conduce, în general, la mărirea vitezei de
convergenŃă. În acest caz, există însă riscul ca reŃeaua să sară prea departe de valoarea de minim
reală, pentru o rată η inadecvat de mare. Creşterea lui η în timpul instruirii este utilă doar dacă
suprafaŃa de eroare este relativ netedă astfel, pe măsura apropierii de o soluŃie, eroarea devine tot
mai mică, ceea ce provoacă schimbări neînsemnate ale ponderilor. Deci, este justificată mărirea
vitezei de convergenŃă prin creşterea ratei de învăŃare.
2.1. Metoda momentului
Metoda momentului (Rumelhart, Hinton & Williams, 1986) propune adăugarea unui termen la
ajustarea ponderilor. Acest termen este proporŃional cu ultima modificare a ponderii, adică valorile
cu care se ajustează ponderile sunt memorate şi influenŃează în mod direct toate ajustările ulterioare:
∆wij ( p ) = ∆wij ( p ) + α∆wij ( p − 1) (8)
Adăugarea noului termen se face după actualizarea gradienŃilor ponderilor dintre stratul
ascuns şi stratul de ieşire şi dintre stratul de intrare şi stratul ascuns.
Tehnica momentului funcŃionează bine pentru unele probleme, dar are efect redus sau chiar
negativ, în cazul altor aplicaŃii.
2.2. Rata de învăŃare variabilă
Metoda ratei de învăŃare variabile (Silva & Almeida, 1990) constă în utilizarea unei rate de
învăŃare individuale pentru fiecare pondere şi adaptarea acestor parametri în fiecare iteraŃie, în
funcŃie de semnele succesive ale gradienŃilor:
u ⋅η ij ( p − 1), sgn( ∆wij ( p )) = sgn( ∆wij ( p − 1))
η ij ( p) =  (9)
d ⋅η ij ( p − 1), sgn( ∆wij ( p )) = − sgn( ∆wij ( p − 1))
Dacă pe parcursul antrenării eroarea începe să crească, în loc să scadă, ratele de învăŃare se
resetează la valorile iniŃiale, şi apoi se continuă procesul.
Pentru a evita oscilaŃiile care pot apărea în jurul soluŃiei optime, este necesar ca ratele de
instruire ηij să descrească în timp. Descreşterea nu trebuie să fie nici prea rapidă, nici prea lentă.
Şirul (ηij) descreşte suficient de lent dacă seria sumelor parŃiale este divergentă ( ∑η ij = +∞ ).
i, j

Cu cât coeficienŃii descresc mai lent, cu atât mai rapid decurge instruirea reŃelei. CondiŃia ca
şirul (ηij) să descrească suficient de rapid se exprimă prin cerinŃa ca seria pătratelor acestor
coeficienŃi să fie convergentă (adică ∑η ij2 < +∞ ).
i, j

Cu cât coeficienŃii (ηij) descresc mai repede, cu atât mai rapid vectorul pondere „uită“ deja
formele învăŃate.
CondiŃiile stabilite anterior reprezintă pentru cazul propagării înapoi o formulare matematică a
ceea ce Grosseberg numeşte dilema stabilitate – plasticitate. Conform acestei dileme, o reŃea
neuronală trebuie să satisfacă două cerinŃe contradictorii:
– pe de o parte, reŃeaua trebuie să fie suficient de stabilă pentru
a-şi aminti formele învăŃate anterior;
– pe de altă parte, reŃeaua trebuie să fie suficient de plastică pentru a putea învăŃa noi forme.
2.3. Evitarea minimelor locale
Este posibil ca propagarea înapoi a erorii să genereze o stare de minim local, iar procesul de
instruire se opreşte când reŃeaua atinge un minim local sau minim global al funcŃiei criteriu. Dacă se
atinge un minim local este posibil ca eroarea asociată ieşirilor să fie nepermis de mare. Problema
care se pune este cum se poate face ca reŃeaua să iasă dintr-o stare corespunzătoare de minim local.
Există mai multe posibilităŃi de abordare a acestei probleme:
– schimbarea constantei de instruire;
– schimbarea ponderilor iniŃiale;
– schimbarea numărului de unităŃi ascunse.
Adăugarea unor valori aleatoare mici la vectorul pondere poate permite reŃelei să scape dintr-
o stare de minim local. Dacă noua stare este suficient de îndepărtată de acest minim local, atunci
instruirea se poate desfăşura într-o nouă direcŃie, fără a reveni în acel minim. Micile variaŃii
aleatoare depind de vecinătatea minimului local, a cărei configuraŃie nu este însă cunoscută înainte
de instruirea reŃelei.
Dacă reŃeaua a atins o soluŃie acceptabilă, nu este sigur că ea corespunde unui minim global
sau local; de obicei, dacă soluŃia este satisfăcătoare din punct de vedere al erorii, nu contează tipul
minimului la care se ajunge.
O caracteristică a reŃelelor cu straturi ascunse este că ele au mai multe stări de minim global,
stări ce sunt perfect echivalente. Acestea se datorează numeroaselor simetrii în arhitectura reŃelei.
PrezenŃa minimelor globale multiple nu reprezintă nicio problemă pentru procesul de instruire.
2.4. Ruperea simetriei şi iniŃializarea ponderilor
Dacă iniŃial, toate ponderile sunt egale, dar soluŃia necesită însă apariŃia ponderilor diferite,
sistemul nu va putea fi instruit deoarece eroarea se propagă înapoi prin semnale proporŃionale cu
ponderile, astfel se va obŃine pentru toŃi neuronii din stratul ascuns conectaŃi la stratul de ieşire erori
identice. Deoarece schimbarea ponderilor depinde de valoarea erorii, ponderile conexiunilor
neuronilor din stratul ascuns cu neuronii din stratul de ieşire vor fi întotdeauna aceleaşi, iar sistemul
nu va putea ieşi din această stare (reŃeaua este paralizată). Inconvenientul poate fi îndreptat
considerând, la momentul iniŃial, valori aleatoare mici pentru ponderi, valori ce conduc la ruperea
simetriilor.
Pentru a putea studia experimental accelerarea vitezei de convergenŃă a unei reŃele neuronale,
am ales o arhitectură cu două niveluri (nivelul ascuns cu 76 de neuroni). Această reŃea antrenează o
imagine în scopul eliminării zgomotului aditiv de la intrare. FuncŃiile de transfer pentru cele două
niveluri sunt de tip tansing, iar toleranŃa la învăŃare este de 0.01.
În cazul antrenării imaginii cu metoda gradientului descendent standard (batch), nu este atinsă
performanŃa.
net=newff(minmax(P),[87 L],{'tansig' 'logsig'}, 'TRAINGD');
net.trainParam.epochs = 5000; % numărul maxim de epoci
net.trainParam.goal = 0.001; % toleranŃa la învăŃare.
net.trainParam.show = 50;
0
Performance is 0.0438093, Goal is 0.01
10

-1
10
Training-Blue Goal-Black

-2
10

-3
10
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
5000 Epochs

Fig. nr. 1 Antrenarea reŃelei cu algoritm gradient descendent standard

a) b)

c)
Fig. nr. 2 a) imaginea neafectată de zgomot; b) imaginea de la intrare afectată de zgomot; c) imaginea
antrenată cu TRAINGD

Fig. nr. 3 Antrenarea reŃelei cu algoritm gradient descendent cu moment


O altă metodă de antrenare a unei reŃele neuronale, care completează metoda gradientului
descendent şi oferă o convergenŃă mai rapidă prin utilizarea momentului, este algoritmul descendent
standard cu moment. Momentul permite reŃelei să nu Ńină seama numai de gradientul local, ci şi de
tendinŃele erorilor. Antrenarea reŃelei, pentru îmbunătăŃirea imaginii afectate de zgomot, cu
algoritmul gradient descendent standard cu moment (batch), nu aduce însă faŃă de algoritmul clasic
o îmbunătăŃire a imaginii antrenate.
Algoritmul backpropagation este implementat în mai multe variante. Algoritmii de înaltă
performanŃă sunt mult mai rapizi decât variantele „Batch Gradient Descent“ (implementat prin
funcŃia traingd) şi „Batch Gradient Descent with Momentum“ (implementat prin funcŃia traingdm)
şi se pot grupa în două categorii principale:
a) Prima categorie foloseşte tehnici euristice care sunt dezvoltate din analiza performanŃei
algoritmului standard de descreştere pronunŃată. În această categorie se prezintă algoritmul
backpropagation cu rată variabilă de învăŃare traingda şi algoritmul backpropagation elastic trainrp.
b) A doua categorie foloseşte tehnici de optimizare numerică, aici prezentându-se algoritmii:
gradient conjugat, quasi-Newton şi Levenberg-Marquardt.
a.1) În cazul antrenării reŃelei cu rată variabilă de învăŃare, performanŃele se îmbunătăŃesc
deoarece în procedura de antrenare se calculează atât ieşirea iniŃială a reŃelei, cât şi eroarea, la
fiecare epocă se calculează noile ponderi şi praguri folosind rata curentă de învăŃare, se calculează
apoi noile ieşiri şi erori, dacă noua eroare depăşeşte vechea eroare printr-o valoare mai mare decât
un raport predefinit (max_perf_inc=1.04), noile ponderi şi bias-uri calculate sunt anulate, şi în plus
rata de învăŃare este micşorată prin multiplicare cu un factor lr_dec=0.7 , în caz contrar noile valori
calculate sunt păstrate. Dacă noua eroare este mai mică decât vechea eroare, rata de învăŃare este
mărită prin multiplicare cu un factor lr_inc=1.05.
În cazul antrenării cu algoritm cu rată variabilă de învăŃare, performanŃa este atinsă în 1183 de
epoci, într-un timp de 246 de secunde.
Fig. nr. 4 Antrenarea reŃelei cu rată variabilă de învăŃare
Imaginea antrenată este mult mai bună decât în cazul utilizării celorlalte două metode.

Fig. nr. 5 Imagine obŃinută în urma antrenării cu rată variabilă de învăŃare


Pe lângă algoritmul ratei variabile de învăŃare implementat cu funcŃia traingda, mai există o
variantă similară – traingdx , care combină rata de învăŃare adaptivă cu un coeficient moment mc.
Pentru arhitectura de faŃă a reŃelei, antrenarea cu rată de învăŃare adaptivă, combinată cu
moment a dus la atingerea performanŃei în 447 de epoci, în interval de 94 de secunde şi o
recunoaştere mai bună a imaginii.

Fig. 6 Antrenarea reŃelei cu TRAINGDX

Fig. nr. 7 Imagine obŃinută în urma antrenării cu rată variabilă


de învăŃare şi moment
a.2) Algoritm backpropagation elastic (Resilient Backpropagation- Rprop)
ReŃelele neuronale multistrat folosesc în straturile ascunse funcŃii de transfer sigmoide,
deoarece comprimă un domeniu de intrare infinit într-un domeniu finit de ieşire, caracterizate fiind
de faptul că panta lor se apropie de zero pe măsură ce valoarea de intrare devine mai mare. Acest
lucru provoacă în antrenarea cu algoritmul de descreştere pronunŃată (steepest descent
backpropagation algorithm) schimbări mici ale ponderilor şi bias-urilor, chiar dacă acestea sunt
departe de valoarea lor optimă.
Scopul algoritmului elastic de antrenare este de a elimina acest efect al valorii mărimii
derivatelor parŃiale. Pentru a determina direcŃia actualizării ponderilor se va folosi doar semnul
derivatei; mărimea derivatei nu va avea efect asupra actualizării ponderilor. Valoarea de actualizare
pentru fiecare pondere şi bias este mărită printr-un factor delt_inc ori de câte ori derivata parŃială a
criteriului de performanŃă, în funcŃie de respectiva pondere, are acelaşi semn în două iteraŃii
succesive; aceeaşi valoare de actualizare este micşorată printr-un factor delt_dec ori de câte ori
derivata parŃială a criteriului de performanŃă, în funcŃie de respectiva pondere, îşi schimbă semnul
faŃă de iteraŃia precedentă. Dacă derivata este zero, atunci valoarea de actualizare rămâne aceeaşi.
Astfel, ori de câte ori ponderile oscilează, schimbarea ponderii este micşorată, iar dacă ponderile
continuă să se schimbe în aceeaşi direcŃie pentru câteva iteraŃii la rând, atunci mărimea schimbării
ponderii va creşte.
Antrenarea reŃelei cu algoritmul elastic a dus la atingerea performanŃei în 1212 epoci, în
interval de 369 de secunde.

Fig. nr. 8 Antrenarea reŃelei cu algoritm backpropagation elastic

Fig. 7 Imagine obŃinută în urma antrenării reŃelei cu algoritmul backpropagation elastic


Algoritmii de tip quasi-Newton şi Levenberg-Marquardt pentru învăŃarea reŃelelor conduc, în
general, la cele mai bune soluŃii, însă necesită un număr mare de calcule, deci o memorie mare.
Pentru exemplul considerat, antrenarea unei imagini afectate de zgomot, se obŃine o reŃea mult mai
mare decât posibilităŃile de calcul şi memorie ale acestor algoritmi, fapt ce a condus la
imposibilitatea implementării acestor metode.
În funcŃie de variantele algoritmului backpropagation implementate, am ajuns la performanŃa
stabilită (net.trainParam.goal = 0.01) într-un număr variabil de epoci, astfel:
Rutina de
Timpul de
Metoda implementare Numărul de epoci
antrenare
în Matlab
gradient descendent standard nu s-a atins perfor-
traingd 1204 s
(batch) manŃa în 5000 epoci
gradient descendent standard nu s-a atins perfor-
traingdm 1420 s
(batch) cu moment manŃa în 5000 epoci
rată variabilă de învăŃare traingda 1183 246 s
rată de învăŃare adaptivă cu un
traingdx 447 94 s
coeficient moment
backpropagation elastic trainrp 1212 369 s
Se poate observa că, în acest caz, cele mai bune performanŃe s-au obŃinut în cazul utilizării
algoritmului backpropagation cu rată variabilă de învăŃare şi moment.

BIBLIOGRAFIE

1. Dumitrescu, D., Costin, H., ReŃele neuronale – teorie şi aplicaŃii, Bucureşti, Editura Teora, 1996
2. Neagoe, V., Stănăşilă, O., Recunoaşterea formelor şi reŃele neuronale – algoritmi fundamentali,
Bucureşti, Editura Matrix, 1999
3. Perry, S.W., Wong, Hau-San, Gua, Ling, Adaptive Image Processing, CRC Press LLC, 2002
4. Toderean, G., Costeiu, M., Giurgiu, M., ReŃele neuronale feedforward, Cluj-Napoca, Editura Albastră,
1994
5. Neural Network Toolbox