You are on page 1of 21

SVEUČILIŠTE U SPLITU

FAKULTET ELEKTROTEHNIKE, STROJARSTVA I BRODOGRADNJE

STANKO KRUŽIĆ, DIPL. ING

KONVOLUCIJSKE NEURONSKE
MREŽE ZA PREPOZNAVANJE LICA

SEMINARSKI RAD

Split, 2016.
Sadržaj

1. Uvod u neuronske mreže 3


1.1. Model neurona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Funkcije aktivacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Multilayer Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. Back-propagation algoritam . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2. Konvolucijske neuronske mreže 11


2.1. Konvolucija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2. Svojstva i struktura konvolucijskih neuronskih mreža . . . . . . . . . . . . . 12
2.2.1. Konvolucijski sloj . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2. Sloj sažimanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3. ReLU sloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.4. Potpuno povezani sloj . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.5. Sloj gubitaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3. Back-propagation algoritam u konvolucijskim neuronskim mrežama . . . . . 17

3. Prepoznavanje lica korištenjem konvolucijskih neuronskih mreža 19

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.1. Model neurona

Neuron je osnovna jedinica svake neuronske mreže, te se sastoji od (slika 1.1):


• ulaznih signala
• niza veza (sinapsi), svaku od kojih karakterizira njena težina
• sumatora (linearnog kombinatora), koji se koristi za zbrajanje ulaznih signala koji su
ponderirani s težinom veza
• aktivacijske ili prijenosne funkcije kojoj je zadatak ograničavanje amplitude izlaznog
signala
• izlaznih signala
Matematički, neuron se može opisati s:

1
y = hθ (x) = (1.2)
1 + e−θT x

gdje su x = [x1 , x2 . . . , xm ] ulazni signali, θ = [θ1 , θ2 , . . . , θm ] su težine veza neurona, a y je


izlazni signal. Na slici 1.1 je prikazan neuron s

1.2. Funkcije aktivacije

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.

1.3. Multilayer Perceptron

Višeslojni perceptron (MLP, engl. multilayer perceptron) je unaprijedna neuronska mreža


koja preslikava skup ulaznih podataka u skup prikladnih izlaza. Sastavljena je na način da su
neuroni med̄usobno povezani tako da izlaz iz jednog neurona može biti ulaz u drugi, a svaki
neuron ima i nelinearnu funkciju aktivacije.

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

Slika 1.3.: Primjer neuronske mreže

(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:

(2) (1) (1) (1) (1)


z1 = Θ10 xo + Θ11 x1 + Θ12 x2 + Θ13 x3
(2) (2)
a1 = ϕ(z1 )
(2) (1) (1) (1) (1)
z2 = Θ20 xo + Θ21 x1 + Θ22 x2 + Θ23 x3
(2) (2)
a2 = ϕ(z2 )
(2) (1) (1) (1) (1)
z3 = Θ30 xo + Θ31 x1 + Θ32 x2 + Θ33 x3
(2) (2)
a3 = ϕ(z3 )
(3) (2) (2) (2) (2) (2) (2) (2)
z1 = Θ10 a(2)
o + Θ11 a1 + Θ12 a2 + Θ13 a3
(3) (3)
hΘ (x) = a1 = ϕ(z1 )

Navedene jednadžbe mogu se zapisati u matrično-vektorskom obliku:

z (2) = Θ(1) x

a(2) = ϕ(z (2) )

z (3) = Θ(2) a(2)

ŷ = a(3) = ϕ(z (3) )

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:

a(j+1) = ϕ(Θ(j) a(j) ) (1.6)

1.4. Back-propagation algoritam

Back-propagation je algoritam za treniranje neuronskih mreža koji se sastoji od unaprijedne


propagacije (opisane u poglavlju 1.3) u kojoj se dovodi poznati skup uzoraka na ulaz mreže,
računa odziv mreže na taj ulaz te se računa pogreška (razlika odziva mreže i očekivanog iz-
laza), te se potom pogreška propagira unazad. U ovom koraku se primjenjuje neka od metoda
optimizacije, tako da se optimiziraju „težine” veza kako bi pogreška bila što manja.
Optimizacija se radi tako da se mijenjaju vrijednosti težina veza med̄u neuronima, a funkcija
koštanja7 koju treba optimizirati je funkcija koštanja za višeklasnu klasifikaciju definiranu s

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

min J(Θ) (1.9)


Θ

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.

Algoritam 1.1 Backpropagation algoritam


Trening skup {(x(1) , y (1) ), . . . , (x(m) , y (m) )}
(l)
∆ij = 0, ∀i, j, l
Za i = 1 do m

• Izračunati izlaz iz sustava prema 1.6

• Koristeći y (i) izračunati δ (L) = a(L) − y (i)

• Izračunati δ (L−1) , δ (L−2) , . . . , δ (2)

• ∆(l) := ∆(l) + δ (l+1) (a(l) )T


(l) 1 (l) (l)
Dij := m
(∆ij + λΘij ) za j 6= 0
(l) 1 (l)
Dij := ∆ za j = 0
m ij

Može se pokazati da se algoritam za optimizaciju Gradient descent može implementirati ko-


risteći parcijalne derivacije prema

∂ (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)

gdje je α koeficijent učenja.


Sada treniranje neuronske mreže se može napraviti ponavljanjem navedenih koraka za mini-
mizaciju funkcije koštanja J(Θ).

10
2. Konvolucijske neuronske mreže

2.1. Konvolucija

U matematičkoj analizi, konvolucija je operacija nad dvije funkcije realne varijable. To je


integralna transformacija definirana s
Z ∞
def
s(t) = (f ∗ g)(t) = f (τ )g(t − τ )dτ (2.1)
−∞

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)
τ =−∞

Kod primjena u strojnom učenju i računalnom vidu, funkcije f i g su obično višedimenzi-


onalne matrice. Kako je suma u relaciji 2.2 beskonačna, potrebno je uvesti pretpostavku da
funkcije f i g imaju iznos 0 na svim mjestima osim onih na kojima imaju pohranjenu neku
drugu vrijednost, pa time beskonačna suma postaje konačna.

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

ili, koristeći svojstvo komutativnosti konvolucije


XX
S(i, j) = (I ∗ K)(i, j) = I(i − m, j − n)K(m, n) (2.4)
m n

Na sličan način je moguće definirati i trodimenzionalnu konvoluciju za primjene nad trodi-


menzionalnom ulaznom slikom (tri dimenzije su dužina, širina i broj kanala boja, najčešće
3).

2.2. Svojstva i struktura konvolucijskih neuronskih


mreža

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.

Slika 2.1.: Shematski prikaz konvolucijske neuronske mreže

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.

Slika 2.2.: Receptivno polje [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.

2.2.1. Konvolucijski sloj

Konvolucijski sloj je osnovna sastavnica konvolucijskih neuronskih mreža. Parametri konvo-


lucijskog sloja su skup filtera (ili kernela) koji imaju malo receptivno polje, ali se zato protežu

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.

Slika 2.3.: Konvolucijski sloj

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

2.2.2. Sloj sažimanja

U ovom sloju se dogad̄a nelinearno sažimanje dimenzionalnosti mape svojstava na način da


se izlaz na odred̄enom mjestu zamijeni s nekakvom statistikom više obližnih izlaza. Postoji
nekoliko nelinearnih funkcija kojima se ovo može implementirati, od kojih se najčešće koristi
ona za sažimanje maksimalnom vrijednošću.
Sažimanje se radi tako da se ulaz podijeli na nepreklapajuće kvadrate i iz svakog od tih kva-
drata se izvlači maksimalna vrijednost, kao što je prikazano na slici 2.4. Ideja ove metode je da
se, jednom kada je neko svojstvo pronad̄eno, da poznavanje njegove točne lokacije nije toliko
važno koliko je važno ga smjestiti u odnosu na druga svojstva, što ovu metodu čini približno
invarijatnom na manje pomake5 .
Ovaj sloj se koristi za postepeno smanjivanje veličine ulaza, što rezultira smanjenjem broja
parametara, čime se osigurava veća brzina rada.
S obzirom da imamo slojeve različitih dubina, ova operacija se neovisno može primijeniti
na svakom posebno. U praksi se najčešće koristi filter za sažimanje veličine 2, koji, kada
se ga primjeni, izlaz smanjuje u odnosu na ulaz za faktor 2 po širini i visini, što rezultira
odbacivanjem 75% aktivacija iz ulaznog volumena.

Slika 2.4.: Sažimanje maksimalnom vrijednošću

Osim sažimanja maksimalnom vrijednošću, postoji još i sažimanje prosječnom vrijednošću


i sažimanje L2 normom, ali se u istraživanjima pokazalo kako je sažimanje maksimalnom
5
tj. za manje pomake na ulazu, izlaz se ne bi trebao promijeniti

15
vrijednošću najefikasnije.

2.2.3. ReLU sloj

Rectified Linear Unit (ReLU) je nelinearna aktivacijsku funkcija opisana s

ϕ(z) = max(0, z)

Primjenom ovakve aktivacijske funkcije se pojačavaju nelinearna svojstva funkcije odluke bez
ikakvog utjecaja na receptivno polje konvolucijskog sloja.

Slika 2.5.: Funkcija ReLU

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.

2.2.5. Sloj gubitaka

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.

2.3. Back-propagation algoritam u konvolucijskim


neuronskim mrežama

Back-propagation algoritam se koristi i u konvolucijskim neuronskim mrežama. Algoritam


funkcionira kako je opisano u poglavlju 1.4, tako što se pogreška propagira unazad.
Za potpuno povezane slojeve konvolucijske neuronske mreže vrijedi 1.12, dok za konvolucij-
ske i slojeve sažimanja vrijede drugačije relacije za računanje pogreške u tom sloju.
Kod konvolucijskog sloja sa sažimanjem, treba primjeniti „širenje”6 , postupak inverzan saži-
manju, pa se pogreška sloja l definira s

(l) (l) (l+1) (l)


δk = upsample(Θk )T δk · ϕ0 (zk )) (2.5)

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

Za treniranje konvolucijske mreže za prepoznavanje lica korištena je baza YouTube Faces


Database [3] koja sadrži 3425 video zapisa 1595 različitih poznatih osoba preuzetih s Youtube-
a. Slike za treniranje i testiranje su dobivene tako da su videa pretvoreni u nizove slika pri 24
fps. Zbog velikog broja subjekata u bazi i hardverskih ograničenja, u trening i testni uzrorak
nisu uzete sve slike iz baze, nego samo slike 100 subjekata koji imaju najviše slika.
Mreža se sastoji od 7 slojeva: 3 konvolucijska sloja, 1 sloj sažimanja maksimalnom vrijed-
nošću, 3 potpuno povezana sloja, te softmax sloj gubitaka.Osim navedenoga, imamo još ulazni
sloj, izlazni sloj koji dolazi na kraju i koji na osnovu vjerojatnosti koje daje softmax sloj pre-
dvid̄a kojoj osobi pripada slika, te nakon svake konvolucije ili potpuno povezanog sloja imamo
ReLU sloj kao aktivacijsku funkciju. ReLU slojevi nisu uračunati u ukupan broj slojeva jer
oni ne utječu na izračun. Cijela mreža je prikazana u tablici 3.1.

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 -

Tablica 3.1.: Prikaz svih slojeva konvolucijske neuronske mreže

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

Konvolucijske neuronske mreže su današnja state-of-the-art metoda kada je pitanju računalni


vid, zahvaljujući svojoj velikoj točnosti. U ovom radu je pokazano da se čak i s vrlo jed-
nostavnom i relativno „plitkom” mrežom mogu ostvariti pristojni rezultati kada je u pitanju
prepoznavanje lica.
Dodavanjem dodatnih konvolucijskih i slojeva sažimanja i eventualno potpuno povezanih slo-
jeva bi se moglo ostvariti osjetno bolju točnost, ali ovdje to nije bilo moguće napraviti zbog
fizičkih ograničenja računala na kojem je ovo istraživanje napravljeno. Za usporedbu, u [4]
ostvarena je točnost od 95.12% korištenjem iste baze slika, a veličine ulaza su varirale od
96x96 px do 224x224 px. U [5], autori su na istom uzorku slika sa ulazima veličine 224x224
px, korištenjem vrlo duboke konvolucijske neuronske mreže postigli točnost od 91.6%, dok
su u [6] ostvarili točnost od 91.4%.
Korištenjem većih računalnih resursa, prvenstveno grafičkih kartica s mnogo CUDA jezgri bi
bilo moguće napraviti prepoznavanje znatno većeg broja pojedinaca od ovih 100 koji su pre-
poznavani u ovom radu, trenirati znatno dublju neuronsku mrežu s više konvolucijskih slojeva
i slojeva sažimanja kojom bi se ostvarili rezultati bolji od postignutih, kao i koristiti ulazne
slike većih dimenzija što bi rezultiralo boljim pronalaženjem ključnih svojstava u konvolucij-
skim slojevima.

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

You might also like