Professional Documents
Culture Documents
Konvolucijske Neuronske Mreže Za Prepoznavanje Lica
Konvolucijske Neuronske Mreže Za Prepoznavanje Lica
KONVOLUCIJSKE NEURONSKE
MREŽE ZA PREPOZNAVANJE LICA
SEMINARSKI RAD
Split, 2016.
Sadržaj
4. Zaključak 20
2
1. Uvod u neuronske mreže
Umjetne neuronske mreže1 , ili češće, neuronske mreže su model strojnog učenja koji je ins-
piriran biološkim neuronskim mrežama (veze izmed̄u neurona u mozgu životinja). Općenito,
neuronske mreže su dizajnirane tako da rade na način sličan mozgu, a implementirane su na
digitalnim računalima. Pomoću njih je moguće modelirati odred̄ene funkcije/zadatke kroz
proces učenja.
Neuronska mreža se sastoji od umjetnih neurona2 (slika 1.1) koji su med̄usobno povezani ve-
zama koje imaju odred̄enu „težinu” koja se može mijenjati/ugad̄ati, što neuronskim mrežama
daje sposobnost učenja i čini ih prilagodljivima ulaznim signalima. Ta težina veza kojima su
neuroni med̄usobno povezani im daje sposobnost učenja.
Neuron, koji je osnovni grad̄evni element neuronske mreže, je matematička funkcija koja na
osnovu vrijednosti ulaza daje vrijednost na izlazu. Vrijednost na izlazu odred̄ena je vrijednos-
tima na ulazima, te težinama veza θ0 , θ1 . . . , θm na koje se primjenjuje funkcija aktivacije ili
prijenosna funkcija. Tako na izlazu imamo
m
!
X
y(x) = ϕ(ΘT x) = ϕ θi xi (1.1)
i=0
Neuronska mreža se sastoji od niza neurona, koji se povezuju na način da je izlaz jednog
neurona ulaz u drugi (slika 1.3).
Glavne karakteristike neuronskih mreža su:
1. „Supervised learning”. Paradigma strojnog učenja kojoj je glavna karakteristika da se
algoritmu zadaju trening uzorci koji se sastoje od ulaznog signala i željenog izlaza. Na
mrežu se dovodi jedan od trening uzoraka slučajnim odabirom, a uštimavanjem para-
metara mreže (težine veza med̄u neuronima) se nastoji postići da se zadani željeni izlaz
i stvarni izlaz razlikuju što je manje moguće. Ovaj proces se ponavlja s novim uzorcima
1
engl. Artifical Neural Networks
2
živčana stanica (biol.)
3
iz trening skupa dokle god mreža ne postigne stabilno stanje (kada se sinaptičke težine
više ne mijenjaju značajno).
2. Nelinearnost. Neuron može biti ili linearan ili nelinearan, pa samim time i mreža me-
d̄usobno povezanih nelinearnih neurona je nelinearna neuronska mreža.
3. Adaptivnost. Neuronske mreže imaju sposobnost da se s promjenama prilagod̄avaju
težine veza med̄u neuronima.
1
y = hθ (x) = (1.2)
1 + e−θT x
Funkcija aktivacije služe za definiranje izlaza iz neurona s obzirom na ulaz, linearnu kombina-
ciju ulaznih signala s obzirom na težinu sinaptičke veze. Najčešće se koriste slijedeće funkcije
aktivacije:
4
Slika 1.1.: Model neurona
1. Step funkcija
1 z ≥ 0
ϕ(z) = (1.3)
0 z < 0
2. Sigmoidalna funkcija
1
ϕ(z) = (1.4)
1 + e−αz
Ovo je najčešće korištena funkcija aktivacije u neuronskim mrežama. Parametar α de-
finira nagib krivulje. Kako je područje vrijednosti ove funkcije [0, 1], a u nekim primje-
nama je potrebna funkcija s područjem vrijednosti [−1, 1], pa se tada koristi funkcija
hiperbolni tangens:
ez − e−z
ϕ(z) = th(z) = z (1.5)
e + e−z
koja je sličnog oblika krivulje kao sigmoidalna funkcija, ali s područjem vrijednosti
[−1, 1]. Usporedba ove dvije funkcije je dana na slici 1.2.
5
Slika 1.2.: Sigmoidalna funkcija i hiperbolni tangens
MLP se sastoji od slojeva (primjer je dan na slici 1.3). Krajnje lijevi sloj je ulazni sloj3 , krajnje
desni sloj je izlazni sloj4 , dok se srednji slojevi nazivaju skriveni slojevi5 i može ih biti više.
Naziv „skriveni sloj” je dan zbog toga što se vrijednosti u tom sloju nisu prisutne u skupu za
treniranje i stoga ih nije moguće promatrati, za razliku od ulaznih i izlaznih vrijednosti. Svaki
od slojeva ima odred̄eni broj neurona (u primjeru sa slike 1.3, u ulaznom sloju su tri neurona,
u skrivenom su takod̄er tri neurona, dok u izlaznom sloju imamo jedan neuron). U ulaznom
sloju i skrivenim slojevima imamo i tzv. bias unit, označen žutom bojom, kojemu je fiksirana
vrijednost +1 koji predstavlja fiksirani ulaz.
Neuronska mreža se zadaje parametrom Θ = (Θ(1) , Θ(2) , . . .). Svaki parametar Θ(l) je ma-
trica koja predstavlja težinu veza neurona u sloju l prema sloju l + 1. Inicijalno se parametri
Θ(j) inicijaliziraju na vrlo malu slučajno odabranu vrijednost veću od 0 (da se inicijalizira na
vrijednost 0, mreža ne bi mogla raditi jer bi u tom slučaju izlaz iz svakog neurona bio isti).
3
engl. input layer
4
engl. output layer
5
engl. hidden layers
6
Skriveni Skriveni
Ulaz Izlaz
sloj 1 sloj 2
x0
x1
y1
x2
x3
(l) (l)
Ulaz u neuron i u sloju l označava se s zi , a izlaz s ai , pa tako za primjer neuronske mreže
sa slike 1.3 imamo:
z (2) = Θ(1) x
Ovaj korak se naziva unaprijedna propagacija6 i općenito se može zapisati (uz a(1) = x) u
6
engl. forward propagation
7
matrično-vektorskom obliku:
m K (k)T (i)
1 XX eΘ x
J(Θ) = − 1{y (i) = k} ln PK (1.7)
m i=1 k=1 j=1 e
Θ(j)T x(i)
gdje je y (i) ∈ {1, 2, . . . , K}, a 1{·} = 1 ako je izraz u zagradi istina, a 1{·} = 0 inače.
Ako y (i) zapišemo u obliku vektora, za k = 1 imamo y (i) = [ 1 0 0 · · · 0 ], za k = 1
imamo y (i) = [ 0 1 0 · · · 0 ], · · · , a za k = K imamo y (i) = [ 0 0 0 · · · 1 ]. Uz
(i)
oznaku yk , koja označava k−ti element vektora y (i) iz 1.7 dobivamo:
m K L−1 X sl+1
sl X
1 X X h (i) (i) (i) (i)
i λ X
(l)
J(Θ) = − y ln((hΘ (x ))k ) + (1 − yk ) ln(1 − (hΘ (x ))k ) + (Θ )2
m i=1 k=1 k 2m l=1 i=1 j=1 j,i
(1.8)
gdje je L broj slojeva u mreži, sl je broj neurona u sloju l, a K je broj izlaza iz neuronske
mreže; (x(i) , y (i) ) je zadani uzorak iz trening skupa, a m je broj uzoraka u trening skupu.
Drugi sumand u 1.8 regularizaciju.
Rješavanjem optimizacijskog problema
7
engl. cost function, loss function, error function
8
dobiva se optimalni set parametara neuronske mreže Θ.
Kako ne postoji analitički način za rješavanje optimizacijskog problema 1.9, on se rješava
nekim od iterativnih optimizacijskih algoritama, najčešće Gradient descent.
(l)
S δj se označava pogreška neurona j u sloju l, ili s δ (l) vektor pogreške za sloj l. Prvo se
izračuna pogreška u odnosu na stvarnu vrijednost izlaza u trening skupu, u izlaznom sloju, pa
se propagira kroz mrežu unazad, prema
δ (L) = a(L) − y
δ (L−1) = (Θ(L−1) )T δ (L) · ϕ0 (z (L−1) )
δ (L−2) = (Θ(L−2) )T δ (L−1) · ϕ0 (z (L−2) ) (1.10)
···
δ (2) = (Θ(2) )T δ (3) · ϕ0 (z (2) )
Bitno je primjetiti da ne postoji član δ (1) jer se taj indeks odnosi na ulazni sloj koji je takav
kakav je i ne može se mijenjati.
∂ (l)
∇Θ(l) J(Θ) = (l)
J(Θ) = Dij (1.11)
ij
∂Θij
9
Optimizacijski algoritam Gradient descent optimizira težine mreže prema
(l) (l) ∂
Θij = Θij − α (l)
J(Θ)
∂Θij
(l) (l) (l)
Θij = Θij − αDij (1.12)
10
2. Konvolucijske neuronske mreže
2.1. Konvolucija
Kod primjena u neuronskim mrežama, funkcija g mora biti funkcija gustoće vjerojatnosti, te
mora biti jednaka nuli za negativne argumente1 . Ono što konvolucija s ovakvom funkcijom g
radi je ponderirani prosjek u ovisnosti o vremenu.
U terminologiji konvolucijskih neuronskih mreža, funkcija f se naziva ulaz, funkcija g se
naziva kernel ili jezgra, dok se rezultat konvolucije ove dvije funkcije naziva mapa svoj-
stava2 .[1].
Kako računalo ne može raditi s kontinuiranim signalima, definiramo diskretnu konvoluciju,
tako da varijabla t može poprimiti samo diskretne vrijednosti (npr. cjelobrojne vrijednosti
koje mogu predstavljati trenutke u vremenu). Diskretna konvolucija se definira s
∞
X
s(t) = (f ∗ g)(t) = f (τ )g(t − τ ) (2.2)
τ =−∞
1
jer vremenski signal ne može „gledati” u budućnost
2
engl. feature map
11
Kod primjena u strojnom učenju javlja se i potreba za konvolucijom po više od jedne osi
istovremeno, pa možemo, npr. nad ulaznom dvodimenzionalnom slikom I primjeniti dvodi-
menzionalni kernel K
XX
S(i, j) = (I ∗ K)(i, j) = I(m, n)K(i − m, j − n) (2.3)
m n
Konvolucijske neuronske mreže (ili kraće, konvolucijske mreže) se sastoje od više slojeva u
kojima se izmjenjuju konvolucijski slojevi i slojevi sažimanja3 . Na kraju dolazi tzv. potpuno
povezani sloj (može biti i više od jednoga), koji je zapravo sloj identičan onome u klasičnim
neuronskim mrežama. Shematski je prikazano na slici 2.1.
Kod konvolucijskih mreža, neuroni su unutar slojeva poredani u tri dimenzije (dužina, visina,
dubina), a pojedinačni neuroni su, za razliku od klasičnih neuronskih mreža, povezani samo s
3
engl. pooling
12
manjim područjem u prethodnom sloju. To područje se naziva receptivno polje4 , a prikazano
je na slici 2.2.
Konvolucijske mreže karakteriziraju dva vrlo bitna svojstva: dijeljenje težina i lokalna pove-
zanost.
Kod konvolucijskih mreža su, kao i u standardnim neuronskim mrežama, neuroni na ulazu
povezani s neuronima u skrivenom sloju, ali za razliku od njih, kod konvolucijskih mreža
nisu svi neuroni u skrivenom sloju povezani sa svim neuronima u ulaznom sloju, već samo sa
malim, lokaloziranim dijelom ulazne slike.
Dijeljenje težina je svojstvo koje proizlazi iz činjenice da se u konvolucijskim slojevima, za
svaku konvoluciju jedne izvorne mape na ulazu s jednim kernelom, neuroni unutar mape svoj-
stava na izlazu dijele iste težine, što znači da svi neuroni unutar danog konvolucijskog sloja
detektiraju isto svojstvo. Kako su kerneli uvijek manji od ulaznog volumena, kernel se repli-
cira cijelom „površinom”, pa dobijamo i translacijsku invarijantnost, jer je moguće pronaći
svojstvo neovisno o njegovoj poziciji.
4
engl. receptive field
13
cijelom dubinom ulaznog volumena. U koraku unaprijedne propagacije, svaki od filtera ko-
nvoluira s ulaznim volumenom po dužini i širini. Konvoluciju izvodimo u vidu skalarnog
produkta filtera i ulaza što rezultira dvodimenzionalnom aktivacijskom mapom tog filtera.
Slaganjem aktivacijskih mapa svih filtera po dimenziji dubine dobija se izlazni volumen ko-
nvolucijskog sloja, a svaki zapis u konvolucijskom sloju se može tumačiti kao izlaz iz neurona
koji „gleda” u mali dio ulaza i dijeli parametre s drugim neuronima iz iste aktivacijske mape.
Kada se radi s visokodimenzionalnim ulazima (npr. slike) povezivanje neurona sa svim ne-
uronima nije praktično zbog prevelikog broja veza med̄u neuronima (npr. za sliku veličine
24x24x3, tj. 24px dužina, 24px visina, 3 kanala boje, to je već 24*24*3=1728 veza), ali
i zbog toga što takva arhitektura neuronske mreže ne uzima u obzir prostorni raspored po-
dataka. Konvolucijske neuronske mreže koriste lokalnost tako što je neuron spojen samo s
jednim malim dijelom ulaznog volumena. Ta je povezanost lokalna u prostoru, po dužini i
širini, ali se proteže cijelom dubinom ulaznog volumena.
Veličina izlaznog volumena ovisi o tri hiperparametra konvolucijskog sloja: dubina, stride i
zero-padding:
• dubinom izlaznog volumena se odred̄uje broj neurona u tom sloju koji je spojen s is-
tim dijelom ulaznog volumena, koji će procesom učenja „naučiti” prepoznati odred̄ene
karakteristike na ulazu (npr. rubovi, boja, itd.)
• hiperparametar stride govori koliko piksela se preskače kada filter prelazi preko ulaznog
volumena; uz stride jedak 1, nema preskakanja, dok uz stride 2 (ili rjed̄e, 3 ili više), filter
skače za taj broj piksela kod prelaska, što rezultira smanjenim izlaznim volumenom za
faktor iznosa hiperparametra
14
• hiperparametar zero-padding ili padding dodaje nule na rubove ulaznog volumena, a
koristi se za očuvanje dimenzija širine i visine ulaznog volumena
15
vrijednošću najefikasnije.
ϕ(z) = max(0, z)
Primjenom ovakve aktivacijske funkcije se pojačavaju nelinearna svojstva funkcije odluke bez
ikakvog utjecaja na receptivno polje konvolucijskog sloja.
Umjesto ReLU funkcije se mogu koristiti i ostale aktivacijske funkcije uobičajene za neuron-
ske mreže, opisane u poglavlju 1.2, ali to nije uobičajeno jer je pokazano da se korištenjem
ReLU funkcije neuronska mreža trenira nekoliko puta brže.
16
2.2.4. Potpuno povezani sloj
Iza nekoliko konvolucijskih slojeva i slojeva sažimanja, dolazi potpuno povezani sloj, u kojem
su neuroni povezani sa svim aktivacijama iz prethodnog sloja, kao u Multilayer perceptronu
(poglavlje1.3). U ovim slojevima se ne računa konvolucija već obični produkt matrica.
Ovaj sloj obično dolazi kao zadnji sloj u mreži i služi za usporedbu vrijednosti koju daje mreža
sa stvarnom vrijednosti. U ovisnosti o vrsti zadatka koji mreža obavlja, mogu se upotrijebiti
razne funkcije gubitaka. Za klasifikaciju u jednu od N med̄usobno isključivih klasa se koristi
Softmax funkcija gubitka, za predvid̄anje N nezavisnih vjerojatnosti se koristi Sigmoid cross-
entropy funkcija, a za regresiju Euklidska funkcija gubitka.
gdje indeks k predstavlja redni broj filtera (jer su filteri poslagani „u dubinu” (prema slici
2.1). Ako koristimo sažimanje maksimalnom vrijednošću, kod propagacije greške unazad svu
grešku dobija onaj element koji je izabran kao maksimalan, dok kod sažimanja prosječnom
vrijednošću se greška propagira uniformno svim elementima.
6
engl. upsampling
17
Za konvoluciju, parcijalne derivacije se računaju s
m
X (l) (l+1)
∇Θ(l) J(Θ) = ai ∗ rot 90(δk , 2) (2.6)
k
i=1
a vidljivo je da je ovo i dalje konvolucija, što je teorijski u redu, jer je inverzna konvolucija
isto konvolucija.
18
3. Prepoznavanje lica korištenjem
konvolucijskih neuronskih mreža
sloj 1 2 3 4 5 6 7 8 9 10 11 12 13 14
tip input conv relu conv relu conv relu pool fc relu fc relu fc smax
naziv input c1 r1 c2 r2 c3 r3 p3 fc4 r4 fc5 r5 fc6 prob
support - 3 - 24 - 24 - 2 - - - - 1
filt dim - 3 - 3 - 3 - - - - - - -
num filt - 24 - 24 - 24 - - 2048 - 2048 - 100 -
stride - 1 - 1 - 1 - 2 1 - 1 - 1 -
pad - 0 - 0 - 0 - 0 0 - 0 - 0 -
Slike iz uzorka su podijeljene na trening uzorak i testni uzorak u omjeru 80% - 20%, te su
smanjene na veličinu 24x24 px. Sve slike su u boji i kao takve su analizirane, nisu konvertirane
u skalu sivih tonova.
Treniranje mreže je obavljeno u MATLAB-u 2016a, a na testnom uzorku je trenirana mreža
dala točnost od 80%.
19
4. Zaključak
20
Bibliografija
[1] I. Goodfellow, Y. Bengio, and A. Courville, “Deep learning.” Book in preparation for MIT
Press, 2016.
[2] M. A. Nielsen, Neural Networks and Deep Learning. Determination Press, 2015.
[3] L. Wolf, T. Hassner, and I. Maoz, “Face recognition in unconstrained videos with matched
background similarity,” in Computer Vision and Pattern Recognition (CVPR), 2011 IEEE
Conference on, pp. 529–534, IEEE, 2011.
[4] F. Schroff, D. Kalenichenko, and J. Philbin, “Facenet: A unified embedding for face re-
cognition and clustering,” in The IEEE Conference on Computer Vision and Pattern Re-
cognition (CVPR), June 2015.
[5] O. M. Parkhi, A. Vedaldi, and A. Zisserman, “Deep face recognition,” in British Machine
Vision Conference, vol. 1, p. 6, 2015.
[6] Y. Taigman, M. Yang, M. Ranzato, and L. Wolf, “Deepface: Closing the gap to human-
level performance in face verification,” in The IEEE Conference on Computer Vision and
Pattern Recognition (CVPR), June 2014.
21