Proiect de disertat ,ie [604517]

Universitatea Transilvania din Bras ,ov
Facultatea de Matematică s ,i Informatică
Specializarea Tehnologii Informatice
Proiect de disertat ,ie
Recunoas ,tere facială folosind
ret,ele neurale de convolut ,ie
Autor:
Rădoi OvidiuProfesor coordonator:
Lect. dr. Sasu Lucian Mircea
Bras ,ov
Iulie 2012

Cuprins
1 Introducere 1
1.1 Motivat ,ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Enunt ,ul problemei . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Tehnologii folosite . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 Platforma .NET s ,i limbajul C# . . . . . . . . . . . . . 3
1.3.2 Biblioteca AForge.NET . . . . . . . . . . . . . . . . . . 4
1.3.3 Ribbon for WPF . . . . . . . . . . . . . . . . . . . . . 5
1.4 Structura lucrării . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Problema recunoas ,terii faciale 6
2.1 Utilizări ale recunoas ,terii faciale . . . . . . . . . . . . . . . . . 7
2.2 Probleme în recunoas ,terea facială . . . . . . . . . . . . . . . . 10
2.3 Reprezentarea imaginilor . . . . . . . . . . . . . . . . . . . . . 11
2.4 Preprocesarea imaginilor . . . . . . . . . . . . . . . . . . . . . 12
3 Ret ,ele neurale artificiale 15
3.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Modul de funct ,ionare . . . . . . . . . . . . . . . . . . . . . . . 17

3.3 Beneficiile ret ,elelor neurale . . . . . . . . . . . . . . . . . . . . 18
3.4 Învăt ,are profundă – deep learning . . . . . . . . . . . . . . . . 19
3.5 Utilizări ale ret ,elelor neurale . . . . . . . . . . . . . . . . . . . 21
3.5.1 Găsirea paginilor web relevante . . . . . . . . . . . . . 21
3.5.2 Prezicerea bursei . . . . . . . . . . . . . . . . . . . . . 22
3.5.3 Recunoas ,tere de caractere . . . . . . . . . . . . . . . . 22
3.5.4 Traducerea automată a documentelor . . . . . . . . . . 22
3.5.5 Diagnosticarea cancerului . . . . . . . . . . . . . . . . 22
3.5.6 Recomandarea de cărt ,i sau filme . . . . . . . . . . . . 23
3.5.7 Recunoas ,terea vocală . . . . . . . . . . . . . . . . . . . 23
3.5.8 Autovehicule autonome . . . . . . . . . . . . . . . . . . 23
4 Ret ,ele neurale de convolut ,ie 25
4.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 Structura unei ret ,ele neurale de convolut ,ie . . . . . . . . . . . 26
4.3 Algoritmul de propagare înapoi a erorii . . . . . . . . . . . . . 29
4.4 Seturile de date folosite . . . . . . . . . . . . . . . . . . . . . . 33
4.5 Detalii despre sistemul folosit . . . . . . . . . . . . . . . . . . 34
4.6 Vizualizarea ret ,elei . . . . . . . . . . . . . . . . . . . . . . . . 35
4.7 Rezultatele sistemului . . . . . . . . . . . . . . . . . . . . . . 37
5 Descrierea aplicat ,iei 41
5.1 Diagrama Use Case . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2 Structura aplicat ,iei . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Interfat ,a grafică . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.3.1 Set de date . . . . . . . . . . . . . . . . . . . . . . . . 45
5.3.2 Antrenare . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3.3 Testare . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3.4 Detalii . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6 Concluzii 51
Bibliografie 53

Capitolul 1
Introducere
Această lucrare îs ,i propune să prezinte rezultatele utilizării ret ,elelor neu-
rale de convolut ,ie pentru recunoas ,terea facială. Din punct de vedere teoretic
este descrisă structura acestor ret ,ele, precum s ,i algoritmul care este folosit
pentrualeantrena. Dinpunctdevederepractic, oastfelderet ,eaestefolosită
pentru a recunoas ,te cu acuratet ,e ridicată fet ,ele unor persoane.
1.1 Motivat ,ie
Inteligent ,a artificială este un domeniu interesant deoarece încearcă să
aducă capabilităt ,ile sistemelelor de calcul mai aproape de cele ale oamenilor.
Definit ,iile date inteligent ,ei artificiale în literatura domeniului sunt variate,
dar se pot sumariza în patru direct ,ii: sisteme care gândesc precum oamenii,
sisteme care gândesc rat ,ional, sisteme care se comportă precum oamenii s ,i
sisteme care se comportă rat ,ional [RN09]. De-a lungul timpului, toate cele
patrudirect ,iiaufostexplorate, creându-sesistemecuoariemaredeutilitate.
Printre numeroasele utilizări pe care acest domeniu le are putem găsi:
•algoritmi care pot să joace anumite jocuri (s ,ah, table etc.)
•sisteme expert – programe care fac decizii în situat ,ii din viat ,a reală, de
exemplu diagnosticarea unor boli sau prezicerea bursei
•înt ,elegerea limbajului natural – algoritmi folosit ,i pentru recunoas ,tere
vocală s ,i înt ,elegerea textului scris
1

1.2. ENUNT ,UL PROBLEMEI
•ret ,elele neurale artificiale – sisteme care simulează inteligent ,a încercând
să reproducă structura s ,i tipurile de conexiuni care apar în creierele
organismelor vii
•robotica – programe care fac calculatoarele să vadă, să audă s ,i să reac-
t,ioneze la stimulii înregistrat ,i de anumit ,i senzori
Ret ,elele neurale artificiale reprezintă un domeniu interesant, deoarece ele
combină elemente din multe dintre domeniile informaticii s ,i chiar din biologie
s,ineurologiepentruarezolvaproblemecareînmodtradit ,ionalarfidificilsau
chiar imposibil de rezolvat. Modul în care ele sunt structurate este inspirat
de către modul în care funct ,ionează creierul animal s ,i uman, iar acest lucru
le conferă unicitate în fat ,a altor algoritmi.
Recunoas ,terea facială este una dintre problemele conexe domeniului pro-
cesării de imagini. Această problemă este rezolvată în fiecare zi de către
orice persoană care îs ,i recunoas ,te prietenii, colegii, părint ,ii. La ora actuală
însă este dificil ca ea să fie rezolvată de către un calculator folosind algoritmi
clasici. Contrastul între un lucru pe care îl facem în fiecare zi fără un efort
cons ,tient s ,i o sarcină dificil de realizat de către un calculator este ceea ce
m-a atras la problema recunoas ,terii faciale.
1.2 Enunt ,ul problemei
Această lucrare foloses ,te un sistem inspirat din funct ,ionarea creierului
uman pentru a aborda problema recunoas ,terii faciale. Sistemul constă dintr-
o ret ,ea neurală de convolut ,ie antrenată folosind algoritmul de propagare îna-
poiaeroriipentruaclasificaocolect ,iedefet ,eumane. Ret ,eauaneuralăînvat ,ă
trăsăturile fet ,elor s ,i apoi este capabilă să recunoască identitatea acelor per-
soane din imagini care nu au mai fost prezentate ret ,elei.
Atunci când primes ,te o imagine pentru a fi recunoscută, sistemul este
capabil să calculeze o măsură de confident ,ă pentru rezultatul pe care îl fur-
nizează. Astfel, sistemul poate să respingă o fat ,ă care nu seamănă îndeajuns
de mult cu persoanele învăt ,ate de acesta.
Aplicat ,ia are de asemenea s ,i o interfat ,ă grafică în care un utilizator poate
alege diferit ,i parametri ai algoritmului, locat ,ia setului de instruire cu fet ,e
s,i diverse alte setări. Această interfat ,ă îi oferă utilizatorului detalii despre
structura ret ,elei s ,i îi permite să salveze s ,i să încarce ponderile pentru ret ,ea.
2

1.3. TEHNOLOGII FOLOSITE
1.3 Tehnologii folosite
1.3.1 Platforma .NET s ,i limbajul C#
În elaborarea acestei aplicat ,ii am ales să folosesc platforma .NET s ,i lim-
bajul de programare C# din mai multe motive:
Us ,urint ,a scrierii codului
Limbajul de programare C# este un limbaj de programare modern s ,i
orientat pe obiecte. Caracteristicile acestui limbaj îl fac să fie potrivit
pentru a dezvolta aplicat ,ii performante într-un timp scurt.
Suportul pentru aplicat ,ii cu interfat ,ă grafică
Acest limbaj de programare suportă crearea de interfet ,e grafice într-un
mod intuitiv. De asemenea, folosind subsistemul WPF, se pot crea
interfet ,e bogate, care pot cont ,ine animat ,ii accelerate de placa grafică
s,i bibliotecile DirectX, eliberând astfel procesorul pentru alte calcule.
Eliberarea automată a memoriei
Platforma .NET oferă suport pentru eliberarea automată a memoriei
folosind un Garbage Collector inclus în CLR. Platforma ment ,ine o listă
cu obiectele folosite de către aplicat ,ie, iar periodic execut ,ia aplicat ,iei
este suspendată s ,i obiectele care nu mai sunt folosite sunt eliberate
automat din memorie. Astfel, utilizatorul este scutit de managementul
manual al memoriei, codul scris fiind mai concis s ,i mai lizibil. Din
această cauză, programele care folosesc platforma .NET nu suferă de
problema scurgerilor de memorie în aceeas ,i măsură precum programele
dezvoltatecualtelimbajecarenuauoastfeldecomponentă. Scurgerile
de memorie sunt încă posibile, dar sunt foarte rare.
Suportul pentru debugging
Limbajul de programare C# împreună cu mediul de dezvoltare Visual
Studio permit depanarea rapidă s ,i intuitivă a aplicat ,iilor. Mediul de
programare va opri aplicat ,ia la aparit ,ia unei erori s ,i va afis ,a utilizato-
rului linia de cod care a generat eroarea, precum s ,i o descriere a erorii.
Utilizatorul poate inspecta valorile variabilelor s ,i poate găsi rapid sursa
unei probleme. Acest lucru scurtează timpul de dezvoltare s ,i permite
scrierea de aplicat ,ii mai robuste.
3

1.3. TEHNOLOGII FOLOSITE
Suportul excelent pentru programare concurentă
Odatăcuaparit ,iaversiunii4.0aplatformei.NET,eaincludeconstruct ,ii
care permit scrierea facilă de cod paralel s ,i concurent folosind Paral-
lel Linq s ,i Task Parallel Library. Parallel Linq permite lucrul facil
cu colect ,ii de obiecte în mod paralel. Colect ,iile pot proveni dintr-o
multitudine de surse precum baze de date, fis ,iere xml s ,i chiar din me-
morie. Task Parallel Library este o extensie a platformei .NET care
permite lucrul facil cu fire de execut ,ie, gestionând automat crearea s ,i
distrugerea lor s ,i scalând automat numărul acestora pentru execut ,ia
cât mai rapidă. De exemplu, se poate înlocui un ciclu forsimplu, cu
o construct ,ie de tipul Parallel.For , care va rula acea buclă folosind
toate nucleele procesorului, iar viteza aplicat ,iei va cres ,te. Fără supor-
tul oferit de limbaj s ,i platformă, acelas ,i lucru ar fi fost mai dificil de
realizat s ,i ar fi fost nevoie de mai multe linii de cod, lucru care ar fi
făcut aplicat ,ia mai greu de întret ,inut s ,i depanat. În aplicat ,ie am folosit
Task Parallel Library pentru calculele în paralel.
1.3.2 Biblioteca AForge.NET
AForge.NET1este o bibliotecă pentru platforma .NET care permite pro-
cesarea de imagini s ,i lucrul cu acestea. Ea este us ,or de instalat s ,i folosit,
fapt ce o face una dintre cele mai bune biblioteci pentru procesare de imagini
pentru platforma .NET. Am folosit Aforge.NET în aplicat ,ie pentru:
•Citirea imaginilor folosind metoda
AForge.Imaging.Image.FromFile()
•Redimensionarea imaginilor folosind clasa
AForge.Imaging.Filters.ResizeBicubic
•Transformarea imaginilor în nuant ,e de gri folosind clasa
AForge.Imaging.Filters.Grayscale.CommonAlgorithms.BT709
•Egalizarea histogramelor folosind clasa
AForge.Imaging.Filters.HistogramEqualization
1http://www.aforgenet.com/
4

1.4. STRUCTURA LUCRĂRII
1.3.3 Ribbon for WPF
BibliotecaMicrosoftRibbonforWPF2estefolosităpentruacreainterfet ,e
grafice bogate s ,i simplu de utilizat. Ea oferă o bară de comenzi3care este
as,ezată în partea de sus a aplicat ,iei s ,i care include într-un singur loc co-
menzile folosite în aplicat ,ie, înlocuind tradit ,ionalele meniuri s ,i bare de acces
prezenteînaplicat ,iileclasice. Înaplicat ,ieamfolositaceastăbibliotecăpentru
crearea interfet ,ei grafice.
1.4 Structura lucrării
Următoarele capitole descriu ret ,elele neurale de convolut ,ie din punct de
vedere teoretic s ,i prezintă o aplicat ,ie care implementează o astfel de ret ,ea s ,i
o aplică pe o problemă de recunoas ,tere facială.
În capitolul 2 se prezintă problema recunoas ,terii de fet ,e împreună cu
utilităt ,ile pe care le are s ,i problemele pe care le întâmpină. De asemenea
se prezintă reprezentarea imaginilor în memoria calculatorului s ,i se descriu
preprocesările aplicate imaginilor înaintea folosirii lor în sistem.
În capitolul 3 este prezentată o descriere a ret ,elelor neurale artificiale
împreună cu modul de funct ,ionare, beneficiile utilizării acestora s ,i sunt pre-
zentate situat ,ii practice în care sunt folosite aceste ret ,ele. De asemenea este
descrisă o nouă direct ,ie în domeniul ret ,elelor neurale: învăt ,area profundă.
În capitolul 4 se prezintă ret ,elele neurale de convolut ,ie împreună cu al-
goritmul de propagare înapoi a erorii care este folosit pentru antrenarea lor.
Tot aici este descrisă structura ret ,elei folosită în aplicat ,ie s ,i sunt prezentate
detaliidespresistemulfolositînlucrarepentruproblemarecunoas ,teriifaciale,
împreună cu rezultatele acestui sistem.
În capitolul 5 este prezentată aplicat ,ia care implementează ret ,eaua neu-
rală de convolut ,ie. Această aplicat ,ie poate antrena o ret ,ea neurală folosind
un set de date ales de utilizator s ,i îi permite utilizatorului să testeze ret ,eaua
s,i să vizualizeze detalii despre performant ,ele ei.
Capitolul 6 prezintă concluzii despre lucrare, precum s ,i direct ,ii care pot
fi explorate pentru îmbunătăt ,irea sistemului în viitor.
2http://msdn.microsoft.com/en-us/library/ff799534.aspx
3În engleză: ribbon
5

Capitolul 2
Problema recunoas ,terii faciale
Recunoas ,terea facială este unul dintre subiectele cele mai cercetate în do-
meniul biometricii s ,i al procesării de imagini. Definit ,ia problemei poate fi
exprimată prin stabilirea identităt ,ii unui individ din imagini ale fet ,ei sale.
Recunoas ,terea automată a fet ,elor umane implică foarte multe tehnologii din
diverse domenii. La cel mai înalt nivel, aceste tehnologii se pot distinge prin
mediul care este folosit pentru datele de intrare: lumină vizibilă, lumină în
spectrul infraros ,u sau date tridimensionale care provin de la camere stereo-
grafice. Fiecare mediu folosit are avantajele s ,i dezavantajele sale: imaginile
infraros ,ii sunt practic invariante la condit ,iile de iluminare, pe când datele
tridimensionale sunt invariante la pozit ,ia s ,i unghiul capului. Cu toate aces-
tea, imaginile capturate în spectrul de lumină vizibilă sunt cele mai folosite
din cauza cantităt ,ii mari de imagini care sunt disponibile în prezent [Zha02].
Imaginile în spectrul infraros ,u sau cele tridimensionale necesită echipament
scump s ,i condit ,ii controlate pentru a fi capturate, motiv pentru care ele sunt
mai rar întâlnite.
În esent ,ă, problema recunoas ,terii faciale este o problemă de clasificare.
Un sistem de recunoas ,tere facială trebuie, de exemplu, să împartă imagini
care provin de la zece persoane, în zece categorii diferite, câte o categorie
corespunzând fiecărei persoane. Aceasta este o sarcină destul de dificil de
realizat. Dacă privim poze cu fet ,ele aceleias ,i persoane făcute sub condit ,ii de
iluminare diferite putem observa că ele variază foarte mult în comparat ,ie cu
două poze ale unor persoane diferite făcute sub aceleas ,i condit ,ii de iluminare.
Scenariile în care se poate aplica un sistem pentru recunoas ,tere facială se
împart în trei categorii:
6

2.1. UTILIZĂRI ALE RECUNOAS ,TERII FACIALE
•Verificarea identităt ,iieste o operat ,iune de identificare care compară
o imagine de intrare a unei fet ,e cu un s ,ablon pentru persoana a cărei
identitate trebuie să fie verificată.
•Identificareafacială esteunprocescarecomparăoimaginedeintrare
a unei fet ,e cu toate imaginile s ,ablon dintr-o bază de date pentru a
determina identitatea persoanei din poza de intrare. Identificarea se
face localizând imaginea din baza de date care este cea mai similară cu
imaginea de intrare.
•Lista de urmărire este o operat ,iune mai complicată. Individul testat
poate să existe sau nu în baza de date. Pentru o imagine de intrare,
ea este comparată cu toate imaginile din bază s ,i o măsură de simila-
ritate este calculată pentru fiecare comparare. Acele similarităt ,i sunt
apoi sortate astfel încât prima valoare să corespundă imaginii celei mai
similare cu subiectul de test. Dacă acea valoare este mai mare decât
un anumit prag setat în prealabil, este afis ,at un mesaj, indicând faptul
că subiectul se află în baza de date.
Aplicat ,ia prezentată în această lucrare face parte din categoria a treia.
Sistemul învat ,ă un set de fet ,e s ,i creează o reprezentare proprie din setul
de antrenare. Apoi, utilizatorul poate să prezinte aplicat ,iei o fat ,ă nouă s ,i
aplicat ,ia produce un scor pentru fiecare persoană din setul de antrenare.
Scorurile sunt ordonate descrescător s ,i prezentate utilizatorului. Dacă cel
mai înalt scor este mai mare decât o valoare prestabilită, sistemul raportează
că a găsit persoana respectivă în baza de date. Dacă scorul este mai mic,
sistemul raportează că imaginea nu se află în setul de antrenare.
2.1 Utilizări ale recunoas ,terii faciale
Poate cea mai mare utilitate a unui sistem de recunoas ,tere facială ar fi în
domeniul biometricii, pentru verificarea identităt ,ii unei persoane. Fat ,a este
principala trăsătură pe care oamenii o folosesc pentru a recunoas ,te alte per-
soane. Pe lângă fet ,e, se mai fac cercetări s ,i pentru recunoas ,terea de amprente
[CL06], limbaj vorbit [RDD+12] s ,i integritatea semnăturii [KY04]. Metoda
verificării identităt ,ii unei persoane prin recunoas ,tere facială are avantajul de
a fi o metodă neintruzivă s ,i pasivă. Fiecare persoană are o fat ,ă s ,i o afis ,ează
tot timpul, pe când amprentele sunt greu de procurat.
Algoritmiiderecunoas ,terefacialăpotlucraîntr-olumedeschisăsauîntr-o
7

2.1. UTILIZĂRI ALE RECUNOAS ,TERII FACIALE
lume închisă. Într-o lume închisă algoritmul lucrează cu imagini care apart ,in
unui număr limitat de persoane, pe când într-o lume deschisă algoritmul
trebuie să lucreze s ,i cu imagini ale unor persoane necunoscute. Atunci când
o imagine necunoscută este prezentată algoritmului, el trebuie să recunoască
faptul că acea persoană nu se află în baza de date s ,i trebuie să furnizeze un
răspuns corespunzător.
Încă de la aparit ,ia fotografiei există sisteme care se bazează pe ea, de
exemplu arhivele polit ,iei sau carnetele de conducător auto. Sistemele respec-
tive folosesc o poză cu fat ,a unui individ pentru a garanta identitatea sa. De
exemplu, un polit ,ist poate să compare vizual fotografia de pe permisul de
conducere cu fat ,a s ,oferului care îi prezintă actul s ,i poate să verifice identita-
tea acelei persoane. Aceste sisteme sunt în prezent automatizate s ,i au nevoie
de algoritmi care să verifice identitatea persoanelor în mod automat.
Folosind una sau mai multe camere, este posibil ca un dispozitiv să cap-
tureze imagini cu un subiect fără ca el să participe în mod activ. Fotografia
poatefitrecutăprintr-unsistemcareverificăidentitateaindividului, iaracest
lucru poate fi folosit pentru personalizarea unor servicii sau dispozitive. De
exemplu, us ,a unei case poate fi deschisă atunci când proprietarul casei se
apropie de ea, sau oglinzile unei mas ,ini s ,i postul de radio favorit se pot
ajusta automat în funct ,ie de identitatea s ,oferului care se as ,ează pe scaun.
S-au dezvoltat chiar sisteme comerciale care permit folosirea fet ,ei în loc de o
parolă pentru logarea în diverse sisteme de operare: Luxand Blink permite
logarea în Windows doar proprietarului calculatorului (2.1a) s ,iAndroid Face
Unlockdeblochează telefonul doar dacă proprietarul acestuia este în fat ,a lui
(2.1b).
Uneleaplicat ,iidemanagementalepozelorincludfunct ,iicaredetecteazăs ,i
recunosc automat fet ,ele din pozele adăugate de utilizator. Apoi, aceste fet ,e
sunt grupate s ,i prezentate utilizatorului pentru verificare. Aplicat ,ia poate
apoi să prezinte pozele în mai multe moduri decât cel clasic, de exemplu
poate crea colaje care cont ,in poze cu o anumită persoană sau cu un anumit
grup de persoane. O astfel de aplicat ,ie estePicasa, de la Google 2.1c.
Unele ret ,ele sociale, de asemenea, detectează s ,i recunosc fet ,ele prezente
în pozele adăugate de utilizatorii acestora. Astfel, ret ,eaua socială poate
intui relat ,iile dintre anumite persoane s ,i poate, de exemplu, să ofere mai
multe informat ,ii despre o persoană unui prieten care are un număr ridicat
de poze cu o anumită persoană. O altă utilizare interesantă este în domeniul
securităt ,ii. Atunci când un utilizator dores ,te să îs ,i schimbe parola sau alte
detalii personale, ret ,eaua poate verifica dacă acel utilizator este într-adevăr
8

2.1. UTILIZĂRI ALE RECUNOAS ,TERII FACIALE
(a) Luxand blink
(b) Android face unlock
(c) Google Picasa
(d) Facebook
Figura 2.1: Aplicat ,ii care folosesc recunoas ,terea facială
9

2.2. PROBLEME ÎN RECUNOAS ,TEREA FACIALĂ
titularul contului (s ,i nu un hacker) printr-un test tip grilă simplu: îi sunt
prezentate poze cu cât ,iva prieteni care apar des în pozele utilizatorului s ,i
este rugat să aleagă numele acelor prieteni dintr-o listă. Adevăratul titular
al contului va răspunde corect la întrebări, pe când un hacker va răspunde
gres ,it. O astfel de ret ,ea socială este Facebook (2.1d).
2.2 Probleme în recunoas ,terea facială
Cele mai mari două probleme ale sistemelor de recunoas ,tere facială sunt
acuratet ,ea scăzută (în comparat ,ie cu recunoas ,terea irisului s ,i a amprentelor)
s,i us ,urint ,a relativă cu care aceste sisteme pot fi înfrânte. De asemenea,
există multe atribute care alcătuiesc variabilitatea imaginilor ale aceleias ,i
fet ,e, atribute care măresc complexitatea sistemelor în cazul în care nu pot fi
evitate în stadiul capturii imaginilor.
Aceste atribute includ [Zha02]:
•Schimbări fizice: expresiile faciale pot fi diferite, persoana poate să
îmbătrânească, sau pot interveni ochelarii, machiajul sau coafura
•Schimbări în as ,ezarea camerei s ,i a subiectului: pot apărea mo-
dificări în scalare, localizare s ,i rotat ,ia fet ,ei în toate cele trei axe
•Schimbări în imagistică: modificări ale iluminării, variat ,ii ale ca-
merei de luat vederi sau artefacte ale sistemului de compresie folosit
pentru imagini
O altă mult ,ime de dificultăt ,i ce pot apărea în recunoas ,terea facială cu-
prinde [Duf09]:
•Iluminarea Modificările în iluminare pot cauza considerabile variat ,ii
în modul în care apar fet ,ele în imagini. Iluminarea este influent ,ată
de către lumina ambientală s ,i lumina direct ,ionată. Lumina ambien-
tală influent ,ează doar luminozitatea generală a imaginii, pe când lu-
mina direct ,ionată este mai dificil de analizat deoarece ea poate duce la
aparit ,ia umbrelor pe fat ,ă.
•Pozit ,ia fet ,eiModificările pozit ,iei fet ,ei sau unghiului sub care a fost
capturată imaginea influent ,ează negativ performant ,a algoritmilor de
recunoas ,tere facială, motiv pentru care multe sisteme se limitează la
recunoas ,terea fet ,elor folosind imagini frontale. Dacă rotat ,ia capului
10

2.3. REPREZENTAREA IMAGINILOR
coincide cu planul imaginii, ea poate fi normalizată estimând unghiul
de rotat ,ie al fet ,ei, dar acest lucru se întâmplă rar în practică.
•Expresii faciale Modul în care poate apărea o fat ,ă în imagini vari-
ază considerabil. În funct ,ie de aplicat ,ie, acest lucru poate fi mai mult
sau mai put ,in important. De exemplu, sistemele de control al accesu-
lui necesită ca persoanele să afis ,eze o expresie neutră pentru a atinge
performant ,ă maximă. Astfel, invariant ,a la expresiile faciale nu este o
problemă. Dar în cazul indexării din imagini video, acest lucru este
foarte important deoarece persoanele apar în diverse situat ,ii s ,i pot să
vorbească, să zâmbească sau să râdă. În general, cea mai mare variat ,ie
apare în zona gurii.
•Ocluzia part ,ialăAcest tip de variat ,ie apare des în imaginile video.
Ea poate fi cauzată de o mână care acoperă o parte a fet ,ei, sau de
către păr lung, ochelari sau alte obiecte sau persoane. Dar în cele mai
multe cazuri, fat ,a acoperă părt ,i ale ei înses ,i. De exemplu, într-o poză
făcută din profil, o parte a fet ,ei rămâne ascunsă. De asemenea, o parte
a obrazului poate fi acoperită de nas sau un ochi poate fi acoperit de
arcada sa.
În toate sistemele de recunoas ,tere biometrică pot să apară erori de două
tipuri, care trebuie minimizate: erori de acceptare falsă, atunci când un im-
postor este acceptat ca fiind un utilizator legitim s ,i erori de respingere falsă,
atunci când unui utilizator legitim îi este interzis accesul. Este destul de us ,or
să schimbi aparent ,a facială a unei persoane astfel încât ea să nu mai fie re-
cunoscută s ,i de a preveni identificarea, generând o eroare de respingere falsă.
Acest lucru este crucial într-o aplicat ,ie care previne o anumită persoană să
obt ,ină un privilegiu mai mult de o singură dată (de exemplu un permis de
conducere). De asemenea este posibil ca o persoană să se dea drept altă per-
soană cu un grad ridicat de similaritate, generând o eroare de acceptare falsă.
Acest lucru este foarte important în sisteme de control al accesului, unde se
pot folosi măs ,ti, fotografii sau secvent ,e video cu un utilizator legitim. Un
sistem bun trebuie să fie rezistent la ambele tipuri de erori putând distinge,
de exemplu, între o imagine cu o persoană reală s ,i o imagine cu o fotografie.
2.3 Reprezentarea imaginilor
Imaginile sunt reprezentate în memoria calculatorului sub forma unei ma-
trice de numere. O imagine este împărt ,ită într-o ret ,ea de puncte de diferite
11

2.4. PREPROCESAREA IMAGINILOR
culori. Aceste puncte se numesc pixeli. Fiecare culoare este memorată fo-
losind trei numere care corespund intensităt ,ilor celor trei culori componente
ale sale: ros ,u, verde s ,i albastru. Pentru o imagine alb-negru, fiecare punct
este reprezentat de către un singur număr care corespunde nuant ,ei de gri a
acelui pixel. În figura 2.2 putem vedea modul în care este reprezentată o
parte a unei fet ,e sub forma unei matrice de numere în memoria calculato-
rului. Atunci când lucrăm cu o imagine într-un program de calculator, de
fapt lucrăm cu o matrice de dimensiuni foarte mari. Numerele din matrice
trebuie prelucrate prin anumite tehnici de procesare a imaginilor astfel încât
să ajungem la rezultatul dorit.
Oamenii pot să recunoască fet ,e foarte bine s ,i din imagini în nuant ,e de
gri, ceea ce înseamnă că informat ,ia culorii nu este esent ,ială în recunoas ,terea
facială. În această lucrare folosim imagini în nuant ,e de gri pentru antrenarea
s,i recunoas ,terea fet ,elor.
Figura 2.2: Valoarea intensităt ,ii pixelilor pentru un ochi dintr-o imagine
2.4 Preprocesarea imaginilor
Înainte de a introduce imaginile în ret ,eaua neurală de convolut ,ie folosită
în aplicat ,ie ele au fost preprocesate, aplicând anumite operat ,ii pentru a le
transforma în matrice de numere. Operat ,iile vor fi descrise în paragrafele
următoare.
12

2.4. PREPROCESAREA IMAGINILOR
Prima operat ,iune de preprocesare care este efectuată pe imagini după
ce ele sunt citite este cea de transformare în nuant ,e de gri. As ,a cum am
descris în sect ,iunea anterioară, informat ,ia color nu este esent ,ială pentru a
recunoas ,te fet ,ele umane, as ,a că această ret ,ea nu foloses ,te decât intensitatea
pixelilor în nuant ,e de gri. Pentru transformarea imaginilor în nuant ,e de gri s-
afolositalgoritmulBT709[GW02]. Algoritmulefectueazăomedieponderată
a componentelor culorii pentru a lua în considerare modul în care ele sunt
percepute de ochiul uman. El este descris în ecuat ,ia 2.1.
f(pij) = 0.2125·pr
ij+ 0.7154·pg
ij+ 0.0721·pb
ij (2.1)
A doua operat ,iune de preprocesare este aplicarea unui filtru de egalizare
a histogramei. Acest filtru are rolul de a corecta contrastul slab care poate
apărea în unele imagini, iar astfel nuant ,ele de gri vor ocupa întreg spat ,iul de
culori. Efectele filtrului sunt exemplificate în figura 2.3.
Figura 2.3: Efectul filtrului egalizării de histograme
A treia operat ,iune de preprocesare efectuată este cea de redimensionare.
Imaginile sunt mics ,orate la dimensiunea de 32 ×32 pixeli pentru că aceasta
este mărimea stratului de intrare al ret ,elei. Des ,i poate părea mică, dimensiu-
neaestesuficientăpentrucaret ,eauasăobt ,inărezultatebuneînrecunoas ,terea
imaginilor. Redimensionarea se face folosind interpolarea bicubică [GW02]
s,i este ilustrată în figura 2.4.
13

2.4. PREPROCESAREA IMAGINILOR
Figura 2.4: Redimensionarea imaginilor de la 92 ×112 la 32×32
Ultimul pas de preprocesare este transformarea imaginii rezultate într-un
vectordenumeres ,iscalareaacestornumere. Într-oimaginereprezentatăprin
nuant ,e de gri, fiecărui pixel îi corespunde o valoare numerică întreagă între 0
s,i255, numităintensitateaaceluipixel. Ointensitatede0reprezintăculoarea
neagră, iarintensitatea255reprezintăculoareaalbă. Pentruafolosiimaginile
în ret ,eaua neurală de convolut ,ie, intensităt ,ile trebuie scalate astfel încât ele
să corespundă cu valori reale între -1 s ,i 1. O valoare de -1 reprezintă culoarea
neagră, iar o valoare de 1 reprezintă culoarea albă. După scalarea numerelor,
imaginea este transformată dintr-o matrice într-un vector unidimensional.
Dimensiunea vectorului este egală cu produsul dintre înălt ,imea s ,i lăt ,imea
imaginii. Scalarea se face folosind formula 2.2.
vi=2∗gi
255−1 (2.2)
14

Capitolul 3
Ret,ele neurale artificiale
3.1 Introducere
O ret ,ea neurală este un sistem care este proiectat să imite modul în care
creierul (uman sau animal) execută o sarcină sau o funct ,ie de interes [Hay07].
Încă de la începutul dezvoltării acestora, lucrul la ret ,elele neurale s-a ba-
zat pe faptul că există o mare diferent ,ă între modul în care creierul uman
efectuează calcule s ,i modul în care ele sunt efectuate de către un calculator.
Creierul este un calculator foarte complex, neliniar s ,i paralel. El poate să îs ,i
organizeze părt ,ile componente, neuronii, în as ,a fel încât să execute anumite
calcule (recunoas ,terea de modele, percept ,ia s ,i controlul mis ,cării) mult mai
repede decât cel mai rapid calculator digital existent în ziua de azi. Sistemul
vizual ne furnizează o reprezentare a mediului înconjurător s ,i informat ,iile de
care avem nevoie pentru a interact ,iona cu acesta. De asemenea, creierul exe-
cută tot timpul sarcini de recunoas ,tere perceptuală în aproximativ 100-200
milisecunde(deexemplurecunoas ,teofat ,ăfamiliarăîntr-oscenănefamiliară).
O astfel de sarcină poate dura mai multe zile pe un calculator clasic.
Un alt exemplu ar fi sonarul unui liliac. Sonarul este un sistem activ
de ecolocat ,ie. Pe lângă informat ,iile despre distant ,a către o t ,intă, sonarul
unui liliac furnizează informat ,ii despre viteza relativă a t ,intei, dimensiunea ei
precums ,ipozit ,iaeiîntr-oscenătridimensională. Calculelecomplexenecesare
pentru obt ,inerea acestor informat ,ii se petrec într-un creier de dimensiunea
unei prune.
Dar cum reus ,es,te creierul unui om sau al unui liliac să efectueze aceste
15

3.1. INTRODUCERE
sarcini? La nas ,tere, un creier are o structură bine definită s ,i are capacitatea
de a-s ,i construi propriile lui reguli care se pot numi experient ,ă. Experient ,a
este acumulată de-a lungul timpului, iar cea mai mare schimbare în structura
creierului se petrece în primii doi ani de la nas ,tere, des ,i schimbările în creier
continuă mult timp după aceea.
Astfel, o ret ,ea neurală poate fi descrisă s ,i ca un procesor masiv paralel s ,i
distribuit care este alcătuit din unităt ,i simple de procesare numite neuroni.
Acest procesor are o înclinat ,ie naturală de a înmagazina cunos ,tint ,e care
alcătuiesc experient ,a s ,i de a face cunos ,tint ,ele disponibile pentru a fi folosite.
Ea se aseamănă cu un creier în două aspecte:
1. Cunos ,tint ,ele sunt achizit ,ionate de către ret ,ea din mediul înconjurător
printr-un proces de învăt ,are
2. Rezistent ,ele conexiunilor dintre neuroni, cunoscute sub numele de pon-
deri sinaptice, sunt folosite pentru a memora cunos ,tint ,a efectivă
Un neuron este o unitate de procesare a informat ,iei care este fundamen-
tală pentru funct ,ionarea ret ,elei neurale. Părt ,ile sale componente sunt inspi-
rate din neuronul biologic. Acestea sunt [Hay07]:
1. O mult ,ime de sinapse sau legături cu alt ,i neuroni. Fiecare sinapsă
este caracterizată printr-o pondere. Mai exact, un semnal conectat la
intrarea unei sinapse este înmult ,it cu ponderea ei sinaptică. O pondere
sinaptică se poate afla într-un interval care cont ,ine s ,i valori negative.
2. Un sumator care este folosit pentru însumarea tuturor semnalelor de
intrare după ce au fost înmult ,ite cu ponderile sinaptice ale neuronului.
3. O funct ,ie de activare care limitează valoarea semnalului unui neuron.
Funct ,ia de activare se mai numes ,te s ,i funct ,ie de restrângere, deoarece
ea restrânge valoarea neuronului într-un anumit interval de valori.
4. Modelul neuronal mai cont ,ine s ,i o valoare aplicată extern numită in-
fluent ,ă. Ea se însumează împreună cu ponderile sinaptice înainte de
aplicarea funct ,iei de limitare s ,i este folosită pentru a reduce sau mări
valoarea de intrarea a funct ,iei de activare.
16

3.2. MODUL DE FUNCT ,IONARE
3.2 Modul de funct ,ionare
Informat ,iileret ,inutedecătreoret ,eaneuralăsenumesccunos ,tint ,e. Aceste
cunos ,tint ,e se referă la informat ,ia stocată folosită de către o persoană sau
un calculator pentru a interpreta, prezice s ,i răspunde într-un mod potrivit
mediului înconjurător [Hay07].
Scopul unei ret ,ele neurale este de a învăt ,a un model al lumii (mediului în-
conjurător) în care este inclusă s ,i de a ment ,ine modelul actualizat cu evolut ,ia
mediului înconjurător pentru a putea obt ,ine obiectivele dorite. Cunos ,tint ,ele
despre mediu se împart în două categorii:
1. Starea cunoscută a mediului, informat ,ii care se cunosc s ,i care au fost
cunoscute. Acest mod de cunos ,tint ,ă se numes ,te informat ,ia anterioară.
2. Observat ,iilefăcutedespremediu, obt ,inutefolosindanumit ,isenzoricare
măsoară mediul în care operează ret ,eaua neurală. De obicei ele cont ,in
zgomot s ,i anumite erori datorită imperfect ,iunilor din senzori s ,i din sis-
tem. Observat ,iilealcătuiescexemplelefolositepentruaantrenaret ,eaua
neurală.
Exemplele pot fi etichetate s ,i neetichetate. În cazul celor etichetate fie-
care exemplu cont ,ine, pe lângă semnalul de intrare, o etichetă care defines ,te
răspunsul dorit al ret ,elei. Exemplele neetichetate sunt alcătuite din semnalul
de intrare s ,i nimic mai mult. Un set de exemple, etichetate sau nu, repre-
zintă cunos ,tint ,e despre mediul înconjurător pe care ret ,eaua neurală îl poate
modela prin procesul de învăt ,are.
Procedeulprin care seefectueazăprocesulde învăt ,areestenumitalgoritm
de învăt ,are. Scopul acestuia este de a modifica ponderile sinaptice ale unei
ret ,ele pentru a atinge un anumit obiectiv. Metoda modificării ponderilor
este cea mai folosită în practică, dar este posibil ca o ret ,ea să îs ,i modifice s ,i
topologia, lucru care este motivat de faptul că neuronii din creier pot muri
s,i alte conexiuni sinaptice pot fi formate.
Algoritmii de învăt ,are se pot împărt ,i în trei categorii [Duf09]:
•Învăt ,area supervizată se face folosind un set de antrenare care con-
t,ine exemple etichetate. Algoritmul prezintă exemplele în mod iterativ
ret ,elei s ,i adaptează parametrii acesteia pe baza distant ,ei dintre rezul-
tatele date de ret ,ea s ,i rezultatele dorite.
•Învăt ,area nesupervizată se face folosind un set de antrenare care
17

3.3. BENEFICIILE RET ,ELELOR NEURALE
cont ,ine exemple neetichetate. Structura datelor s ,i structura ret ,elei
sunt necunoscute s ,i vor fi determinate de către algoritm. De exemplu,
în cazul unei sarcini de clasificare, clasele indivizilor nu sunt cunoscute
s,i vor fi aproximate folosind o măsură a distant ,ei. Această tehnică se
numes ,te clustering.
•Învăt ,area prin consolidare este un caz în care rezultatul funct ,iei
care trebuie învăt ,ată este necunoscut s ,i antrenarea constă în ajustarea
unor parametri în funct ,ie de răsplată s ,i pedeapsă. Dacă ret ,eaua nu
produce rezultate (destul de) bune, ea este “penalizată” iar parametrii
ei sunt ajustat ,i corespunzător. În caz contrar, ea este “răsplătită”.
Exemplele folosite pentru a antrena o ret ,ea neurală pot fi pozitive sau
negative. De exemplu, dacă antrenăm un model pentru a recunoas ,te cercuri,
acel model ar putea recunoas ,te s ,i elipse ca fiind cercuri. Pentru a rezolva
această problemă, vom include s ,i elipse în mult ,imea de exemple pentru a
antrena ret ,eaua să nu confunde cercurile cu elipsele.
3.3 Beneficiile ret ,elelor neurale
Este evident că o ret ,ea neurală îs ,i derivă puterea computat ,ională din
structura sa masiv paralelă s ,i din abilitatea de a învăt ,a s ,i astfel de a genera-
liza. Generalizarea se referă la abilitatea de a produce ies ,iri rezonabile pentru
intrări care nu au mai fost întâlnite în timpul antrenării. Aceste capabilităt ,i
de procesare a informat ,iei permit ret ,elelor neurale să rezolve probleme com-
plexe s ,i de dimensiuni mari care altfel sunt inabordabile.
Folosirea ret ,elelor neurale oferă anumite proprietăt ,i benefice:
•Neliniaritatea Un neuron poate fi liniar sau neliniar. O ret ,ea neu-
rală formată dintr-o interconexiune de neuroni neliniari este de aseme-
nea neliniară. Mai mult, această neliniaritate este distribuită în toată
ret ,eaua. Neliniaritatea este o proprietate importantă mai ales dacă me-
canismul care generează intrările pentru ret ,ea este de asemenea neliniar
(de exemplu un semnal audio).
•Adaptabilitatea Ret ,elele neurale au capacitatea de a-s ,i adapta pon-
derile sinaptice în funct ,ie de mediul înconjurător. De exemplu, o ret ,ea
neurală antrenată să opereze într-un anumit mediu poate fi reantre-
nată cu us ,urint ,ă să reziste la schimbări minore în acel mediu. Mai
18

3.4. ÎNVĂT ,ARE PROFUNDĂ – DEEP LEARNING
mult, atunci când operează într-un mediu care se schimbă în timp, ea
poate fi proiectată să îs ,i modifice ponderile sinaptice în timp real.
•Informat ,ie contextuală Cunos ,tint ,ele sunt reprezentate de însăs ,i sta-
rea de activare a unei ret ,ele neurale. Fiecare neuron din ret ,ea este
afectat de către activitatea globală a celorlalt ,i neuroni din ret ,ea. În
consecint ,ă, informat ,ia contextuală este folosită în mod natural de că-
tre o ret ,ea neurală.
•Tolerant ,a la erori O ret ,ea neurală are potent ,ialul de a fi în mod ine-
rent tolerantă la erori, adică de a fi capabilă de calcule robuste în sensul
în care performant ,a acesteia se degradează în mod grat ,ios în condit ,ii
de operare nefavorabile. În acelas ,i timp, datorită naturii distribuite a
informat ,iei stocate în ret ,ea, erorile trebuie să fie destul de mari înainte
ca răspunsul ret ,elei să fie degradat în mod serios.
3.4 Învăt ,are profundă – deep learning
Învăt ,area profundă este un nou câmp al inteligent ,ei computat ,ionale care
dores ,te să se apropie cât mai mult de inteligent ,a artificială. Pentru a atinge
acest scop se folosesc modele care sunt compuse din mai multe straturi de
operat ,iuni neliniare, de exemplu ret ,ele neurale cu multe straturi ascunse
[Ben09]. Învăt ,area profundă atacă probleme în care învăt ,area clasică super-
ficială este afectată de “blestemul dimensionalităt ,ii” s ,i obt ,ine rezultate bune
[ARCPM11].
As ,a numitul blestem al dimensionalităt ,ii se referă la problemele care apar
atunci când analizăm spat ,ii cu un număr mare de dimensiuni (sute sau
chiar mii de dimensiuni). Problema este că pe măsură ce dimensionalita-
tea spat ,iului cres ,te liniar, volumul spat ,iului cres ,te exponent ,ial, atât de rapid
încât volumul de informat ,ii devine rar, risipit în tot spat ,iul de intrare. Din
această cauză, arhitecturile clasice superficiale nu reus ,esc să obt ,ină rezultate
bune în situat ,ii care implică dimensionalitate mare, cum ar fi procesarea de
imagini.
Caracteristica principală a învăt ,ării profunde este că ea foloses ,te multiple
nivele de reprezentare s ,i abstract ,ie pentru a înt ,elege informat ,iile care îi sunt
prezentate, cum ar fi imagini, sunet s ,i text. Aceste tipuri de ret ,ele sunt
folositoare mai ales în domeniul procesării de imagini, unde informat ,iile sunt
greu de prelucrat s ,i de abstractizat.
19

3.4. ÎNVĂT ,ARE PROFUNDĂ – DEEP LEARNING
În inteligent ,a computat ,ională clasică, o mare problemă este selectarea
unui spat ,iu de caracteristici potrivit în care obiectele învăt ,ate să aibă anu-
mite proprietăt ,i folositoare pentru rezolvarea problemei. De exemplu, într-o
situat ,ie de clasificare binară, este nevoie ca cele două clase să fie separate
printr-un hiperplan. Atunci când această proprietate nu este satisfăcută, o
posibilitate ar fi să se mapeze obiectele într-un spat ,iu de trăsături interme-
diar în care ele sunt liniar separabile. Spat ,iul intermediar poate fi specificat
manual, poate fi implementat folosind o funct ,ie nucleu, sau poate fi învăt ,at
automat. Primele două variante au fost folosite de către arhitecturile exis-
tente, dar ele au neajunsul că necesită un expert uman sau calcule complexe
care durează mult timp. Învăt ,area profundă foloses ,te a treia alternativă,
învăt ,ând automat trăsăturile folosind arhitecturi adânci alcătuite din multi-
ple straturi de unităt ,i de procesare neliniare. Astfel, acestea sunt capabile
de a reprezenta trăsături mult mai complexe din datele de intrare.
Metodele de învăt ,are profundă formează ierarhii care cont ,in trăsături de
nivel înalt formate din compunerea trăsăturilor de nivel scăzut. Învăt ,area
automată a trăsăturilor în multiple nivele de abstract ,ie permite unui sistem
să învet ,e funct ,ii complexe care transformă intrările în ies ,iri folosind doar
informat ,iile din datele de intrare, fără să depindă complet de caracteristici
create de oameni. Acest lucru este în special valabil pentru abstract ,ii de
nivel înalt care deseori nu pot fi specificate de oameni într-un mod explicit.
Capacitatea de a învăt ,a trăsături complexe în mod automat devine din ce în
ce mai importantă pe măsură ce cantitatea de date disponibile continuă să
crească.
Arhitecturile adânci folosite în învăt ,area profundă au s ,i probleme. Antre-
narea lor este o sarcină dificilă, iar metodele de antrenare care funct ,ionează
pentru arhitecturile clasice nu sunt la fel de eficiente atunci când sunt apli-
cate arhitecturilor adânci, iar adăugarea de noi straturi într-o ret ,ea neurală
clasicănuduceîntotdeaunalarezultatemaibune. Deexemplu, cucâtoret ,ea
neurală are mai multe straturi, efectul propagării înapoi a erorilor este mai
mic asupra primelor straturi, determinând ret ,eaua să se blocheze în minime
locale s ,i să nu găsească o solut ,ie globală pentru problema analizată. Din ca-
uza aceasta ret ,elele neurale clasice sunt deseori limitate să aibă numai unul
sau două straturi ascunse. Problema a fost rezolvată prin introducerea unei
antrenări în două etape a ret ,elelor adânci. Prima etapă este o pre-antrenare
nesupervizată a fiecărui strat în parte, apoi urmând o antrenare supervizată
a întregii ret ,ele folosind exemplele din setul de date [BLPL07].
Dincategoriaret ,elelorneuralebazatepeînvăt ,areprofundăfacparteret ,ele
20

3.5. UTILIZĂRI ALE RET ,ELELOR NEURALE
care sunt inspirate din adâncimea arhitecturală a creierului uman, folosind
multe straturi intermediare pentru a-s ,i atinge scopul. Dintre acestea amin-
tim:
•Ret ,elele neurale de convolut ,ie
•Ret ,ele cu auto codificare
•Mas ,inile Boltzmann restrict ,ionate
•Ret ,elele de tipul deep belief
Învăt ,area profundă este extrem de eficientă atunci când datele de intrare
iau forma unor funct ,ii cu o variant ,ă ridicată. Pentru ca arhitecturile clasice
să aibă rezultate bune în aceste cazuri este necesară capturarea unui număr
mare de exemple etichetate. Pre-antrenarea nesupervizată permite ret ,elelor
cu arhitecturi adânci să obt ,ină un grad ridicat de generalizare s ,i în situat ,ii în
care numărul exemplelor este limitat, prin pozit ,ionarea ret ,elei într-o regiune
a spat ,iului de parametri din care antrenarea supervizată poate să coboare
către un minim global.
Învăt ,area profundă s ,i ret ,elele cu arhitecturi adânci au fost aplicate cu
succes pentru recunoas ,terea automată a cifrelor scrise de mână (figura 3.1b),
navigarea off-road a unui robot (figura 3.1c) s ,i procesarea semnalelor audio
[Teb95].
3.5 Utilizări ale ret ,elelor neurale
Ret ,elele neurale au fost s ,i sunt folosite în mai multe aplicat ,ii practice. Ele
au permis crearea de noi tehnologii care păreau imposibile până de curând.
În continuare vom prezenta câteva din utilizările ret ,elelor neurale.
3.5.1 Găsirea paginilor web relevante
Motoarele de căutare pe internet folosesc ret ,elele neurale pentru a sorta
rezultatele unei căutări în funct ,ie de relevant ,ă [GB00]. Ret ,elele neurale fo-
losesc structura paginilor s ,i legăturile dintre ele pentru a determina gradul
de potrivire dintre pagină s ,i textul introdus de utilizator. Astfel, paginile
cele mai relevante apar mai sus în listă, iar cele mai put ,in relevante mai jos,
ajutând utilizatorul să găsească informat ,ii mai us ,or.
21

3.5. UTILIZĂRI ALE RET ,ELELOR NEURALE
3.5.2 Prezicerea bursei
În domeniul economiei, ret ,elele neurale au fost folosite pentru crearea
unui sistem care prezice pret ,urile la bursă pentru act ,iunile anumitor com-
panii [AO07]. Ca date de intrare s-au folosit diferit ,i indicatori care au fost
colectat ,i de-a lungul unei perioade de cinci ani. Sistemul a reus ,it să prezică
pret ,ul act ,iunilor cu eroare minimă. Performant ,a acestui algoritm poate fi
vizualizată în figura 3.1a.
3.5.3 Recunoas ,tere de caractere
În domeniul procesării de imagini, ret ,elele neurale sunt folosite pentru
sarcini de recunoas ,tere a caracterelor s ,i a cuvintelor [LBBH01]. Unul dintre
cele mai performante sisteme foloses ,te chiar ret ,elele neurale de convolut ,ie.
Datele de intrare sunt alcătuite din aproximativ 60000 de cifre scrise de
mână. Sistemul este capabil de a recunoas ,te cifrele chiar dacă imaginea de
intrare cont ,ine zgomot, sau dacă cifra este distorsionată. Ret ,elele neurale
stau în spatele majorităt ,ii aplicat ,iilor comerciale care pot citi text dintr-un
document scanat. Această ret ,ea este prezentată în figura 3.1b.
3.5.4 Traducerea automată a documentelor
Fără ajutorul ret ,elelor neurale am fi avut nevoie de un lingvist pentru a
crea un set bine definit de reguli împreună cu un dict ,ionar care să permită
traducerea automată a textului dintr-o limbă în alta. Aceasta este o sarcină
dificilă deoarece textul care trebuie tradus nu este întotdeauna corect din
punct de vedere gramatical, iar crearea unui set de reguli care să acopere o
mare parte a unei limbi este foarte dificilă. Folosind ret ,elele neurale, putem
utiliza exemple de documente gata traduse pentru a învăt ,a cum să traducem
dintr-o limbă în alta [CCV97].
3.5.5 Diagnosticarea cancerului
În domeniul medicinei, ret ,elele neurale sunt folosite pentru a clasifica
diferite tipuri de cancer s ,i de a distinge între forme maligne s ,i forme benigne
de cancer [Yao99]. Datele de intrare cont ,in diferite măsurători ale masei
22

3.5. UTILIZĂRI ALE RET ,ELELOR NEURALE
canceroase, precum s ,i rezultatele unor teste medicale. Aceste sisteme permit
doctorilor să dea diagnostice mai precise într-un timp mai scurt.
3.5.6 Recomandarea de cărt ,i sau filme
Diverse magazine online folosesc algoritmi bazat ,i pe ret ,ele neurale pen-
tru a recomanda produse utilizatorilor săi [MRW08]. De exemplu, site-ul
Amazon foloses ,te ret ,ele neurale pentru a recomanda cărt ,i, iar site-ul Net-
flix le foloses ,te pentru a recomanda filme. Pe baza cărt ,ilor comandate sau
filmelor văzute, dar s ,i de scorurile acordate lor, ret ,elele neurale continuă să
învet ,e despre preferint ,ele utilizatorului s ,i oferă recomandări din ce în ce mai
bune. Acest lucru este benefic pentru companii deoarece dacă sugestiile sunt
bune, utilizatorii vor cumpăra cărt ,ile sau filmele sugerate s ,i vor genera profit
pentru firme.
3.5.7 Recunoas ,terea vocală
În domeniul procesării audio, ret ,elele neurale au fost folosite pentru a
recunoas ,te cuvintele rostite de oameni s ,i înregistrate folosind un microfon
[Teb95]. Datele de intrare sunt alcătuite din fis ,iere audio cu aproape 4000
de propozit ,ii rostite de diferite persoane. Cele mai performante ret ,ele sunt
cele bazate pe modele Markov ascunse. Această tehnologie se regăses ,te în
majoritatea dispozitivelor care au funct ,ii de recunoas ,tere vocală, precum s ,i
în smartphone-urile actuale.
3.5.8 Autovehicule autonome
Probabil cel mai complex sistem construit cu ajutorul ret ,elelor neurale a
fost cel de a crea o mas ,ină care să se conducă singură. Acest lucru a fost
reus ,it în anul 2005 de către o echipă de la Universitatea Stanford [TMD+06].
Aces ,tia au construit un sistem care a permis unei mas ,ini să navigheze un
traseu de 220 de kilometri în des ,ertul Mojave mai rapid decât alte mas ,ini
concurente. Mas ,ina poate fi văzută în figura 3.1c.
23

3.5. UTILIZĂRI ALE RET ,ELELOR NEURALE
(a) Prezicerea bursei [AO07]
(b) Recunoas ,terea de caractere [LBBH01]
(c) Stanley, mas ,ina care a câs ,tigat concursul DARPA în anul 2005 [TMD+06]
Figura 3.1: Aplicat ,ii ale ret ,elelor neurale
24

Capitolul 4
Ret,ele neurale de convolut ,ie
4.1 Introducere
Ret ,elele neurale de convolut ,ie combină trei idei arhitecturale pentru a
obt ,ine invariant ,e la translat ,ie, scalare s ,i deformare: câmpuri de receptivitate
locală, ponderi partajate s ,i subes ,antionarea [LBBH01].
Câmpurile de receptivitate locală se referă la faptul că fiecare neuron
dintr-unstratalret ,eleineuraledeconvolut ,ieprimes ,teintrăridintr-omult ,ime
de neuroni care se află într-o vecinătate mică a stratului precedent. Ideea
derivă din anii 1960, odată cu descoperirea cercetătorilor Hubel s ,i Wiesel a
unor neuroni local sensibili în sistemul vizual din creierul unei pisici [HW62].
Folosindaceastătehnică, fiecareneuronpoatesăextragătrăsăturielementare
din imaginea de intrare, precum colt ,uri sau muchii. Ele sunt apoi combinate
de către straturile următoare pentru a detecta trăsături de ordin mai înalt.
Distorsiunile sau translat ,iile imaginilor de intrare pot determina ca pozit ,iile
trăsăturilor să varieze.
Este probabil ca detectorii care sunt folositori într-o parte a imaginii să
fie folositori în toată imaginea. Această observat ,ie poate fi folosită pentru
a fort ,a ca tot ,i neuronii care primesc valori din diferite părt ,i ale imaginii de
intrare să aibă aceleas ,i ponderi sinaptice. O mult ,ime de astfel de neuroni
se numes ,te o hartă de trăsături1, iar tot ,i neuronii dintr-o hartă partajează
aceleas ,i ponderi. De asemenea, partajarea ponderilor permite ret ,elei de a
construi mult ,imi de trăsături mai abstracte, îmbunătăt ,ind rezultatele.
1În engleză: feature map
25

4.2. STRUCTURA UNEI RET ,ELE NEURALE DE CONVOLUT ,IE
Odată ce o trăsătură a fost detectată, pozit ,ia ei exactă este mai put ,in
importantă, fiind relevantă numai pozit ,ia ei relativ la alte trăsături. Mai
mult, pozit ,ia exactă a acelei trăsături poate fi chiar dăunătoare, deoarece
aceste pozit ,ii pot varia pentru diferite imagini ale aceleias ,i persoane. O
modalitatesimplădeareducepreciziapozit ,iilorestedeareducedimensiunea
hărt ,ilor de trăsături printr-o operat ,iune de subes ,antionare care reduce atât
rezolut ,ia hărt ,ilor cât s ,i senzitivitatea la distorsiuni s ,i translat ,ii.
Subes ,antionarea este un procedeu prin care se reduce dimensiunea unei
imagini. Aceasta nu trebuie confundată cu es ,antionarea, care este un proce-
deu prin care se alege o submult ,ime de indivizi dintr-o populat ,ie mai mare.
Folosind subes ,antionarea putem reduce de exemplu dimensiunea unei ima-
gini la jumătate împărt ,ind imaginea originală în bucăt ,i de 2×2 pixeli,
iar apoi efectuând media intensităt ,ilor celor 4 pixeli din fiecare bucată. In-
tensitatea rezultată este atribuită unui singur pixel din imaginea rezultată,
astfel reducând dimensiunea imaginii în jumătate. Subes ,antionarea se mai
poate efectua folosind funct ,ia maxim în locul mediei aritmetice. Astfel se
vor îmbunătăt ,i rezultatele ret ,elei neurale, deoarece valoarea neuronului cu
cel mai mare răspuns este transmisă mai departe.
Ret ,elele neurale de convolut ,ie au fost aplicate cu succes în domeniul pro-
cesării de imagini pentru rezolvarea mai multor probleme dificile precum
recunoas ,terea de caractere [LBBH01] s ,i recunoas ,terea facială [LGTB97].
4.2 Structura unei ret ,ele neurale
de convolut ,ie
O ret ,ea neurală de convolut ,ie este alcătuită dintr-o succesiune de stra-
turi, fiecare strat efectuând anumite operat ,iuni pe valorile de ies ,ire ale stra-
tului anterior. Straturile folosite într-o ret ,ea neurală de convolut ,ie se împart
în mai multe tipuri: strat de intrare ,strat de convolut ,ies,istrat de
subes ,antionare . Fiecare strat poate avea una sau mai multe hărt ,i de trăsă-
turi de dimensiuni egale. Structura unei ret ,ele de convolut ,ie este prezentată
în figura 4.1.
Stratul de intrare este primul strat dintr-o ret ,ea neurală de convolut ,ie.
Scopul lui este de a fi folosit ca intrare de către straturile care urmează,
as,adar nu efectuează nici o operat ,iune. Pentru a calcula răspunsul ret ,elei la
o imagine de intrare, ea va fi copiată pe neuronii din stratul de intrare, iar
26

4.2. STRUCTURA UNEI RET ,ELE NEURALE DE CONVOLUT ,IE
intrareconvoluție
subeșantionareconvoluție
subeșantionareconvoluție
Figura 4.1: Structura unei ret ,ele neurale de convolut ,ie
apoi straturile următoare vor prelucra acele intrări până ce răspunsul va fi
determinat. Stratul de intrare poate cont ,ine o singură hartă de trăsături (în
cazul unei imagini cu nuant ,e de gri), sau poate cont ,ine mai multe astfel de
hărt ,i (trei în cazul unei imagini color).
Stratul de convolut ,ie efectuează mai multe operat ,ii de convolut ,ie pe valo-
rile stratului anterior. Fiecare neuron din acest strat efectuează o operat ,iune
de convolut ,ie pe o parte a stratului de intrare. Neuronii sunt grupat ,i în mai
multe hărt ,i de trăsături yj, iar neuronii din fiecare hartă partajează aceleas ,i
ponderi. Astfel, fiecare hartă efectuează o convolut ,ie diferită pe stratul de
intrareyfolosind nucleul wde dimensiuni sx×sy. Convolut ,ia este urmată
de adunarea unei valori de influent ,ăbs,i apoi de aplicarea unei funct ,ii de
activareφ.
Un strat de convolut ,ie poate fi conectat la un strat de intrare în mod total
sau part ,ial. Stratul de intrare poate să cont ,ină mai multe hărt ,i de trăsături,
iar fiecare hartă din stratul de convolut ,ie poate fi conectată la oricâte hărt ,i
(chiar toate) din stratul de intrare. Un strat de convolut ,ie cont ,ine câte un
set de ponderi diferite pentru fiecare conexiune. Astfel, putem spune că o
hartă de trăsături efectuează o combinat ,ie de convolut ,ii din diferite straturi
27

4.2. STRUCTURA UNEI RET ,ELE NEURALE DE CONVOLUT ,IE
de intrare. Dacă se foloses ,te modul de conexiune total, fiecare hartă din
stratul de convolut ,ie este conectată la toate hărt ,ile din stratul de intrare.
Dacă se foloses ,te modul de conexiune part ,ial, fiecare hartă din stratul de
convolut ,ie este conectată la o submult ,ime a hărt ,ilor din stratul de intrare.
Operat ,iunea de convolut ,ie nu poate fi efectuată pe marginea imaginii
deoarece pixelii din margine nu au vecini în exteriorul imaginii. Am pu-
tea să efectuăm operat ,iunea s ,i pe margine dacă am considera că în afara
imaginii există pixeli imaginari de culoare neagră, dar acest lucru ar dăuna
algoritmului nostru pentru că introduce date inexistente în calcule. Astfel,
dimensiunea hărt ,ilor de trăsături din straturile de convolut ,ie va fi mai mică
decât cea a straturilor de intrare.
Formula care calculează convolut ,ia de la stratul l, aplicată pe stratul l−1,
este prezentată în ecuat ,ia 4.1, unde unde K={(u,v)∈N|0≤u < s xs,i
0≤v<s y}[Duf09].
y(l)
j(x,y) =φ
b(l)
j+/summationdisplay
i∈I/summationdisplay
(u,v)∈Kw(l)
ji(u,v)y(l−1)
i(x+u,y+v)
(4.1)
Dupăunstratdeconvolut ,ieurmeazădeobiceiunstratdesubes ,antionare.
Acest strat este folosit pentru a reduce dimensiunea hărt ,ilor s ,i de a face mo-
delul mai rezistent la translat ,ii s ,i distorsiuni. Un strat de subes ,antionare are
acelas ,i număr de hărt ,i ca s ,i stratul său de intrare, mics ,orând fiecare hartă în
parte. Există mai multe moduri de a efectua operat ,iunea de subes ,antionare,
dintre care amintim folosirea mediei intensităt ,ii pixelilor s ,i folosirea maxi-
mului intensităt ,ii acestora. În practică, folosirea maximului oferă rezultate
mai bune, ret ,eaua convergând mai repede. După determinarea valorilor
intensităt ,ilor pentru noile hărt ,i folosind media sau maximul, valorile sunt
înmult ,ite cu o pondere wj, iar la rezultat se adună o valoare de influent ,ă
bj. Pe valoarea rezultată se aplică funct ,ia de activare φ. Subes ,antionarea
stratuluil−1este descrisă în formula 4.2.
y(l)
j(x,y) =φ/parenleftBigg
b(l)
j+w(l)
j× max
(u,v)∈{0,1}2y(l)
j(2x+u,2y+v)/parenrightBigg
(4.2)
De obicei ultimul strat dintr-o ret ,ea neurală de convolut ,ie este un strat
de convolut ,ie care are dimensiunea nucleului egală cu dimensiunea hărt ,ilor
din stratul de intrare. Astfel, se va executa o combinat ,ie liniară care va lua
28

4.3. ALGORITMUL DE PROPAGARE ÎNAPOI A ERORII
în considerare toate valorile de pe toate hărt ,ile stratului de intrare. Hărt ,ile
de trăsături calculate de acest strat vor avea dimensiunea de 1 ×1 s ,i sunt
ies ,irile ret ,elei. Numărul ies ,irilor va fi egal cu numărul claselor care trebuie
prezise, iar algoritmul de antrenare va ajusta ponderile ret ,elei astfel încât o
anumită ies ,ire să fie maximă atunci când imaginea de intrare pentru ret ,ea
apart ,ine clasei corespunzătoare acelei valori de ies ,ire.
4.3 Algoritmul de propagare înapoi a erorii
Ret ,elele neurale de convolut ,ie se antrenează folosind algoritmul de propa-
gare înapoi a erorii. El a fost inventat pentru prima dată în anul 1969 dar a
fost ignorat până în anii 1980 când a fost aplicat cu succes în rezolvarea mai
multor probleme [RN09]. Acesta este un algoritm de învăt ,are supervizat care
defines ,te o funct ,ie de eroare Es,i aplică tehnica coborârii pe gradient2pentru
a minimiza funct ,iaEîn spat ,iul definit de ponderile ret ,elei. Combinat ,ia de
ponderi pentru care Eeste minim se consideră a fi o solut ,ie a problemei. O
problemă a algoritmului de propagare înapoi a erorii este că el nu garantează
că va găsi un minim global. Pentru a găsi gradientul erorii, această funct ,ie
trebuie să fie continuă s ,i diferent ,iabilă.
Procesuldeînvăt ,areestealcătuitdinmaimulteiterat ,ii, iarfiecareiterat ,ie
are două etape: propagarea înainte s ,i propagarea înapoi. În fiecare iterat ,ie se
parcurg imaginile din setul de învăt ,are, pe fiecare imagine executându-se mai
multe operat ,iuni. În etapa propagării înainte, fiecare imagine este prezentată
ret ,elei s ,i se calculează răspunsul pentru acea imagine. În etapa de propagare
înapoi, pe baza răspunsului dat de ret ,ea s ,i răspunsul dorit, se calculează
eroarea pentru neuronii din stratul de ies ,ire. Eroarea se propagă înapoi în
ret ,ea s ,i este folosită pentru a modifica ponderile sinaptice ale neuronilor din
fiecare strat. Iterat ,iile se repetă până când ret ,eaua ajunge la un stadiu de
convergent ,ă, iar ret ,eaua va oferi răspunsuri apropiate de cele dorite pentru
imaginile care se doresc a fi învăt ,ate.
Atingerea stadiului de convergent ,ă al ret ,elei se poate decide pe baza mai
multor factori:
•Eroarea pentru imaginile din setul de antrenare coboară sub un anumit
prag prestabilit.
•Eroarea pentru imaginile din setul de testare începe să crească.
2În engleză: gradient descent
29

4.3. ALGORITMUL DE PROPAGARE ÎNAPOI A ERORII
•Se atinge un număr prestabilit de iterat ,ii.
•Este depăs ,ită o anumită limită de timp.
În stratul de ies ,ire, eroarea este definită de diferent ,a dintre răspunsul dat
de ret ,ea s ,i răspunsul dorit. Din cauză că avem mai multe hărt ,i în stratul
de ies ,ire, fiecare hartă fiind compusă dintr-un singur număr, se va calcula
o eroare pentru fiecare hartă. Răspunsul dorit pentru o anumită persoană
este de o valoare mare pe pozit ,ia corespunzătoare acelei persoane s ,i de valori
mici în rest. Valoarea respectivă se numes ,te valoarea t ,intă a ret ,elei s ,i ea nu
trebuie să fie aproape de asimptotele funct ,iei de activare (±1) deoarece acest
lucru poate satura ponderile ret ,elei (mărindu-le către +∞), determinând
ret ,eaua să producă gradiente mari [LGTB97]. În aplicat ,ia descrisă s-a folosit
o valoare de 0.8. Astfel, erorile erride pe stratul de ies ,ire se calculează
conform formulei 4.3, unde valireprezintă valoarea de ies ,ire a neuronului i.
erri=

vali+ 0.8dacă i/negationslash=clasa corectă
vali−0.8dacă i =clasa corectă(4.3)
Funct ,ia de activare φpentru neuronii din ret ,ea este de obicei funct ,ia
tangentă hiperbolică prezentată în ecuat ,ia 4.4. Un grafic al funct ,iei este
prezentat în figura 4.2. Această funct ,ie este folosită deoarece valorile ei sunt
cuprinse între−1s,i+1. De asemenea, funct ,ia este derivabilă, iar derivata
ei pentru o anumită valoare se poate calcula în funct ,ie de valoarea funct ,iei
pentru acea valoare. Limitele funct ,iei sunt prezentate în ecuat ,ia 4.5, iar
derivata funct ,iei este prezentată în ecuat ,ia 4.6.
φ(x) = tanh(x) =1−e−x
1 +e−x(4.4)
lim
x→−∞tanh(x) =−1
lim
x→+∞tanh(x) = +1(4.5)
φ/prime(x) = tanh/prime(x) = 1−tanh2(x) (4.6)
La fiecare etapă al procesului de iterat ,ie, ponderile ret ,elei vor face un
mic pas în direct ,ia opusă celui mai abrupt gradient ∇E. Această modificare
este dată de ecuat ,ia 4.7 unde λeste rata de antrenare, iar w(l)
jireprezintă
ponderea legăturii de la neuronul ila neuronul jdin stratul l[Duf09].
30

4.3. ALGORITMUL DE PROPAGARE ÎNAPOI A ERORII
−3 −2 −1 0 1 2 3−1−0.500.51
xtanh(x)
Figura 4.2: Graficul funct ,iei tangentă hiperbolică
w(l)
ji←w(l)
ji+ ∆w(l)
ji=w(l)
ji−λ∂Ep
∂w(l)
ji(4.7)
Pentru stratul de ies ,ire, ponderile se modifică după ecuat ,ia 4.8, unde:
•y(l−1)
jeste valoarea de ies ,ire a neuronului jîn stratull−1
•δ(l)
k=ekφ/prime(V(l)
k)este gradientul local
•ek=ok−tkreprezintă eroarea
•V(l)
k=/summationtext
jw(l)
kjy(l−1)
jeste suma ponderată a tuturor intrărilor y(l−1)
jale
neuronului k
∆w(l)
kj=−λδ(l)
ky(l−1)
j (4.8)
Pentru un strat de convolut ,ie, eroarea ponderii w(l)
ji(u,v)care leagă harta
de trăsături ide hartajse calculează folosind formula 4.9. Aceasta este de
fapt o sumă pe toate pozit ,iile(x,y)din hartă, iar (u,v)reprezintă pozit ,ia
ponderii în nucleul convolut ,iei.
∆w(l)
ji(u,v) =−λ/summationdisplay
(x,y)/parenleftBig
δ(l)
j(x,y)y(l−1)
i(x+u,y+v)/parenrightBig
(4.9)
Pentru un strat de subes ,antionare, calculul este diferit deoarece există
câte o singură pondere s ,i o valoare de influent ,ă pentru fiecare legătură dintre
două hărt ,i. Eroarea ponderii w(l)
jicare leagă hărt ,ile de trăsături icujse
31

4.3. ALGORITMUL DE PROPAGARE ÎNAPOI A ERORII
calculează folosind formula 4.10. În cazul nostru, există o singură conexiune
pentru fiecare hartă de trăsături, as ,adari=jtot timpul. Variabilele sxs,i
syreprezintă dimensiunile ferestrei subes ,antionării.
∆w(l)
ji=−λ/summationdisplay
(x,y)δ(l)
j(x,y)sx/summationdisplay
m=1sy/summationdisplay
n=1y(l−1)
i(xsx+m,ys y+n)(4.10)
Eroarea pentru termenul de influent ,ă din straturile de convolut ,ie s ,i sub-
es,antionare se calculează separat fat ,ă de erorile pentru ponderi, folosind for-
mula 4.11.
∆b(l)
j=−λ/summationdisplay
(x,y)δ(l)
j(x,y) (4.11)
Înformulele4.8, 4.9s ,i4.10termenul δ(l)
jreprezintăgradientullocalpentru
hartajdin stratull. Gradientul depinde de tipul stratului l+1care urmează
stratuluil. Dacăstratul l+1esteunstratdeies ,ire, atuncisefoloses ,teformula
4.12, undeKeste numărul de neuroni din stratul l+1. Dacă stratul următor
este un strat de convolut ,ie, se foloses ,te formula 4.13 unde Kcreprezintă
mult ,imea hărt ,ilor din stratul l+ 1care sunt conectate la harta jdin stratul
l. De asemenea, trebuie notat faptul că nucleul de convolut ,ie nu se poate
aplica pe marginile hărt ,ii, astfel că acestea nu au fost incluse în sumă. Dacă
stratull+1este un strat de subes ,antionare, se foloses ,te formula 4.14 unde sx
s,isyreprezintă dimensiunile ferestrei, Ksreprezintă hărt ,ile din stratul l+ 1
care sunt conectate la harta jdin stratul l, iar⌊·⌋reprezintă funct ,ia parte
întreagă.
δ(l)
j(x,y) =K/summationdisplay
k=1/summationdisplay
(x,y)δ(l+1)
kw(l+1)
kj(x,y) (4.12)
δ(l)
j(x,y) =/summationdisplay
k∈Kc/summationdisplay
(u,v)δ(l+1)
k(x,y)·w(l+1)
kj(u,v) (4.13)
δ(l)
j(x,y) =/summationdisplay
k∈Ksδ(l+1)
k(⌊x/sx⌋,⌊y/sy⌋)·w(l+1)
kj (4.14)
32

4.4. SETURILE DE DATE FOLOSITE
4.4 Seturile de date folosite
Pentru testarea ret ,elei neurale de convolut ,ie am folosit setul de date ORL
[StHS94], care cont ,ine o mult ,ime de fet ,e capturate între anii 1992 s ,i 1994 la
laboratoarele de cercetare Olivetti din Cambridge, Marea Britanie. Acest set
de date cont ,ine câte 10 imagini diferite pentru 40 de persoane. Există unele
variat ,ii în expresiile faciale (ochi închis ,i/deschis ,i, persoane care zâmbesc s ,i
carenuzâmbesc). Toateimaginileaufostcapturateînfat ,aunuifundalînchis
omogen, iar fet ,ele sunt pozate frontal, existând variat ,ii în unghiul de rotat ,ie
s,i înclinare de până la 20 de grade. De asemenea există anumite variat ,ii în
scalare de aproximativ 10%. Figura 4.3 prezintă variat ,iile din cadrul unei
fet ,e din baza de date ORL.
De asemenea, am folosit s ,i setul de date Yale [BHK97] care este alcătuit
din 165 de imagini diferite, câte 11 imagini pentru fiecare dintre cele 15
persoane fotografiate. Imaginile cont ,in câteva variat ,ii ale expresiei faciale
(fericire, tristet ,e, clipire) s ,i ale iluminării (lumină din stânga sau dreapta).
Pentru unele persoane s-au capturat poze cu s ,i fără ochelari. Variat ,iile din
cadrul unei fet ,e din acest set de date sunt prezentate în figura 4.4.
Figura 4.3: O persoană din setul de date ORL
33

4.5. DETALII DESPRE SISTEMUL FOLOSIT
Figura 4.4: O persoană din setul de date Yale
4.5 Detalii despre sistemul folosit
Arhitectura ret ,elei folosite în prezenta lucrare a fost inspirată din lucrarea
[LGTB97]. Spredeosebiredeacealucrare,sistemulnostrununecesităoetapă
de reducere a dimensionalităt ,ii imaginilor înainte de a fi prezentate ret ,elei.
Singurele preprocesări aplicate imaginilor sunt cele descrise în sect ,iunea 2.4.
Ret ,eaua de convolut ,ie îs ,i extrage singură trăsăturile din informat ,iile prezente
în imagini. Aceasta este o caracteristică importantă a ret ,elei neurale de
convolut ,ie, deoarece nu are nevoie de operat ,iuni suplimentare pentru a putea
executa sarcina de clasificare.
Ret ,eaua este compusă din cinci straturi excluzând stratul de intrare. Pri-
mul strat este unul de convolut ,ie care cont ,ine 20 de hărt ,i de trăsături. Acest
strat efectuează o convolut ,ie cu un nucleu de dimensiunea 5×5pe imagi-
nea de intrare. Din cauză că imaginile de intrare au dimensiunea 32×32,
dimensiunea hărt ,ilor de trăsături din primul strat va fi egală cu 28×28. Al
doilea strat este unul de subes ,antionare care reduce dimensiunea hărt ,ilor din
primul strat la jumătate. Dimensiunea ferestrei celui de-al doilea strat este
2×2, iar dimensiunea hărt ,ilor celui de-al doilea strat este 14×14. Al doilea
strat are acelas ,i număr de hărt ,i ca s ,i primul strat, adică 20.
Următorul strat este unul de convolut ,ie cu 25 de hărt ,i de trăsături.
Convolut ,ia efectuată are un nucleu de 3×3s,i dimensiunea hărt ,ilor de trăsă-
turi va fi 12×12. După acest strat urmează încă un strat de subes ,antionare
care reduce dimensiunea celor 25 de hărt ,i la6×6. Ultimul strat este un
strat de convolut ,ie cu nucleul de 6×6care va cont ,ine 40 de hărt ,i de trăsă-
turi. Acest număr reprezintă numărul de persoane distincte din setul de date
folosit.
34

4.6. VIZUALIZAREA RET ,ELEI
Ponderile ret ,elei au fost init ,ializate cu numere aleatoare mici. Numerele
sunt distribuite uniform în intervalul (−2.4/Fi,2.4/Fi), undeFireprezintă
numărul de intrări ale neuronului i. Intervalul folosit, precum s ,i generarea
numerelor aleatoare în funct ,ie de numărul de intrări ale neuronului au fost
sugerate în lucrările [LBBH01] s ,i [LGTB97].
Setul de date a fost împărt ,it în două părt ,i: setul de antrenare s ,i setul de
testare. Setul de antrenare este cel folosit în algoritmul de propagare înapoi
a erorii pentru a antrena ret ,eaua, iar setul de testare este folosit exclusiv
pentru a calcula rata de acuratet ,e a ret ,elei. Jumătate din imaginile unei
anumite persoane sunt adăugate în setul de antrenare, iar cealaltă jumătate
în setul de testare. Rata de învăt ,are coboară liniar de la 0.03la0.0005în
timpul procesului de învăt ,are. Antrenarea ret ,elei se opres ,te atunci când este
atins un număr prestabilit de iterat ,ii. Pentru ca ret ,eaua să conveargă sunt
suficiente aproximativ 10 iterat ,ii.
Ret ,eaua poate furniza o măsură de confident ,ă pentru fiecare clasificare pe
care o realizează. Pentru a calcula această confident ,ă, mai întâi se normali-
zeazăvaloriledeies ,irealeneuronilorfolosindformula4.15, unde uireprezintă
valoarea de ies ,ire a neuronului ide pe ultimul strat al ret ,elei. Apoi, valoarea
confident ,ei se calculează folosind formula 4.16, unde yms,iy2mreprezintă cele
mai mari două valori din s ,irul de valori normalizate yi. Dacă diferent ,a dintre
yms,iy2meste mare înseamnă că persoana identificată de ret ,ea a câs ,tigat
detas ,at fat ,ă de restul persoanelor, pe când dacă diferent ,a este mică, ret ,eaua
este mai put ,in sigură despre rezultat. Diferent ,a este înmult ,ită cuymdeoare-
ce dorim să scădem valoarea confident ,ei în cazul în care cea mai mare valoare
este totus ,i mică.
yi=exp(ui)
/summationtextk
j=1exp(uj)(4.15)
c=ym(ym−y2m) (4.16)
4.6 Vizualizarea ret ,elei
După ce ajunge la un stadiu stabil de convergent ,ă, ret ,eaua reus ,es,te să de-
termine un set de parametri care detectează anumite caracteristici ale fet ,ei.
Convolut ,iile din primul strat aplicate pe imaginea de intrare fac să iasă în
35

4.6. VIZUALIZAREA RET ,ELEI
Figura 4.5: Răspunsul ret ,elei pentru o imagine de intrare
evident ,ă anumite trăsături faciale. Straturile următoare combină acele trăsă-
turi s ,i determină trăsături de nivel mai înalt. Ultimul strat sintetizează acele
trăsături s ,i determină identitatea persoanei pe baza fet ,ei acesteia. Figura
4.5 prezintă o vizualizare a operat ,iunilor efectuate de ret ,ea pe imaginea de
intrare.
Aceste imagini au fost determinate pornind de la valorile neuronilor din
fiecare strat al ret ,elei. Deoarece valorile sunt cuprinse între −1s,i+1, a
fost folosită o operat ,iune de scalare inversă formulei 2.2 pentru a transforma
fiecare hartă de trăsături a unui strat într-o imagine care poate fi afis ,ată pe
ecran. Operat ,iunea de scalare este prezentată în formula 4.17.
36

4.7. REZULTATELE SISTEMULUI
gi= (vi+ 1)∗255
2(4.17)
Parametrii ret ,elei neurale determină trăsăturile pe care ea le va extrage
din imaginile de intrare, iar analizând valorile de ies ,ire a neuronilor ret ,elei
putem observa care trăsături sunt importante pentru recunoas ,terea fet ,ei.
Pe prima coloană este prezentată imaginea de intrare după ce a fost pre-
procesată conform sect ,iunii 4.4. A doua coloană prezintă operat ,iunile efectu-
atedecătreprimulstratdeconvolut ,iepeimagineadeintrare. Putemobserva
că nucleele din acest strat se comportă ca nis ,te detectoare de muchii, reus ,ind
să identifice trăsături caracteristice ale fet ,ei: forma fet ,ei, pozit ,ia ochilor, a
nasului, a gurii etc. De asemenea, primul strat reus ,es,te să separe automat
fat ,a de fundal, o sarcină care este dificil de realizat folosind metode clasice
de procesare a imaginilor. A treia coloană prezintă operat ,iunile efectuate
de primul strat de subes ,antionare, care reduce dimensiunea imaginilor din
stratul precedent.
Coloana a patra reprezintă al doilea strat de convolut ,ie, care foloses ,te
alte nuclee pentru a extrage trăsături de nivel mai mare din imaginile stra-
tului precedent. Aceste trăsături sunt mai abstracte, dar putem distinge
forma fet ,ei din imaginea de intrare. Penultima coloană reprezintă al doilea
strat de subes ,antionare care mics ,orează s ,i mai mult dimensiunea imaginilor
din hărt ,ile stratului precedent. Ultima coloană reprezintă ultimul strat de
convolut ,ie, care foloses ,te trăsăturile din stratul precedent pentru a clasifica
imaginea de intrare. Putem observa că majoritatea hărt ,ilor dau un răspuns
foarte mic (culoare neagră), cu except ,ia ultimei hărt ,i care furnizează un răs-
puns puternic (culoarea albă). Acest lucru indică faptul că imaginea apart ,ine
ultimei persoane din setul de date, fapt ce este adevărat. Ret ,eaua a reus ,it
să clasifice imaginea cu succes.
4.7 Rezultatele sistemului
Sistemul descris în prezenta lucrare a fost folosit pentru a clasifica seturile
de date prezentate în sect ,iunea 4.4, iar rezultatele denotă o capacitate bună
de generalizare a ret ,elei. Un sistem care ar ghici răspunsul corect pentru
fiecare imagine ar da răspunsuri corecte într-un singur caz din 40 (pentru
baza de date ORL). Rata de acuratet ,e a unui astfel de sistem va fi de 2.5%.
37

4.7. REZULTATELE SISTEMULUI
Pentru comparat ,ie, ret ,eaua neurală de convolut ,ie a fost rulată de mai
multeoripeseturilededateORLs ,iYale. Întimpultesteloraufostmodificat ,i
mai mult ,i parametri ai ret ,elei pentru a vedea cum influent ,ează aces ,tia rezul-
tatele. De asemenea, algoritmul a fost rulat de mai multe ori, calculându-se
media s ,i abaterea pătratică medie pentru fiecare test. Rezultatele testelor
suntprezentateîn tabelul4.1. Media xafost calculatăfolosindformula 4.18a
iar abaterea pătratică medie sfolosind 4.18b.
x=1
nn/summationdisplay
i=1xi (4.18a)
s=/parenleftBigg1
n−1n/summationdisplay
i=1(xi−x)2/parenrightBigg1
2
(4.18b)
Împărt ,irea setu-
lui de date:Număr iterat ,iiAcuratet ,e ORL Acuratet ,e Yale
50% – 50% 10 91.8%±0.5% 84.9%±0.6%
60% – 40% 10 91.8%±1.9% 85.2%±2.1%
70% – 30% 10 93.8%±1.87% 92.2%±1%
80% – 20% 10 95.4%±0.7% 95.6%±2%
50% – 50% 15 90.6%±0.2% 81.6%±3.1%
60% – 40% 15 91.8%±1.07% 85.94%±0%
70% – 30% 15 93%±2% 91.82%±4.8%
80% – 20% 15 96.25%±1.25%95%±1.8%
Tabelul 4.1: Rezultatele ret ,elei de convolut ,ie
As ,a cum se poate observa din tabel, ret ,eaua neurală de convolut ,ie obt ,ine
rezultate foarte bune. Ret ,eaua reus ,es,te să ajungă la o stare stabilă după
10 iterat ,ii. Dacă mărim numărul de iterat ,ii la 15, rezultatele nu se schimbă
în mod semnificativ. De asemenea, putem observa că pe măsură ce cres ,tem
numărul de exemple din setul de antrenare, cres ,te s ,i acuratet ,ea ret ,elei.
În figura 4.6 se poate observa evolut ,ia măsurii de acuratet ,e a ret ,elei în
timpulantrenării. Dupăcumputemobserva, acuratet ,earet ,eleicres ,terepede,
după doar câteva iterat ,ii ajungând aproape de nivelul maxim, urmând să se
stabilizeze în ultimele iterat ,ii. Acuratet ,ea pe setul de antrenare ajunge la
100%, iar acuratet ,ea pe setul de testare urmăres ,te evolut ,ia acuratet ,ii pe setul
de antrenare, ret ,eaua reus ,ind să clasifice din ce în ce mai multe persoane pe
măsură ce procesul de antrenare avansează.
38

4.7. REZULTATELE SISTEMULUI
0 5 10 150%20%40%60%80%100%
Set antrenare
Set testare
Figura 4.6: Evolut ,ia erorii pe setul de antrenare s ,i setul de testare
012345678910incorectcorect
Figura 4.7: Confident ,ele ret ,elei de convolut ,ie pentru setul de date ORL
0 10 20 30 40 50 60 70incorectcorect
Figura 4.8: Confident ,ele ret ,elei de convolut ,ie pentru setul de date Yale
39

4.7. REZULTATELE SISTEMULUI
Ret ,eaua calculează s ,i o măsură de confident ,ă pentru fiecare rezultat pe
care îl furnizează. Acea măsură de confident ,ă poate fi folosită pentru a mări
acuratet ,ea ret ,elei prin respingerea rezultatelor care au o confident ,ă scăzută.
Figura 4.7 prezintă un grafic cu valorile confident ,elor pentru imaginile din
setul de date ORL, iar figura 4.8 prezintă un grafic similar pentru setul de
date Yale. Axa orizontală indică valoarea confident ,ei, iar axa verticală este
folosită pentru a diferent ,ia imaginile clasificate corect s ,i incorect. Putem
observa că atunci când confident ,a este mică, rezultatul dat de sistem este
gres ,it, iar când confident ,a este mare, rezultatul este corect. Unele imagini
sunt clasificate corect de către sistem des ,i ele au o valoare mică de confident ,ă,
dar putem observa că nici o imagine cu o rată mare de confident ,ă nu a fost
clasificată incorect de către sistem.
Înexemplulnostru, pesetuldedateORL,ceamaimareconfident ,ăpentru
un rezultat gres ,it este de 0.7191. Dacă am respinge toate rezultatele cu o
confident ,ă mai mică sau egală decât acea valoare, ret ,eaua noastră ar avea
o acuratet ,e de 100%, dar ar respinge 15 rezultate corecte pe lângă cele 3
rezultate incorecte. Valoarea de confident ,ă poate fi modificată pentru a regla
rata de acuratet ,e s ,i de respingere a sistemului.
Deoarece măsurile de confident ,ă sunt greu de interpretat de către un
utilizator, ele au fost împărt ,ite în trei clase: confident ,ă mică, medie s ,i mare.
Deoarece apar variat ,ii mari ale valorilor de confident ,ă pentru diferite seturi
de date, împărt ,irea trebuie făcută pe fiecare set de date în parte.
O confident ,ă este considerată mică dacă are valoarea mai mică de pragul
max{cm/10; 1}, medie dacă valoarea este între max{cm/10; 1}s,imax{2∗
cm/10; 2}s,i mare dacă este mai mare ca pragul max{2∗cm/10; 2}. Valoarea
cmreprezintă confident ,a maximă din setul de testare. Deoarece nu am dorit
ca aceste praguri să fie prea mici, am setat o valoare minimă de 1 pentru
primul prag s ,i 2 pentru cel de-al doilea prag.
40

Capitolul 5
Descrierea aplicat ,iei
Aplicat ,iaprezentatăîs ,ipropunesădemonstrezefunct ,ionareaalgoritmului
ret ,elelor neurale de convolut ,ie aplicat pentru problema recunoas ,terii faciale.
În acest capitol vom detalia aplicat ,ia prezentând structura s ,i modul ei de
funct ,ionare.
Aplicat ,ia poate fi folosită pe orice calculator care rulează sistemul de ope-
rare Microsoft Windows XP sau mai nou s ,i are instalată platforma Microsoft
.NET, versiunea 4.0 sau mai nouă. Aplicat ,ia nu are nevoie de o cantitate
mare de memorie RAM deoarece imaginile sunt mics ,orate înainte de a fi
folosite pentru antrenare.
5.1 Diagrama Use Case
În figura 5.1 este prezentată diagrama use case a aplicat ,iei. Există un
singur tip de utilizator care interact ,ionează cu aplicat ,ia pentru a alege setul
de date, a rula algoritmul de învăt ,are, a vizualiza rezultatele s ,i a salva s ,i
încărca ret ,eaua neurală.
Utilizatorul poate executa patru categorii de sarcini cu această aplicat ,ie,
categorii care includ mai multe act ,iuni ce permit lucrul cu ret ,eaua neurală.
Cele patru categorii sunt: lucrul cu setul de date, lucrul cu ret ,eaua neurală,
testarea ret ,elei neurale s ,i vizualizarea detaliilor ret ,elei neurale.
Încărcarea setului de date include următoarele activităt ,i:
41

5.1. DIAGRAMA USE CASE
Antrenare rețea
neuralăTestare rețea
neurală
Vizualizare detaliiSelectare locație set
de date
Selectare procent împărțire
Selectare parametri
Antrenare rețea
Salvare sau încărcare rețeaRulare pas de testare
Vizualizare rezultate
testare
Alege imagine
Vizualizează similaritățile
Vizualizează răspunsul rețeleiÎncărcare set de date
Citire imagini
Utilizator<<Include>><<Include>><<Include>>
<<Include>><<Include>><<Include>><<Include>><<Include>>
<<Include>><<Include>><<Include>>
Figura 5.1: Diagrama use case a aplicat ,iei
Selectarea locat ,iei setului de date
Utilizatorul poate să răsfoiască hard diskul său s ,i să aleagă un director
care cont ,ine un set de date cu imagini faciale.
Selectarea procentului de împărt ,ire
Setul de date ales de utilizator este împărt ,it în două: setul de antrenare
s,i setul de testare. Utilizatorul poate să aleagă procentul fiecărui set
de date din totalul imaginilor.
Citirea imaginilor
Pe baza locat ,iei setului de date s ,i a procentului ales, aplicat ,ia va crea
setul de date. Acest pas presupune citirea imaginilor de pe hard disk
s,i preprocesarea lor.
Antrenarea ret ,elei neurale include următoarele activităt ,i:
Selectarea parametrilor ret ,elei
Utilizatorul poate să stabilească rata de învăt ,are init ,ială pentru algo-
ritmul de propagare înapoi a erorii. De asemenea, el poate alege s ,i
numărul de iterat ,ii ale algoritmului.
Antrenarea ret ,elei
Cu setul de date ales mai devreme s ,i cu parametrii stabilit ,i, utilizatorul
poate începe procesul de antrenare al ret ,elei. În timpul acestui proces
utilizatorul va primi informat ,ii despre acuratet ,ea ret ,elei după fiecare
iterat ,ie. De asemenea, utilizatorul poate opri procesul de antrenare.
42

5.2. STRUCTURA APLICAT ,IEI
Salvarea sau încărcarea ret ,elei
Utilizatorul poate să salveze o ret ,ea antrenată într-un fis ,ier de pe hard
disk. Ulterior, utilizatorul poate să încarce fis ,ierul salvat mai devreme
pentru a lucra din nou cu ret ,eaua.
Testarea ret ,elei neurale include următoarele activităt ,i:
Rularea pasului de testare
Utilizatorul poate să testeze ret ,eaua antrenată pe setul de testare.
Aplicat ,ia va trece fiecare imagine prin ret ,eaua neurală s ,i va afis ,a clasa
detectată împreună cu măsura de confident ,ă.
Vizualizarea rezultatelor
Utilizatorul va putea vedea rezultatele testului: acuratet ,ea ret ,elei, nu-
mărul de imagini clasificate corect s ,i incorect, precum s ,i lista acestora.
Pentru fiecare imagine se va afis ,a măsura de confident ,ă, clasa reală s ,i
clasa furnizată de ret ,ea.
Vizualizarea detaliilor include următoarele activităt ,i:
Alegerea imaginii
Utilizatorul poate să aleagă o imagine din setul de testare care va fi
folosită pentru afis ,area rezultatelor.
Vizualizarea similarităt ,ilor
Pentru imaginea selectată anterior utilizatorul poate vedea valorile si-
milarităt ,ilor pentru persoanele din setul de antrenare. Astfel, utiliza-
torul poate observa care este persoana care se aseamănă cel mai mult
cu persoana din imaginea selectată.
Vizualizarea răspunsului ret ,elei
Utilizatorul poate vizualiza operat ,iunile efectuate de straturile ret ,elei
pentru imaginea selectată din setul de testare.
5.2 Structura aplicat ,iei
Aplicat ,ia este implementată în limbajul de programare C#, având o
interfat ,ă grafică construită folosind tehnologia WPF1. Aplicat ,ia este împărt ,i-
tă în două proiecte: implementarea algoritmului propriu-zis s ,i interfat ,a gra-
fică. Această separare permite refolosirea codului, implementarea putând fi
1Windows Presentation Foundation
43

5.2. STRUCTURA APLICAT ,IEI
utilizată în multe tipuri de aplicat ,ii fără a fi modificată. Pentru interfat ,a
grafică s-a folosit s ,ablonul arhitectural MVVM (Model-View-ViewModel)
care este o specializare a s ,ablonului MVC (Model-View-Controller). S ,ablonul
MVVM promovează o separare clară a logicii aplicat ,iei de logica interfet ,ei
grafice.
Proiectul în care este implementată ret ,eaua s ,i algoritmul de învăt ,are este
compus din două spat ,ii de nume care cont ,in mai multe clase:
•Spat ,iul de nume ConvNN cont ,ine implementarea ret ,elei neurale. El
cont ,ine clasele:
– NeuralNet – reprezintă ret ,eaua neurală de convolut ,ie.
– TrainingSet – reprezintă un set de date folosit de ret ,ea.
– Pattern – reprezintă un individ dintr-un set de date (o imagine
cu o fat ,ă).
– Neuron ,Connection – reprezintă un neuron al ret ,elei de convo-
lut ,ie s ,i o conexiune între doi astfel de neuroni.
– LayerBase – reprezintă clasa de bază pentru un strat din ret ,eaua
neurală. Din această clasă de bază sunt derivate clase care repre-
zintă diferitele straturi ale ret ,elei:InputLayer ,Convolution-
Layer,SubsamplingLayer .
•Spat ,iul de nume Utilscont ,ine clase cu diverse funct ,ii folosite de către
ret ,eaua neurală:
– ImageReader – clasa este folosită pentru a încărca un set de date
dintr-un director.
– MyRandom -aceastăclasăcont ,inediferitefunct ,iifolositepentru
a genera numere aleatoare.
– ParallelController – clasa este folosită pentru a controla gradul
de paralelizare al algoritmului.
Proiectul în care este implementată interfat ,a grafică este alcătuit din mai
multe spat ,ii de nume care cont ,in diverse clase s ,i ferestre care permit lucrul
cu o ret ,ea neurală de convolut ,ie. Acestea sunt:
•Spat ,iul de nume Controls cont ,ine definit ,ia unor elemente de interfat ,ă
folosite în proiect: ImageLoaderUserControl ,ListViewResour-
ces,OutputUserControl ,SimilarityUserControl ,TestingUser-
Control ,TrainingUserControl .
44

5.3. INTERFAT ,A GRAFICĂ
•Spat ,iul de nume Converters cont ,ine clase care efectuează diferite con-
versii în interfat ,a grafică: CorrectTickConverter ,PatternString-
Converter ,NotNullConverter ,ImageDataConverter ,Inverse-
BooleanConverter ,StringDoubleConverter .
•Spat ,iul de nume Utilscont ,ine clase care ajută la diferite funct ,ii legate
de animat ,ii sau liste din proiect: AnimationExtender ,Observable-
List,RelayCommand .
•Spat ,iul de nume ViewModel cont ,ine clase care definesc modelul pro-
iectului:MainViewModel ,IterationDetails ,SimilarityDetails s,i
TestingDetails .
•Proiectul cont ,ine două ferestre: MainWindow , care este fereastra
principală a aplicat ,iei s ,iAboutBox care este fereastra ce oferă in-
format ,ii despre aplicat ,ie.
5.3 Interfat ,a grafică
Fereastra principală a aplicat ,iei este împărt ,ită în două părt ,i: bara de
act ,iuni s ,i partea centrală a ferestrei. Bara de act ,iuni este împărt ,ită în patru
sect ,iuni, câte una pentru fiecare sarcină descrisă în figura 5.1: Data set ,
Training ,Testing s,iDetails. Partea centrală a aplicat ,iei oferă informat ,ii
despre diversele operat ,iuni. În continuare vom descrie această interfat ,ă s ,i
vom prezenta modul în care ea poate fi folosită.
5.3.1 Set de date
Atunci când utilizatorul alege sect ,iunea Data set, fereastra principală a
aplicat ,iei afis ,ează opt ,iunile pentru lucrul cu setul de date. Bara de act ,iuni îi
permite utilizatorului să aleagă s ,i să încarce un set de date, iar partea cen-
trală a ferestrei îi permite utilizatorului să vizualizeze setul de date încărcat.
Fereastra este prezentată în figura 5.2.
ButonulBrowse îi permite utilizatorului să aleagă un set de date cu
imagini faciale de pe hard disk. Atunci când este apăsat va apărea o fereastră
de dialog prin intermediul căreia utilizatorul poate să aleagă un director de
pe hard disk în care se află setul de date. Utilizatorul poate să anuleze acea
fereastră, caz în care alegerea sa nu va fi validată.
45

5.3. INTERFAT ,A GRAFICĂ
Figura 5.2: Fereastra principală, sect ,iuneaData set
Utilizatorul poate să seteze doi parametri care vor fi folosit ,i în timpul în-
cărcării bazei de date. Primul parametru este procentul în care va fi împărt ,it
setul de date, iar el se poate alege prin intermediul slider-ului Training set
percent . Valoarea sa indică procentul din setul de date care va fi adăugat
în setul de antrenare. Restul imaginilor vor fi adăugate în setul de testare.
Al doilea parametru indică dacă imaginile vor fi amestecate înainte de a fi
împărt ,ite în cele două categorii. Acest lucru poate fi ales prin intermediul
căsut ,eiRandomize patterns .
ButonulLoad images îi permite utilizatorului să execute operat ,iunea de
încărcare a imaginilor. Imaginile sunt citite din directorul ales anterior, sunt
amestecate dacă acest lucru este dorit s ,i vor fi împărt ,ite în setul de antrenare
s,i setul de testare folosind procentul ales anterior.
Partea centrală a ferestrei afis ,ează detalii despre setul de date după ce
imaginile au fost încărcate. În partea din stânga este afis ,ată o listă care
cont ,ine persoanele din setul de date, iar în partea dreaptă sunt afis ,ate ima-
ginile din setul de date atunci când este selectată o persoană din lista din
stânga. În partea de sus a ecranului este afis ,ată locat ,ia setului de date care a
fost ales anterior împreună cu două butoane prin intermediul cărora se poate
comuta între vizualizarea setului de antrenare sau setului de testare.
46

5.3. INTERFAT ,A GRAFICĂ
5.3.2 Antrenare
Atunci când utilizatorul alege această sect ,iune, fereastra aplicat ,iei afi-
s,ează opt ,iuni pentru lucrul cu ret ,eaua neurală. Bara de act ,iuni îi permite
utilizatorului să modifice diferit ,i parametri, să demareze procesul de antre-
nare s ,i de asemenea îi permite să salveze s ,i să încarce ret ,eaua neurală. Zona
centrală a ferestrei prezintă informat ,ii despre procesul de antrenare. Fereas-
tra este prezentată în figura 5.3.
Figura 5.3: Fereastra principală, sect ,iuneaTraining
Parametrul Maximum rate îi permite utilizatorului să modifice rata
de antrenare maximă pentru procesul de antrenare. În timpul procesului de
antrenare, rata va scădea liniar de la valoarea aleasă până la 0.0005. Parame-
trulIterations reprezintă numărul de iterat ,ii folosite în timpul procesului
de antrenare. Această valoare poate fi de asemenea modificată de utilizator.
Prin intermediul butonului Begin training , utilizatorul poate începe
procesul de antrenare, iar folosind butonul Cancel training , utilizatorul
poate anula procesul de antrenare în caz că se răzgândes ,te. Butoanele Save
s,iLoadpermit salvarea s ,i încărcarea ret ,elei neurale de pe hard disk. Atunci
când utilizatorul foloses ,te butoanele Save sau Load, el trebuie să aleagă
fis,ierul care va fi salvat sau încărcat prin intermediul unei ferestre de dia-
log.
47

5.3. INTERFAT ,A GRAFICĂ
Partea centrală a ferestrei oferă informat ,ii despre procesul de antrenare.
În partea de sus este afis ,ată rata curentă de antrenare în câmpul Current
training rate . Progresul operat ,iunii de antrenare este afis ,at prin interme-
diul barelor de progres Iteration progress s,iTraining progress . În lista
de sub aceste elemente aplicat ,ia afis ,ează acuratet ,ea pe setul de antrenare s ,i
acuratet ,ea pe setul de testare după fiecare iterat ,ie. De asemenea, în aceeas ,i
listă sunt afis ,ate rata de antrenare s ,i durata fiecărei iterat ,ii.
5.3.3 Testare
Atunci când utilizatorul alege această sect ,iune, fereastra aplicat ,iei pre-
zintă rezultatele ret ,elei neurale. Bara de act ,iuni îi permite utilizatorului să
ruleze pasul de testare s ,i să afis ,eze sau să ascundă indivizii detectat ,i corect.
Zona centrală afis ,ează detalii despre fiecare persoană din setul de antrenare.
Fereastra este prezentată în figura 5.4.
Figura 5.4: Fereastra principală, sect ,iuneaTesting
ButonulRun testing îi permite utilizatorului să ruleze testarea pe ima-
ginile din setul de date. După ce testarea a fost finalizată, aceste imagini
sunt afis ,ate în lista din partea principală a ferestrei. Butonul Show correct
patterns poate fi folosit pentru a afis ,a sau a ascunde imaginile recunos-
cute corect din listă. În bara de act ,iuni mai este afis ,ată acuratet ,ea ret ,elei
împreună cu numărul de imagini recunoscute corect s ,i incorect.
48

5.3. INTERFAT ,A GRAFICĂ
În partea centrală a ferestrei sunt afis ,ate detalii despre imaginile recu-
noscute corect s ,i incorect. Pentru fiecare imagine sunt afis ,ate detalii precum
clasa adevărată, clasa detectată a imaginii s ,i măsura de confident ,ă. În partea
dreaptă a ferestrei se afis ,ează imaginea fet ,ei atunci când ea este selectată din
listă, s ,i este prezent un buton care determină afis ,area de detalii suplimentare
despre imaginea aleasă: similarităt ,ile dintre imagine s ,i persoanele din setul
de antrenare s ,i răspunsul ret ,elei la imagine.
5.3.4 Detalii
Atunci când utilizatorul alege această sect ,iune, fereastra aplicat ,iei pre-
zintă detalii despre o imagine din setul de testare. Bara de act ,iuni îi permite
utilizatorului să aleagă imaginea persoanei pentru care dores ,te detalii, pre-
cum s ,i tipul de detalii dorite: vizualizarea similarităt ,ilor sau vizualizarea
răspunsului ret ,elei neurale. Zona centrală afis ,ează detaliile dorite despre
persoana aleasă. Fereastra este prezentată în figurile 5.5a s ,i 5.5b.
Când utilizatorul dores ,te vizualizarea similarităt ,ilor pentru o anumită
imagine, partea centrală a ferestrei afis ,ează imaginea originală precum s ,i
imaginea preprocesată. Apoi, pentru fiecare persoană din setul de antrenare
aplicat ,ia calculează măsura similarităt ,ii s ,i prezintă aceste măsuri ordonate
descrescător într-o listă. Utilizatorul poate selecta o imagine din listă s ,i în
partea dreaptă a ferestrei vor fi afis ,ate toate imaginile din setul de antrenare
care apart ,in acelei persoane.
Când utilizatorul dores ,te vizualizarea răspunsului ret ,elei, partea centrală
a ferestrei afis ,ează rezultatul operat ,iilor efectuate de către ret ,ea pentru acea
imagine. Fiecare coloană reprezintă un strat din ret ,ea, iar fiecare imagine
dintr-o coloană reprezintă o hartă de trăsături din acel strat.
49

5.3. INTERFAT ,A GRAFICĂ
(a) Vizualizarea similarităt ,ilor
(b) Vizualizarea răspunsului ret ,elei
Figura 5.5: Fereastra principală, sect ,iuneaDetails
50

Capitolul 6
Concluzii
În această lucrare am prezentat un sistem care foloses ,te ret ,elele neurale
de convolut ,ie în problema recunoas ,terii faciale. De asemenea am prezentat
o aplicat ,ie care implementează acest sistem, aplicat ,ia fiind folosită pentru a
testa eficacitatea sistemului folosind două baze de date cu fet ,e: ORL s ,i Yale.
Acest sistem oferă rezultate bune în practică, reus ,ind să clasifice fet ,e care
variază în mai multe aspecte: expresie facială, iluminare. Sistemul este de
asemenea rezistent la zgomot, translat ,ie s ,i deformare din cauza arhitecturii
ret ,elei. Rata de acuratet ,e a sistemului ajunge chiar la 95% în unele situat ,ii.
Sistemul este capabil să recunoască rapid identitatea unui individ dintr-
o imagine facială de intrare. Ret ,elele neurale de convolut ,ie nu au nevoie
de o extragere manuală a trăsăturilor din imaginile de intrare. Mult ,umită
arhitecturiiadâncielesuntcapabiledeaextrageautomattrăsăturilenecesare
din imaginile de intrare. De asemenea, sistemul oferă o măsură de confident ,ă
pentru fiecare rezultat oferit, iar această măsură poate fi folosită pentru a
cres ,te acuratet ,ea ret ,elei cu riscul respingerii unor rezultate corecte.
Implementarearet ,eleineuraledeconvolut ,ies ,iaalgoritmuluidepropagare
înapoi a erorii în aplicat ,ie a fost realizată folosind suportul de programare
paralelă oferit de platforma Microsoft .NET s ,i limbajul de programare C#,
ea folosind în mod eficient toate resursele disponibile ale procesorului. Din
această cauză, antrenarea ret ,elei s ,i recunoas ,terea unei imagini sunt foarte
rapide. Mai mult, acest sistem va scala atunci când va fi rulat pe procesoare
mai puternice.
O problemă a sistemului prezentat în această lucrare este că el oferă
rezultate slabe atunci când este folosit cu un set de date care cont ,ine un
51

număr foarte mare de persoane diferite (în jur de 500). O solut ,ie pentru
această problemă ar fi găsirea unei arhitecturi a ret ,elei care să reprezinte
mai bine seturi mari de date, posibil prin mărirea numărului de hărt ,i de
trăsături din straturile intermediare.
Rezultatele prezentate în această lucrare au fost obt ,inute din imagini
relativ mici, de dimensiune 32×32pixeli. Această dimensiune este destul
de mare pentru a distinge persoanele din setul de date folosit, dar folosind
imagini de dimensiuni mai mari ret ,eaua va putea identifica trăsături mai
subtile în imagini. Dacă se măresc dimensiunile imaginilor de intrare vor fi
necesare modificări în structura ret ,elei.
O altă direct ,ie în care se poate continua dezvoltarea ret ,elei este îmbu-
nătăt ,irea vitezei de antrenare s ,i recunoas ,tere. Implementarea aplicat ,iei din
această lucrare foloses ,te tehnici de programare paralelă, folosind toate nucle-
ele procesorului pentru a îmbunătăt ,i viteza sistemului. Pentru a mări viteza
s,i mai mult, o posibilă abordare ar fi folosirea procesoarelor grafice pentru
calculele ret ,elei de convolut ,ie. Placa grafică cont ,ine un procesor cu un nu-
măr mare de nuclee care pot executa multe calcule în paralel. În ultimii ani
au fost dezvoltate tehnologii care permit rularea de cod folosind procesoarele
grafice: CUDA1s,i OpenCL2. De asemenea au fost dezvoltate biblioteci care
permit folosirea acestor tehnologii din limbaje de programare precum C#:
CUDAfy .NET3s,i OpenCL .NET4. Folosind aceste biblioteci se poate mări
semnificativ viteza ret ,elei neurale.
1http://www.nvidia.com/cuda
2http://www.khronos.org/opencl/
3http://cudafy.codeplex.com/
4http://openclnet.codeplex.com/
52

Bibliografie
[AO07] Mark O. Afolabi and Olatoyosi Olude. Predicting stock pri-
ces using a hybrid kohonen self organizing map (som). Hawaii
International Conference on System Sciences , 0:48a, 2007.
[ARCPM11] Ludovic Arnold, Sébastien Rebecchi, Sylvain Chevallier, and
Hélène Paugam-Moisy. An introduction to deep learning. In
ESANN, 2011.
[Ben09] Yoshua Bengio. Learning deep architectures for AI. Founda-
tions and Trends in Machine Learning , 2(1), 2009.
[BHK97] Peter N. Belhumeur, João P. Hespanha, and David J. Krieg-
man. Eigenfaces vs. fisherfaces: Recognition using class specific
linear projection, 1997.
[BLPL07] Yoshua Bengio, Pascal Lamblin, Dan Popovici, and Hugo Laro-
chelle. Greedy layer-wise training of deep networks. In B. Schö-
lkopf, J. Platt, and T. Hoffman, editors, Advances in Neural
Information Processing Systems 19 , pages 153–160. MIT Press,
Cambridge, MA, 2007.
[CCV97] M. Asunción Castaño, Francisco Casacuberta, and Enrique Vi-
dal. Machine translation using neural networks and finite-state
models, 1997.
[CL06] Yezeng Cheng and Kirill V. Larin. Artificial fingerprint recog-
nition by using optical coherence tomography with autocorre-
lation analysis. Appl. Opt. , 45(36):9238–9245, Dec 2006.
[Duf09] S. Duffner. Face Image Analysis with Convolutional Neural Ne-
tworks. GRIN Verlag GmbH, 2009.
53

BIBLIOGRAFIE
[GB00] Oana Gogan and Sabin Corneliu Buraga. The use of neural
networks for structural search on web. In Proc The 10th Edition
of The International Symposium on System Theory, SINTES10 ,
2000.
[GW02] Rafael C. Gonzalez and Richard E. Woods. Digital Image Pro-
cessing (2nd Edition) . Prentice Hall, January 2002.
[Hay07] Simon Haykin. Neural Networks: A Comprehensive Foundation
(3rd Edition) . Prentice-Hall, Inc., Upper Saddle River, NJ,
USA, 2007.
[HW62] D H Hubel and T N Wiesel. Receptive fields, binocular interac-
tion and functional architecture in the cat’s visual cortex. The
Journal of Physiology , 160(1):106–154.2, 1962.
[KY04] Alisher Kholmatov and Berrin Yanikoglu. Biometric authen-
tication using online signatures. In In: Proc. ISCIS, Springer
LNCS-3280 (2004) 373–380 , pages 373–380. Springer-Verlag,
2004.
[LBBH01] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-
based learning applied to document recognition. In Intelligent
Signal Processing , pages 306–351. IEEE Press, 2001.
[LGTB97] Steve Lawrence, C. Lee Giles, Ah Chung Tsoi, and Andrew D.
Back. Face recognition: A convolutional neural network
approach. IEEE Transactions on Neural Networks , 8:98–113,
1997.
[MRW08] Ryan J. Meuth, Paul Robinette, and Donald C. Wunsch. Com-
putational intelligence meets the netflix prize. In Proceedings of
the International Joint Conference on Neural Networks, IJCNN
2008, part of the IEEE World Congress on Computational In-
telligence, WCCI 2008, Hong Kong, China, June 1-6, 2008 ,
pages 686–691. IEEE, 2008.
[RDD+12] Dwijen Rudrapal, Smita Das, S. Debbarma, N. Kar, and N. De-
bbarma. Article: Voice recognition and authentication as a
proficient biometric tool and its application in online exam for
p.h people. International Journal of Computer Applications ,
39(12):6–12, February 2012.
54

BIBLIOGRAFIE
[RN09] S. J. Russell and P. Norvig. Artificial Intelligence: A Modern
Approach . Prentice Hall, 3rd edition, 2009.
[StHS94] F. S. Samaria, F. S. Samaria *t, A.C. Harter, and Old Adden-
brooke’sSite. Parameterisationofastochasticmodelforhuman
face identification, 1994.
[Teb95] Joe Tebelskis. Speech recognition using neural networks. Tech-
nical report, 1995.
[TMD+06] S. Thrun, M. Montemerlo, H. Dahlkamp, D. Stavens, A. Aron,
J. Diebel, P. Fong, J. Gale, M. Halpenny, G. Hoffmann, K. Lau,
C. Oakley, M. Palatucci, V. Pratt, P. Stang, S. Strohband,
C. Dupont, L.-E. Jendrossek, C. Koelen, C. Markey, C. Ru-
mmel, J. van Niekerk, E. Jensen, P. Alessandrini, G. Bradski,
B. Davies, S. Ettinger, A. Kaehler, A. Nefian, and P. Mahoney.
Winning the darpa grand challenge. Journal of Field Robotics ,
2006.
[Yao99] Xin Yao. Neural networks for breast cancer diagnosis. In In
Proceedings of the 1999 Congress on Evolutionary Computa-
tion, pages 1760–1767. IEEE Press, 1999.
[Zha02] D. Zhang. Biometric Solutions for Authentication in an E-
World. Kluwer Academic Publishers, 2002.
55

Similar Posts