25
UNIVERZA V LJUBLJANI Fakulteta za strojniˇ stvo Optimiranje nevronskih mreˇ z z uporabo genetskih algoritmov Seminar podiplomskega ˇ studija Anton UREVC Mentor: as. prof. Primoˇ z POTO ˇ CNIK Januar, 2009

Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

UNIVERZA V LJUBLJANI

Fakulteta za strojnistvo

Optimiranje nevronskih mrez z uporabo genetskih algoritmov

Seminar podiplomskega studija

Anton UREVC

Mentor: as. prof. Primoz POTOCNIK

Januar, 2009

Page 2: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

Kazalo

1 Uvod 3

2 Osnove genetskih algoritmov 5

2.1 Osnovni pojmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Definicija enostavnega genetskega algoritma . . . . . . . . . . . . . . . . . . . . . 5

2.3 Funkcija uspesnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4 Razmnozevanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4.1 Krizanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4.2 Mutacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5 Kje se uporabljajo genetski algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.6 Primer uporabe genetskih algoritmov - optimiranje Restrininove funkcije . . . . . 9

3 Optimiranje nevronskih mrez z genetskimi algoritmi 14

3.1 Osnove nevronskih mrez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2 Pomembnejse lastnosti nevronskih mrez . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.1 Vecnivojski perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3 Moznosti optimiranja nevronskih mrez z GA . . . . . . . . . . . . . . . . . . . . 16

3.4 Primer optimizacije nevronskih mrez z GA . . . . . . . . . . . . . . . . . . . . . 17

3.4.1 1.primer - aproksimacija funkcija ene spremenljivke . . . . . . . . . . . . . 17

4 Zakjucek 23

5 Programska koda 24

2

Page 3: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

Poglavje 1

Uvod

Genetski algoritmi (GA) so metode, ki jih uporabljamo za resevanje razlicnih optimizacijskih

problemov. Temeljijo na genetskem procesu bioloskih organizmov. Zgledujejo se po evoluciji

v naravi, kjer se populacija neke vrsteskozi generacije razvija po nacelu naravnega izbora in

prezivetju uspesnejsega. To je prvi jasno zapisal ze Charles Darwin. S posnemanjem tega

procesa lahko genetski algoritmi “razvijejo” resitev podanega problema.

Osnove genetskih algoritmov je prvi predstavil Holland leta 1962. Od takrat so genetski al-

goritmi hvalezno podrocje za mnoge tehtne raziskave. GA posnemajo tiste procese v naravi,

ki so bistveni za evolucijo. V naravi posamezniki neke populacije med seboj tekmujejo za

zivljenjsko pomembne vire. Hitrejsi in pametnejsi predstavniki vrste bodo imeli vec in boljse

vire za prezivetje. Pocasnejsi in manj pametni jih bodo dobili tezje ali pa sploh ne. Ravno

tako se pojavi tekmovanje pri iskanju partnerja za razmnozevanje. Tisti, ki so uspesnejsi v

prezivetju in pri parjenju, bodo po vsej verjetnosti imeli relativno vecje stevilo potomcev. Slabsi

posamezniki jih bodo imeli manj ali pa sploh ne. To pomeni, da se bodo geni dobro prilagojenih

oz. ustreznih posameznikov bolj razsirili na prihodnje generacije, slabsi pa bodo celo izumrli.

Kombinacija genov dveh ustreznih starsev lahko privede do pojava super-ustreznega potomca,

ki ima boljse lastnosti od obeh starsev. Na ta nacin se vrste razvijajo in prilagajajo na svoje

okolje.

GA delujejo po analogiji k temu naravnemu procesu. Delujejo nad neko populacijo posameznikov

(kromosomov), od katerih vsak predstavlja mozno resitev danega problema. Vsakemu kromo-

somu se priredi ocena uspesnosti, ki je prilagojena iskanemu problemu (npr. ce bi iskali najkrajso

pot v grafu med dvema vozliscema, bi bila ocena lahko kar dolzina poti, ki jo kromosom pred-

stavlja). Ustreznejsi kromosomi - tisti z boljso oceno - imajo vec moznosti za reprodukcijo od

ostalih.

Nad trenutno populacijo izvedemo simuliran proces evolucije. Iz nase populacije izberemo

podmnozico starsev, ki se razmnozujejo. Tako za naso populacijo dobimo nove potomce, ki

prevzamejo nekaj lastnosti od vsakega starsa. Manj ustrezni predstavniki se bodo razmnozevali

z manjso verjetnostjo in tako izumrli.

3

Page 4: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 1. UVOD 4

Z izborom najustreznejsih resitev (starsev) s pomocjo razmnozevanja dobimo nove resitve (po-

tomce), ki nadomestijo slabse osebke. Ta nova populacija resitev vsebuje visje povprecje lastnosti

dobrih resitev prejsnje populacije. Na ta nacin se dobre lastnosti razsirijo v naslednje generacije.

Z izbiranjem ustreznejsih kromosomov za razmnozevanje raziscemo najobetavnejsa podrocja v

domeni resitev. Ce smo genetski algoritem dobro zastavili, bo populacija konvergirala k opti-

malni resitvi.

Page 5: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

Poglavje 2

Osnove genetskih algoritmov

2.1 Osnovni pojmi

V prostoru preiskovanja ima vsaka tocka svojo vrednost glede na ciljno funkcijo. V genetskem

algoritmu pa posameznike ocenjujemo s pomocjo funkcije uspesnosti (angl. fitness function).

Le-ta mora biti definirana tako, da posameznikom, ki predstavljajo boljse resitve, priredi visjo

uspesnost.

Populacija je mnozica posameznikov. Populacijo obdelujemo v korakih, ki jih imenujemo gen-

eracije. Iz posameznikov (starsev) trenutne populacije tvorimo naslednike (potomce), ki pri-

padajo populaciji v naslednji generaciji. Velikost populacije ostaja nespremenjena skozi vse

generacije. Nad posamezno populacijo izvajamo tri operacije, s pomocjo katerih dobimo po-

tomce. Te operacije so: selekcija, krizanje in mutacija. Selekcija iz tekoce populacije izbere

osebke za razmnozevanje. Krizanje in mutacija sta t.i. genetski operaciji, saj delujeta na ravni

genov izbranih kromosomov.

2.2 Definicija enostavnega genetskega algoritma

Genetski algoritmi so sredstvo za resevanje problemov, ki so iskalne ali optimizacijske narave.

Delujejo na principu prezivetja uspesnejsega. Dobre resitve zdruzimo v upanju, da bo potomec

predstavljal boljso resitev. Genetski algoritem lahko predstavimo s psevdokodo, kot jo vidimo

na sliki 2.1.

Ko prvic izvedemo genetski algoritem, se ustvari zacetna populacija resitev. Le-te se po navadi

izberejo nakljucno in vecina osebkov v prvotni populaciji verjetno ne bo predstavljala dobrih

resitev. Nekatere bodo celo nasprotje pricakovanega. Izracun uspesnosti osebkov v populaciji

se nanasa na preizkusanje resitev, glede na to, kako uspesno in v kaki meri resijo dani problem.

Na ta nacin lahko dolocimo, katera resitev je boljsa od druge. Posamezniki, ki uspesneje ali vsaj

5

Page 6: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 2. OSNOVE GENETSKIH ALGORITMOV 6

BEGIN /* genetski algoritem */

ustvarimo zacetno populacijo;

izracun uspesnosti osebkov v populaciji;

WHILE

nimamo najboljse resitve OR

nismo izvedli doloceno stevilo korakov OR

ni minil dolocen cas OR

se potomci bistveno razlikujejo od starsev DO

BEGIN

faza selekcije

izbor starsev za razmozevanje;

// faza razmnozevanja

krizanje starsev;

mutiranje posameznikov;

ocena uspesnosti populacije;

END

END

END

Slika 2.1: Enostavni genetski algoritem

delno resijo problem, dobijo vecjo vrednost uspesnosti od tistih, ki problem resijo slabse ali pa

ga ne morejo resiti. Izracun uspesnosti se opravi glede na funkcijo uspesnosti.

V fazi selekcije iz trenutne populacije izberemo podmnozico osebkov. Glede na oceno uspesnosti

bomo kasneje iz te podmnozice izbrali pare posameznikov - starsev, ki jih bomo uporabili za

razmnozevanje.

V fazi razmnozevanja se po dolocenim postopku zdruzita izbrana starsa, iz katerih dobimo dve

novi resitvi (dva potomca). Cilj je, da nam razmnozevanje da vsaj enega potomca, ki je, glede na

funkcijo uspesnosti, boljsi od obeh starsev. Novi resitvi v populaciji zamenjata dva posameznika

z najmanjso oceno uspesnosti, ali pa zamenjata kar starsa. Tako velikost populacije ostaja

nespremenjena.

Mutacija spremeni posamezne gene v potomcih. Koliko otrok bo mutiralo, ce sploh bo kateri

mutiral, se doloci nakljucno. Tudi geni mutacije se praviloma izberejo nakljucno. V algoritmu na

Page 7: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 2. OSNOVE GENETSKIH ALGORITMOV 7

sliki 2.1 vidimo, da se postopek ponavlja tako dolgo, dokler ne najdemo najboljse resitve. Vedno

pa ni nujno tako. GA lahko tudi prenehamo izvajati po dolocenem stevilu korakov, cez dolocen

cas (misljen je realni cas) ali ko potomci niso vec uspesnejsi od starsev. V veliko primerih bo

genetski algoritem nasel dobro resitev, vendar ne tudi najboljse. Ce genetski algoritem izvajamo

zelo dolgo, postanejo vsi kromosomi v populaciji enaki. Ta pojav lahko delno odpravimo z

mutacijo ali z vecjo populacijo, popolnoma pa ga ne moremo odpraviti.

2.3 Funkcija uspesnosti

Funkcijo uspesnosti moramo definirati posebej za vsak problem, ki ga resujemo. Funkcija

uspesnosti danemu kromosomu priredi neko numericno “uspesnost”, ki naj bi bila sorazmerna s

sposobnostjo oz. ucinkovitostjo posameznika, ki ga kromosom predstavlja.

V idealnem primeru bi zeleli, da je funkcija uspesnosti zvezna tako, da so kromosomi s primerno

uspesnostjo blizu (glede na prostor preiskovanja) kromosomom z malo boljso uspesnostjo. Zal

takih funkcij ni vedno mogoce najti. Ce pa zelimo,da GA delujejo dobro, moramo najti funkcijo

uspesnosti, ki nima prevec lokalnih maksimumov ali zelo izoliranega globalnega maksimuma. V

kompleksnejsih primerih to ni mogoce.

2.4 Razmnozevanje

V fazi razmnozevanja iz trenutne populacije nakljucno, po nekem pravilu, ki uposteva uspesnost

posameznikov, izberemo starse, iz katerih dobimo potomce, ki bodo clani populacije v novi

generaciji. Posamezniki z visoko uspesnostjo bodo za razmnozevanje izbrani z vecjo verjetnostjo

in veckrat kot tisti z nizko uspesnostjo, za katere se pogosto pripeti, da za razmnozevanje

sploh niso izbrani. Poglejmo si kako iz dveh starsev dobimo potomca. Pri tem si pomagamo z

binarnima operacijama – s krizanjem in mutacijo.

2.4.1 Krizanje

Krizanje je operacija, s pomocjo katere iz dveh starsev dobimo dva potomca, ki v populaciji

obicajno nadomestita svoje starse. Krizanje obicajno poteka tako, da nakljucno izberemo mesto

krizanja, ki kromosoma obeh starsev (predstavljena kot binarna niza) razdeli na dva dela, “glavo”

in “rep”. Nato zamenjamo glavi ali repa obeh starsev in tako dobimo dva kromosoma, ki

predstavljata nova potomca. Na ta nacin vsak izmed potomcev podeduje nekaj genov od vsakega

starsa. Ta nacin krizanja imenujemo enostavno ali enomestno krizanje. Primer je prikazan na

sliki 2.2. Obstajajo tudi oblike krizanja, pri katerih izberemo vec tock krizanja in kromosomoma,

ki predstavljata starse, izmenjamo enega ali vec podnizov. Primer krizanja v dveh tockah je na

sliki 2.3. Obicajno ne krizamo vseh parov izbranih za razmnozevanje. Ali bomo par krizali,

Page 8: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 2. OSNOVE GENETSKIH ALGORITMOV 8

Slika 2.2: Enostavno krizanje

Slika 2.3: Krizanje v dveh tockah

dolocimo z neko v naprej doloceno verjetnostjo. Verjetnost za krizanje je v razlicnih izvedbah

razlicna, obicajno se giblje med 0.25 in 1.0. Ce para ne krizamo, sta potomca kar enaka svojima

starsema. Tako ima vsak posameznik, izbran za razmnozevanje moznost, da njegovi geni pridejo

v novo generacijo, ne da bi se jih spremenilo s krizanjem.

2.4.2 Mutacija

Mutacija, se za razliko od krizanja, izvaja na potomcih. Za vsakega potomca se doloci lokus

(mesto gena), ki se mu spremeni vrednost. Mutacijo nad posameznikom izvajamo z zelo majhno

verjetnostjo (obicajno reda 0.01). Na sliki 2.4 se potomcu z mutacijo spremeni tretji gen.

Krizanje je operacija, ki nam omogoca hitro raziskovanje prostora preiskovanja v smeri opti-

muma, mutacija pa poskrbi za nakljucno raziskovanje, ter za to, da nobena tocka v preiskovalnem

Slika 2.4: Mutacija v eni tocki

Page 9: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 2. OSNOVE GENETSKIH ALGORITMOV 9

prostoru ni brez moznosti, da bi jo raziskali.

2.5 Kje se uporabljajo genetski algoritmi

Genetski algoritmi so uporabni za sirok spekter problemov. To so

1. klasifikacija in grupiranje podatkov,

2. aproksimacija funkcije,

3. regresijo,

4. dizajniranje, kot je dizajn filtrov, dizajn arhitekture nevronskih mrez in strukturno opti-

miziranje.

5. kontrolo, kot so kontrolorji za vodne turbine, vidni sistemi za robote,...

6. stiskanje glasbe in

7. miniranje podatkov (anglesko data mining)

2.6 Primer uporabe genetskih algoritmov - optimiranje Restrini-

nove funkcije

V nadaljevanju bo prikazano iskanje globalnega optimuma z uporabo genetskih algoritmov Ras-

triginovove funkcije, ki je predstavljena na sliki 2.5. Funkcijo vecinoma uporabljamo za test

genetskih algoritmov, ker funkcija vsebuje veliko lokalnih minimumov, kar naredi iskanje glob-

alnega minimuma z uporabo standardnih optimizacijskih metod precej zahtevno. Rastriginova

funkcija je funkcija dveh spremenljivk. Popisemo jo z naslednjo enacbo:

Ras(x1, x2) = 20 + x2

1 + x2

2 − 10(cos(2πx1) + cos(2πx2)) (2.1)

Algoritem deluje tako, da tvori nakljucno zacetno populacijo. V tem primeru zacentna populacijo

vsebuje 20 posameznikov, ki se nahajajo v zgornjem delu grafa. V drugen koraku z algoritem

dolocimo otroke zacetne populacije, kar predstavlja populacijo druge generacije. Slika oznacuje

ali gre za elitne, krizane ali mutirane otroke. Naslednje slike oznacujejo populacije pri 60, 80,

95 in 100 generaciji (slike 2.6). Iz poteka opazimo, da se celotna populacija priblizuje globalnem

minimumu.

Zmanjsevanje vrednosti ciljne funkcije vidimo iz slike 2.7, ki predstavlja najboljso in srednjo

vrednost posameznikov ciljne funkcije v odvisnosti od generacije. Opazimo, da se vrednosti

ciljne funkcije zmanjsujejo proti nic. Pri stoti generaciji je vrednost ciljne funkcije najmanjsa in

znasa 0.002688.

Page 10: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 2. OSNOVE GENETSKIH ALGORITMOV 10

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1Lokalni maksimum

Globalni minimumu [0 0]Lokalni minimum

Slika 2.5: Rastriginova funkcija

Page 11: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 2. OSNOVE GENETSKIH ALGORITMOV 11

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

(a) 60 generacija

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

(b) 80 generacija

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

(c) 95 generacija

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

(d) 100 generacija

Slika 2.6: Rastriginova funkcija

Page 12: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 2. OSNOVE GENETSKIH ALGORITMOV 12

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

Generation

Fitn

ess

valu

e

Best: 0.0026875 Mean: 0.054724

Best fitnessMean fitness

Slika 2.7: Vrednost ciljne funkcije v odvisnosti od generacij

S spreminjanjem parametrov, kot so populacijska razlicnost, stopnja krizanja, stopnja mutacije

in stevilom populacije lahko izboljsamo rezultate. Populacijska razlicnost je pomemben faktor,

ki pove ucinek genetskega algoritma. Ce je povprecna razdalja med posamezniki velika, potem

je populacijska razlicnost visoka. Pri manjsih povprecnih razdaljah med posamezniki pa je pop-

ulacijska razlicnost nizka. Dolocevanje pravilne populacijske raznolikosti pa je stvar poskusanja.

Poglejmo si na primeru opisane Rastriginske funkcije. Najprej nastavimo zacetno obmocje med

[1, 1.1]. Z GA izracunamo najboljso ciljno funkcijo, ki znasa priblizno 2. Na sliki 2.8a zgornja

slika predstavlja najboljso in povprecno vrednosti ciljne funkcije posamezne generacije, spodnja

slika pa povprecno razliko med posamezniki v populaciji, kar je dobro merilo za populacijsko

razlicnost. Razlika med posamezniki je premajhna, zato resitev ni najboljsa. Ce povecamo

zacetno obmocje med [1, 100] z genetskim algoritmom izracunamo vrednost ciljne funkcije 23.68.

V tem primeru smo dosegli napredek (slika 2.8b), vendar je razlika med posamezniki tako velika,

da resitev ni optimalna. V zadnjem primeru (slika 2.8c) pa smo izbrali zacetno obmocje med

[1, 2]. Ciljna funkcija v tem primeru ima vrednost 0.038, kar predstavlja najboljso vrednost.

Populacijska razlicnost je v tem primeru primernejsa za dani problem.

Page 13: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 2. OSNOVE GENETSKIH ALGORITMOV 13

0 10 20 30 40 50 60 70 80 90 1001.5

2

2.5

3

3.5

4

4.5

5

Generation

Fitn

ess

valu

e

Best: 1.9899 Mean: 1.9922

10 20 30 40 50 60 70 80 90 1000

0.02

0.04

0.06

0.08

0.1

0.12

0.14

Generation

Ave

rgae

Dis

tanc

e

Average Distance Between Individuals

Best fitnessMean fitness

(a) Zac. obmocje med 1,1.1

0 10 20 30 40 50 60 70 80 90 1000

2000

4000

6000

8000

10000

12000

14000

GenerationF

itnes

s va

lue

Best: 23.688 Mean: 134.6993

10 20 30 40 50 60 70 80 90 1000

50

100

150

Generation

Ave

rgae

Dis

tanc

eAverage Distance Between Individuals

Best fitnessMean fitness

(b) Zac. obmocje med 1,100

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

Generation

Fitn

ess

valu

e

Best: 0.00077827 Mean: 0.038127

10 20 30 40 50 60 70 80 90 1000

0.5

1

1.5

Generation

Ave

rgae

Dis

tanc

e

Average Distance Between Individuals

Best fitnessMean fitness

(c) Zac. obmocje med 1,2

Slika 2.8: Spremenljivo zacetno obmocje resitev

Page 14: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

Poglavje 3

Optimiranje nevronskih mrez z

genetskimi algoritmi

3.1 Osnove nevronskih mrez

Nevronske mreze po namenu lahko razdelimo bolj na grobo ali bolj na fino. Najbolj na grobo

lahko razdelimo nevronske mreze na tiste, ki se uporabljajo za klasifikacijo, in na tiste, ki se

uporabljajo za regresijo. Klasifikacija je postopek, v katerem moramo podatke razdeliti v koncno

stevilo mnozic. To pomeni, da delamo preslikavo v kvantizirani izhodni prostor. Regresija je

postopek, v katerem lahko izhodne vrednosti zavzamejo kakrsnokoli vrednost. Pri regresiji

delamo vhodno-izhodno preslikavo v zvezni izhodni prostor. V tem seminarju bomo nevronske

mreze uporabljaji kot regresorje.

3.2 Pomembnejse lastnosti nevronskih mrez

Nevronska mreza je nelinearna preslikava iz vhodnega prostora ℜn v izhodni prostor ℜm po-

datkov

f : ℜn → ℜm (3.1)

pri vhodno izhodnih podatkih (x, y) tako, da velja y = f(x). Nevronske mreze so univerzalni

aproksimatorji. To pomeni, da lahko vedno najdemo nevronsko mrezo ustreznih dimenzij s

katero lahko poljubno aproksimiramo izbrano nelinearno funkcijo poljubno natancno.

Parametre nevronske mreze dobimo z optimizacijo glede na izbrano kriterijsko funkcijo, npr.

E(k) = 1/2

n∑

j=1

(dj(k) − yj(k))2 (3.2)

14

Page 15: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 3. OPTIMIRANJE NEVRONSKIH MREZ Z GENETSKIMI ALGORITMI 15

Slika 3.1: Vecnivojski perceptron

in z izbranim optimizacijskim algoritmom (ucnim pravilom).

Nevronske mreze se med seboj locujejo po:

• tipih mrez,

• ucnih pravilih,

• podrocje uporabe,

• metodologija postopkov,

• druge lastnosti.

3.2.1 Vecnivojski perceptron

Vecnivojski perceptron, ki ga shematicno prikazuje slika 3.1, zapisemo z enacbo:

yi = fi(∑

j

wijfn(∑

wjkfm(∑

l

wlkxl + w1

0l) + w2

0k) + w2

0j) (3.3)

Vecnivojski se imenuje zato, ker je sestavljen iz vsaj enega skritega nivoja (aktivacijski funkciji

fn, fm) in iz izhodnega nivoja fi. Vecnivojski perceptron je univerzalni aproksimator. To velja

takrat, kadar ima en ali vec skritih nivojev.

Najpogostejse aktivacijske funkcije (primer na sliki 3.2) so:

• sigmoidna funkcija,

• hiperbolicni tangens,

• linearna,

Page 16: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 3. OPTIMIRANJE NEVRONSKIH MREZ Z GENETSKIMI ALGORITMI 16

(a) tangens-sigmoid funkcija (b) Linearna funkcija

Slika 3.2: Dva primera aktivacijskih funkcij

• Gaussova

• funkcija signum.

V skritem nivoju je aktivacijska funkcija pogosto sigmoidna

f(I) =1

1 + eaI(3.4)

medtem, ko je pogosto izhodna funkcija linearna (slika 3.2b). Temu je tako, kadar uporabljamo

nevronsko mrezo kot regresor.

3.3 Moznosti optimiranja nevronskih mrez z GA

Nevronske mreze lahko z GA optimiramo na tri nacine:

• optimizacija stevila nevronov skritih slojev,

• optimizacija uteznih parametrov,

• izbor znacilk.

Pri optimizaciji stevila nevronov skritega sloja z GA imamo strukturo nevronsko mreze doloceno.

To pomeni, da imamo doloceno stevilo skritih slojev, z GA optimiramo stevilo nevronov posameznega

skritega sloja. Ucno metodo, kjer nevronsko mrezo ucimo, pa izvedemo preko standarnih metod.

V drugem primeru namesto standardnih ucnih metod uporabimo genetske algoritme. V tem

primeru imamo strukruro nevronske mreze v celoti podano. Zgodi se, da je optimizacijskih spre-

menljivk veliko, zato je tovrsto optimiranje potratno. V zadnjem primeru s pomocjo GA lahko

izvirne merjene podatke spremenimo v obliko, ki je primernejsa za sestavo regresorja vektorja.

Poglejmo si primera optimiranja stevila nevronov skritih slojev, kjer zelimo aproksimirati funkcijo

ene spremenljivke.

Page 17: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 3. OPTIMIRANJE NEVRONSKIH MREZ Z GENETSKIMI ALGORITMI 17

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−100

−80

−60

−40

−20

0

20

40

60

80

100

x

f(x)

Slika 3.3: Funkcija z eno spremenljivko

3.4 Primer optimizacije nevronskih mrez z GA

V naslednjem poglavju se bomo ukvarjali z optimizacijo ciljne funkcije, ki predstavlja razliko

med zeljeno funkcijo in aproksimirano funkcijo. Aproksimacijo funkcije dobimo z simulicijo

naucene nevronske mreze. Prikazali bomo primera aproksimacijo funkcije ene spremenljivke, ki

ji bomo v drugem primeru dodali sum.

3.4.1 1.primer - aproksimacija funkcija ene spremenljivke

Funkcijo

f(x) = 30[100(x − 0.6)2(x − 0.1)(x − 0.8) − 5e−5x + 0.9sin(20x −π

4)] (3.5)

, ki jo predstavlja slika 3.3, bomo aproksimirali z vecnivojskim perceptronom z dvema skritima

slojema. Aktivacijska funkcija obeh skritih slojev je sigmoidna funkcija, medtem ko je izhod-

nega linearna funkcija. Za ucenje nevronske mreze smo uporabili Levenberg - Marquardtovo

ucno metodo. Optimizacijo ciljne funkcije R =∑N

i (ei)2, kjer je ei = Ti − yi napaka med

koncno funkcijo Ti in aproksimacijo funkcije yi, bomo izvedli z genetskim algoritmom. Poskusili

bomo poiskati minimum ciljne funkcije s spreminjanjem stevila nevronov na skritem sloju. Op-

timizacija ciljne funkcije poteka v naslednjih korakih:

1. Dolocimo zacetno populacijo.

2. Z doloceno strukturo nevronske mreze izracunamo y

3. Izracunamo ciljno funkcijo R

Page 18: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 3. OPTIMIRANJE NEVRONSKIH MREZ Z GENETSKIMI ALGORITMI 18

Slika 3.4: Potek optimizacije ciljne funkcije

4. Ce je: R ≤ eps optimiranje koncamo R > eps nadaljujemo z naslednjim korakom.

5. Dolocimo novo populacijo, ki vsebuje najboljse, krizane ter mutirane potomce zacetne

populacije

6. Vrnemo se na korak 2

Opisanje optimizacijske korake lazje razberemo iz blokovnega diagrama na sliki 3.4.

Poglejmo si tri optimizacijske primere, kjer se ciljna funkcija zmanjsuje. Ce se ciljna funkija

zmanjsuje pomeni, da dobivamo boljso prileganje med funkcijo, ki jo zelimo aproksimirati in

aproksimirano funkcijo. Slike prikazuje potek ciljne funkicje, aproksimirane funkcije in napake.

Opazimo zmanjsevanje ciljne funkcije z istocasnim boljsim prileganjem krivulje.

Z zacetno populacijo 20 posameznikov in predpostavljenih 10 generacij je na sliki 3.6 prikazan

potek ciljne funkcije in povprecne razdalje med posamezniki v odvisnosti od generacij. Obmocje

iskanje stevila nevronov smo nastavili med 0 in 40. Ciljna funkcija se z vecanjem generacij

manjsa. Najmanjso vrednost ciljna funkcija doseze pri zadnji generaciji in ima vrednost 0.0032.

Omeniti je potrebno, da je vrednost relativna glede na stevilo vstopnih tock, kar pomeni, da

bomo z vecanjem tock dobili vecjo ciljno funkcijo. Za dosego optimalne resitve je predlagano 5

in 20 nevronov na prvem in drugem skritem sloju.

V drugem primeru smo funkciji (enacba 3.5) dodali Gaussov sum e(t). Funkcija je prikazana

na sliki 3.7. Z istimi parametri kot v prejsnjem primeru, razen stevila generacij, ki smo ga

povecali na trideset, se lotimo iskanja optimalne ciljne funckije. Ciljna funkcija ima po tridesetih

generacijah vrednost 6596.6955. Optimalen rezultat dobimo z uporabo 24 in 32 nevronov na

Page 19: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 3. OPTIMIRANJE NEVRONSKIH MREZ Z GENETSKIMI ALGORITMI 19

(a) (b)

(c)

Slika 3.5: Primerjava med funkcijo in aproksimacijsko funkcijo

Page 20: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 3. OPTIMIRANJE NEVRONSKIH MREZ Z GENETSKIMI ALGORITMI 20

0 1 2 3 4 5 6 7 8 9 100

2000

4000

6000

8000

Generation

Fitn

ess

valu

e

Best: 0.0032119 Mean: 174.4139

1 2 3 4 5 6 7 8 9 100

10

20

30

40

Generation

Ave

rgae

Dis

tanc

e

Average Distance Between Individuals

Best fitnessMean fitness

Slika 3.6: Potek optimizacije ciljne funkcije in povprecne razdalje med posamezniki

prvem in drugem skritem sloju. Slika 3.8 prikazuje rezultat, ki ga dobimo z uporabo omenjenega

stevila nevronov.

Potek vrednosti ciljne funkcije v odvisnosti od generacij pa vidimo na sliki 3.9. Na zgornjem

grafu opazimo, da je najboljsa in povprecna vrednost ciljne funkcije enaka. To bi lahko pomenilo,

da se je ciljna funkcija ujela v globalnem oziroma enemu iz lokalnih minimumov. Iz spodnjega

grafa opazimo, da se povprecna razdalja med posamezniki zmanjsuje.

Page 21: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 3. OPTIMIRANJE NEVRONSKIH MREZ Z GENETSKIMI ALGORITMI 21

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−150

−100

−50

0

50

100

x

f(x)

Slika 3.7: Funkcija + sum

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−150

−100

−50

0

50

100

x

f(x)

Ciljna funkcijaAproksimirana funkcija

Slika 3.8: Rezultat simulacije nevronske mreze s parametri, ki dajo optimalno ciljno funkcijo

Page 22: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

POGLAVJE 3. OPTIMIRANJE NEVRONSKIH MREZ Z GENETSKIMI ALGORITMI 22

0 5 10 15 20 25 304000

6000

8000

10000

Generation

Fitn

ess

valu

e

Best: 6596.6955 Mean: 6596.6955

5 10 15 20 25 300

20

40

60

Generation

Ave

rgae

Dis

tanc

e

Average Distance Between Individuals

Best fitnessMean fitness

Slika 3.9: Potek optimizacije ciljne funkcije in povprecne razdalje med posamezniki

Page 23: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

Poglavje 4

Zakjucek

V pricujoci seminarski nalogi smo obdelali genetske algoritme. Predstavili smo shemo delovanja

genetskih algoritmov in nacine razmozevanja oziroma proces dolocenje potomcev. Na primeru

smo prikazali delovanje GA. Osnovno smo opisali nevronske mreze in pokazali, na kaksen nacin

lahko uporabimo genetske algoritme za optimizacijo nevronskih mrez.

Za primer optimizacije stevila nevronov na skritem sloju smo si izbrali enostaven primer funkcije

ene spremenljivke. Ze pri relativno malo podatkih so bili racunski casi dolgotrajni. Problem se

pojavi, ker vsaka generacija vsebuje veliko posameznikov in je potrebno za vsakega posameznika

izracunati ciljno funkcijo. To pomeni, da je potrebno nauciti ter simulirati nevronsko mrezo za

vsakega posameznika. Ta postopek se ponovi za naslednjo generacijo.

GA omogocajo spreminjanje razlicnih parametrov (stopnja krizanja, stopnja mutacije, stevilo

populacije,...), ki izboljsajo dan problem. Izbira pravilnih parametrov pa je stvar poskusanja,

ki pa je v vecini primerih dolgotrajen.

Da bi optimizacijske razultate lahko validirali bi bilo potrebno optimizacijo stevila nevronov

izvesti z drugimi optimizacijskimi metodami. S primerjavo rezultatov razlicnih opt. metod, bi

dobili boljso sliko o uspesnosti in uporabnosti GA.

Za optimizacijske naloge sem uporabljal program Matlab 2007b. V prilogi se nahaja kratka

koda, ki je namenjena optimiranju nevronske mreze v programu Matlab.

23

Page 24: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

Poglavje 5

Programska koda

function [H feval] = main()

i=0;

options = gaoptimset(’PopInitRange’,[1;40],’Generations’,30,... ’PopulationSize’,20,’PlotFcns’,

@gaplotbestf,@gaplotdistance,... ’StallTimeLimit’,1000);

[H feval]=ga(@optimizacija st nivojev,2,[],[],[],[],[],[],[],options);

function [R]=optimizacija st nivojev(H)

i=i+1

P=0:0.001:1;

x=P;

H=round(H);

T=30*(100*(x-0.6).*(x-0.6).*(x-0.1).*(x-0.8)-5*exp(-5*x)+0.9*sin(20*x-pi/4));

T=T+2.5*randn(length(T),1)’;

net=newff(P,T,[H(1) H(2)]);

[net, tr] = train(net, P, T );

y=sim(net,P);

e=T-y;

R=sse(e);

clear net;

end

end

24

Page 25: Optimiranje nevronskih mreˇz z uporabo genetskih algoritmovlab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/seminar4.pdfGenetski algoritmi so sredstvo za reˇsevanje problemov, ki

Literatura

[1] Andrej Taranenko. Genetski algoritmi. Univerza v Mariboru, 2001.

[2] Jus Kocijan. Modeliranje dinamicnih sistemov z umetnimi nevronskimi mrezami in sorodnimi

metodami. Zalozba Univerze v Novi Gorici, 2007.

[3] Andries P. Engelbrecht. Computational Intelligence; An introduction. WILEY, 2002.

[4] Haykin Simon. Neural Networks: A Comprehensive Foundation. 2004.

25