Neuronske mreže: Višeslojni perceptron

51
1 Neuronske mreže: Višeslojni perceptron Prof. dr. sc. Sven Lončarić Fakultet elektrotehnike i računarstva [email protected] http://ipg.zesoi.fer.hr

Transcript of Neuronske mreže: Višeslojni perceptron

1

Neuronske mreže:Višeslojni perceptron

Prof. dr. sc. Sven Lončarić

Fakultet elektrotehnike i rač[email protected]://ipg.zesoi.fer.hr

2

Pregled predavanjaUvodVišeslojni perceptronUčenje s povratnom propagacijom pogreškeDiskusijaZadaci

3

UvodU ovom poglavlju govorit ćemo o višeslojnim neuronskim mrežama bez povratnih vezaengl. multilayer feed-forward network, multilayerperceptron (MLP)MLP mreže imaju jedan ulazni sloj, jedan izlazni sloj i jedan ili više skrivenih slojeva neuronaMLP mreže se koriste za rješavanje širokog spektra problema gdje se učenje pod nadzorom odvija pomoću algoritma s povratnom propagacijompogreškeengl. error back-propagation algorithm

4

UvodVišeslojni perceptron ima tri glavna svojstva:Model neurona ima nelinearnu izlaznu karakteristiku koja je glatka (za razliku od Rosenblattovogperceptrona)Često se koristi sigmoidna aktivacijska funkcija oblika:

Mreža sadrži jedan ili više skrivenih slojeva neuronaMreža je dobro povezana (postoji puno sinapsi)

)exp(11

ii v

y−+

=

5

Višeslojni perceptronMreža na slici sadrži jedan ulazni sloj, dva skrivena sloja i jedan izlazni sloj neuronaBroj neurona u pojedinom sloju može biti različitIzlazi neurona jednog sloja su ulazi u sljedeći slojNema povratnih veza

ulazni skriveni izlazni sloj slojevi 1 i 2 sloj

6

UvodNavedene karakteristike temelj su dobrih svojstava višeslojnih perceptrona no isto tako i slijedećih mana:

Višestruke nelinearnosti i visoka povezanost otežava teoretsku analizu ove mrežeKorištenje skrivenih neurona otežava vizualizaciju procesa učenjaProces učenja je teži zbog velikog broja neurona i zbog potrebe da mreža sama odluči što trebaju naučiti skriveni neuroni (za izlazne neurone se zna)

7

BP algoritam učenjaengl. error back-propagationSignal pogreške na izlazu neurona j u koraku n jednak je razlici između željenog i dobivenog odziva:

ej(n) = dj(n) - yj(n)gdje je neuron j izlazni neuronTrenutna (u koraku n) kvadratna pogreška na izlazu mreže jednaka je:

gdje je C skup izlaznih neurona

)(21)( 2 nenE

Cjj∑

=

8

BP algoritamProsječna kvadratna pogreška za sve uzorke jednaka je:

gdje je N broj uzoraka u skupu za učenjeEsr predstavlja ocjenu kvalitete učenja mrežeCilj učenja je odrediti težine tako da se minimizira srednja pogreška Esr

Ovaj cilj se postiže algoritmom sličnim LMS učenju gdje se težine podešavaju za svaki dani uzorak za učenje

∑=

=N

nsr nE

NE

1)(1

9

BP algoritamPretpostavimo da imamo neuron na slici:

vj(n) yj(n)wji(n)yi(n)

wj0=θj(n)y0=-1

ϕj(.) −1

dj(n)

ej(n)

10

BP algoritamAktivacija na ulazu u nelinearni blok neurona j jednaka je:

gdje je p ukupni broj ulaza u neuron jIzlaz neurona j jednak je:

( ) ( )nynwnvp

iijij ∑

=

=0

)(

( ) ( ))(nvny jjj ϕ=

11

BP algoritamKorekcija težine izvodi se slično kao kod LMS algoritma u smjeru negativnog gradijentaGradijent se može izračunati na sljedeći način:

)()(

)()(

)()(

)()(

)()(

nwnv

nvny

nyne

nenE

nwnE

ji

j

j

j

j

j

jji ∂∂

∂∂

∂∂

∂∂

=∂∂

)()()( ne

nenE

jj

=∂∂

1)()(

−=∂∂

nyne

j

j

))(()()( ' nv

nvny

jjj

j ϕ=∂∂

)()()(

nynwnv

iji

j =∂∂

12

BP algoritamNa temelju prethodnih izraza dobivamo:

Korekcija težina definirana je delta pravilom (metoda najbržeg spusta):

)())(()()(

)( ' nynvnenwnE

ijjjji

ϕ−=∂∂

)()()(

nwnEnw

jiji ∂

∂−=Δ η

13

BP algoritamDakle dobiveni izraz može se pisati kao:

gdje je δj (n) tzv. lokalni gradijent:

Korekcija težine ovisi o pogrešci ej(n) na izlazu neurona jZa računanje pogreške imamo dva slučaja:

Neuron j je izlazni neuronNeuron j je skriveni neuron

)()()())(()()( ' nynnynvnenw ijijjjji ηδϕη ==Δ

))(()()( ' nvnen jjjj ϕδ =

14

Neuron j je izlazni neuronAko je neuron j u izlaznom sloju onda je pogrešku ej(n) lako izračunati budući da je poznat željeni odziv dj(n) Lokalni gradijent δj (n) računa se pomoću prethodno izvedenog izraza:

))(()()( ' nvnen jjjj ϕδ =

15

Neuron j je skriveni neuronPretpostavimo da se neuron j nalazi u skrivenom sloju spojenom na izlazni sloj (vidi sliku):

vk(n) yk(n)wji(n)

wj0=θj(n)y0=-1

ϕ(.) −1

dk(n)

ek(n)

yi(n) vj(n) yj(n)

ϕ(.) wkj(n)

Neuron j Neuron k

16

Neuron j je skriveni neuronAko je neuron j u skrivenom sloju onda nije poznat željeni odziv tog neurona pa ni pogreškaU tom slučaju pogreška skrivenog neurona može se procjeniti na temelju pogrešaka neurona u slijedećem sloju na koje je skriveni neuron spojenPrema prethodno izvedenim izrazima može se pisati:

Parcijalnu derivaciju pogreške po ulazu možemo izračunati na slijedeći način:

))(()()(

)()(

)()()( ' nv

nynE

nvny

nynEn jj

jj

j

jj ϕδ

∂∂

−=∂

∂∂

−=

17

Neuron j je skriveni neuronKrenimo od izraza:

Tražena parcijalna derivacija je onda jednaka:

Potrebne dvije parcijalne derivacije s desne strane možemo dobiti kako je prikazano u nastavku:

)(21)( 2 nenE

Ckk∑

=

)()(

)()(

)()(

)()(

nynv

nvnee

nynee

nynE

j

k

k

k

kk

j

k

kk

j ∂∂

∂∂

=∂∂

=∂∂ ∑∑

18

Neuron j je skriveni neuronBudući da je:

onda vrijedi da:

))((')()( nv

nvne

kkk

k ϕ−=∂∂

))(()()()()( nvndnyndne kkkkkk ϕ−=−=

19

Neuron j je skriveni neuronInterna aktivnost k-tog neurona jednaka je:

gdje je q ukupni broj ulaza u neuron kDakle vrijedi da je:

( ) ( )nynwnvq

jjkjk ∑

=

=0

)(

)()()( nw

nynv

kjj

k =∂∂

20

Neuron j je skriveni neuronNa temelju izvedenoga možemo pisati da je tražena parcijalna derivacija jednaka:

Konačno možemo pisati da je za skriveni neuron jlokalni gradijent jednak:

i na temelju lokalnog gradijenta može se izračunati korekcija težine za skriveni neuron j

)()()())((')()()( nwnnwnvne

nynE

kjk

kkjkkk

kj

∑∑ −=−=∂∂ δϕ

)()())((')( nwnnvn kjk

kjjj ∑−= δϕδ

21

Sažetak BP algoritma

Korekcija Δwji(n) za težinu koja ide od neurona ina neuron j računa se delta pravilom:

(korekcija) = (parametar) × (lokalni gradijent neurona j) × (i-ti ulaz u neuron j)

Ako je neuron j izlazni neuron onda:

Ako je neuron j skriveni neuron onda:

)()()( nynnw ijji ηδ=Δ

)())(()( ' nenvn jjjj ϕδ =

)()())((')( nwnnvn kjk

kjjj ∑= δϕδ

22

Dva prolaza u računanjuU praktičnoj izvedbi BP algoritma mogu se prepoznati dva prolaza:

1. prolaz unaprijed (engl. forward pass)2. povratni prolaz (engl. backward pass)

23

Prolaz unaprijedU prolazu prema naprijed težine se ne mijenjaju a izlazi neurona se računaju počevši od ulaznog sloja prema izlaznom slojuSignali se računaju prema ranije spomenutim izrazima za internu aktivnost i izlaz pojedinog neurona:

( ) ( )nynwnvp

iijij ∑

=

=0

)(

( ) ( ))(nvny jjj ϕ=

24

Povratni prolazPovratni prolaz započinje računanje od izlaznog slojaSignali pogreške se propagiraju od izlaznog sloja prema ulazu, sloj po sloj, rekurzivno računajući lokalni gradijent δ za svaki neuronNa temelju delta pravila za svaki neuron računa se korekcija težina kako je ranije prikazano u sažetku BP algoritma

25

Sigmoidna aktivacijska funkcija

Kao aktivacijska funkcija najčešće se koristi funkcija:

U ranije izvedenim izrazima za računanje lokalnog gradijenta pojavljuje se derivacija ove funkcije:

( )))(exp(1

1)()(nv

nvnyj

jjj −+== ϕ

( ) [ ] [ ])(1)())(exp(1

))(exp()(' 2 nyny

nvnv

nv jjj

jjj −=

−+

−=ϕ

26

Sigmoidna aktivacijska funkcija

Za neuron j koji je u izlaznom sloju vrijedi yj(n) = oj(n)Dakle za izlazni neuron j možemo pisati:

Za skriveni neuron možemo pisati:

[ ] [ ])(1)()()())(()()( '

nononondnvnen

jjjj

jjjj

−−== ϕδ

[ ] )()()(1)(

)()())((')(

nwnnyny

nwnnvn

kjk

kjj

kjk

kjjj

∑∑

−=

=

δ

δϕδ

27

Sigmoidna aktivacijska funkcija

Iz izraza za derivaciju sigmoidne funkcije vidi se da je derivacija najveća za yj(n) = 0.5Za izlazne vrijednosti blizu 0 ili blizu 1 vrijednost derivacije je malaTo znači da BP algoritam najviše korigira težine onih neurona čiji su izlazi srednje veličine (oko 0.5)To doprinosi stabilnosti BP algoritma učenja

28

Učenje s inercijomIznos korekcije težine je proporcionalan parametru η koji određuje brzinu učenja ηPremali parametar η uzrokuje sporo učenjePreveliki parametar η može biti uzrok nestabilnostiZa rješenje ovog problema delta pravilo može se modificirati dodatkom člana za inerciju:

Član za inerciju usporava brzinu promjene korekcije težine (djeluje kao niskopropusni filtar)

)()()1()( nynnwnw ijjiji ηδα +−Δ=Δ

29

Načini treniranjaU izvedbi BP algoritma učenje se odvija uzastopnim prezentiranjem parova za treniranjeJedna prezentacija svih parova za treniranje naziva se epohaUčenje se odvija epoha za epohom dok se srednja kvadratna pogreška dovoljno ne smanji i težine i pragovi mreže ne stabilizirajuRedoslijed prezentacije parova treba slučajno mijenjati između epohaNa taj način se dobiva stohastičko pretraživanje u prostoru težina

30

Načini treniranjaPostoje dva glavna pristupa treniranjuU individualnom načinu treniranja (prezentiranom u prethodnom materijalu) korekcija težina se izvodi nakon svakog prezentiranog uzorka za učenje

prednost: jednostavnija izvedbaU grupnom načinu treniranja mreži se prezentiraju svi parovi uzoraka iz skupa za treniranje i izračuna se pogreška za sve parove uzoraka te se korekcija težina izvodi jednom za sve uzorke

prednost: dobiva se točnija procjena gradijentnog vektoramana: treba više memorije

31

Kriterij zaustavljanja učenjaNe može se dokazati da BP algoritam konvergira niti postoje točno definirani uvjeti za prestanak učenjaNeki od uvjeta za prestanak iteracija su:1. gradijent na plohi pogreške je dovoljno mali (manji od nekog praga)2. promjena Esr između dvije epohe je dovoljno mala3. mreža ima dobra svojstva generalizacije (provjeriti

testiranjem)

32

Inicijalizacija mrežePrije početka učenja potrebno je iznose težina inicijalizirati na neke vrijednostiAko postoji neko a priori znanje o mreži to znanje se može iskoristiti da se težine postave na neke određene vrijednostiAko ne postoji a priori znanje (najčešći slučaj) onda se težine inicijaliziraju na neke slučajne vrijednosti uniformno distribuirane u nekom intervaluPogrešan izbor može dovesti do preuranjenog zasićenja (pogreška Esr se ne smanjuje kroz nekoliko epoha ali onda nakon toga se počne smanjivati - uzrok: sedlo na plohi pogreške)

33

Problem zasićenja neuronaAko za neki ulazni uzorak interna aktivnost nekog neurona ima jako pozitivnu ili jako negativnu vrijednost onda će izlaz tog neurona biti +1 ili -1 i derivacija u toj točki sigmoidne krivulje bit će jako malaTada se kaže se da je neuron u zasićenjuAko je željena vrijednost -1, a stvarna +1, ili obratno, kaže se da je neuron pogrešno zasićenKad se ovo desi treba puno iteracija da se izlaz korigira zbog male derivacije i prema tome male korekcije težina

34

Problem preuranjenog zasićenja

Na početku procesa učenja u mreži imamo korektno i pogrešno zasićene neuroneNakon nekog vremena težine nezasićenih neurona brzo se mijenjaju jer je iznos derivacije veći i dolazi do trenutnog smanjenja iznosa pogreške Esr

Ako u tom momentu zasićeni neuroni i dalje ostaju zasićeni dolazi do pojave preuranjenog zasićenja iznosa pogreške Esr

Preuranjeno zasićenje pogreške Esr je kad se pogreška kroz veći broj iteracija ne smanjuje nego ostaje konstantna i izgleda kao da je mreža završila učenje a zapravo nije

35

Problem preuranjenog zasićenja

Načini smanjenja vjerojatnosti preuranjenog zasićenja su:1. Odabrati početne vrijednosti težina i pragova kao uniformno distribuirane vrijednosti unutar uskogintervala2. Vjerojatnost pogrešnog zasićenja je manja kad ima manje skrivenih neurona u mreži - koristiti minimalan neophodni broj skrivenih neurona3. Vjerojatnost pogrešnog zasićenja je manja kad neuroni rade u linearnom dijelu karakteristike

36

Primjer: XOR problem0 XOR 0 = 0 0 XOR 1 = 11 XOR 1 = 0 1 XOR 0 = 1XOR problem može se rješiti npr. s dva skrivena neurona i jednim izlaznim neuronom:

Neuron 2

Neuron 1

Neuron 3

ulazni sloj

37

Primjer: XOR problemDijagram toka neuronske mreže za realizaciju XOR funkcije

-1

0.5

-1

1.5

1

1

1

1 -2

1

-1

0.5

x1

x2

ϕ(.)

ϕ(.)

ϕ(.)

38

Primjer: XOR problemSlika prikazuje područja klasifikacije pojedinih neurona

(1,0)

(1,1)(0,1)

(0,0) x1

x2

(1,0)

(1,1)(0,1)

(0,0) x1

x2

(1,0)

(1,1)(0,1)

(0,0) x1

x20

0 0

01

1 1

Neuron 1 Neuron 2 Neuron 3

w11= w12 = 1 w21= w22 = 1 w31=-2 w32 = 1

Θ1 = 1.5 Θ2 = 0.5 Θ2 = 0.5

39

Primjena u raspoznavanju uzoraka

engl. pattern recognitionVišeslojni perceptron vrlo se često koristi u raspoznavanju uzoraka U raspoznavanju uzoraka problem je klasificirati nepoznati uzorak u jednu od N klasaNepoznati uzorak je vektor koji opisuje objekt ili pojavu koju treba klasificirati (npr. oblik objekta, izgovorenu riječ)

40

Problem klasifikacije uzorakaPretpostavimo da treba rješiti problem klasifikacije vektora xj u jednu od m klasa Ck , k = 1, ..., mOvaj problem možemo rješiti mrežom koja ima mizlaza

Mrežu treba trenirati tako da za ulazni vektor xj koji pripada klasi Ck k-ti izlaz ima vrijednost 1, a ostali izlazi 0

xjy1jy2j

ymj

Višeslojni perceptron

41

Problem klasifikacije uzorakaNakon što je proces učenja završen mreža radi tako da se na ulaz postavi nepoznati vektor x koji nije iz skupa vektora za učenjeMreža za ulazni vektor x na izlazu daje vektor y = [y1 … ym ]T na temelju kojeg treba odlučiti kojoj klasi pripada nepoznati vektor xPravilo odlučivanja: Klasificiraj vektor x u klasu Ckako vrijedi:

kiyy ik ≠∀>

42

Problem odabira parametara Pri projektiranju mreže potrebno je odrediti parametre mreže: broj skrivenih neurona, konstantu brzine učenja i konstantu inercije (ako se koristi učenje s inercijom)U praksi se najčešće eksperimentalno odrede optimalni parametriKao kriterij za ocjenu koristi se točnost klasifikacije

43

GeneralizacijaKod učenja s BP algoritmom koristimo skup primjera za učenje kojim treniramo mrežuKoristimo maksimalni broj primjera koji su nam na raspolaganjuNakon što je proces učenja završen nadamo se da će mreža “dobro” raditi i za vektore koji nisu sadržani u skupu primjera s kojima je mreža treniranaTo svojstvo se zove generalizacija i za mrežu se kaže da dobro generalizira kad radi dobru klasifikaciju i za nepoznate ulaze

44

GeneralizacijaMreža se može promatrati kao nelinearno ulazno-izlazno preslikavanjeProces učenja može se interpretirati kao proces aproksimacije željenog ulazno-izlaznog preslikavanjaU tom slučaju svojstvo generalizacije se može promatrati ne kao neko mistično svojstvo mreže nego kao svojstvo dobre nelinearne interpolacijeNeuroni s kontinuiranim aktivacijskim funkcijama daju i sveukupno kontinuirano preslikavanje ulaz-izlaz

45

Generalizacija

primjeri za učenje

dobrageneralizacija

ulaz

izlaz primjeri za učenje

lošageneralizacija

ulaz

izlaz

46

GeneralizacijaDobra generalizacija je interpolacija raspoloživih podataka (znanja) s najjednostavnijom krivuljomNajjednostavnija krivulja je ona koja je najviše glatka tj. nema velikih varijacijaLoša generalizacija može biti posljedica prevelikog broja primjera za učenje (engl. overfitting)Preveliki broj primjera za učenje je kad ima više primjera nego što je broj stupnjeva slobode samog procesa iz kojeg se generiraju primjeriU tom slučaju potreban je i veći broj skrivenih neurona nego što je neophodno

47

Kros-validacijaengl. cross-validationKros-validacija je metoda koja se koristi i u statisticiRaspoloživi skup podataka podijeli se u skup za učenje i skup za testiranjeSkup za učenje podijeli se dalje u skup za estimaciju modela (tj. treniranje mreže) i skup za evaluaciju modela (validaciju)Skup za validaciju iznosi obično 10-20 % od skupa za treniranje

48

Kros-validacijaCilj je ove procedure da se validacija modela radi na podacima različitim od onih s kojim se mreža trenirala Nakon što se izabere najbolji model za treniranje se koristi cijeli skup za treniranjeMreža se konačno testira pomoću skupa primjera za testiranje

49

Svojstva BP algoritmaBP algoritam je najpopularniji algoritam za učenje s nadzorom kod višeslojnih perceptronaBP algoritam je gradijentna tehnika koja ima slijedeća dva glavna svojstva:1. Jednostavan je i radi lokalno2. Izvodi stohastički najbrži spust u prostoru težina

50

PrimjeneVišeslojni perceptron je korišten u mnogim primjenama:

NETtalk: NN koje uče izgovarati engleski tekst Prepoznavanje govoraOCR (prepoznavanje slova)Identifikacija sustavaAutomatsko upravljanjeUpravljanje autonomnim vozilomDetekcija i klasifikacija radarskih i sonarskih signalaMedicinska dijagnostika srčanih bolestiAnaliza signala i slika

51

ZadaciProblem 6.1: Pokazati da mreža na slici rješava XOR problema) nacrtati granice odlučivanja (decision regions)b) napisati tablicu istinitosti za mrežu

10.5

1

1

1

-2

1.5

izlaz

x1

x2