Lucrarea de licent a [604518]
Universitatea TRANSILVANIA, Bras ¸ov
Facultatea de Matematic ˘a s ¸i Informatic ˘a
Specializarea Informatic ˘a Aplicat ˘a
Lucrarea de licent ¸ ˘a
Ret ¸ea neural˘ a de convolut ¸ie pentru
recunoa¸ stere de pattern-uri
Autor:
Popa Andi Drago¸ sCoordonator:
Conf. dr. Lucian Sasu
Iulie 2015
Cuprins
1 Introducere 3
1.1 Motivat ¸ia alegerii temei . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Structura lucr˘ arii . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Ret ¸ele neurale de convolut ¸ie 5
2.1 Introducere ret ¸ele neurale artificiale . . . . . . . . . . . . . . . 5
2.1.1 Perceptronul multistrat . . . . . . . . . . . . . . . . . . 7
2.2 Ret ¸ele neurale de convolut ¸ie . . . . . . . . . . . . . . . . . . . 11
2.2.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Beneficiile ret ¸elelor neurale de convolut ¸ie . . . . . . . . 12
2.3 Utiliz˘ ari ale ret ¸elelor neurale de convolut ¸ie . . . . . . . . . . . 13
2.4 Arhitectura ret ¸elelor neurale de convolut ¸ie . . . . . . . . . . . 14
2.4.1 Straturile de convolut ¸ie . . . . . . . . . . . . . . . . . . 14
2.4.2 Strat de sube¸ santionare . . . . . . . . . . . . . . . . . . 16
2.4.3 Clasificator . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Arhitectura LeNet-5 . . . . . . . . . . . . . . . . . . . . . . . 17
2.6 Antrenarea ret ¸elei . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6.1 Operat ¸ia de convolut ¸ie 2D . . . . . . . . . . . . . . . . 20
2.6.2 Strat de convolut ¸ie . . . . . . . . . . . . . . . . . . . . 23
2.6.2.1 Pasul de propagareˆ ınainte . . . . . . . . . . . 23
2.6.2.2 Pasul de propagareˆ ınapoi a erorii . . . . . . . 24
2.6.3 Strat de sube¸ santionare . . . . . . . . . . . . . . . . . . 28
2.6.3.1 Pasul de propagareˆ ınainte . . . . . . . . . . . 29
2.6.3.2 Pasul de propagareˆ ınapoi a erorii . . . . . . . 30
2.6.4 Clasificator . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Clasificare de imagini folosind ret ¸ele neurale de convolu t ¸ie 32
3.1 Seturi de date . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Rezultate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Setul de date MNIST . . . . . . . . . . . . . . . . . . . 35
3.2.2 Setul de date GTSRB . . . . . . . . . . . . . . . . . . 36
1
3.2.2.1 Arhitectura 1 . . . . . . . . . . . . . . . . . . 36
3.2.2.2 Arhitectura 2 . . . . . . . . . . . . . . . . . . 36
3.2.2.3 Arhitectura 3 . . . . . . . . . . . . . . . . . . 38
3.2.2.4 Timpii necesari antren˘ arii ¸ si test˘ arii . . . . . 39
3.3 Experient ¸˘ a dobˆ andit˘ a . . . . . . . . . . . . . . . . . . . . . . . 40
3.4 Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4 Manual de utilizare 42
4.1 Init ¸ializarea ret ¸elei neurale de convolut ¸ie . . . . . . . . . . . . 43
4.2 Antrenarea ret ¸elei neurale de convolut ¸ie . . . . . . . . . . . . . 44
4.3 Testarea ret ¸elei neurale de convolut ¸ie . . . . . . . . . . . . . . 46
4.4 Vizualizarea detaliat˘ a a test˘ arii . . . . . . . . . . . . . . . . . 48
5 Concluzii 50
5.1 Posibile dezvolt˘ ari . . . . . . . . . . . . . . . . . . . . . . . . . 50
2
Capitolul 1
Introducere
1.1 Motivat ¸ia alegerii temei
Tematica lucr˘ arii, recunoa¸ sterea patternurilor, este u n subiect de cerce-
tare activ˘ a¸ si impetuos analizat de c˘ atre speciali¸ stiˆ ın analizarea¸ si procesarea
imaginilor deoarece poate s˘ a aduc˘ a multiple beneficii pra ctice:
•dezvoltare tehnologic˘ a
•sigurant ¸a personal˘ a
•eficient ¸˘ a ¸ si randament
Exemplul elocvent ˆ ın care recunoa¸ sterea patternurilor e ste benefic˘ a ˆ ın
cazul sigurant ¸ei personale, poate fi conducerea unui autov ehicul. Din varii
motive (neatent ¸ie, condit ¸ii meteo, oboseal˘ a, probleme medicale etc.) este
posibil s˘ a nu observ˘ am unele semne de circulat ¸ie, acest l ucru putˆ and avea
consecint ¸e grave asupra integrit˘ at ¸ii noastre ¸ si nu num ai.ˆIn concluzie recu-
noa¸ sterea obiectelor poate fi pus˘ aˆ ın practic˘ a pentru de tectarea automat˘ a a
semnelor de circulat ¸ie, astfel, conduc˘ atorul autoturis mului poate fi avertizat
de prezent ¸a acestora pentru evitarea consecint ¸elor nega tive.
Lucrarea cont ¸ine o descriere a unei implement˘ ari de ret ¸e le neurale de
convolut ¸ie folosit˘ a pentru recunoa¸ sterea semnelor de c irculat ¸ie.
1.2 Structura lucr˘ arii
Aceast˘ a lucrare cont ¸ine 5 capitole.
ˆInprimul capitol , celintroductiv, suntprezentatemotivelealegeriiaces-
tui subiect, precum ¸ si structura lucr˘ arii.
3
Al doilea capitol , ret ¸ele neurale de convolut ¸ie, descrie pa¸ sii care trebu –
iesc urmat ¸i pentru implementarea unei astfel de ret ¸ele ne urale¸ si este compus
din:
•descrierea succint˘ a a ret ¸elelor neurale, precum ¸ si pa¸ s ii necesari pentru
implementarea acestora
•prezentarea conceptului ¸ si arhitecturii ret ¸elelor neur ale de convolut ¸ie
•prezentarea succint˘ a a cˆ atorva articole ¸ si publicat ¸ii de referint ¸˘ a care
ofer˘ a solut ¸ii (ale c˘ aror rezultate sunt notabile) pentr u probleme cum ar
fi: recunoa¸ stereaimaginilor,detectareasemnelor¸ siben zilordecirculat ¸ie
precum¸ si a autovehiculelor din trafic, recunoa¸ sterea vor birii, descrierea
cont ¸inuluiimaginiloretc. Toateacestesolut ¸iiaulabaz ˘ aimplementarea
de ret ¸ele neurale de convolut ¸ie
•descrierea,ˆ ın detaliu, a pa¸ silor necesari pentru implem entarea acestui
tip de ret ¸ea neural˘ a.
Al treilea capitol furnizeaz˘ a informat ¸ii referitoare la funct ¸ionalit˘ at ¸ile
aplicat ¸iei ¸ si tehnologiile folosite pentru implementar ea acesteia. ˆIn cadrul
acestuicapitolsuntprezentateseturilededatefolositep entrutestareaaplicat ¸iei
si sunt detaliate rezultatele obt ¸inute pe baza testelor f˘ acute. Experient ¸a
dobˆ andit˘ a pe parcursul document˘ arii despre ret ¸ele neu rale de convolut ¸ie pre-
cum ¸ si pe parcursul implement˘ arii ¸ si test˘ arii aplicat ¸ iei este ment ¸ionat˘ a ˆ ın
acest capitol.
Al patrulea capitol reprezint˘ amanualuldeutilizareaalaplicat ¸iei,trecˆ a nd
prin toate funct ¸ionalit˘ at ¸ile acesteia.
Al cincilea ¸ si totodat˘ a ultimul capitol cont ¸ine o scurt˘ a redactare a con-
cluziilor precum ¸ si posibilit˘ at ¸ile de dezvoltare ale ap licat ¸iei.
4
Capitolul 2
Ret ¸ele neurale de convolut ¸ie
2.1 Introducere ret ¸ele neurale artificiale
Inteligent ¸a computat ¸ional˘ a1este o ramur˘ a a inteligent ¸ei artificiale, care
ofer˘ a posibilitatea calculatorului de a ˆ ınv˘ at ¸a f˘ ar˘ a a fi ˆ ın mod explicit pro-
gramat. Un subdomeniu de mare interes al inteligent ¸ei compu tat ¸ionale este
reprezentat de ret ¸elele neurale artificiale. Acestea repre zint˘ a grupuri interco-
nectate de neuroni artificiali care au abilitatea de aˆ ınv˘ a t ¸a din ¸ si a se adapta
la mediul lor, construind un model al lumii. Ele au ap˘ arut ca r˘ aspuns la
modelarea activit˘ at ¸ii creierului biologic, precum ¸ si c a r˘ aspuns al dorint ¸ei de
a obt ¸ine sisteme artificiale capabile s˘ a recunoasc˘ a ¸ sab loane[18].
ˆInv˘ at ¸area poate fi de trei feluri:
•supervizat˘ a – datele de intrare sunt de forma (intrare, ie¸ sire asociat˘ a);
sistemulˆ ınvat ¸˘ a s˘ a asocieze unei intr˘ ari, o ie¸ sire (e tichet˘ a, clas˘ a) adec-
vat˘ a
•prinˆ ınt˘ arire – este similar˘ a cuˆ ınv˘ at ¸area superviza t˘ a, numai c˘ aˆ ın loc de
a se furniza ie¸ sirea asociat˘ a unei intr˘ ari, se pune la dis pozit ¸ie o indicat ¸ie
care arat˘ a cˆ at de bine a act ¸ionat sistemul respectiv [18]
•nesupervizat˘ a – datelor de intrare nu li se mai specific˘ a ¸ s i ie¸ sirea; astfel,
sistemulˆ ınvat ¸˘ a s˘ a extrag˘ a propriet˘ at ¸i ale intr˘ ar ilor
Cea mai simpl˘ a ret ¸ea neural˘ a este alc˘ atuit˘ a dintr-un s ingur neuron. Re-
prezentarea grafic˘ a a acestei ret ¸ele este ilustrat˘ aˆ ın fi gura 2.1.
1ˆIn original: Machine Learning
5
Figura 2.1: Neuron artificial
Comportamentul neuronului este urm˘ atorul:
1. Neuronul preia ca intrare un vector xde forma
x=
x1
x2
…
xn
2. Se noteaz˘ a cu zprodusul scalar ˆ ıntre vectorul ponderilor ¸ si vectorul
intr˘ arilor, la care se adaug˘ a ponderea asociat˘ a termenu lui de control
z=wT·x+b,undew=
w1
w2
…
wn
3. Secalculeazaactivarea(ie¸ sirea)neuronului(notat˘ a cuhw,b(x))aplicˆ and
o funct ¸ie de activare asupra valorii zcalculate anterior
hw,b(x) =f(z)
Ponderile sunt valori care reprezint˘ a puterea conexiunii dintre o intrare ¸ si
neuron. Astfel o pondere determin˘ a cˆ at de mult o valoare exc it˘ a (activeaz˘ a)
un neuron.
Dou˘ a dintre cele mai folosite funct ¸ii de activare sunt:
•logistic˘ a
•tangent˘ a hiperbolic˘ a
6
Funct ¸ia logistic˘ a este definit˘ a astfel:
f:R→(0,1), f(z) =1
1+e−z
Funct ¸ia tangent˘ a hiperbolic˘ a este definit˘ a astfel:
f:R→(−1,1), f(z) =ez−e−z
ez+e−z
Graficele celor dou˘ a funct ¸ii sunt prezentateˆ ın figura urm ˘ atoare:
(a) Funct ¸ia logistic˘ a
(b) Funct ¸ia tangent˘ a hiperbolic˘ a
Figura 2.2: Graficele funct ¸iilor de activare
2.1.1 Perceptronul multistrat
Una dintre cele mai importante categorii de probleme,ˆ ın car e pot fi folo-
site ret ¸ele neurale, este clasificarea pattern-urilor. Sc opul clasific˘ arii este de
a atribui un obiect unei clase specificateˆ ın prealabil[16] .
Perceptronul multistrat reprezint˘ a principala arhitect ur˘ a folosit˘ aˆ ın pro-
blemele de clasificare. Aceast˘ a arhitectur˘ a de ret ¸ea neur al˘ a este de tipul
propagareˆ ınainte2deoarece nu cont ¸ine bucle sau cicluri (vezi figura 2.3).
Perceptronul multistrat este alc˘ atuit din mai multe strat uri de neuroni:
un strat de intrare, mai multe straturi ascunse de neuroni ¸ s i un strat de
ie¸ sire. Fiecare neuron al unui strat diferit de cel de intra re este conectat la
tot ¸i neuronii stratului precedent. ˆIn plus fiecare neuron mai este conectat
la un termen de control ce apart ¸ine, de asemenea, stratului precedent (acest
termendecontrolesteunneuroncarenuareintr˘ ariasociat e¸ siac˘ aruivaloare
esteˆ ıntotdeauna +1). Arhitectura unei astfel de ret ¸ea neu ral˘ a este ilustrat˘ a
2ˆIn original: Feedforward Network
7
ˆ ın figura urm˘ atoare:
Figura 2.3: Perceptronul multistrat
Fiind un model deˆ ınv˘ at ¸are supervizat˘ a, perceptronul m ultistrat folose¸ ste
o funct ¸ie de eroare, care stabile¸ ste cˆ at de departe este r ˘ aspunsul dat de c˘ atre
ret ¸eaua neural˘ a fat ¸˘ a de valoarea cerut˘ a. Astfel, prin ˆ ınv˘ at ¸area ret ¸elei se
urm˘ are¸ ste ajustarea ponderilor astfelˆ ıncˆ at funct ¸ia de eroare s˘ a scad˘ a.
Unul din cei mai cunoscut ¸i algoritmiˆ ın vederea stabilirii valorilor cu care
se modific˘ a ponderile este propagareaˆ ın urm˘ a a erorii3. Acest algoritm este
format din mai mult ¸i pa¸ si:
•pasul de propagareˆ ınainte,ˆ ın care se calculeaz˘ a valori le de activare ale
neuronilor din ret ¸eaua neural˘ a precum ¸ si funct ¸ia de ero are;
•pasul de propagare ˆ ınapoi a erorii, ˆ ın care eroarea calcul at˘ a la ie¸ sirea
ret ¸elei este propagat˘ aˆ ınapoi spre intrare pentru calcu larea erorilor din
straturile ascunse;
•pasul de ajustare al ponderilor,ˆ ın care se calculeaz˘ a gra dientul fiec˘ arei
ponderi prin metoda stochastic gradient descent ¸ si apoi se realizeaz˘ a
modificarea acestora.
3ˆIn original: Backpropagation algorithm
8
Notat ¸ii:
-xvectorul de intrare a ret ¸elei
-yvaloarea de iesire dorit˘ a
-Lnum˘ arul total de straturi de neuroni
-alvectorul care cont ¸ine valorile de activare ale neuronilor din stratul l
-Wlmatrice de ponderi, cu wl
ij=ponderea care leag˘ a neuronul jdin
stratull−1 ¸ si neuronul idin stratul l
-blvector care cont ¸ine valorile ponderilor care leag˘ a terme nul de control
din stratul l−1 de fiecare neuron din stratul l
-δlvector care ret ¸ine valorile semnalelor de eroare produse d e neuronii
din stratul l
-hW,b(x) valoarea de ie¸ sire a perceptronului multistrat
-αreprezint˘ a parametrul deˆ ınv˘ at ¸are
-•reprezint˘ a operat ¸ia de ˆ ınmult ¸ire element cu element di ntre doi vec-
tori sau dou˘ a matrice (aceast˘ a operat ¸ie se mai nume¸ ste ¸ si produs Ha-
damard)
ˆIn continuare sunt prezentat ¸i pa¸ sii algoritmului pentru un singur pattern:
1. Calcularea valorilor de activare ale neuronilor
Pentru stratul de intrare valorile de activare sunt echival ente cu valo-
rile vectorului de intrare, iar ie¸ sirea unui strat este con siderat˘ a intrare
a urm˘ atorului strat. De asemenea, ie¸ sirea ultimului stra t reprezint˘ a
valoarea de ie¸ sire aˆ ıntregii ret ¸ele neurale.
a1=x
zl=Wl·al−1+bl¸ sial=f(zl),l=2,L
hW,b(x) =aL
2. Calcularea semnalelor de eroare produse de neuronii din u ltimul strat
Pentru stratul de ie¸ sire aceste valori se pot calcula direc t, ca diferent ¸a
dintre valoarea de ie¸ sire dorit˘ a ¸ si valoarea obt ¸inut˘ a .
δL=−(y−aL)•f′(zL)
9
3. Calcularea semnalelor de eroare pentru straturile ascun se
Aceste valori se calculeaz˘ aˆ ın funct ¸ie de semnalele de ero are din stratul
inferior ¸ si valorile ponderilor ce leag˘ a cele dou˘ a strat uri de neuroni
δl= (Wl+1)T·δl+1•f′(zl),l=L−1,2
4. Calcularea gradient ¸ilor, reprezentˆ and valorile cu ca re se vor modifica
ponderile
Se calculeaz˘ aˆ ın funct ¸ie de eroarea produs˘ a de stratul d e neuroni curent
¸ si valorile de intrare ale acelui strat.
∇WlJ(W,b,x,y) =δl·(al−1)T,l=2,L−1
∇blJ(W,b,x,y) =δl,l=2,L−1
5. Ajustarea ponderilor
Wl=Wl−α·∇WlJ(W,b,x,y),l=1,L−1
bl=bl−α·∇blJ(W,b,x,y),l=1,L−1
Pentru calcularea semnalelor de eroare se poate observa c˘ a trebuie deter-
minat˘ a valoarea derivatei funct ¸iei de activare:
•Funct ¸ia logistic˘ a
f(z) =1
1+e−z
f′(z) =/parenleftbigg1
1+e−z/parenrightbigg′
=(1+e−z)−(1+e−z)′
(1+e−z)2
=−(1−e−z)′
(1+e−z)2
=e−z
1+e−z
=1
1+e−z−1
(1+e−z)2
=f(z)−f2(z) =f(z)(1−f(z))
10
•Funct ¸ia tangent˘ a hiperbolic˘ a
f(z) =ez−e−z
ez+e−z
f′(z) =/parenleftbiggez−e−z
ez+e−z/parenrightbigg′
=(ez−e−z)′·(ez+e−z)−(ez−e−z)·(ez+e−z)′
(ez+e−z)2
=(ez+e−z)2−(ez−e−z)2
(ez+e−z)2
= 1−ez−e−z
ez+e−z
= 1−f2(z)
Observat ¸ii
1. Determinarea semnalului de eroare al unui neuron dintr-u n strat as-
cuns este influent ¸at˘ a de eroarea produs˘ a de fiecare neuron din stratul
inferior la care este conectat ¸ si ponderea asociat˘ a conex iunii dintre cei
doi neuroni.
2. Stabilireavaloriicucaresevamodificaopondereesteinfl uent ¸at˘ adene-
uronii aflat ¸i la capetele conexiunii asociate ponderii, ¸ s i anume valoarea
neuronului de la careˆ ıncepe conexiunea ¸ si valoarea erori i provocate.
2.2 Ret ¸ele neurale de convolut ¸ie
2.2.1 Introducere
ˆInv˘ at ¸area ˆ ın adˆ ancime4permite modelelor computat ¸ionale compuse din
straturi multiple de procesare s˘ a ˆ ınvet ¸e reprezent˘ ari ale datelor pentru mai
multe niveluri de abstractizare. Aceste metode auˆ ımbun˘ at ˘ at ¸itˆ ıntr-un mod
drastic rezultatele ˆ ın domenii precum recunoa¸ sterea vor birii, recunoa¸ sterea
obiectelor ¸ si detectarea obiectelor.
ˆInv˘ at ¸areaˆ ın adˆ ancime reprezint˘ a o tehnic˘ a a intelig ent ¸ei computat ¸ionale
prin care straturile sunt organizate ˆ ın mod ierarhic. Astfe l nivelurile infe-
rioare au rolul de a extrage, ˆ ın mod nesupervizat, tr˘ as˘ at uri ale datelor de
intrare, iar straturile de nivel superior au rolul de a le cla sificaˆ ıntr-un mod
supervizat.
Ret ¸elele neurale de convolut ¸ie reprezint˘ a un tip specia lizat de ret ¸ele neu-
rale pentru procesarea datelor ce au o structur˘ a fix˘ a (de ex emplu imaginile).
4ˆIn original: Deep learning
11
Prin prisma structurii pe care o au (vezi sect ¸iunea 2.4), re t ¸elele neurale de
convolut ¸ie apart ¸in modelelor deˆ ınv˘ at ¸areˆ ın adˆ anci me. Dup˘ a cumˆ ıi spune ¸ si
numele, acest tip de ret ¸ea neural˘ a folose¸ ste operat ¸ia d e convolut ¸ie ˆ ın locul
operat ¸iei de ˆ ınmult ¸ire a matricilor. De asemenea, ret ¸e lele de convolut ¸ie au
avut un succes except ¸ional prin utilizarea lor ˆ ın diferit e aplicat ¸ii (sect ¸iunea
2.3).
2.2.2 Beneficiile ret ¸elelor neurale de convolut ¸ie
Dup˘ acumamspusˆ ınsect ¸iuneaprecedent˘ aclasificareaim aginilorsepoate
face utilizˆ and ret ¸ele neurale multistrat. Pentru a face a cest lucru mai ˆ ıntˆ ai
este necesar˘ a implementarea unor algoritmi pentru extrag erea tr˘ as˘ aturilor
din imagine, iar apoi aceste tr˘ as˘ aturi sunt folosite pent ru clasificarea obiec-
telor. O abordare recent considerat˘ a ar fi aceea ca ret ¸eaua neural˘ a s˘ aˆ ınvet ¸e
s˘ a extrag˘ a tr˘ as˘ aturile din imagini ([12], [8], [24], [2 3], [17]). Utilizˆ and ret ¸ele
neurale multistrat complet conectate pot ap˘ area probleme .
ˆIn primul rˆ and, imaginile sunt mari ca dimensiuni, fiind alc ˘ atuite din sute
de pixeli. Prin folosirea unei astfel de imagini ca intrare a unei ret ¸ele neurale
¸ si legarea acesteia la un strat ascuns complet conectat se f olosesc deja cˆ ateva
mii de ponderi. Astfel, ad˘ augˆ and mai multe straturi ascuns e ret ¸elei neurale
se ajunge la un num˘ ar prohibitiv de ponderi, care vor cre¸ st e capacitatea de
ˆ ınv˘ at ¸are a ret ¸elei dar totodat˘ a vor necesita un set de d ate de antrenare mai
mare pentru evitarea fenomenului de supraˆ ınv˘ at ¸are5. De asemenea, num˘ arul
mare de ponderi reprezinta o problem˘ a ¸ si din punct de veder e al memoriei
utilizate deoarece acestea trebuiesc stocate.
ˆInaldoilearˆ and, ret ¸eleleneuralemultistrattradit ¸io nalenuasigur˘ ainvari-
ant ¸˘ a referitor la translat ¸ia ¸ si deformarea intr˘ arilo r. Astfel, ˆ ınainte de a fi
folosit˘ a ca intrare a ret ¸elei, o imagine trebuie normaliz at˘ a ca dimensiune
¸ si centrat˘ a, dar, din nefericire, tehnicile de preproces are nu pot fi perfecte.
ˆIn cazul ret ¸elelor de convolut ¸ie aceast˘ a problem˘ a a inv ariant ¸ei spat ¸iale este
rezolvat˘ a prin folosirea ponderilor partajate.
ˆInultimulrˆ and,arhitecturilecompletconectateignor˘ a topologiaintr˘ arilor,
astfel variabilele intr˘ arilor pot fi introduseˆ ın orice or dine. Contrar, imaginile
au o structur˘ a 2D local˘ a puternic˘ a, pixelii aflat ¸i ˆ ın ac eea¸ si vecin˘ atate fiind
puternic corelat ¸i. De aceea corelat ¸iile locale reprezin t˘ a un avantaj al extrage-
rii de tr˘ as˘ aturi locale. Ret ¸elele neurale de convolut ¸i e fort ¸eaz˘ a extragerea de
tr˘ as˘ aturi locale prin restrict ¸ionarea cˆ ampurilor rec eptive ale neuronilor din
straturile ascunse de a fi locale.
5ˆIn original: Overfitting
12
2.3 Utiliz˘ ari aleret ¸elelorneuralede convolut ¸ie
Ret ¸elele neurale de convolut ¸ie stau la baza abord˘ arilor de ultim˘ a or˘ a
ˆ ın ceea ce prive¸ ste rezolvarea problemelor de recunoa¸ st ere ¸ si detectare de
pattern-uri, avˆ and rezultate impresionante.
Recunoa¸ sterea imaginilor ¸ si clasificarea acestora repre zint˘ a un subiect de
mare interesˆ ın cadrul inteligent ¸ei artificiale. Seturil e de date au crescut con-
siderabailˆ ın ultimii ani (de la zeci de mii de imagini ajung ˆ and la milioane de
imagini), astfel, pentru recunoa¸ sterea acestora, este ne voie de implementarea
unor modele cu o capacitate mare deˆ ınv˘ at ¸are. Ret ¸elele n eurale de convolut ¸ie
s-au dovedit a fi capabile s˘ a rezolve aceste probleme ([20], [22]). De aseme-
nea acestea pot fi folosite ¸ si pentru recunoa¸ sterea vorbir ii ([2], [3]), avˆ and
performant ¸e notabile.
ˆInarticolul“ImageNetClassificationwithDeepConvolution alNeuralNe-
tworks” ([9]) este prezentat˘ a o arhitectur˘ a a unei ret ¸el e neurale de convolut ¸ie
antrenat˘ a pe setul de date ImageNet. Acest set de date cont ¸in e aproxi-
mativ 15 milioane de imagini ˆ ımp˘ art ¸ite ˆ ın 22000 de categ orii. Arhitectura
ret ¸elei cont ¸ine 60 milioane de parametri deˆ ınv˘ at ¸are d istribuit ¸iˆ ın 5 straturi
de convolut ¸ie (unele din ele urmate de straturi de sube¸ san tionare) urmate la
la final de 3 straturi de neuroni complet conectate. Rezultat ele obt ¸inute de
aceast˘ a ret ¸ea neural˘ a dep˘ a¸ sesc cele mai bune rezultat e obt ¸inute la competit ¸ia
aferent˘ a setului de date (ILSVRC-2010) avˆ and o rata de eroa re de 37.5%
pentru top-1, respectiv 17 .0% pentru top-5 (rezultatul corect se afl˘ a printre
primele 5 rezultate prezise).
Printre principalele provoc˘ ari pentru inteligent ¸a arti ficial˘ a se num˘ ar˘ a ¸ si
descrierea cont ¸inutului imaginilor. Aceasta const˘ aˆ ın a socierea de propozit ¸ii
unei imagini cu privire la cont ¸inutul acesteia. O abordare a acestei pro-
bleme, prezentat˘ a ˆ ın articolul[24], combin˘ a ret ¸elele neurale de convolut ¸ie,
pentru codificarea imaginii ˆ ıntr-o form˘ a compact˘ a, cu re t ¸elele neurale recu-
renteresponsabilepentrugenerareapropozit ¸iilor. Conf ormscoruluiBLEU-1,
valoarea de referint ¸˘ a curent˘ a este 25, ˆ ın timp ce implem entarea prezentat˘ a
ˆ ın articol a obt ¸inut un punctaj de 59, fiind mult mai apropia t˘ a de valoarea
uman˘ a ¸ si anume 69.
ˆIn ultima perioad˘ a interesul pentru autovehiculele auton ome a explodat
¸ si din acest motiv se caut˘ a noi implement˘ ari pentru crear ea prototipurilor
inedite. Sefacnumeroasecercet˘ ari¸ siaplicat ¸iipentru realizareaacestuilucru.
S ¸i ˆ ın acest caz ret ¸elele neurale de convolut ¸ie par a fi cea mai bun˘ a alegere.
De exempluˆ ın articolele [5], [6] este prezentat˘ a o arhite ctur˘ a folosit˘ a pentru
clasificarea semnelor de circulat ¸ie, fiind singura care a re u¸ sit s˘ a dep˘ a¸ seasc˘ a
rata de recunoa¸ stere uman˘ a (99 .46% fat ¸˘ a de 98 .84%).
De asemenea, ˆ ın cadrul aceluia¸ si domeniu, exist˘ a solut ¸ ii care utilizeaz˘ a
13
ret ¸ele neurale de convolut ¸ie pentru detectarea benzilor de circulat ¸ie ¸ si a ce-
lorlalte autovehicule din trafic ([8]).
2.4 Arhitectura ret ¸elelorneuralede convolut ¸ie
Ret ¸elele neurale de convolut ¸ie combin˘ a trei idei arhite cturale pentru a
asigura invariant ¸a cu privire la translat ¸ii, deform˘ ari ¸ si dimensiuni: cˆ ampuri
receptive locale, ponderi partajate ¸ si sube¸ santionare6spat ¸ial˘ a sau tempo-
ral˘ a[10]. O ret ¸ea de convolut ¸ie este format˘ a din mai mul te tipuri straturi:
•straturi de convolut ¸ie
•straturi de sube¸ santionare
•straturi complet conectate
Deobiceistraturiledeconvolut ¸iesunturmatedecˆ ateuns tratdesube¸ san-
tionare, except ¸ie f˘ acˆ and ultimul strat de convolut ¸ie c are este urmat de mai
multe straturi complet conectate.
2.4.1 Straturile de convolut ¸ie
Neuronii dintr-un strat de convolut ¸ie sunt organizat ¸i ˆ ın plane rectangu-
lare. Fiecare neuron este conectat la un set de neuroni aflat ¸ i ˆ ıntr-o mic˘ a
vecin˘ atate din stratul precedent, prin intermediul unui c ˆ amp receptiv lo-
cal. Tot ¸i neuronii ce apart ¸in aceluia¸ si plan folosesc ac elea¸ si ponderi la acti-
vare. Astfel prin folosirea cˆ ampurilor receptive locale su nt detectate diferite
tr˘ as˘ aturi(colt ¸uri, muchii), caremaiapoisuntcombina tedeurm˘ atoarelestra-
turi pentru a extrage tr˘ as˘ aturi mai specifice. De asemnea, folosind ponderi
partajate (comune) ˆ ın cadrul aceluia¸ si plan, neuronii po t extrage acelea¸ si
tr˘ as˘ aturi pesteˆ ıntreaga intrare. Ie¸ sirile unui astfe l de plan se numesc plane
de tr˘ as˘ aturi7.
Urm˘ atoarele trei figuri ilustreaz˘ a modulˆ ın care cˆ ampul r eceptiv scaneaz˘ a
imaginea de intrareˆ ımpreun˘ a cu ponderile partajate asoc iate.
6ˆIn original: subsampling
7ˆIn original: Feature maps
14
(a) Init ¸ial cˆ ampul receptiv este pozit ¸ionat peste colt ¸ ul din stˆ anga sus al imagi-
nii ¸ si scaneaz˘ a elementele pe care le intersecteaz˘ a util izˆ and ponderile asociate
(b) Cˆ ampul receptiv se poate deplasa la dreapta, utilizˆ an d acelea¸ si ponderi
(c) Cˆ ampul receptiv se poate deplasa, de asemenea,ˆ ın jos
Figura 2.4: Modul de scanare al imaginii de intrare
15
Un strat de convolut ¸ie este alc˘ atuit din mai multe plane (fie care avˆ and
ponderi diferite), astfel putˆ andu-se extrage tr˘ as˘ atur i diferite (figura 2.5).
Figura 2.5: Extragerea multiplelor tr˘ as˘ aturi. ˆIn partea stˆ ang˘ a este imaginea
de intrare, iarˆ ın partea dreapt˘ a se afl˘ a un strat de convol ut ¸ie alc˘ atuit din 6
plane de tr˘ as˘ aturi (fiecare plan extrage diferite tr˘ as˘ a turi).
O implementare secvent ¸ial˘ a a unui plan de tr˘ as˘ aturi va s cana imaginea de
intrarecufiecareneuronceareuncˆ ampreceptiv¸ sivasalva st˘ arileneuronului
ˆ ın planul de tr˘ as˘ aturi. Aceast˘ a operat ¸ie este echivale nt˘ a cu o convolut ¸ie peste
imaginea de intrare, urmat˘ a de adunarea unui termen de cont rol8¸ si aplica-
rea unei funct ¸ii de activare. Nucleul convolut ¸iei este alc ˘ atuit din ponderile
asociate planului de tr˘ as˘ aturi[10].
2.4.2 Strat de sube¸ santionare
Dup˘ a extragerea tr˘ as˘ aturilor dintr-o imagine devine ma i put ¸in impor-
tant˘ a locat ¸ia lor exact˘ aˆ ın imaginea de intrare. Mai imp ortant˘ a este pozit ¸ia
lor relativ˘ a la celelalte tr˘ as˘ aturi ale imaginii. Reduc erea preciziei localiz˘ arii
acestora relativ la imaginea de intrare se poate face apelˆ a nd la straturile de
sube¸ santionare.
Un strat de sube¸ santionare este alc˘ atuit din tot atˆ atea pl ane cˆ ate sunt
ˆ ın stratul de convolut ¸ie aferent. Fiecare plan de tr˘ as˘ a turi din stratul de
8ˆIn original: Bias term
16
convolut ¸ie este conectat la un plan din stratul de sube¸ san tionare. Pentru
calcularea activ˘ arii unui neuron se calculeaz˘ a media val orilor neuronilor de
intrare corespunz˘ atori cˆ ampului receptiv, se ˆ ınmult ¸e ¸ ste cu un coeficient de
antrenare (pondere), se adaug˘ a un termen de control, iar la sfˆ ar¸ sit se aplic˘ a
o funct ¸ie de activare.
ˆIn cazul neuronilor aflat ¸i ˆ ın aceea¸ si vecin˘ atate dintr- un plan apart ¸inˆ and
unui strat de sube¸ santionare, ace¸ stia nu au cˆ ampuri rece ptive care s˘ a se
suprapun˘ a (vezi figura 2.6).
Figura 2.6: Modulˆ ın care sunt determinate valorile planul ui de tr˘ as˘ aturi ce
apart ¸ine unui strat de sube¸ santionare (calcularea medie i valorilor de intrare)
2.4.3 Clasificator
La finalul ret ¸elei neurale se adaug˘ a un clasificator (de exe mplu: percep-
tronul multistrat). Acesta poate fi alc˘ atuit din mai multe st raturi complet
conectate. Din cauz˘ a c˘ a straturile complet conectate nu a sigur˘ a invariant ¸˘ a
spat ¸ial˘ a, nu se mai pot ad˘ auga straturi de convolut ¸ie du p˘ a acestea.
2.5 Arhitectura LeNet-5
Un exemplu de arhitectur˘ a a unei ret ¸ele neurale de convolut ¸ie este LeNet-
5[10]. Aceast˘ a ret ¸ea de convolut ¸ie este folosit˘ a pentru recunoa¸ stere de carac-
tere¸ si este alc˘ atuit din 7 straturi, avˆ and ca intrare o im agine de dimensiunea
32×32 pixeli. Arhitectura acestei ret ¸ele neurale este ilustra t˘ aˆ ın figura 2.7.
17
Figura 2.7: Arhitectur˘ a LeNet-5[10]
Primul strat este un strat de convolut ¸ie care cont ¸ine 6 pla ne de tr˘ as˘ aturi.
Fiecare neuron al fiec˘ arui plan este conectat la o regiune de dimensiunea
5×5 neuroni apart ¸inˆ and intr˘ arii. Datorit˘ a operat ¸iei de convolut ¸ie dintre
intrare ¸ si nucleu (format din matricea de ponderi de dimens iune egal˘ a cu
cea a cˆ ampului receptiv) fiecare plan are dimensiunea 28 ×28. Astfel acest
strat de convolut ¸ie cont ¸ine (5 ·5 + 1)·6 = 156 parametri de ˆ ınv˘ at ¸are ¸ si
(5·5+1)·6·28·28 = 122304 conexiuni. Se observ˘ a c˘ a partajarea ponderilo r
duce la sc˘ aderea semnificativ˘ a a num˘ arului de ponderi rap ortat la num˘ arul
conexiunilor.
Al doilea strat este unul de sube¸ santionare ¸ si cont ¸ine tot atˆ atea plane cˆ at
stratul anterior de convolut ¸ie. Cˆ ampul receptiv are dime nsiunea 2 ×2, astfel
planele din acest strat au dimensiunea 14 ×14 (cˆ ampurile receptive dintr-un
strat de sube¸ santionare nu se suprapun). Pentru acest stra t este nevoie de
(1 + 1)·6 = 12 parametri de ˆ ınv˘ at ¸are ¸ si de (2 ·2 + 1)·6·14·14 = 5880
conexiuni.
Urm˘ atorul strat este unul de convolut ¸ie ¸ si este alc˘ atuit din 16 plane. De
asemenea cˆ ampurile receptive au dimensiunea 5 ×5 ¸ si astfel dimensiunea
acestor plane devine 10 ×10. Acest strat prime¸ ste ca ¸ si intrare toate cele
6 plane din stratul anterior de sube¸ santionare. Fiecare pl an din stratul de
convolut ¸ie este conectat doar la o parte din cele 6 intr˘ ari , respectˆ and schema
prezentat˘ a ˆ ın figura 2.8. Este folosit˘ a conectarea part ¸ ial˘ a la o parte din
intr˘ ari si nu conectarea la fiecare din cele 6 intr˘ ari din do u˘ a motive:
•Un prim motiv ar fi acela c˘ a astfel se p˘ astreaz˘ a un num˘ ar rez onabil de
conexiuni ¸ si parametri deˆ ınv˘ at ¸are.
•Al doilea motiv este acela c˘ a astfel planele din stratul de co nvolut ¸ie
extrag tr˘ as˘ aturi diferite deoarece primesc intr˘ ari dif erite.
Respectˆ and schema de conectare a planelor se obt ¸in 1516 pa rametri de
ˆ ınv˘ at ¸are ¸ si 151600 conexiuni.
18
Figura 2.8: Schema conexiunilor dintre straturile S2 de sub e¸ santionare ¸ si C3
de convolut ¸ie [10]
Al patrulea strat este unul de sube¸ santionare ¸ si este alc˘ a tuit din 16 plane
de dimensiune 5 ×5. Fiecare neuron al unui plan este conectat la o regiune de
2×2 neuroni din stratul anterior. Pentru acest strat num˘ arul parametrilor
de ˆ ınv˘ at ¸are este 32 (cˆ ate o pondere ¸ si un termen de contr ol pentru fiecare
din cele 16 plane; (1 + 1) ·16 = 32), iar num˘ arul conexiunilor este 2000
(16·(5·5)·(2·2+1)).
Al cincilea strat este un strat de convolut ¸ie format din 120 d e plane
de dimensiune 1 ×1. Fiecare neuron este conectat la cˆ ate o regiune de
dimensiune 5 ×5 al fiec˘ arui plan din stratul anterior. Cu toate c˘ a planele
de tr˘ as˘ aturi sunt alc˘ atuite fiecare din cˆ ate un singur ne uron, stratul este
considerat unul de convolut ¸ie ¸ si nu unul complet conectat deoarece dac˘ a
se m˘ are¸ ste dimensiunea intr˘ arii ret ¸elei iar celelalte valori r˘ amˆ an constante
atunci planele din acest strat ar avea o dimensiune mai mare. Stratul curent
cont ¸ine 48120 de parametri deˆ ınv˘ at ¸are ¸ si tot atˆ atea c onexiuni.
Dup˘ a acest ultim strat de convolut ¸ie urmeaz˘ a dou˘ a strat uri de neuroni
complet conectat ¸i. Primul este alc˘ atuit din 84 de neuroni ¸ si 10164 parametri
deˆ ınv˘ at ¸are, fiecare din cei 84 de neuroni fiind conectat ¸i la cei 120+1 (terme-
nul de control) neuroni ai ultimului strat de convolut ¸ie (8 4·121 = 10164), iar
al doilea este alc˘ atuit din 10 neuroni ¸ si 850 parametri deˆ ınv˘ at ¸are (calculat ¸i
ˆ ın mod similar stratului precedent). Acesta din urm˘ a repre zint˘ a stratul de
ie¸ sire al ret ¸elei.
ˆInfinalˆ ınsumˆ andnum˘ arultotaldeconexiuni¸ sinum˘ arul ponderilorobt ¸inem
340908 conexiuni ¸ si doar 60850 ponderi. ˆIn schimb o ret ¸ea neural˘ a complet
conectat˘ a cu tot atˆ atea conexiuni ar avea 340908 ponderi. Astfel se observ˘ a
rolul principal pe care ˆ ıl au ponderile partajate, acela de a reduce num˘ arul
parametrilor de ˆ ınv˘ at ¸are, p˘ astrˆ and ˆ ın acela¸ si timp num˘ arul mare de cone-
xiuni.
19
2.6 Antrenarea ret ¸elei
Ret ¸eaua neural˘ a de convolut ¸ie are o arhitectur˘ a de tip p ropagareˆ ınainte9
deoarece conexiunile dintre neuroni nu formeaz˘ a cicluri. Tipul de ˆ ınv˘ at ¸are
este supervizat˘ a, seturile de date de antrenare fiind forma te din ¸ sabloane
de forma (intrare, ie¸ sire dorit˘ a). Astfel algoritmul de ˆ ı nv˘ at ¸are folosit este
propagareaˆ ın urm˘ a a erorii.
Aceast˘ a sect ¸iune a fost scris˘ a pornind de la articolul [4] .
Pentru aˆ ıntelege mai u¸ sor pa¸ sii de antrenare a ret ¸elei n eurale este nece-
sar˘ a fixarea operat ¸iei de convolut ¸ie 2D. Aceast˘ a operat ¸ ie este prezentat˘ a ˆ ın
urm˘ atoarea sect ¸iune.
2.6.1 Operat ¸ia de convolut ¸ie 2D
Operat ¸ia de convolut ¸ie 2D const˘ a din aplicarea unui nucl eu (filtru) peste
o imagine. Nucleul reprezint˘ a o matrice de dimensiuni redus e ce cont ¸ine
numere care vor influent ¸a valorile pixelilor imaginii pest e care se va face
convolut ¸ia. Astfel se obt ¸ine o nou˘ a imagine ˆ ın care fiecar e element este
obt ¸inut prin ˆ ınmult ¸irea element cu element dintre nucle u ¸ si o regiune din
imagine init ¸ial˘ a ¸ siˆ ınsumarea acestor produse.
O observat ¸ie foarte important˘ a este accea c˘ a, prin defini t ¸ie,
operat ¸ia de convolut ¸ie rote¸ ste nucleul cu 180◦.
Notat ¸ii:
•X- matricea asupra c˘ areia se aplic˘ a operat ¸ia de convolut ¸ ie,
•Y- matricea rezultat˘ aˆ ın urma convolut ¸iei,
•w- nucleul,
•w- nucleul rotit cu 180◦,
• ∗- operat ¸ia de convolut ¸ie;
Exemplu:
X=
1 0−1 2
0 2 4 1
−2 1 1 −1
3 1 0 −2
w=/parenleftbigg1−1
1 0/parenrightbigg
Rotatie180◦
−−−−−−→ w=/parenleftbigg0 1
−1 1/parenrightbigg
9ˆIn original: Feed-forward
20
Se pozit ¸ioneaz˘ a colt ¸ul din stˆ anga sus al nucleului pest e colt ¸ul din stˆ anga
sus al matricei de intrare ¸ si seˆ ıncepe calcularea matrice i rezultat.
10−1 2
02 4 1
−2 1 1 −1
3 1 0 −2
Y[0,0] =X[0,0]·w[0,0]+X[0,1]·w[0,1]
+X[1,0]·w[1,0]+X[1,1]·w[1,1]
= 1·0+0·1+0·(−1)+2·1
= 2
10−1 2
024 1
−2 1 1 −1
3 1 0 −2
Y[0,1] =X[0,1]·w[0,0]+X[0,2]·w[0,1]
+X[1,1]·w[1,0]+X[1,2]·w[1,1]
= 0·0+(−1)·1+2·(−1)+4·1
= 1
1 0−12
0 241
−2 1 1 −1
3 1 0 −2
Y[0,2] =X[0,2]·w[0,0]+X[0,3]·w[0,1]
+X[1,2]·w[1,0]+X[1,3]·w[1,1]
= (−1)·0+2·1+4·(−1)+1·1
= (−1)
1 0−1 2
02 4 1
−21 1−1
3 1 0 −2
Y[1,0] =X[1,0]·w[0,0]+X[1,1]·w[0,1]
+X[2,0]·w[1,0]+X[2,1]·w[1,1]
= 0·0+2·1+(−2)·(−1)+1·1
= 5
1 0−1 2
024 1
−211−1
3 1 0 −2
Y[1,1] =X[1,1]·w[0,0]+X[1,2]·w[0,1]
+X[2,1]·w[1,0]+X[2,2]·w[1,1]
= 2·0+4·1+1·(−1)+1·1
= 4
1 0−1 2
0 241
−2 11−1
3 1 0 −2
Y[1,2] =X[1,2]·w[0,0]+X[1,3]·w[0,1]
+X[2,2]·w[1,0]+X[2,3]·w[1,1]
= 4·0+1·1+1·(−1)+(−1)·1
= (−1)
1 0−1 2
0 2 4 1
−21 1−1
31 0−2
Y[2,0] =X[2,0]·w[0,0]+X[2,1]·w[0,1]
+X[3,0]·w[1,0]+X[3,1]·w[1,1]
= (−2)·0+1·1+3·(−1)+1·1
= (−1)
21
1 0−1 2
0 2 4 1
−211−1
310−2
Y[2,1] =X[2,1]·w[0,0]+X[2,2]·w[0,1]
+X[3,1]·w[1,0]+X[3,2]·w[1,1]
= 1·0+1·1+1·(−1)+0·1
= 0
1 0−1 2
0 2 4 1
−2 11−1
3 10−2
Y[2,2] =X[2,2]·w[0,0]+X[2,3]·w[0,1]
+X[3,2]·w[1,0]+X[3,3]·w[1,1]
= 1·0+(−1)·1+0·(−1)+(−2)·1
= (−3)
ˆIn final matricea rezultat˘ a este urm˘ atoarea:
Y=
2 1−1
5 4−1
−1 0−3
Pentru o scriere simplificat˘ a a formulelor din urm˘ atoarel e sect ¸iuni vom defini
funct ¸iaconv2D(X,W,“tip”) care returneaz˘ a convolut ¸ia dintre matricea X¸ si
matricea W(nucleul). Al treilea parametru reprezint˘ a tipul convolut ¸iei care
poate fi “valid” sau “complet”.
Cazul “valid” este cel prezentatˆ ın exemplul de mai sus,ˆ ın care matricea
Weste pozit ¸ionat˘ a peste regiunile din matricea Xf˘ ar˘ a dep˘ a¸ si dimensiunile
matricei X. Astfel, matricea rezultat va avea dimensiunile [ nX−nW+
1]×[mX−mW+1], unde nX¸ simXreprezint˘ a num˘ arul de linii, respectiv
coloane ale matricei X, iarnW¸ simWreprezint˘ a dimensiunile matricei W.
Pentru cazul “complet” matricea Wse fixeaz˘ a init ¸ial peste matricea X
astfel: colt ¸ul din dreapta jos al nucleului se pozit ¸ionea z˘ a peste colt ¸ul din
stˆ anga sus al matricei X. Din aceast˘ a cauz˘ a matricea Xtrebuieˆ ınconjurat˘ a
cu valori de 0 (pentru a nu influent ¸a rezultatul cu pixeli din afara imaginii)
pˆ an˘ a cˆ and colt ¸ul din stˆ anga sus al nucleului este a¸ sez at peste matricea X.
Astfel,matricearezultatvaaveadimensiunile[ nX+nW−1]×[mX+mW−1].
Algoritm 1 Convolut ¸ie 2D
1:procedure conv2D (X,W,type)
2:nC= 0
3:mC= 0
4:iftype= ”′full”′then
5: nC=nX+nW−1
6: mC=mC+mW−1
22
7: while(nX−nW+1)/ne}ationslash=nCdo
8: Bordeaz˘ a cu 0 pe linie
9: end while
10: while(mX−mW+1)/ne}ationslash=mCdo
11: Bordeaz˘ a cu 0 pe coloan˘ a
12: end while
13:end if
14:Rote¸ ste matricea Wcu 180◦
15:fori=1,nCdo
16: forj=1,mCdo
17: C[i][j] =/summationtext
u=0,nW,
v=0,mWX[i·nW+u][j·mW+v]·W[u][v]
18: end for
19:end for
20:end procedure
Algoritmul 1 folose¸ ste o implementare brut˘ a a operat ¸iei d e convolut ¸ie
pentru ˆ ınt ¸elegerea acestei not ¸iuni. Limbaje precum MAT LAB, Python au
biblioteci care au implement˘ ari optimizate. Alte detalii ¸ si exemple pot fi
g˘ asiteˆ ın articolele ([13], [15], [14], [7]).
2.6.2 Strat de convolut ¸ie
2.6.2.1 Pasul de propagare ˆ ınainte
Laacestpaspentrufiecareplandetr˘ as˘ aturidinstratulcu rentdeconvolu-
t ¸ie se calculeaz˘ a activarea tuturor neuronilor. Pentru u n plan de tr˘ as˘ aturi
valoarea de activare a unui singur neuron se calculeaz˘ a pri nˆ ınmult ¸irea dintre
neuronul din stratul anterior cu care este conectat ¸ si a pon derii partajate
asociate conexiunii. ˆIn cazul ˆ ın care neuronul este conectat la mai mult ¸i
neuroni toate aceste valori seˆ ınsumeaz˘ a.
Pentru calcularea valorilor de activare a tuturor neuronil or din acela¸ si
plandetr˘ as˘ aturiputemaplicaoperat ¸iadeconvolut ¸iea supraintr˘ ariistratului
curent avˆ and ca nucleu ponderile partajate. Un plan de tr˘ as ˘ aturi poate primi
mai multe intr˘ ari, astfel, pentru calcularea activ˘ arilo r din planul curent se
procedeaz˘ aˆ ın felul urm˘ ator: se aplic˘ a operat ¸ia de con volut ¸ie asupra fiec˘ arei
intr˘ ari, se ˆ ınsumeaz˘ a rezultatele, iar apoi se adun˘ a un termen de control ¸ si
se aplic˘ a funct ¸ia de activare. Deoarece, prin definit ¸ie, operat ¸ia de convolut ¸ie
aplic˘ a o rotat ¸ie de 180◦asupra nucelului, matricea de ponderi trebuie rotit˘ a
23
maiˆ ıntˆ ai cu 180◦. Formula activ˘ arii unui plan de tr˘ as˘ aturi este urm˘ atoa rea:
xl
i=f
j≤Il/summationdisplay
j=1xl−1
j∗wl
ji+bl
i
,undeIl= num˘ arul intr˘ arilor (2.1)
De asemenea, un strat de convolut ¸ie este compus din mai mult e plane de
tr˘ as˘ aturi. Astfel, pentru calcularea activ˘ ariiˆ ıntreg ului strat, formula de mai
sus trebuie aplicat˘ a asupra tuturor planelor din stratul r espectiv.
2.6.2.2 Pasul de propagare ˆ ınapoi a erorii
Pentru calcularea gradientului ˆ ın vederea modific˘ arii po nderilor trebuie
ˆ ıntˆ ai calculate erorile pentru fiecare strat.
ˆIn cazul straturilor de convolut ¸ie complet conectat (de ex emplu ultimul
strat de convolut ¸ie) calcularea erorii ¸ si modificarea pon derilor se face ca ¸ siˆ ın
cazul straturilor complet conectate.
Deobiceistraturiledeconvolut ¸iesunturmatedeunstratd esube¸ santionare.
Pentru calcularea valorii semnalelor de eroare se folose¸ s te ecuat ¸ia:
δl
i=wl+1
i·(upsample (δl+1
i)•f′(zl
i)) (2.2)
Operat ¸ia de “upsample” construie¸ ste o matrice avˆ and ace ea¸ si dimensiune
cu cea a planului de tr˘ as˘ aturi din stratul curent. Element ele matricei se obt ¸in
prin repetarea valorilor semnalelor de eroare din stratul u rm˘ ator.
Demonstrat ¸ie. Consider˘ am un strat de convolut ¸ie format dintr-un singur
plan de tr˘ as˘ aturi urmat de un strat de sube¸ santionare avˆ and un cˆ amp recep-
tiv de dimensiunea 2 ×2:
-xlplanul de tr˘ as˘ aturi al stratului curent de convolut ¸ie
xl=
xl
00xl
01xl
02xl
03
xl
10xl
11xl
12xl
13
xl
20xl
21xl
22xl
23
xl
30xl
31xl
32xl
33
-xl+1planul de tr˘ as˘ aturi aferent stratului de sube¸ santionar e
xl+1=/parenleftbiggxl+1
00xl+1
01
xl+1
10xl+1
11/parenrightbigg
24
-δl+1valorilesemnalelordeeroare,dejacalculate,alestratul uidesube¸ santionare
δl+1=/parenleftbiggδl+1
00δl+1
01
δl+1
10δl+1
11/parenrightbigg
Conform pasului de propagare ˆ ınainte (vezi 2.6.3.1), valo rile de activare
ale stratului de sube¸ santionare au fost calculate astfel:
xl+1
00=f(wl+1·1
4(xl
00+xl
01+xl
10+xl
11)+bl+1) (2.3)
xl+1
00=f(wl+1·1
4(xl
02+xl
03+xl
12+xl
13)+bl+1) (2.4)
xl+1
00=f(wl+1·1
4(xl
20+xl
21+xl
30+xl
31)+bl+1) (2.5)
xl+1
00=f(wl+1·1
4(xl
22+xl
23+xl
32+xl
33)+bl+1) (2.6)
Putem observa faptul c˘ a fiecare neuron din stratul curent in fluent ¸eaz˘ a un
singur neuronˆ ın stratul de sube¸ santionare. Astfel, confo rm primei observat ¸ii
de la pagina 11, eroare pentru stratul de convolut ¸ie se calc uleaz˘ a dup˘ a
urm˘ atoarele relat ¸ii:
δl
00=δl
01=δl
10=δl
11=wl+1·δl+1
00 (2.7)
δl
02=δl
03=δl
12=δl
13=wl+1·δl+1
01 (2.8)
δl
20=δl
21=δl
30=δl
31=wl+1·δl+1
10 (2.9)
δl
22=δl
23=δl
32=δl
33=wl+1·δl+1
11 (2.10)
Observ˘ am c˘ a pentru calcularea valorilor de eroare a neuro nilor din prima
relat ¸ie contribuie aceea¸ si eroare a stratului de sube¸ sa ntionare. Acela¸ si lucru
seˆ ıntˆ ampl˘ a ¸ si pentru celelalte relat ¸ii.
Astfel apelˆ and operat ¸ia de “upsample” asupra δl+1obt ¸inem o matrice de
forma:
δl+1
00δl+1
00δl+1
01δl+1
01
δl+1
00δl+1
00δl+1
01δl+1
01
δl+1
10δl+1
10δl+1
11δl+1
11
δl+1
10δl+1
10δl+1
11δl+1
11
ˆIn final, ˆ ınmult ¸ind aceste valori cu derivata funct ¸iei de activare f′(zl)
obt ¸inem formula pentru calcularea valorilor semnalului d e eroare:
δl
i=wl+1
i·(upsample (δl+1
i)•f′(zl
i)) (2.11)
25
ˆIn cazul ˆ ın care pentru calcularea valorilor de activare a n euronilor din
stratul de sube¸ santionare s-a folosit media valorilor neu ronilor de intrare,
operat ¸ia de “upsample” poate fi scris˘ a ca produs Kronecker ˆ ıntre valorile
semnalelor de eroare din stratul de sube¸ santionare ¸ si o ma trice avˆ and toate
elementele egale cu 1, de dimensiune egal˘ a cu dimensiunea c ˆ ampului receptiv
a stratului de sube¸ santionare .
Pentruaˆ ınt ¸elegemaiu¸ sorcalculareagradientuluivomc onsideraurm˘ atorul
exemplu:
Fie:
•xlun plan de tr˘ as˘ aturi, avˆ and un cˆ amp receptiv de dimensiu nea 2×2
xl=/parenleftbiggxl
00xl
01
xl
10xl
11/parenrightbigg
•wmatriceadepondericorespunz˘ atoareaplanului xlavˆ anddimensiunea
egal˘ a cu cea a cˆ ampului receptiv
w=/parenleftbiggw00w01
w10w11/parenrightbigg
•xl−1intrarea asociata planului de tr˘ as˘ aturi xl
xl−1=
xl−1
00xl−1
01xl−1
01
xl−1
10xl−1
11xl−1
11
xl−1
20xl−1
21xl−1
21
•δleroarea corespunz˘ atoare planului de tr˘ s˘ aturi curent, c alculat˘ a la pa-
sul anterior
δl=/parenleftbiggδl
00δl
01
δl
10δl
11/parenrightbigg
Aplicˆ andoperat ¸iadeconvolut ¸ieˆ ınpasuldefeedforward ,obt ¸inemurm˘ atoarele
relat ¸ii:
xl
00=w00·xl−1
00+w01·xl−1
01+w10·xl−1
10+w11·xl−1
11
xl
01=w00·xl−1
01+w01·xl−1
02+w10·xl−1
11+w11·xl−1
12
xl
10=w00·xl−1
10+w01·xl−1
11+w10·xl−1
20+w11·xl−1
21
xl
11=w00·xl−1
11+w01·xl−1
12+w10·xl−1
21+w11·xl−1
22(2.12)
26
Potrivit observat ¸iei a doua de la pagina 11, algoritmul de p ropagare ˆ ın
urm˘ aeroriiindic˘ afaptulc˘ afiecareponderesemodific˘ aˆ ınmult ¸indneuronulde
intrare pe careˆ ıl leag˘ a la un anumit neuron cu eroarea prod us˘ a de neuronul
de care este legat. De exemplu, dac˘ a o pondere wconecteaz˘ a un neuron x
la un neuron y, iar neuronul ya produs eroarea e, atunci valoarea cu care se
va modifica ponderea wva fix·e. Dac˘ a ponderea leag˘ a mai mult ¸i neuroni
atunci se vor aduna rezultateleˆ ınmult ¸irilor.
ˆIn cazul exemplului nostru vom considera urm˘ atorul tabel, ˆ ın care prima
linie reprezint˘ a indicii neuronilor intr˘ arii xl−1, prima coloan˘ a reprezint˘ a indi-
cii ponderilor matricei w, iar restul elementelor reprezint˘ a indicii neuronilor
activat ¸i de intrarea corespunz˘ atoarea coloanei ¸ si pond erea corespunz˘ atoare
liniei. Pentru determinarea acestor elemente au fost folos ite relat ¸iile 2.12.
wxl−1
[0,0] [0,1] [0,2] [1,0] [1,1] [1,2] [2,0] [2,1] [2,2]
[0,0][0,0] [0,1]∅[1,0] [1,1]∅ ∅ ∅ ∅
[0,1]∅[0,0] [0,1]∅[1,0] [1,1]∅ ∅ ∅
[1,0]∅ ∅ ∅ [0,0] [0,1]∅[1,0] [1,1]∅
[1,1]∅ ∅ ∅ ∅ [0,0] [0,1]∅[1,0] [1,1]
Pentru calcularea valorii cu care se modfic˘ a o pondere vom pr oceda astfel:
1. vom parcurge ˆ ın paralel linia corespunz˘ atoare acelei p onderi ¸ si prima
linie a tabelei ¸ si vom considera fiecare pereche de indici fo rmat˘ a din
elemente aflate pe aceea¸ si coloan˘ a ale celor dou˘ a linii
2. vom efectuaˆ ınmult ¸irile dintre erorile ¸ si intr˘ arile corespunz˘ atoare pere-
chilor de indici
3. vom aduna valorile de la punctul anterior
Urmˆ and ace¸ sti pa¸ si obt ¸inem urm˘ atoarele relat ¸ii:
/parenleftbigg∂J
∂w/parenrightbigg
00=xl−1
00·δl
00+xl−1
01·δl
01+xl−1
10·δl
10+xl−1
11·δl
11 (2.13)
/parenleftbigg∂J
∂w/parenrightbigg
01=xl−1
01·δl
00+xl−1
02·δl
01+xl−1
11·δl
10+xl−1
12·δl
11 (2.14)
/parenleftbigg∂J
∂w/parenrightbigg
10=xl−1
10·δl
00+xl−1
11·δl
01+xl−1
20·δl
10+xl−1
21·δl
11 (2.15)
/parenleftbigg∂J
∂w/parenrightbigg
11=xl−1
11·δl
00+xl−1
12·δl
01+xl−1
21·δl
10+xl−1
22·δl
11 (2.16)
27
Se observ˘ a astfel c˘ a pentru calcularea gradientului pond erilor se poate
folosi operat ¸ia de convolut ¸ie. Ecuat ¸iile pentru calcul area gradientului devin:
∂J
∂wl
ji=conv2D(xl−1
j,rot180(δl
i),“valid”) (2.17)
∂J
∂bl
i=/summationdisplay
u,vδl
i (2.18)
ˆIn final se ajusteaza ponderile astfel:
wl
ji=wl
ji−α·∂J
∂wl
ji(2.19)
bl
i=bl
i−α·∂J
∂bl
i(2.20)
2.6.3 Strat de sube¸ santionare
Dup˘ a cum am mai spus, de obicei, straturile de convolut ¸ie s unt precedate
de un strat de sube¸ santionare. Spre deosebire de straturil e de convolut ¸ie,ˆ ın
care ponderile asociate unui plan de tr˘ as˘ aturi erau sub fo rma unei matrici
de dimensiunea cˆ ampului receptiv, straturile de sube¸ san tionare au pentru
un plan de tr˘ as˘ aturi un singur parametru de ˆ ınv˘ at ¸are. D e asemenea, dac˘ a
dimensiunea cˆ ampului receptiv este k×katunci dimensiunea unui plan de
tr˘ as˘ aturiestede korimaimic˘ adecˆ atdimensiuneaintr˘ ariideoarececˆ ampu rile
receptive ale fiec˘ arui neuron nu se suprapun.
Straturile de sube¸ santionare pot fi ˆ ınlocuite ¸ si cu alte t ipuri de straturi
cum ar fi “max pooling” , care, ˆ ın locul calcul˘ arii mediei valorilor neuronilor
de intrare, determin˘ a valoarea maxim˘ a([19], [11]).
Notat ¸ii:
-xlplanul de tr˘ as˘ aturi asociat stratului de sube¸ santionar e
-nl,mldimensiunile planului de tr˘ as˘ aturi
-Nl
pnum˘ arul planelor de tr˘ as˘ aturi ale stratului curent
-xl−1valorile de intrare pentru planul de tr˘ as˘ aturi
-wlvaloarea ponderii asociat˘ a conexiunii dintre intrare ¸ si planul de
tr˘ as˘ aturi
-blvaloarea ponderii termenului de control
28
-δlmatricea cu valorile erorilor asociate stratului curent
-δl+1matricea cu valorile erorilor (deja calculate) asociate st ratului
urm˘ ator
-wl+1matricea asociat˘ a ponderilor conexinii dintre stratul ur m˘ ator ¸ si
cel curent
2.6.3.1 Pasul de propagare ˆ ınainte
Valoarea de activare a unui neuron din planul xleste determinat˘ a cal-
culˆ and media valorilor de intrare la care este conectat neu ronul prin interme-
diul cˆ ampului receptiv, apoi seˆ ınmult ¸e¸ ste cu ponderea asociat˘ a conexiunii ¸ si
se adaug˘ a termenul de control. Pentru calcularea valorii d e ie¸ sire se aplic˘ a
funct ¸ia de activare.
Straturile de sube¸ santionare fiind formate, de obicei, din mai multe plane
de tr˘ as˘ aturi, operat ¸iile de mai sus trebuie repetate pen tru fiecare plan de
tr˘ as˘ aturi al stratului.
xl
i=f(wl
i·downsample (xl−1
i)+bl
i),i=1,Nl
p (2.21)
Operat ¸ia “downsample” calculeaz˘ a media valorilor neuronilor de intrare
conformcˆ ampurilorreceptive(f˘ ar˘ aalesuprapune). Aces tevalorisuntsalvate
ˆ ıntr-o matrice rezultat a c˘ arei dimensiuni vor fi de kori mai mici decˆ at a
matricei init ¸iale. kreprezint˘ a dimensiunile cˆ ampului receptiv ( k×k).
Exemplu:
Fie o matrice Xde dimensiune 4 ×4 ¸ si un cˆ amp receptiv de dimensiunea
2×2.
X=
1 0−1 1
1 0 0 −1
−1 0 0 1
0 1 1 1
Aplicˆ and operat ¸ia de “downsample” obt ¸inem:
downsample (X) =downsample
1 0−1 1
1 0 0 −1
−1 0 0 1
0 1 1 1
downsample (X) =
1+0+1+0
4−1+1+0+ −1
4
−1+0+0+1
40+1+1+1
4
29
downsample (X) =
2
4−1
4
0
43
4
=/parenleftbigg0.5 0.25
0 0.75/parenrightbigg
2.6.3.2 Pasul de propagare ˆ ınapoi a erorii
La fel ca ˆ ın cazul straturilor de convolut ¸ie pasul de propa gare ˆ ınapoi
cuprinde mai multe etape:
1. Calcularea semnalelor de eroare
Consider˘ am xl=
xl
00xl
01xl
02
xl
10xl
11xl
12
xl
20xl
21xl
22
Presupunem c˘ a stratul urm˘ ator este unul de convolut ¸ie av ˆ and cˆ ampul
receptiv de dimensiunea 2 ×2 pentru care am aflat deja valorile sem-
nalelor de eroare. Atunci avem:
xl+1
00 =xl00·wl+1
00+xl
01·wl+1
01+xl10·wl+1
10+xl
11·wl+1
11(2.22)
xl+1
01 =xl01·wl+1
00+xl
02·wl+1
01+xl11·wl+1
10+xl
12·wl+1
11(2.23)
xl+1
10 =xl10·wl+1
00+xl
11·wl+1
01+xl20·wl+1
10+xl
21·wl+1
11(2.24)
xl+1
11 =xl11·wl+1
00+xl
12·wl+1
01+xl21·wl+1
10+xl
22·wl+1
11(2.25)
δl+1=/parenleftbiggδl+1
00δl+1
01
δl+1
10δl+1
11/parenrightbigg
Conform primei observat ¸ii de la pagina 11 deducem urm˘ atoa rele relat ¸ii
pentru calcularea semnalelor de eroare:
δl
00=δl+1
00·wl+1
00 (2.26)
δl
01=δl+1
00·wl+1
01+δl+1
01·wl+1
00 (2.27)
δl
02=δl+1
01·wl+1
01 (2.28)
δl
10=δl+1
00·wl+1
10+δl+1
10·wl+1
00 (2.29)
δl
11=δl+1
00·wl+1
11+δl+1
01·wl+1
10+δl+1
10·wl+1
01+δl+1
11·wl+1
00(2.30)
δl
12=δl+1
01·wl+1
11+δl+1
11·wl+1
01 (2.31)
δl
20=δl+1
10·wl+1
10 (2.32)
δl
21=δl+1
10·wl+1
11+δl+1
11·wl+1
10 (2.33)
δl
22=δl+1
11·wl+1
11 (2.34)
(2.35)
30
Urm˘ arind aceste relat ¸ii putem remarca faptul c˘ a pentru afl area erorilor
este nevoie de o operat ¸ie de convolut ¸ieˆ ıntre δl+1¸ siwl+1de tipul “full”
(vezi 2.6.1):
δl=conv2D(δl+1,wl+1,“full”)•f′(zl)
Un plan de tr˘ as˘ aturi dintr-un strat de sube¸ santionare poa te fi conside-
rat ca intrare pentru mai multe plane de tr˘ as˘ aturi din stra tul urm˘ ator.
Din aceast˘ a cauz˘ a pentru calcularea semnalelor de eroare al unui plan
din stratul curent este nevoie s˘ a aplic˘ am ecuat ¸ia pentru fiecare plan
din stratul urm˘ ator c˘ atre care are conexiune, adunˆ and ap oi rezultate
obt ¸inute.
Ecuat ¸ia devine:
δl
i=/summationdisplay
jconv2D(δl+1
j,wl+1
ij,“full”)•f′(zl
i),
i=1,Nl
p¸ sij∈ {k∈N|∃wl+1
ij}
2. Calcularea gradient ¸ilor
Fiecare neuron ce apart ¸ine intr˘ arii stratului curent con tribuie pentru
activareaunuisingurneuron. Luˆ andˆ ınconsiderare¸ siob servat ¸iaadoua
de la pagina 11 putem enunt ¸a formulele pentru calcularea gr adient ¸ilor:
∂J
∂wl
i=/summationdisplay
u,v(δl
i•downsample (xl−1
i))u,v (2.36)
∂J
∂bl
i=/summationdisplay
u,v(δl
i)u,v (2.37)
3. Ajustarea ponderilor
wl
i=wl
i−α·∂J
∂wl
i
bl
i=bl
i−α·∂J
∂bl
i
2.6.4 Clasificator
Dup˘ a o succsesiune de straturi de convolut ¸ie ¸ si straturi de sube¸ santionare
cu rolul de a extrage tr˘ as˘ aturi ale imaginii de intrare se a daug˘ a un clasifi-
cator. Acesta are rolul de clasificare propriu-zis˘ a asociin d imaginii o clas˘ a.
Un clasificator ce poate fi folosit este perceptronul multistr at prezentat ˆ ın
sect ¸iunea 2.1.1.
31
Capitolul 3
Clasificare de imagini folosind
ret ¸ele neurale de convolut ¸ie
Aplicat ¸ia este implementat˘ a ˆ ın limbajul C#. Framework-u rile folosite
sunt .Net Framework 4.5 ¸ si Windows Presentation Foundation (WPF). Pen-
tru o implementare eficient˘ a a algoritmului de antrenare am utilizat bibli-
oteca “MathNet.Numerics” [1]. Aceast˘ a bibliotec˘ a cont ¸ine numeroase faci-
lit˘ at ¸i cum ar fi:
•tipuri de date reale ¸ si complexe corespunz˘ atoare algebre i lineare (ma-
trice, vectori)
•init ¸ializarea matricelor ¸ si a vectorilor folosind distr ibut ¸ii probabilistice
(discrete, continue)
•generarea de numere pseudo-aleatoare
•implement˘ ari optimizate pentru operat ¸ii cu matrici ¸ si v ectori (calcul
scalar, calcul vectorizat, produs Kronecker, etc)
•supraˆ ınc˘ arcarea operatorilor pentru facilitarea folos irii operat ¸iilor
•transformateFourier(acesteapotfifolositepentruoperat ¸iadeconvolut ¸ie)
Biblioteca include ¸ si suport pentru Intel MKL (Intel Math K ernel Li-
brary), bibliotec˘ a optimizat˘ a pentru procesoarele Inte l care cont ¸ine de ase-
menea operat ¸ii specifice algebrei liniare.
De asemnea,ˆ ın cadrul implement˘ arii am folosit calcul par alelizat, eficien-
tizˆ and astfel timpul necesar instruirii ¸ si test˘ arii ret ¸elei neurale.
Aplicat ¸ia poate fi folosit˘ a pentru urm˘ arirea proceselor d eˆ ınv˘ at ¸are ¸ si tes-
tare a ret ¸elelor neurale de convolut ¸ie prin afi¸ sarea de st atistici referitoare la
ˆ ınv˘ at ¸are, respectiv testare.
32
ˆInainteaˆ ınceperii procesului de antrenare se pot seta doi parametri: rata
de ˆ ınv˘ at ¸are a ret ¸elei neurale, precum ¸ si num˘ arul de pa ttern-uri de intrare.
ˆIn timpul instruirii, dup˘ a fiecare epoc˘ a de ˆ ınv˘ at ¸are, s unt afi¸ sate informat ¸ii
precum:
•valoarea funct ¸iei de eroare
•num˘ arul pattern-urilor corect clasificate
•num˘ arul pattern-urilor gre¸ sit clasificate
•procentajul clasific˘ arii corecte
Deasemenea,pentruprocesuldetestare,sepoatestabilinu m˘ arulpattern-
urilor ce urmeaz˘ a s˘ a fie clasificate. Dup˘ a ce se porne¸ ste t estarea, sunt afi¸ sate
valorile prezise ale pattern-urilor clasificate gre¸ sit ˆ ı mpreun˘ a cu valorile do-
rite. La final este afi¸ sat procentajul intr˘ arilor corect cl asificate. ˆIn plus, dup˘ a
terminarea procesului de testare, se pot vizualiza imagini le asociate planelor
de tr˘ as˘ aturi extrase din pattern-uri ce apart ¸in fiec˘ are i clase.
3.1 Seturi de date
Pentru antrenarea¸ si testarea ret ¸elei neurale de convolu t ¸ie am folosit dou˘ a
seturi de date diferite.
Primul set de date, numit MNIST Handwritten Digits, cont ¸ine i magini
cu cifre arabe scrise de mˆ an˘ a ¸ si este alc˘ atuit din 4 fi¸ sie re:
•primulcarecuprinde60000deimaginidiferite,folositepe ntruantrenare
•al doilea fi¸ sier cu clasele aferente imaginilor din setul de antrenare
•al treilea fi¸ sier format din 10000 de imagini pentru testare a ret ¸elei ne-
urale
•ultimul fi¸ sier care cuprinde clasele din care fac parte imag inile din setul
de testare
Cele 4 fi¸ siere de mai sus suntˆ ın format “idx” (fi¸ sierele ce c ont ¸in imaginile
au formatul “idx3-ubyte”, iar cele care cont ¸in clasele ima ginilor au formatul
“idx1-ubyte”). Structurile acestor fi¸ siere sunt prezenta teˆ ın tabelele de mai
jos:
33
Decalaj Tip Valoare Descriere
0000 ˆ ıntreg pe 32 bit ¸i 2051 num˘ ar magic
0004 ˆ ıntreg pe 32 bit ¸i 60000 num˘ arul imaginilor
0008 ˆ ıntreg pe 32 bit ¸i 28 num˘ arul de rˆ anduri
0012 ˆ ıntreg pe 32 bit ¸i 28 num˘ arul de coloane
0016 octet f˘ ar˘ a semn ?? pixel
0017 octet f˘ ar˘ a semn ?? pixel
…..
xxxx octet f˘ ar˘ a semn ?? pixel
Tabela 3.1: Structura fi¸ sierelor care cont ¸in imaginile
Decalaj Tip Valoare Descriere
0000 ˆ ıntreg pe 32 bit ¸i 2049 num˘ ar magic
0004 ˆ ıntreg pe 32 bit ¸i 60000 (10000) num˘ arul imaginilor
0008 octet f˘ ar˘ a semn ?? clas˘ a
0009 octet f˘ ar˘ a semn ?? clas˘ a
…..
xxxx octet f˘ ar˘ a semn ?? clas˘ a
Tabela3.2: Structurafi¸ sierelorcarecont ¸inclaseledinc arefacparteimaginile
Mai multe informat ¸ii cu privire la structura acestor fi¸ sie re se afl˘ a la [25].
Imaginile au dimensiunile 28 ×28 pixeli ¸ si sunt ˆ ın format monocromatic
(tonuri de gri).
Al doilea set de date se nume¸ ste GTSRB (German Traffic Sign Reco g-
nition Benchmark [21] ¸ si cont ¸ine imagini cu semne de circu lat ¸ieˆ ıntˆ alniteˆ ın
trafic. Acest set de date a fost folosit cu ocazia competit ¸iei ce a avut loc la
“International Joint Conference on Neural Networks (IJCNN) 201 1”.
Setul de date cuprinde dou˘ a p˘ art ¸i:
•setul pentru antrenare care cuprinde 26640 imagini distrib uiteˆ ın 43 de
clase diferite
•setul pentru testare format din 12569 imagini
Imaginile sunt ˆ ın format “ppm” iar dimensiunile acestora v ariaz˘ a de la
15×15 pixeli pˆ an˘ a la 250 ×250 pixeli. De aceea, pentru folosirea lor ca intr˘ ari
pentru ret ¸eaua neural˘ a, imaginile trebuie aduse la aceea ¸ si dimensiune.
Imaginile apart ¸in modelului cromatic RGB, astfel,ˆ ın caz ulˆ ın care struc-
tura ret ¸elei de convolut ¸ie cont ¸ine o singur˘ a intrare, i maginea necesit˘ a trans-
formarea acesteiaˆ ın tonuri de gri. Structura ret ¸elei poa te fi format˘ a ¸ si din 3
34
intr˘ ari, drept urmare, fiecare canal, ro¸ su, verde ¸ si alba stru, poate fi transmis
ca intrare separat˘ a.
Pentru cre¸ sterea vitezei de ˆ ınv˘ at ¸are valorile pixelil or trebuie scalate din
intervalul [0 ,255]ˆ ın intervalul [ −1,1].
De precizat este faptul c˘ a aplicat ¸ia poate fi folosit˘ a ¸ si pentru utilizarea
altor seturi de date atˆ ata timp cˆ at este p˘ astrat˘ a una din structurile celor
dou˘ a seturi de date prezentate anterior.
3.2 Rezultate
Ca ¸ si hardware pentru antrenarea ¸ ret ¸elei neurale de conv olut ¸ie ¸ si pentru
testarea pe seturile de date, am folosit un laptop cu proceso r Intel Core i7-
4700MQ2.40GHz,4GBmemorieRAM¸ siounitatedestocareSSDde2 56GB.
Sistemul de operare instalat pe laptop este Windows 8.1 pe ar hitecutr˘ a de
64 bit ¸i.
3.2.1 Setul de date MNIST
Pentruantrenarea¸ sitestarearet ¸eleineuraledeconvolu t ¸iepesetuldedate
MNIST am folosit arhitectura LeNet-5 prezentat˘ aˆ ın sect ¸iu nea 2.5.
Antrenarea s-a facut utilizˆ and 30000 de cifre din ˆ ıntreg se tul de date.
Valoarea ratei deˆ ınv˘ at ¸are a fost fixat˘ a la 0 .01 pentru prima epoc˘ a, iar pentru
urm˘ atoarele patru la 0 .0075. Aceste valori au fost determinate prinˆ ıncerc˘ ari
repetate. Astfel, dup˘ a numai cinci epoci de ˆ ınv˘ at ¸are, pr ocentajul pattern-
urilor corect clasificate, pentru setul de antrenare, a fost 96.81%. Timpul
necesar pentru o singur˘ a epoc˘ a de ˆ ınv˘ at ¸are este de apro ximativ 24 minute.
Astfelˆ ıntregul proces deˆ ınv˘ at ¸are, folosind configurat ¸ia de mai sus, a durat
2 ore.
Pentru procesul de testare am rulat algoritmul de trei ori, m odificˆ and
num˘ arul paternurilor pentru care se va face clasificarea. R ezulatele obt ¸inute
se pot vedeaˆ ın tabelul urm˘ ator.
Num˘ arul intr˘ arilor Corecte Gre¸ site Procentaj Durat˘ a
1000 956 4495.60%10 secunde
5000 4739 261 94.78%50 secunde
10000 9619 381 96.19%100 secunde
Tabela 3.3: Rezultate obt ¸inute pentru setul de date MNIST, f olosind arhi-
tectura LeNet-5
35
ˆIn concluzie ret ¸eaua neural˘ a de convolut ¸ie folosind arh itectura LeNet-5
poateˆ ınv˘ at ¸a aproximativ 20 de imagini pe secund˘ a,ˆ ıns ˘ a mai important˘ a este
viteza de testare care este de 100 de imagini pe secund˘ a.
3.2.2 Setul de date GTSRB
ˆIn cazul setului de date GTSRB am restrˆ ans num˘ arul claselo r la 20 pen-
tru a reduce timpul necesar antren˘ arii ret ¸elei neurale. D e asemenea am ru-
lat algoritmul pentru trei tipuri diferite de arhitecturi, pentru fiecare dintre
acestea folosind pentru antrenare 20820 de pattern-uri de i ntrare, iar pentru
testare 9720 de imagini. Am folosit mai multe tipuri de arhite cturi pentru a
se putea observa influent ¸a pe care o au ad˘ garea mai multor pl ane de tr˘ as˘ aturi
¸ si cre¸ sterea num˘ arului de ponderi ¸ si conexiuni.
3.2.2.1 Arhitectura 1
Prima arhitectur˘ a folosit˘ a a fost LeNet-5. Pentru a putea f olosi aceast˘ a
arhitectura am modificat num˘ arul neuronilor de pe ultimul s trat la 20, de-
oarece,ˆ ın locul celor 10 clase care reprezentau cifrele, v om avea 20 de clase
(cˆ ate una pentru fiecare semn de circulat ¸ie).
Am efectuat 25 epoci de ˆ ınv˘ at ¸are setˆ and parametrul de ˆ ın v˘ at ¸are astfel:
pentru primele 10 epoci la valoarea 0.01, iar pentru restul d e 15 epoci am
sc˘ azut valoarea la 0.0075. Rezultatele obt ¸inute suntˆ ın tabelul urm˘ ator:
Num˘ arul
epocilorSetul de antrenare Setul de testare
Corecte Gre¸ site Procentaj Corecte Gre¸ site Procentaj
5 19896 924 95.56% 9075 645 93.36%
10 20310 510 97.55% 9186 534 94.50%
20 20358 462 98.78% 9258 462 95.24%
25 20629 191 99.08% 9274 446 95.41%
Tabela3.4: Rezultateobt ¸inutefolosindarhitectura1pes etuldedateGTSRB
3.2.2.2 Arhitectura 2
A doua arhitectur˘ a folosit˘ a pentru recunoa¸ sterea semne lor de circulat ¸ie
este asem˘ an˘ atoare arhitecturii LeNet-5 si are urm˘ atoare a structur˘ a:
1. strat de convolut ¸ie alc˘ atuit din 10 plane de tr˘ as˘ atur i
2. strat de sube¸ santionare
36
3. strat de convolut ¸ie format din 32 de plane de tr˘ as˘ aturi ;
4. strat de sube¸ santionare
5. strat de convolut ¸ie alc˘ atuit din 100 de plane de tr˘ as˘ a turi;
6. strat de 40 neuroni complet conectat ¸i la stratul precede nt
Mai multe caractersitici legate de structura acestei arhit ecturi sunt pre-
zentateˆ ın tabelul de mai jos.
Tip stratNum˘ ar plane
de tr˘ as˘ aturiDimensiune
plan de tr˘ as˘ aturiDimensiune
cˆ amp receptiv
convolut ¸ie 10 28×28 5×5
sube¸ santionare 10 14×14 2×2
convolut ¸ie 32 10×10 5×5
sube¸ santionare 32 5×5 2×2
convolut ¸ie 100 1×1 5×5
Tabela 3.5: Caractersitici arhitectur˘ a ret ¸ea neural˘ a d e convolut ¸ie
Lanivel deconexiuni primulstrat deconvolut ¸ie este conec tatˆ ın totalitate
la imaginea de intrare. Pentru al doilea strat de convolut ¸i e am utilizat o
schem˘ a pentru conectarea fiec˘ arui plan de tr˘ as˘ aturi la u n subset de plane
din stratul anterior. Aceast˘ a schem˘ a este ilustrat˘ a ˆ ın fi gura 3.1. ˆIn cadrul
celui de-al treilea strat de convolut ¸ie, fiecare plan de tr˘ as˘ aturi este complet
conectat la toate cele 32 de plane ale stratului anterior. Pe ntru straturile de
sube¸ santionare se respect˘ a aceea¸ si regul˘ a, ¸ si anume, fiecare plan de tr˘ as˘ aturi
al stratului de sube¸ santionare este conectat la un singur p lan ce apart ¸ine
stratului de care este legat.
Figura 3.1: Modul de conectare ˆ ıntre primul strat de sube¸ s antionare ¸ si al
doilea strat de convolut ¸ie
37
Pentruprocesuldeinstruireamefectuat25epocideˆ ınv˘ at ¸are, configurˆ and
parametrul deˆ ınv˘ at ¸are la valoarea 0.01 pentru primele 1 0 epoci, iar pentru
restul la valoarea 0.0075. Valorile obt ¸inute ˆ ın urma antr en˘ arii ¸ si a test˘ arii
sunt urm˘ atoarele:
Num˘ arul
epocilorSetul de antrenare Setul de testare
Corecte Gre¸ site Procentaj Corecte Gre¸ site Procentaj
10 19950 870 95.82% 9069 651 93.30%
20 20310 510 97.41% 9150 570 94.13%
25 20362 458 97.80% 9351 369 96.20%
Tabela 3.6: Rezultate obt ¸inute pe setul de date GTSRB, folo sind a doua
variant˘ a de arhitectur˘ a bazat˘ a pe LeNet-5
Sepoateobservac˘ a,ˆ ınciudarezultatelormaislabeobt ¸i nutedup˘ aprimele
iterat ¸ii, aceast˘ a arhitectur˘ a se comport˘ a mai bine dup ˘ a mai multe epoci de
instruire ˆ ın comparat ¸ie cu LeNet-5. Num˘ arul mai mare de epo ci necesar
instruirii este cauzat de num˘ arul mai mare de ponderi. Rezu ltatele mai bune
sunt datorate introducerii unui num˘ ar mai mare de plane de t r˘ as˘ aturi ¸ si
conexiuniˆ ın ret ¸eaua neural˘ a de convolut ¸ie.
3.2.2.3 Arhitectura 3
Ultima arhitectur˘ a testat˘ a pentru setul de date GTSRB repr ezint˘ a o
extindere a arhitecturii precedente. Diferent ¸a dintre ce le dou˘ a const˘ a ˆ ın
num˘ aruldeintr˘ arialeprimuluistratdeconvolut ¸ie. Dac ˘ apentruarhitecturile
prezentate anterior intr˘ arile erau formate dintr-un sing ur plan de tr˘ as˘ aturi
corespunz˘ ator imaginii de intrare ˆ ın tonuri de gri, ˆ ın ca zul acesta intr˘ arile
sunt formate din 3 plane de tr˘ as˘ aturi corespunz˘ atoare fie c˘ arui canal de cu-
loare al modelului RGB. Astfel, atˆ at pentru antrenare cˆ at ¸ si pentru testare
amfolositimaginicolor, faptceadeterminatcre¸ stereaca pacit˘ at ¸iideˆ ınv˘ at ¸are
a ret ¸elei neurale.
Rezultatele obt ¸inute dup˘ a 20 de epoci de instruire (valoa rea parametrului
deˆ ınv˘ at ¸are a fost 0.01 pentru toate epocile) sunt urm˘ at oarele:
38
Num˘ arul
epocilorSetul de antrenare Setul de testare
Corecte Gre¸ site Procentaj Corecte Gre¸ site Procentaj
15 19954 866 95.84% 8946 774 92.03%
20 19998 822 96.05% 9239 481 95.05%
Tabela 3.7: Rezultate obt ¸inute pe setul de date GTSRB, folo sind imagini
color la intrare
3.2.2.4 Timpii necesari antren˘ arii ¸ si test˘ arii
Num˘ arulconexiunilorinfluent ¸eaz˘ atimpulnecesarantren ˘ ariideoareceprin
cre¸ sterea num˘ arului acestora cre¸ ste capacitatea de ˆ ın v˘ at ¸are a ret ¸elei neu-
rale. Acest lucru implic˘ a folosirea unui num˘ ar mai mare de p onderi, astfel
crescˆ and timpul necesar ajust˘ arii parametrilor de ˆ ınv˘ at ¸are. De asemenea,
prin ad˘ augarea de plane de tr˘ as˘ aturi se m˘ are¸ ste ¸ si tim pul necesar test˘ arii
imaginilor deoarece folosirea mai multor plane de tr˘ as˘ at uri implic˘ a extrage-
rea mai multor tr˘ as˘ aturi. ˆIn tabelele 3.8 ¸ si 3.9 sunt redate informat ¸ii privind
timpii necesari antren˘ arii ¸ si test˘ arii arhitecturilor prezentate.
Timp
necesar pentru
1000 patternuriTimp
necesar pentru
20820 patternuriNum˘ ar
patternuri
pe secund˘ a
Arhitectura 1 47 secunde 16.3 minute 21
Arhitectura 2 75 secunde 26 minute 13
Arhitectura 3 84 secunde 29 minute 12
Tabela 3.8: Timpii aferent ¸iˆ ınstruirii ret ¸elelor neura le de convolut ¸ie
Timp
necesar pentru
1000 patternuriNum˘ ar
patternuri
pe secund˘ a
Arhitectura 1 10 secunde 100
Arhitectura 2 18 secunde 55
Arhitectura 3 22 secunde 45
Tabela 3.9: Timpii aferent ¸i procesului de testare
Duratele de timp necesare antren˘ arii au fost determinate d up˘ a efectu-
area unei singure epoci de ˆ ınv˘ at ¸are. Aceste valori pot var ia ˆ ın funct ¸ie de
specificat ¸iile calculatorului pe care ruleaz˘ a aplicat ¸i a.
39
3.3 Experient ¸˘ a dobˆ andit˘ a
Implementarea ret ¸elei neurale de convolut ¸ie a presupus, ˆ ın prim˘ a faz˘ a, o
documentaremasiv˘ adeoarecefunct ¸ionareacorect˘ aaace steiaesteinfluent ¸at˘ a
de mai mult ¸i factori. Astfel, este esent ¸ial˘ aˆ ınt ¸eleger ea influent ¸elor pe care o
au valorile parametrilor deˆ ınv˘ at ¸are (ponderilor), set area ratei deˆ ınv˘ at ¸are ¸ si
a num˘ arului de epoci.
Rata de ˆ ınv˘ at ¸are determin˘ a cˆ at de mult s˘ a scad˘ a valoa rea funct ¸iei de
eroare dup˘ a o iterat ¸ie. Minimizarea funct ¸iei de eroare c onst˘ aˆ ın g˘ asirea mi-
nimului local. Astfel, dac˘ a valoarea ratei deˆ ınv˘ at ¸are e ste prea mare atunci
exist˘ a riscul de a s˘ ari peste minimul local, iar valoarea f unct ¸iei de eroare va
ˆ ıncepe s˘ a creasc˘ a. La polul opus,ˆ ın cazulˆ ın care rata d eˆ ınv˘ at ¸are este prea
mic˘ a, modificarea parametrilor de ˆ ınv˘ at ¸are va fi insigni fiant˘, drept urmare
valorea funct ¸iei de eroare va sc˘ adea lent sau chiar deloc.
Alegerea num˘ arului de epoci de instuire este important˘ a. P e de o parte,
dac˘ asealegeunnum˘ armicdeepoci,rezultatelepesetulde testarevorfislabe
deoareceret ¸eauaneural˘ anuaretimps˘ a sestabilizezes˘ a poat˘ arecunoa¸ ste noi
patternuri. Pe de alt˘ a parte, dac˘ a se fac prea multe epoci d e instruire, apare
fenomenul de “overfitting” (ret ¸eaua neural˘ a “toce¸ ste” s etul de antrenare ¸ si
nu este capabil s˘ a recunoasc˘ a imaginile din setul de testa re).
Putem spune c˘ a cei doi parametri prezentat ¸i anterior se afl ˘ aˆ ın relat ¸ie: o
valoare mic˘ a a ratei deˆ ınv˘ at ¸are necesit˘ a un num˘ ar mic de epoci de antrenare
¸ si invers, o valoare mare a ratei de ˆ ınv˘ at ¸are impune un nu m˘ ar mai mic de
epoci de instruire. Prin urmare trebuie c˘ autat˘ a o configur at ¸ie a acestor
doi parametri care s˘ a conduc˘ a valoarea funct ¸iei de eroar e c˘ atre un minim
local ¸ si care s˘ a stabilizeze parametri de ˆ ınv˘ at ¸are a re t ¸elei neurale. Aceast˘ a
configurat ¸ie am determinat-o prinˆ ıncerc˘ ari repetate de instruire a ret ¸elei de
convolut ¸ie.
Valorile parametrilor de ˆ ınv˘ at ¸are sunt init ¸ializate c u valori aleatoare ¸ si
din aceast˘ a cauz˘ a procesul de antrenare al ret ¸elei neura le poate fi afectat. ˆIn
cazulˆ ın care, la init ¸ializare, ponderile sunt prea mari s au prea mici, valoarile
gradient ¸ilor (valorile cu care se modific˘ a ponderile) vor fi mici din cauza
formei pe care o are derivata funct ¸iei de activare, astfel p rocesul de antrenare
va fi ˆ ıncetinit. Exist˘ a mai multe tipuri de distribut ¸ii al e valorilor aleatoare
(Gaussian˘ a, continu˘ a) ce pot fi folosite pentru init ¸iali zarea ponderilor. Prin
ˆ ıncerc˘ ari repetate am observat c˘ a cea mai bun˘ a distribu t ¸ie este cea continu˘ a
pentru oricare din intervalele: ( −0.7,0.7),(−0.6,0.6),(−0.5,0.5),(−0.4,0.4).
Init ¸ial aplicat ¸ia a fost implementat˘ a ˆ ın C++ folosind b iblioteca “arma-
dillo” pentru calcul vectorizat. Avantajele implement˘ ari i ˆ ın C++ fat ¸˘ a de
implementarea curent˘ a sunt:
40
•dinpunctdevederealtimpuluinecesarantren˘ ariiret ¸ele ineuraleaplicat ¸ia
este mai rapid˘ a
•aplicat ¸ia folose¸ ste mai put ¸in˘ a memorie dup˘ aˆ ınc˘ arc area datelor
Dezavantajele abord˘ arii problemei folosind C++ fat ¸˘ a de abordarea C#:
•este mai dificil˘ a folosirea firelor de execut ¸ie ¸ si a calcul ui paralelizat
•codul surs˘ a poate fi folosit doar pentru aplicat ¸ii scriseˆ ın C++
•necesit˘ a folosirea unor biblioteci externe pentru creare a unei interfet ¸e
grafice “prietenoase”
3.4 Concluzii
Concluzionˆ and, dup˘ a numeroase teste rulate folosind cel e dou˘ a seturi de
date (MNIST ¸ si GTSRB), setarea parametrilor pentru care s-a u obt ¸inut re-
zultate marcante se face astfel:
•Rata deˆ ınv˘ at ¸are α∈[0.005,0.01]
•Ponderile sunt init ¸ializate folosind distribut ¸ia conti nu˘ a ˆ pe intervalul
(−0.7,0.7)
Num˘ arulepocilornecesariantren˘ ariivariaz˘ aˆ ınfunct ¸ iededimensiunease-
tului de antrenare, dar¸ si de arhitectura ret ¸elei neurale de convolut ¸ie. Durata
procesului de antrenare este de ordinul orelor, pe cˆ and dur ata procesului de
testare pentru mii sau zeci de mii de imagini este de ordinul s ecundelor sau
minutelor. Astfel, o ret ¸ea neural˘ a de convolut ¸ie bine ins truit˘ a are abilitatea
de a face fat ¸˘ a oric˘ arei situat ¸ii din trafic pentru recuno a¸ sterea semnelor de
circulat ¸ie.
41
Capitolul 4
Manual de utilizare
Aplicat ¸ia este format˘ a dintr-o fereastr˘ a ce cont ¸ine 3 ta b-uri (“Train”,
“Test”, “Detailed test”) explicate ˆ ın sect ¸iunile 4.2, 4. 3, 4.4. De asemenea
fereastr˘ a cont ¸ine ¸ si un meniu, denumit “File”, care este detaliatˆ ın sect ¸iunea
4.1.
Dup˘ a cum se poate observaˆ ın figura 4.1, la pornirea aplicat ¸iei toate tab-
urile sunt dezactivate, deoarece este necesar˘ a init ¸iali zarea ret ¸elei neurale de
convolut ¸ie. Acest lucru se face prin accesarea meniului “Fi le” (vezi figura
4.2), singurul element activatˆ ın momentul pornirii aplic at ¸iei.
Figura 4.1: Fereastra principal˘ a a aplicat ¸iei
42
4.1 Init ¸ializarea ret ¸elei neurale de convolut ¸ie
Dup˘ a cum am spus, pentru a putea antrena sau testa o ret ¸ea ne ural˘ a de
convolut ¸ieestenecesar˘ ainit ¸ializareaacesteia. Acces ˆ andmeniul“File” →“New”
(vezi figura 4.2) putem alege una din cele patru arhitecturi p rezentate ˆ ın
sect ¸iunea 3.2:
•“MNIST LeNet-5” pentru utilizarea arhitecturii LeNet-5 pe set ul de
date MNIST
•“GTSRB LeNet-5” pentru utilizarea arhitecturii LeNet-5 pe se tul de
date GTSRB
•“GTSRBOneChannel”pentruutilizareaarhitecturii2bazat ˘ apeLeNet-
5 pe setul GTSRB
•“GTSRB Three Channel” pentru utilizarea arhitecturii 2 baz at˘ a pe
LeNet-5 pe setul GTSRB, folosind imagini color
Figura 4.2: Meniul “File”
Odat˘ a ce ret ¸eaua neural˘ a a fost init ¸ializat˘ a tab-uril e “Train” ¸ si “Test”
sunt activate. De asemnea, sunt activate ¸ si meniurile “Sav e weights…” ¸ si
“Load weights…” cu ajutorul c˘ arora putem salva valorile curente ale ponde-
rilor sau le putemˆ ınc˘ arcaˆ ın cazulˆ ın care acestea au fos t salvate. Accesˆ and
unul din meniurile precizate anterior se deschide o caset˘ a de dialog cu aju-
torul c˘ areia putem stabili calea unde vor fi salvate ponderi le respectiv calea
unde se afl˘ a fi¸ sierul cu valorile ponderilor ce urmeaz˘ a a fi ˆ ınc˘ arcat (figura
4.3).
43
Salvarea ¸ siˆ ınc˘ arcarea ponderilor sunt utileˆ ın cazulˆ ın care dorim oprirea
instruirii ret ¸elei neurale ¸ si continuarea acestui proce sˆ ıntr-o alt˘ a zi sau conti-
nuareapeunaltcalculatormaiputernic, dinpunctdevedere alspecificat ¸iilor
hardware, ce are instalat˘ a aceast˘ a aplicat ¸ie.
Figura 4.3: Salvarea/ ˆInc˘ arcarea valorilor ponderilor
Meniul“File”poatefiutilizat¸ sipentrup˘ ar˘ asireaaplic at ¸iei: “File” →“Exit”.
4.2 Antrenarea ret ¸elei neurale de convolut ¸ie
Antrenarea ret ¸elei neurale de convolut ¸ie se face folosind tab-ul “Train”
(vezi figura 4.4). Acesta cont ¸ine dou˘ a butoane folosite pen tru ˆ ınc˘ arcarea
imaginilor din seturile de date ¸ si claselor corespunz˘ ato are imaginilor.
Dac˘ a la init ¸ializare a fost ales setul de date MNIST, atunci la ap˘ asarea
butonului “Load Images” va ap˘ area o caset˘ a de dialog de tip ul “Open File
Dialog”, pentru i ¸nc˘ arcarea fi¸ sierului “idx” (vezi set ¸i unea 3.1), iar pentru
ˆ ınc˘ arcarea claselor se va face acela¸ si lucru, ap˘ asˆ and butonul “Load Labels”.
ˆIn cazul setului de date GTSRB pentruˆ ınc˘ arcarea imaginil or se va des-
chide o caset˘ a de dialog de tipul “Folder Browser Dialog” pe ntru selectarea
dosarului ˆ ın care se afl˘ a imaginile iar pentru ˆ ınc˘ arcare a claselor se va des-
chide o caset˘ a de dialog de tipul “Open File Dialog” cu ajuto rul c˘ areia va fi
selectat fi¸ sierul care cont ¸ine denumirile claselor.
Sepoatespecificanum˘ arulimaginilorceurmeaz˘ aafiˆ ınc˘ a rcatemodificˆ and
cˆ ampul “Train size”. Valoarea prestabilit˘ a a acestui cˆ a mp este 1000.
44
ˆInaintea ˆ ınceperii procesului de antrenare se pot fixa rata de ˆ ınv˘ at ¸are
precum ¸ si num˘ arul epocilor (valoare care indic˘ a de cˆ ate ori se va trece prin
setul de instruire). Valorile prestabilite sunt 0.01, resp ectiv 1.
Pornirea procesului de antrenare se face ap˘ asˆ and butonul “Start”, iar
oprirea acestuia folosind butonul “Stop”.
Tab-ul “Train” cont ¸ine un “ListView” ˆ ın care sunt afi¸ sate, ˆ ın timpul
instruirii, informat ¸ii precum: num˘ arul epocii, valoare a funct ¸iei de eroare,
num˘ arul patternurilor corect clasificate ¸ si cel al patter nurilor incorect clasifi-
cate, precum ¸ si procentajul de recunoa¸ stere pe setul de an trenare.ˆIn partea
de jos tab-ul cont ¸ine dou˘ a controale de tip “ProgressBar” :
•primul indic˘ a progresul epocii curente
•al doilea indic˘ a progresulˆ ıntregului proces de antrenar e
Figura 4.4: Tab-ul Train. 1-rata de ˆ ınv˘ at ¸are, 2-num˘ aru l epocilor de
ˆ ınv˘ at ¸are, 3-num˘ arul patternurilor folosite pentru an trenare, 4-num˘ arul epo-
cii, 5-valoare funct ¸iei de eroare, 6-num˘ arul patternuri lor corect clasificate,
7-num˘ arul patternurilor incorect clasificate, 8-procent ajul de recunoa¸ stere
pe setul de antrenare
45
Laˆ ıncheierea procesului de antrenare apare o fereastr˘ a c u mesajul “Suc-
cessfully Training!” ˆ ın care este precizat˘ a ¸ si ultima va loare a funct ¸iei de
eroare. Aceast˘ a fereastr˘ a este ilustrat˘ aˆ ın figura 4.5.
Figura 4.5: Mesajul afi¸ sat la sfˆ ar¸ situl instruirii
4.3 Testarea ret ¸elei neurale de convolut ¸ie
ˆInc˘ arcarea setului de date pentru testarea ret ¸elei neura le de convolut ¸ie se
faceˆ ın mod similarˆ ınc˘ arc˘ arii setului de date pentru an trenare. De asemenea,
putem specifica num˘ arul imaginilor pentru care se va face te starea.
Pentrupornireaprocesuluidetestareseapas˘ abutonul“St art”, iarpentru
ˆ ıntreruperea acestuia (ˆ ınaintea de testarea tuturor pat ternurilor) se apas˘ a
butonul “Stop”.
ˆIn timpul test˘ arii sunt afi¸ sateˆ ıntr-un control de tip “Li stView” patternu-
rile clasificate gre¸ sit astfel:
•indicele imaginii
•valoarea corect˘ a a clasei din care face parte imaginea
•valoarea prezis˘ a de ret ¸eaua neural˘ a de convolut ¸ie
Progresul procesului de testare este indicat folosind un co ntrol de tip
“ProgressBar”, iar la sfˆ ar¸ situl procesului de testare, s ub “ListView”, se va
afi¸ sa procentajul de recunoa¸ stere pe setul de testare.
ˆIn plus, dac˘ a se d˘ a click pe unul din patternurile clasifica te gre¸ sit, apare
o fereastr˘ a ˆ ın care se poate vizualiza imaginea corespunz ˘ atoare patternului
de intrare.
46
Figura 4.6: Tab-ul Test
Figura 4.7: Vizualizarea imaginii clasificate gre¸ sit
Similar procesului de instruire, antrenarea se termin˘ a pr in afi¸ sarea unui
mesaj (“Successfully Testing!”) ˆ ıntr-o nou˘ a fereastr˘ a , dup˘ a cum se poate
vedeaˆ ın figura 4.8.
47
Figura 4.8: Mesajul afi¸ sat la sfˆ ar¸ situl test˘ arii
4.4 Vizualizarea detaliat˘ a a test˘ arii
Printre principalele beneficii aduse de ret ¸elele neurale d e convolut ¸ie se
num˘ ar˘ a extragerea automat˘ a a tr˘ as˘ aturilor din imagin i. Pentru evident ¸ierea
procesului de extragere a tr˘ as˘ aturilor am creat un tabˆ ın care se pot vizualiza
tr˘ as˘ aturile extrase de ret ¸eaua neural˘ a ˆ ın straturile de convolut ¸ie ¸ si cele de
sube¸ santionare.
Acest tab este activat numai dup˘ a terminarea procesului de t estare deo-
arece se pot vizualiza doar tr˘ as˘ aturi ale imaginilor din s etul de testare clasi-
ficate corect.
Pentru afi¸ sarea tr˘ as˘ aturilor se procedeaz˘ a astfel: se s electeaz˘ a clasa ¸ si
stratulret ¸eleideconvolut ¸iepentrucaresedorescafi¸ sa reaplanelordetr˘ as˘ aturi
iar apoi se apas˘ a butonul “Show” (vezi figura 4.9). Deoarece dimensiunile
planelor de tr˘ as˘ aturi scad ¸ si ajung la dimensiuni reduse , am m˘ arit de 4 ori
imaginile asociate acestora.
Figura 4.9: Tab-ul Detailed test
48
ˆIn momentul ap˘ as˘ arii butonului “Show”ˆ ın partea stˆ ang˘ a apare imaginea
deintrarearet ¸eleineuraledeconvolut ¸iecorespunz˘ ato areclaseiselectat, iarˆ ın
partea dreapt˘ a apar imaginile asociate planelor de tr˘ as˘ aturi corespunz˘ atoare
stratului de convolut ¸ie sau sube¸ santionare ales (figuril e 4.10 ¸ si 4.11).
Figura 4.10: Afi¸ sarea planelor de tr˘ as˘ aturi pentru clasa 1 0, stratul 1 (strat
de convolut ¸ie)
Figura 4.11: Afi¸ sarea planelor de tr˘ as˘ aturi pentru clasa 1 0, stratul 2 (strat
de sube¸ santionare)
49
Capitolul 5
Concluzii
Recunoa¸ sterea patternurilor a cunoscut ˆ ın ultimii ani un progres uimi-
tor. Abord˘ arile de ultim˘ a or˘ a, cu rezultate apropiate sau chiar mai mari de
rata de recunoa¸ stere uman˘ a, folosesc diferite modele de r et ¸ele neurale de tip
“deep learning”. Printre acestea, specializate ˆ ın recuno a¸ sterea imaginilor,
sunt ret ¸elele neurale de convolut ¸ie.
Aplicat ¸ia a fost conceput˘ a cu scopul de a evident ¸ia modulˆ ın care ret ¸elele
de convolut ¸ie extrag tr˘ as˘ aturi din imaginile de intrare . De asemenea, se
poate observa c˘ a prin folosirea unor arhitecturi de ret ¸el e neurale complexe se
ajunge, dup˘ a un num˘ ar mic de epoci de instruire, la rezulta te satisf˘ ac˘ atoare.
Folosirea ret ¸elelor neurale de convolut ¸ie reprezint˘ a u n proces continuu de
documentare ¸ si testare. Prin ˆ ıncercarea mai multor tipur i de arhitecturi se
potˆ ımbun˘ at˘ at ¸i rezultatele cu privire la recunoa¸ ster ea patternurilor.
5.1 Posibile dezvolt˘ ari
Momentanaplicat ¸iafolose¸ steoimplementaremulti-core . Pentrucre¸ sterea
semnificativ˘ a a vitezei de instruire, aplicat ¸ia poate fiˆ ı mbun˘ at˘ at ¸it˘ a folosind o
abordare multi-GPU.
De asemenea, aplicat ¸ia poate fi extins˘ a ca funct ¸ionalita te, astfelˆ ıncˆ at uti-
lizatoruls˘ apoat˘ aconfigurasinguroarhitectur˘ aderet ¸ eaneural˘ adeconvolut ¸ie.
O dezvoltare important˘ a a aplicat ¸iei ar fi crearea unui mod ul ce poate fi
folosit pentru detectarea pietonilor.
50
Bibliografie
[1] Math.net numerics. http://numerics.mathdotnet.com/ .
[2] Ossama Abdel-Hamid, Li Deng, and Dong Yu. Exploring convol utio-
nal neural network structures and optimization techniques for speech
recognition. In Interspeech 2013 . ISCA, August 2013.
[3] Ossama Abdel-Hamid, Abdel rahman Mohamed, Hui Jiang 0001, an d
GeraldPenn. Applyingconvolutionalneuralnetworksconcep tstohybrid
nn-hmm model for speech recognition. In ICASSP, pages 4277–4280.
IEEE, 2012.
[4] Jake Bouvrie. Notes on convolutional neural networks, Nov ember 2006.
convolutional neural networks, machine vision, machine le arning.
[5] Dan C. Ciresan, Ueli Meier, and J¨ urgen Schmidhuber. Mult i-column
deep neural networks for image classification. CoRR, abs/1202.2745,
2012.
[6] Dan Claudiu Ciresan, Ueli Meier, Jonathan Masci, and J¨ ur gen Schmi-
dhuber. Multi-column deep neural network for traffic sign cla ssification.
Neural Networks , 32:333338, 2012.
[7] Anders Eklund and Paul Dufort. Non-separable 2d, 3d, and 4d filtering
with cuda. In Wolfgang Engel, editor, GPU Pro 5 , pages 469–492. CRC
Press, 2014.
[8] Brody Huval, Tao Wang, Sameep Tandon, Jeff Kiske, Will Song , Joel
Pazhayampallil, Mykhaylo Andriluka, Pranav Rajpurkar, Tok i Migi-
matsu, Royce Cheng-Yue, Fernando Mujica, Adam Coates, and An-
drew Y. Ng. An empirical evaluation of deep learning on highway d ri-
ving.CoRR, abs/1504.01716, 2015.
[9] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. Im agenet
classification with deep convolutional neural networks. In NIPS, pages
1106–1114, 2012.
51
[10] Yann LeCun, Patrick Haffner, L´ eon Bottou, and Yoshua Ben gio. Object
recognition with gradient-based learning. In Shape, Contour and Grou-
ping in Computer Vision , pages 319–, London, UK, UK, 1999. Springer-
Verlag.
[11] Jonathan Masci, Alessandro Giusti, Dan C. Ciresan, Gabr iel Fricout,
and J¨ urgen Schmidhuber. A fast learning algorithm for imag e segmen-
tation with max-pooling convolutional networks. CoRR, abs/1302.1690,
2013.
[12] Jonathan Masci, Ueli Meier, Dan Cire¸ san, and J¨ urgen Sc hmidhuber.
Stacked convolutional auto-encoders for hierarchical fea ture extraction.
InProceedings of the 21th International Conference on Artific ial Neural
Networks – Volume Part I , ICANN’11, pages 52–59, Berlin, Heidelberg,
2011. Springer-Verlag.
[13] MATLAB. Matlab 2-d convolution. http://www.mathworks.com/
help/matlab/ref/conv2.html#syntax .
[14] Victor Podlozhnyuk. Fft-based 2d convolution. http://developer.
download.nvidia.com/compute/cuda/2_2/sdk/website/pr ojects/
convolutionFFT2D/doc/convolutionFFT2D.pdf .
[15] Python. Python 2-d convolution. http://docs.scipy.org/doc/
scipy-0.15.1/reference/generated/scipy.signal.convo lve2d.
html.
[16] Angel Cat ¸aron R˘ azvan Andonie. Inteligent ¸˘ a computat ¸ional˘ a . Univer-
sitatea Transilvania, Bra¸ sov, 2002. http://www.cwu.edu/ ~andonie/
Cursul%20de%20IA%20Brasov.pdf .
[17] Ruslan Salakhutdinov, Andriy Mnih, and Geoffrey Hinton. R estricted
boltzmann machines for collaborative filtering. In Proceedings of the
24th International Conference on Machine Learning , ICML ’07, pages
791–798, New York, NY, USA, 2007.
[18] Lucian Sasu. Sistem computat ¸ionale inteligente . Universitatea Transil-
vania, Bra¸ sov, 2013.
[19] Dominik Scherer, Andreas M¨ uller, and Sven Behnke. Eval uation of po-
oling operations in convolutional architectures for objec t recognition.
InProceedings of the 20th International Conference on Artific ial Neural
Networks: Part III , ICANN’10, pages 92–101, Berlin, Heidelberg, 2010.
Springer-Verlag.
52
[20] Karen Simonyan and Andrew Zisserman. Very deep convolut ional ne-
tworks for large-scale image recognition. CoRR, abs/1409.1556, 2014.
[21] Johannes Stallkamp, Marc Schlipsing, Jan Salmen, and C hristian Igel.
The German Traffic Sign Recognition Benchmark: A multi-class classi-
fication competition. In IEEE International Joint Conference on Neural
Networks , pages 1453–1460, 2011.
[22] Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Serma net, Scott Reed,
Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andr ew
Rabinovich. Going deeper with convolutions. CoRR, abs/1409.4842,
2014.
[23] Pascal Vincent, Hugo Larochelle, Isabelle Lajoie, Yoshu a Bengio, and
Pierre-Antoine Manzagol. Stacked denoising autoencoders: Learning
useful representations in a deep network with a local denois ing criterion.
J. Mach. Learn. Res. , 11:3371–3408, December 2010.
[24] Oriol Vinyals, Alexander Toshev, Samy Bengio, and Dumitr u Erhan.
Showandtell: Aneuralimagecaptiongenerator. CoRR,abs/1411.4555,
2014.
[25] Christopher J.C. Burges Yann LeCun, Corinna Cortes. Th e mnist da-
tabase of handwritten digits. http://yann.lecun.com/exdb/mnist/ .
53
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Lucrarea de licent a [604518] (ID: 604518)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
