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

Similar Posts