32
Primeri primene veštačkih neuronskih mreža 1 ZADACI Modeliranje problema primenom veštačkih neuronskih mreža predstavlja kontinurani proces određivanja odgovarajuće strukture veštačke neuronske mreže sa pripadajućim vrednostima težinskih koeficijenata. Sam proces određivanja optimalne strukture veštačke neuronske mreže, koja treba da sa zadatom tačnošću izvrši željeno preslikavanje, može da bude i dugotrajan i zametan. Naime, iako postoje izvedeni matematički modeli koji u potpunosti određuju kriterijume odlučivanja, ipak se proces izbora opšteg modela ne može u potpunosti definisati. Sam izbora optimalne strukture, nakon sprovedenog procesa obučavanja, može biti matematički formulisan, a samim tim i implementiran. Međutim, s obzirom da se učenje uvek sprovodi shodno unapred definisanom kriterijumu performanse koji je izveden na osnovama matematičkog modeliranja, naknadno procesiranje generisanih izlaza može u pojedinim slučajevima biti izlišno. S druge strane, prilikom modeliranja nekog drugog problema naknadno procesiranje generisanih izlaza u formi poređenja sa željenim izlazom je poželjno. Drugim rečima, proces izbora optimalne strukture nije jednostavan kako se možda čini na prvi pogled. Da bi se u potpunosti sagledao proces učenja veštačkih neuronskih mreža, izbora arhitektura i odabira optimalne strukture najbolji način je predstavljanje kompletnog procesa putem izrade odgovarajućih zadataka. 1.1 Primer #1: Klasifikacija uzoraka primenom veštačke neuronske mreže sa prostiranjem signala unapred U primeru koji će biti prikazan potrebno je odrediti optimalnu strukturu veštačke neuronske mreže sa prostiranjem signala u napred koja će sa unapred zadatom tačnošću izvršiti klasifikaciju ulaznog skupa u odgovarajuće klase. U originalnoj referenci u pitanju je problem klasifikacije gljiva u odnosu na debljinu stabla (x 1 ) i visinu stabla (x 2 ). Skup obučavajućih parova prikazan je tabeli 1.1. Tabela 1.1 Skup obučavajućih parova Klase Klasa A Klasa B Redni X1 X2 X1 X2

Primeri primene vestackih neuronskih mreza.pdf

Embed Size (px)

DESCRIPTION

Primeri primene vestackih neuronskih mreza

Citation preview

Page 1: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

1 ZADACI

Modeliranje problema primenom veštačkih neuronskih mreža predstavlja kontinurani proces određivanja odgovarajuće strukture veštačke neuronske mreže sa pripadajućim vrednostima težinskih koeficijenata. Sam proces određivanja optimalne strukture veštačke neuronske mreže, koja treba da sa zadatom tačnošću izvrši željeno preslikavanje, može da bude i dugotrajan i zametan. Naime, iako postoje izvedeni matematički modeli koji u potpunosti određuju kriterijume odlučivanja, ipak se proces izbora opšteg modela ne može u potpunosti definisati. Sam izbora optimalne strukture, nakon sprovedenog procesa obučavanja, može biti matematički formulisan, a samim tim i implementiran. Međutim, s obzirom da se učenje uvek sprovodi shodno unapred definisanom kriterijumu performanse koji je izveden na osnovama matematičkog modeliranja, naknadno procesiranje generisanih izlaza može u pojedinim slučajevima biti izlišno. S druge strane, prilikom modeliranja nekog drugog problema naknadno procesiranje generisanih izlaza u formi poređenja sa željenim izlazom je poželjno. Drugim rečima, proces izbora optimalne strukture nije jednostavan kako se možda čini na prvi pogled. Da bi se u potpunosti sagledao proces učenja veštačkih neuronskih mreža, izbora arhitektura i odabira optimalne strukture najbolji način je predstavljanje kompletnog procesa putem izrade odgovarajućih zadataka.

1.1 Primer #1: Klasifikacija uzoraka primenom veštačke neuronske mreže sa prostiranjem signala unapred

U primeru koji će biti prikazan potrebno je odrediti optimalnu strukturu veštačke neuronske mreže sa prostiranjem signala u napred koja će sa unapred zadatom tačnošću izvršiti klasifikaciju ulaznog skupa u odgovarajuće klase. U originalnoj referenci u pitanju je problem klasifikacije gljiva u odnosu na debljinu stabla (x1) i visinu stabla (x2).

Skup obučavajućih parova prikazan je tabeli 1.1.

Tabela 1.1

Skup obučavajućih parova

Klase Klasa A Klasa B

Redni X1 X2 X1 X2

Page 2: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

broj

1. 7.9 7.2 5.9 2.3

2. 4 6.3 6.5 5.8

3. 6.9 8.3 8.8 8.3

4. 6.4 7.3 4.0 5.4

5. 6.9 7.2 5.9 6.3

6. 0.9 9.3 4 2.4

7. 2.6 6.9 1.9 7.3

8. 2.6 7.9 4.9 3.9

9. 4.9 9.8 6.9 3.5

10. 4.9 6.9 7.9 5.8

11. 4.9 7.8 0.9 8.6

12. 6.9 9.2 0.9 7.3

13. 4 7.3 0.9 7.9

14. 4.9 5.5 5.9 4.4

15. 8.8 9.3 4.0 3.4

16. - - 8.8 6.4

17. - - 3 3.9

18. - - 7.9 4.8

19. - - 2.4 5.9

Na slici 1.1 je dat grafički prikaz obučavajućeg skupa.

Page 3: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Slika 1.1 Skup obučavajućih parova

Kao što se može videti, kvadrati obojeni crnom bojom predstavljaju klasu A, dok je sa crvenim trouglovima predstavljena klasa B.

Model veštačke neuronske mreže treba da omogući odgovarajuću klasifikaciju ulaznog vektora, koji se sastoji od dve komponente X1 i X2 (tabela 1.1), u odgovarajuću klasu (A ili B). Na slici 1.1 se može videti grafički prikaz posmatranog problema klasifikacije. Problemi klasifikacije su pogodni za modeliranje veštačkim neuronskim mrežama s obzirom da je veoma teško uspostaviti validan matematički model. U tom smislu, primenom koncepta mašinskog učenja u vidu razvoja modela baziranog na veštačkim neuronskim mrežama predstavlja jedno od mogućih rešenja problema klasifikacije.

Modeliranje ovog problema primenom veštačkih neuronskih mreža izvršićemo u BPnet okruženju. BPnet je aplikativni softver razvijen za modeliranje problema primenom veštačke neuronske mreže sa prostiranjem signala u napred koji određuje težinske odnose primenom generalisanog delta pravila.

Prvi model koji će biti testiran je veštačka neuronska mreža sa tri sloja (jedan ulazni, jedan izlazni i jedan skriveni sloj). Mreža je formirana od dva neurona u ulaznom sloju, tri neurona u skrivenom sloju i dva neurona u izlaznom sloju (2x3x2 arhitektura).

Page 4: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Nakon 104,000 iteracija BPnet nije pronašao odgovarajuću kombinaciju težinskih odnosa za koja će očekivana greška učenja imati zadanu vrednost. Numerička vrednost greške učenja je 0.185, dok je zadata vrednost 0.1. Rezultati obučavanja izabrane veštačke neuronske mreže prikazani su u sledećoj tabeli:

Tabela 1.2

Uporedni prikaz željenih vrednosti izlaza i generisanog izlaza nakon 104,000 iteracija

Redni broj ulaznog vektora

Željena vrednost Generisani izlaz VNM

1.

2.

3.

4.

5.

.

16.

17.

18.

19.

1 0

1 0

1 0

1 0

1 0

.

0 1

0 1

0 1

0 1

0.892... 0.196...

1.097... -0.107...

0.892... 0.107...

0.981... 0.001...

0.895... 0.194...

.

-0.009... 1.093...

-0.259... 1.249...

-0.155... 1.151...

-0.258... 1.248...

Kao što se može videti, za neke vrednosti generisani izlaz veštačke neuronske mreže znatno odstupa od željene vrednosti. U tom slučaju, nastavićemo sa procesom obučavanja. Nakon dodatnih 240,000 iteracija BPnet još nije pronašao grešku koja je manja od 0.1, tačnije, pomenuta greška iznosi 0.182.

Tabela 1.3

Uporedni prikaz željenih vrednosti izlaza i generisanog izlaza VNM 2x3x2 nakon 340,000 iteracija

Redni broj ulaznog vektora

Željena vrednost Generisani izlaz VNM

Page 5: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

1.

2.

3.

4.

5.

.

16.

17.

18.

19.

1 0

1 0

1 0

1 0

1 0

.

0 1

0 1

0 1

0 1

0.797... 0.203...

1.055... -0.006...

0.955... 0.004...

1.074... -0.008...

0.983... 0.126...

.

-0.196... 1.190...

-0.260... 1.250...

-0.166... 1.162...

-0.259... 1.249...

Međutim, nakon 340,000 iteracija veštačka neuronska mreža ne daje izlaze koji bi bili zadovoljavajući.

Da bi odredili arhitekturu veštačke neuronske mreže koja će moći da izvrši klasifikaciju ulaznog vektora shodno klasama definisanim eksperimentalnim vrednostima podataka. U tom cilju, zadržaćemo jedan skriveni sloj ali ćemo dodati još jedan neuron. Dakle, arhitektura je 2x4x2 (dva neurona u ulaznom sloju, četiri neurona u skrivenom sloju i dva neurona u izlaznom sloju). Greška učenja je 0.13.

Tabela 1.4

Uporedni prikaz željenih vrednosti izlaza i generisanog izlaza VNM 2x4x2 nakon 244,000 iteracija

Redni broj ulaznog vektora

Željena vrednost Generisani izlaz VNM

1.

2.

3.

4.

5.

.

16.

17.

1 0

1 0

1 0

1 0

1 0

.

0 1

0 1

0.881... 0.121...

1.102... -0.006...

0.955... -0.105...

0.843... 0.157...

1.050... -0.005...

.

0.088... 0.890...

-0.248... 1.239...

Page 6: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

18.

19.

0 1

0 1

-0.007... 0.926...

-0.006... 1.062...

Na ovom mestu bi trebalo naglasiti da je prilikom „potrage” za odgovarajućom arhitekturom koja treba da ostvari preslikavanje iz ulaznog prostora u izlazni prostor ponekad i poželjno „pustiti” sistem da odredi vrednosti težinskih koeficijenata shodno zadatom kriterijumu. Naime, nakon ukupno 533,518 iteracija, vrednost greške učenja je svedena ispod zadane vrednosti od 0.1, pa možemo zaključiti da je posmatrana arhitektura 2x4x2 ispunila zadati kriterijum.

Ovaj primer je izabran u cilju predstavljanja mogućnosti reprezentovanja veštačke neuronske mreže sa prostiranjem signala u napred. U tom smislu, dodavanje dodatnih skrivenih slojeva može značajno da unapredi karakteristike mreže u pogledu klasifikovanja ulaznih podataka u odgovarajuće klase.

Rezultati procesa obučavanja mereže čija arhitektura je 2x4x2x2 nakon 90,000 iteracija. Važno je napomenuti da je BPnet nakon ovog broja iteracija pronašao odgovarajuće numeričke vrednosti težinskih odnosa za zadatu i očekivanu vrednost greške učenja. Naime, za razliku od prethodno testiranih arhitektura koje su prikazane, ova arhitektura (2x4x2x2) pokazuje da se „krećemo” pravom smeru. Rezultati obučavanja su prikazani u sledećoj tabeli.

Tabela 1.5

Uporedni prikaz željenih vrednosti izlaza i generisanog izlaza VNM 2x4x2x2 nakon 90,000 iteracija

Redni broj ulaznog vektora

Željena vrednost Generisani izlaz VNM

1.

2.

3.

4.

5.

.

16.

17.

18.

19.

1 0

1 0

1 0

1 0

1 0

.

0 1

0 1

0 1

0 1

1.014... -0.001...

1.026... -0.002...

1.094... -0.009...

0.973... -0.003...

1.046... -0.005...

.

0.000... 0.998...

-0.000... 1.009...

-0.000... 1.001...

-0.003... 1.028...

Page 7: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

U tabeli 1.6 prikazane su osnovne karakterisitke arhitektura koje su isprobane u cilju pronalaženja odgovarajuće arhitekture veštačke neuronske mreže sa pripadajućim težinskim koeficijentima. Može se primetiti da su prva dva modela odredila težinske koeficijente shodno zadatom kriterijimu performanse. U trećem slučaju proces učenja je zaustavljen nakon broja iteracija koje su navedene u tabeli 1.6. U ovakvim slučajevima koji se često pojavljaju u praksi ovaj postupak je više nego poželjan. Naime, bolje je za isto vreme koje je potrebno da bi se posmatranoj arhitekturi odredile vrednosti težinskih koeficijenata, razviti drugi model veštačke neuronske mreže. Ova konstatacija je posebno važna ukoliko se kao u našem primeru procesu učenja ne nazire mogućnost ispunjenja zadatog kriterijuma i odgovarajuće greške učenja.

S tim na umu, u tabeli se može videti uporedni prikaz karakteristika testiranih arhitektura. Kao što je već bilo naglašeno, arhitektura sa dva neurona u ulaznom sloju, četiri neurona u prvom skrivenom sloju, dva neurona u drugom skrivenom sloju i dva neurona u izlaznom sloju.

Tabela 1.6

Uporedni prikaz testiranih arhitektura

Arhitektura Očekivana

greška učenja

Ostvarena greška učenja

Kriterijum ispunjen?

Broj iteracija potrebnih za

konvergenciju

Proces učenja

zaustavljen

2x4x2x2 0.05 0.049 Da 90,000 Nakon

ispunjenog kriterijuma

2x4x2 0.1 0.13 Da 533,518 Nakon

ispunjenog kriterijuma1

2x3x2 0.1 0.185 Ne - Nakon

1,000,000 iteracija2

1 Važno je naglasiti da je proces učenja nakon uspešno ispunjenog kriterijuma nastavljen sa

novom vrednošću greške učenja od 0.05. Međutim, nakon dodatnih 150,000 iteracija sistem nije uspeo da svede vrednost greške na zadanu vrednost.

2 U prvom pokušaju proces učenja je zaustavljen nakon 340,000 iteracija. Međutim, nakon toga

sprovedena je nova provera ove arhitekture koja nije konvergirala ka optimalnom rešenju čak ni posle 1,000,000 iteracija.

Page 8: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Očekivana greška učenja je za sve tri arhitekture na samom početku usvojena za 0.1, ali je nakon uvida u brzinu konvergencije arhitekture (2x4x2x2) zahtevana greška učenja smanjena na numeričku vrednost 0.05.

U nastavku je dat grafički prikaz generisanih izlaza problema klasifikacije svih testiranih veštačkih neuronskih mreža.

Page 9: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Slika 1.2 Uporedni grafički prikaz klasifikovanih ulaznih vrednosti

Analiza i izbor arhitekture veštačke neuronske mreže

Prilikom modeliranja problema iz tehničke prakse primenom veštačkih neuronskih mreža osnovni cilj predstavlja određivanje one strukture veštačke neuronske mreže (broj skrivenih slojeva, broj procesirajućih jedinica u skrivenim slojevima) koja će sa dovoljnom tačnošću (koja je unapred poznata - greška učenja) izvršiti potrebno preslikavanje i postići generalizaciju. Dakle, na osnovu prethodnog stava nije teško zaključiti da je proces određivanje optimalne strukture veštačke neuronske mreže iterativni postupak, u kome korisnik testira više modela i na osnovu odgovarajućeg kriterijuma određuje (bira) optimalnu strukturu. S druge strane, definisanje optimalnog kriterijuma na čijim osnovama treba izabrati arhitekturu veštačke neuronske mreže nije tako jednostavno kao što na prvi pogled može izgledati. Sa dovoljnom dozom sigurnosti, ali i rezerve, može se reći da brzina konvergencije mreže ka rešenju (brzina učenja), kao i preciznost generisanih rezultata (izlaza) mogu biti neki osnovni kriterijumi određivanja uspešnosti preslikavanja.

U tom smislu, poređenjem rezultata prikazanih u tabeli 1.6, kao i uvidom u grafičke prikaze ishoda procesa učenja moguće je doneti odluku o arhitekturi mreže koja je potrebna da bi se ostvarilo željeno preslikavanje. Na osnovu prethodnih stavova izabrana je veštačka neuronska mreža sa prostiranjem signala unapred čija arhitektura je dva neurona u ulaznom sloju, četiri neurona u prvom skrivenom sloju, dva neurona u drugom skrivenom sloju i dva neurona u izlaznom sloju mreže (2x4x2x2).

Kao što se može videti, odabranoj arhitekturi je bilo potrebno najmanji broj iteracija da postigne željenu vrednost greške učenja. Trebalo bi naglasiti da je modifikacija težinskih odnosa odabrane arhitekture (učenje) veoma brzo konvergiralo ka zadatoj vrednosti greške učenja na osnovu kriterijuma performanse, a da je tom prilikom numerička vrednost greške učenja bila manja nego kod prethodno testiranih modela.

Page 10: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Međutim, na samom kraju važno je naglasiti da se verifikacija procesa učenja veštačke neuronske mreže ne sprovodi uvek sa „poznatim” obučavajućim parovima. Naime, nakon završenog procesa učenja preporučljivo je proveriti izlaze veštačke neuronske mreže za potpuno nepoznate ulaze. Ukoliko odgovarajuća izabrana mreža može da za nepoznate vrednosti ulaznog vektora generiše izlaz koji je definisan samom postavkom problema, onda možemo da kažemo da mreža poseduje svojstvo generalizacije, što i jeste jedan od osnovnih ciljeva modeliranja problema primenom veštačkih neuronskih mreža.

U tom cilju ćemo testirati mrežu 2x4x2x2 za sledeće izabrane vektore:

Tabela 1.7

Verifikacija i evaluacija vrednosti izlaza i generisanog izlaza VNM

2x4x2x2

6.5 5 -.234 1.225

2.5 4.5 -.002 1.023

2.5 7.5 1.026 -.003

5 5 -.237 1.229

Izbor ovih vrednosti komponenata ulaznog vektora je više nego logičan. Naime, na slici se može videti da ovi ulazno vektori predstavljaju, na neki način, granične vrednosti za koje sa dovoljnom tačnošću znamo njihovu pripadnost odgovarajućoj klasi. U tom smislu, ako je izabrani model veštačke neuronske mreže sa prostiranjem signala unapred u stanju da ostvari preslikavanje iz prostora ulaznog vektora u prostor izlaznog vektora za nepoznate vrednosti ulaza, onda sa dovoljnom sigurnošću može reći da smo uspešno „pronašli” nepoznatu arhitekturu veštačke neuronske mreže.

1.2 Primer #2: Prepoznavanje cifara

U mnogim tehničkim problemima potrebno je razviti i implementirati sisteme koji na osnovu odgovarajućih algoritama mogu da prepoznaje cifre i brojeve. Jedan od eklatantnih primera je unutrašnji transport sirovina, gotovih delova i materijala u industrijskim postrojenjima. Naime, trakasti transporteri primenjuju se u cilju transporta objekata (obradaka, gotovih delova, sirovina itd.) od jednog podsistema do drugog podsistema. Prilikom procesa transporta, moguće je

Page 11: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

preusmeravati objekte transporta na druge transportere. U tom slučaju neophodno je imati odgovarajući identifikacioni kod svakog od objekata koji je, naravno, kombinacija osnovnih cifara (0-9). Da bi sistem bio u stanju da prepozna kod svakog od objekata u cilju eventualnog preusmeravanja u toku transporta neophodno je razviti i implementirati sistem koji će biti u stanju da prepozna osnovne cifre. U tom smislu, ovaj problem predstavlja joše jedan tipski problem klasifikacije objekata na osnovu odgovarajućih karakterističnih obeležja objekata. Sam podsistem za prepoznavanje se realizuje preko kamere koja generiše sliku i procesirajuće jedinice razvijene na osnovama mašinskog učenja i veštačkih neuronskih mreža. S tim na umu, rešenje problema ćemo prvo razviti u BPnet aplikativnom softveru, a nakon toga, dovoljno sličan ali ipak malo kompleksniji primer u Matlab okruženju.

Neka su date četiri cifre (1, 2, 3, 4) i neka je potrebno razviti odgovarajući model veštačke neuronske mreže sa prostiranjem signala u napred, koji će sa zadatom tačnošću omogućiti sistemu da prepoznaje ulazne vektore i na taj način naknadnim procesiranjem klasifikuje kod objekta.

Slika 1.3 Uporedni grafički prikaz klasifikovanih ulaznih vrednosti

Page 12: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Ulazni vektor ćemo formirati na sledeći način. Kao što se na slici 1.3 može videti, ravan slike je formirana od 40 piksela3. Svaki piksel može biti u jednom i samo jednom od dva moguća stanja: zauzet/slobodan, odnosno, binarnim zapisom predstavljeno: 1 ili 0. 40 komponenata ulaznog vektora će nam dati informaciju o „zauzetosti” svakog piksela. Na slici 1.4 se može videti osnovni vid formiranja ulaznog vektora.

Ulazni vektor = {0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0}T

Slika 1.4 Definisanje ulaznog vektora

Dakle, ulazni vektori su:

V1= {0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0}T

3 Broj piksela je direktno vezan za rezoluciju kamere.

Prva vrsta ���� 0 0 1 0 0

Druga vrsta ���� 0 1 1 0 0 …

Prva „petorka”

Druga „petorka”

Page 13: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

V2 = {0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0}T

V3 = {0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0}T

V4= {1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0}T

Međutim, zbog poznatih svojstava sigmoidne aktivacione funkcije u pogledu vraćanja vrednosti 0 ili 1, potrebno je skalirati ulazne i izlazne vrednosti da bi veštačka neuronska mreža bila u stanju da generiše željene izlaze.

Naime, ukoliko usvojimo da su sve vrednosti koje su veće od 0.9 predstavljaju aktivaciju, onda i sve one vrednosti koje su manje od 0.1 predstavljaju neaktivno stanje posmatranog neurona. Dakle, ulazni vektori su:

V1 = {0.1 0.1 0.9 0.1 0.1 0.1 0.9 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.1 0.1 0.1}T

V2 = {0.1 0.9 0.9 0.9 0.1 0.9 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.9 0.9 0.1 0.1 0.9 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.9 0.9 0.9 0.9 0.1 0.1 0.1 0.1 0.1}T

V3 = {0.1 0.9 0.9 0.9 0.1 0.9 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.9 0.9 0.1 0.1 0.1 0.1 0.1 0.9 0.9 0.1 0.1 0.1 0.9 0.1 0.9 0.9 0.9 0.1 0.1 0.1 0.1 0.1 0.1}T

V4 = {0.9 0.1 0.1 0.9 0.1 0.9 0.1 0.1 0.9 0.1 0.9 0.1 0.1 0.9 0.1 0.9 0.9 0.9 0.9 0.9 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.1 0.1}T

Slično prethodnom postupku, izlazni vektori, tj. Željene vrednsoti su:

I1 = {1 0 0 0}T � {0.9 0.1 0.1 0.1}T

I2 = {0 1 0 0}T � {0.1 0.9 0.1 0.1}T

I3 = {0 0 1 0}T � {0.1 0.1 0.9 0.1}T

I4 = {0 0 0 1}T � {0.1 0.1 0.1 0.9}T

Arhitektura mreže sa jednim skrivenim slojem prikazana je na sledećoj slici:

Page 14: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Slika 1.5 Arhitektura veštačke neuronske mreže sa prostiranjem signala unapred

Prilikom modeliranja različitih problema primenom veštačkih neuronskih mreža osnovno cilj je određivanje optimalne strukture veštačke neuronske mreže u pogledu broja skrivenih slojeva i broja neurona u njima. U ovom, početnom, trenutku azvoja posmatrane veštačke neuronske mreže znamo da mreža mora da poseduje ulazni sloj u stanju da procesira ulazni vektor sa 40 komponenata i izlazni sloj sa četiri procesirajuće jedinice.

Kao što je već naglašeno, prilikom modeliranja problema primenom veštačkih neuronskih mreža, ne postoji opšta metodologija čija primena bi rezultirala traženim odgovorom. Dakle, broj skrivenih slojeva i broj neurona u skrivenim slojevima treba da bude određen tokom procesu obučavanja i „potrage” za optimalnom strukturom. U većini problema jedan i samo skriveni sloj je dovoljan. S druge strane, postoje problemi koji po samoj prirodi zahtevaju više skrivenih slojeva, što smo videli u prethodnom primeru. U opštem slučaju, trebalo bi krenuti sa tri sloja (jedan ulazni, jedan izlazni i jedan skriveni) i videti koji je ishod učenja u zavisnosti od variranja broja neurona u skrivenom sloju. Ukoliko ni posle većeg broja testiranja izabranih arhitektura možda je zaista potrebno uvesti dodatne slojeve u cilju uspešnog modeliranja problema.

Page 15: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

U tom smislu, proces ćemo započeti sa jednim skrivenim slojem i oceniti ishod obučavanja. Prva arhitektura veštačke neuronske mreže sa prostiranjem signala unapred je 40x20x4.

Prva arhitektura: 40 x 20 x 4

Nakon uspešno sprovedenog postupka unosa skupa obučavajućih parova u BPnet, proces obučavanja ćemo nastaviti usvajanjem vrednosti očekivane greške učenja od 0.5. Važno je napomenuti da su vrednosti za parametre obučavanja µ i λ jednake i iznose 0.2, kao što se na slici 1.6 može videti.

Slika 1.6 Arhitektura 40x20x4

Nakon ostvarenog cilja, promenićemo vrednost očekivane greške učenja na 0.2. Čitalac se može uveriti da će za zadate uslove rešenje biti određeno nakon 3,497 iteracija. U tabeli je predstavljen uporedni prikaz željenih I generisanih vrednosti za prvi, drugi i četvrti ulazni vektor.

Page 16: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Tabela 1.8

Prikaz generisanih vrednosti nakon 3,497 iteracija

Željene vrednosti prvog ulaznog vektora

Generisani izlaz VNM

Željene vrednosti drugog ulaznog vektora

Generisani izlaz VNM

Željene vrednosti četvrtog ulaznog vektora

Generisani izlaz VNM

0.9

0.1

0.1

0.1

0.8879…

0.3668…

0.093…

-0.004…

0.1

0.9

0.1

0.1

0.134…

0.488…

0.114…

0.126…

0.1

0.1

0.1

0.9

-0.020…

0.6824…

-0.097…

0.894…

Dakle, kao što se na osnovu prethodne tabele može videti rezultati su daleko od željenih pa samim tim proces obučavanja treba nastaviti. U tom smislu, usvajanjem nove vrednosti greške učenja (0.02) nastavljamo proces. Nakon dodatnih nekoliko hiljada iteracija, softver je uspeo da pronađe vrednsoti težinskih koeficijenata koji zadovoljavaju postavljeni kriterijum u vidu numeričke vrednosti greške učenja.

Da bi u potpunosti bili sigurni u generisane rezultate započećemo proces obučavanja od samog početka, ali sa novim parametrima, a sve u cilju verifikacije rezultata. Odgovarajući BPnet korisnički prozor je prikazan na sledećoj slici dok su rezultati učenja dati u tabeli 1.9.

Page 17: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Slika xx Proces učenja nakon 6,902 iteracije

Tabela 1.9

Prikaz generisanih vrednosti nakon 6,902 iteracije

Generisani izlaz za prvi ulazni

vektor

Generisani izlaz za drugi ulazni vektor

Generisani izlaz za treći ulazni vektor

Generisani izlaz za četvrti ulazni vektor

0.897…

0.102…

0.108…

0.106…

0.110…

0.888…

0.007…

0.008…

0.093…

0.110…

0.905…

0.009…

-0.002…

0.103…

0.105…

0.902…

Bez većih upuštanja u analizu rezultata možemo zaključiti da veštačka neuronska mreža koja je formirana od jednog ulaznog sloja, jednog skrivenog sloja sa 20 neurona i jednog izlaznog sloja (40x20x4) može da izvrši zahtevano preslikavanje. Naravno, u funkciji pedagoških ciljeva nastavićemo proces obučavanja koji bi trebao da rezultira nekom adekvatnijom arhitekturom.

Page 18: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Druga arhitektura: 40 x 10 x 4

S obzirom da broj težinskih koeficijenata, koji određuju povezanost između neurona, raste sa kvadratom broja neurona, shodno tome povećava se i vreme učenja koje je potrebno u cilju određivanja ovih koeficijenata. Naravno, samim tim povećavaju se i zahtevi u pogledu rada procesorske jedinice računara. U tom smislu, potrebno je težiti manjem broju neurona, a sve u cilju bržeg obučavanja mreže. Naravno, iako je prethodni stav opšteg karaktera, postoje problemi čije modeliranje veštačkim neuronskim mrežama zahteva veći broj neurona, a sve zbog boljih mogućnosti u pogledu predstavljanja znanja i poboljšanju sposobnosti generalizacije.

Sledeća arhitektura veštačke neuronske mreže sa prostiranjem signala u napred koju ćemo obučiti u cilju generisanja željenih izlaza je 40x10x4. usvojićemo da parametri učenja imaju vrednost 0.5, dok je očekivana greška učenja 0.025.

Slika 1.10 Proces učenja nakon 55,794 iteracije

Zanimljivo je da ukoliko usvojimo novu vrednost očekivane greške učenja npr. 0.015 i nastavimo proces određivanja i modifikacije težinskih odnosa, mreža će nastaviti da uči sve do 69,000 iteracija, sa konstantnom vrednošću greške učenja od 0.0153424. Bez obzira na eventualnu promenu parametara ova vrednost greške učenja ostaje konstantna. Rezultati procesa učenja nakon 55,794 iteracija nakon što je greška učenja svedena ispod zahtevane vrednosti dati su u tabeli 1.10.

Page 19: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Tabela 1.10

Prikaz generisanih vrednosti nakon 55,794 iteracije

Generisani izlaz za prvi ulazni

vektor

Generisani izlaz za drugi ulazni vektor

Generisani izlaz za treći ulazni vektor

Generisani izlaz za četvrti ulazni vektor

0.900…

0.0099…

0.100…

0.100…

-0.0224…

0.899…

0.100…

0.100…

0.100…

0.100…

0.900…

0.009…

0.100…

0.100…

-0.002…

0.899…

U tom smislu, možemo sa dovoljnom sigurnošću zaključiti da arhitektura koja je formirana od 40 procesirajućih jedinica u ulaznom sloju, 10 u skrivenom sloju i četiri u izlaznom sloju, u stanju da znatno bolje izvrši preslikavanje koje se od nje zahteva nego prethodno analizirana arhitektura (40x20x4).

Treći pokušaj: 40 x 5 x 4

U cilju određivanja optimalne strukture veštačke neuronske mreže nastavićemo sa smanjivanjem broja neurona u skrivenom sloju. Sledeća arhitektura koja je izabrana je 40x5x4. Usvojene numeričke vrednosti parametara učenja je 0.5, dok se očekuje greška učenja od bar 0.02.

Nakon 144,000 iteracija posmatrana mreža je počela da osciluje između vrednosti greške učenja od 0.025. Ovo oscilatorno „kretanje” nije se prekinulo ni nakon dodatni 15,000 iteracija. Generisani izlazi se mogu videti u sledećoj tabeli.

Tabela 1.11

Prikaz generisanih vrednosti nakon 144,000 iteracija

Generisani izlaz za prvi ulazni

vektor

Generisani izlaz za drugi ulazni vektor

Generisani izlaz za treći ulazni vektor

Generisani izlaz za četvrti ulazni vektor

0.897…

0.1036…

0.002…

0.100…

0.1060…

0.897…

0.008…

-0.002…

0.006…

0.122…

0.897…

0.103…

0.122…

0.006…

0.009…

0.896…

Page 20: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Dakle, sa dovoljnom dozom sigurnosti možemo zaključiti da ova konfiguracija nije adekvatno rešenje analiziranog problema.

Na kraju, bilo bi više nego zanimljivo proveriti da li bi eventualno uvođenje dodatnih skrivenih slojeva doprinelo povećanju brzine konvergencije i ostvarivanju odgovarajućeg nivoa kvaliteta željenog preslikavanja. U tom smislu, pokušaćemo da ostvarimo zahtevano preslikavanje sa dva skrivena sloja (40x10x10x4).

Usvojene vrednosti parametara učenja i očekivane greške učenja mogu se videti na slici 1.11, dok su generisani izlazi ove veštačke neuronske mreže dati u tabeli 1.12.

Slika 1.11. Arhitektura 40x10x10x4 nakon 73,259 iteracija

Tabela 1.12

Prikaz generisanih vrednosti nakon 73,259 iteracija

Generisani izlaz za prvi ulazni

vektor

Generisani izlaz za drugi ulazni vektor

Generisani izlaz za treći ulazni vektor

Generisani izlaz za četvrti ulazni vektor

Page 21: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

0. 300…

0. 300…

0. 300…

0. 300…

0. 299…

0. 299…

0.300…

0.300…

0.299…

0.299…

0.300…

0.300…

0. 299…

0. 299…

0. 299…

0. 299…

Generisani izlazi definitivno nisu oni koji treba da predstavljaju rešenje analiziranog problema. Poređenjem ovih izlaza i odgovarajućih prethodnih testiranih arhitektura veštačkih neuronskih mreža, može se videti šta dodatni skriveno slojevi pružaju u cilju predstavljanja znanja. Testiranje drugih arhitektura se ostavlja čitaocima, mada su autori uvereni da je izabrana arhitektura sa jednim skrivenim slojem optimalno rešenje.

Analiza i diskusija

Poređenjem tri osnovne analizirane arhitekture moguće je izvesti zaključak o njihovoj upotrebnoj vrednosti. Naime, prvoj testiranoj arhitekturi (40x20x4) je potrebno 6,902 iteracije za određivanje vrednosti težinskih koeficijenata. Kao što je tom prilikom konstatovano, generisani izlazi mreže nakon sprovedenog procesa učenja su zadovoljavajući.

S druge strane, arhitektura 40x10x4 određuje izlaze koji su znatno bliži željenim vrednostima, ali i sa veđim brojem iteracija, tačnije potrebno je 55,794 iteracije. Na kraju, poslednja arhitektura koja je testirana (40x5x4) zahteva najveći broj iteracija, čak 144,000. U tom smislu, ovu poslednju arhitekturu možemo eliminisati iz procesa odlučivanja o optimalnoj strukturi veštačke neuronske mreže. Samim tim, „u igri ostaju” samo prve dve arhitekture.

Kada bi posmatrali sa stanovišta brzine učenja, optimalan izbor bi definitivno bila prva arhitektura (40x20x5). Međutim, posmatrano sa stanovišta preciznosti generisanih rezultata nakon sprovedenog procesa učenja, optimalan izbor bi bila druga arhitektura. Znatno duže vreme potrebno za sprovođenje procesa učenja je predstavlja cenu preciznosti.

U ovom trenutku, izbor će biti druga veštačka neuronska mreža, a sve zbog boljih izlaznih vrednosti. S druge strane, važno je naglasiti da bi sa aspekta implementacije u industrijski i jedno i drugo rešenje bilo zanimljivo. Naime, prva arhitektura bi bila bolji izbor ukoliko bi se pojavili novi ulazni vektori i ukoliko bi postojala potreba za obučavanjem sa ovim novim ulazno-izlaznim obučavajućim parovima. Bilo kako bilo, u ovom trenutku ćemo se odlučiti za drugu arhitekturu koja se sastoji od 40 procesirajućih jedinica u ulaznom sloju, 10 u skrivenom sloju i četiri u izlaznom sloju.

Bilo bi zanimljivo testirati mogućnosti generalizacije izabrane mreže u pogledu predstavljanja za nijansu drugačijih ulaznih vektora. Naime, zamislimo da je na

Page 22: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

osnovu generisane slike sa kamere, odgovarajući softver za procesiranje slike prepoznao sledeći oblik ulaznog vektora:

Slika 1.12 Prvi ulazni oblik nakon sprovedene transformacije transclacije

Dakle, ulazni vektor je

V= {0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.9 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1 0.1 0.1}T

Generisane izlazne vrednosti izabrane veštačke neuronske mreže (40x10x4) se mogu videti u tabeli 1.13.

Tabela 1.13

Prikaz generisanih vrednosti nakon translacije

Generisani izlaz

Željeni izlaz

-0. 001…

0. 813…

-0. 002…

0. 749…

0. 9

0. 1

0.1

0.1

Dakle, kao što prethodna tabela prikazuje, generisani izlazi se znatno razlikuju od željenih vrednosti. Postavlja se sasvim logično pitanje, u čemu je problem? Osnovni problem predstavlja upravo sama veštačka neuronska mreža.

Page 23: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Naime, odabrana arhitektura nije naučena da prepoznaje ovu ne malu razliku između poznatog ulaznog vektora (u ovom slučaju prvog ulaznog vektora) i novog oblika. Ukoliko želimo da mreža sa dovoljnom tačnošću prepozna ovaj oblik ulaznog vektora onda je neophodno da sve moguće slučajeve (tj. Položaje nakon izvršene transformacije) uključimo u proces učenja. Drugim rečima, proces obučavanja bi morao da bude sproveden i za ove „nove” ulazne vektore. Na ovom mestu je jako važno naglasiti da ovaj problem ne predstavlja generalizaciju već je isključivo vezan za nemogućnost adekvatnog prepoznavanja ulaznog vektora.

U nastavku ćemo prikazati proces modeliranja problema primenom veštačkih neuronskih mreža u Matlab okruženju, tj. u odgovarajućem modulu ovog softverskog paketa. U tom cilju, prikazaćemo postupak obučavanja veštačke neuronske mreže u cilju prepoznavanja većeg broja primera. Novi obučavajući skup je prikazan na sledećoj slici.

Slika 1.13 Obučavajuči skup

Osnovna postavka problema je identična prethodnom slučaju u kome smo tražili optimalnu strukturu u cilju prepoznavanja četiri cifre tj. 1,2,3 i 4. U Matlab okruženju moguće je vršiti modeliranje problema pisanjem odgovarajućeg koda (M-file) ili direktnim unosom u modul za veštačke neuronske mreže (Neural Network Toolbox). Važno je naglasiti da se rezultati procesa učenja neće razlikovati. Izbor modeliranja preko pisanja odgovarajućeg koda ili pak direktnim

Page 24: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

unosom u grafički interfejs modula za veštačke neuronske mreže ostavljen je korisniku.

Matlab kod u cilju modeliranja postavljenog problema je:

clc,clear, close all

% Definisati ulazne vektore:

i1 = [0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0

0 0 1 0 0 0 0 0 0 0]';

i2 = [0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0

1 1 1 1 1 0 0 0 0 0]';

i3 = [0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1

0 1 1 1 0 0 0 0 0 0]';

i4 = [1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 1 0

0 0 0 1 0 0 0 0 0 0]';

i5 = [0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1

1 1 1 1 1 0 0 0 0 0]';

i6 = [0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1

1 1 1 1 1 0 0 0 0 0]';

i7 = [0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0

0 0 1 0 0 0 0 0 0 0]';

i8 = [0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1

0 1 1 1 0 0 0 0 0 0]';

i = [i1 i2 i3 i4 i5 i6 i7 i8]

% Definisati izlazne vektore:

o1 = [1 0 0 0 0 0 0 0]';

o2 = [0 1 0 0 0 0 0 0]';

o3 = [0 0 1 0 0 0 0 0]';

o4 = [0 0 0 1 0 0 0 0]';

o5 = [0 0 0 0 1 0 0 0]';

o6 = [0 0 0 0 0 1 0 0]';

o7 = [0 0 0 0 0 0 1 0]';

o8 = [0 0 0 0 0 0 0 1]';

o = [o1 o2 o3 o4 o5 o6 o7 o8]

% Definisati opseg promene ulaznih vektora (minimalnu i maksimalnu

vrednost):

kk = [zeros(size(i,1),1) ones(size(i,1),1)];

% Definisati strukturu veštačke neuronske mreže:

net = newff([kk],[10,8],{'logsig','logsig'},'trainlm');

Page 25: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

% Usvojiti vrednosti parametara učenja:

net.trainParam.show = 100;

net.trainParam.lr = 0.5;

net.trainParam.epochs = 1000;

net.trainParam.goal = 1e-5;

% Započeti proces učenja:

net = train(net,i,o);

% Rezultati učenja su:

y = sim(net,i(:,:))

Pojašnjenja osnovnih parametara su data u nastavku.

Prvi parametar [kk] definiše opseg ulaznih vektora (minimalnu i maksimalnu vrednost). Važno je naglasiti da tzv. skaliranje ulaznih vrednosti se odvija automatizovano u okviru Matlaba na osnovu ovako definisanog parametra.

Drugim parametrom [10,8] određena je arhitektura veštačke neuronske mreže koja se u ovom slučaju sastoji od tri sloja (jedan ulazni, jedan skriveni i jedan izlazni sloj) sa sledećim brojem procesirajućih jedinica 40x10x8. Važno je naglasiti da se u Matlabu ne definiše eksplicitno broj neurona u ulaznom sloju, s obzirom da je ta veličina uvek određena tipom ulaznog vektora.

Komanda {'logsig','logsig'} određuje primenu sigmoidne aktivacione funkcije u skrivenom i izlaznom sloju. Kao što se može videti, Matlab omogućuje korisniku da definiše različite aktivacione funkcije za skriveni i izlazni sloj veštačke neuronske mreže.

Na kraju, poslednji parametar ('trainlm') određuje primenu Levenberg-Markeoovog postupka prilikom obučavanja veštačke neuronske mreže. U slučaju da se na pomenutom mestu ne upiše algoritam učenja, Matlab će uvek kao prvi izbor (tzv. default) izabrati gradijentni postupak.

Rezultati obučavanja veštačke neuronske mreže su:

TRAINLM-calcjx, Epoch 0/1000, MSE 0.292447/1e-005, Gradient

0.0577139/1e-010

TRAINLM-calcjx, Epoch 13/1000, MSE 2.3102e-006/1e-005, Gradient

1.33724e-005/1e-010

TRAINLM, Performance goal met.

y =[0.9999 0.0000 0.0000 0.0000 0.0002 0.0002 0.0000 0.0000

0.0000 0.9998 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000

0.0000 0.0000 0.9989 0.0000 0.0000 0.0000 0.0000 0.0000

0.0001 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0001

Page 26: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

0.0001 0.0003 0.0003 0.0002 0.9968 0.0018 0.0001 0.0001

0.0000 0.0000 0.0000 0.0000 0.0001 0.9885 0.0000 0.0000

0.0002 0.0000 0.0000 0.0000 0.0000 0.0000 0.9999 0.0000

0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.9991]

Kao što se iz priloženih rezultata može videti, duž glavne dijagonale matrice izlaznih vektora imamo vrednosti koje su bliske željenim vrednostima.

1.3 Primer #3: Primena veštačkih neuronskih mreža u cilju predikcije očitavanja ultrazvučnih senzora bliskosti prilikom kretanja mobilnog robota

Jedna od osnovnih kategorija primene veštačkih neuronskih mreža je predikcija. Naime, na osnovu prikupljenih podataka do određenog trenutka t od mreže se očekuje da predvidi ponašanje posmatrane veličine u trenutku t+1. Kao primeri primene predikcije mogu se navesti sledeći problemi: predviđanje značajnih promena na tržištu hartija od vrednosti, predviđanje životnog veka mašinskih delova, itd. U tom smislu, u nastavku će biti prikazano modeliranje očitavanja ultrazvučnog senzora prilikom kretanja mobilnog robota.

Ultrazvučni senzori predstavljaju senzore bliskosti čiji je osnovni zadatak detekcija pokretnih i nepokretnih objekata koji se nalaze na putanji mobilnog robota, a sve u cilju sprečavanja kolizije. Na slici 1.13 prikazan je mobilni robot sa odgovarajućim ultrazvučnim senzorima prilikom kretanja i nailaska na prepreku u četiri karakteristična slučaja.

Slika 1.13: Mobilni robot prilikom kretanja.

Slučajevi pod a) i b) na slici XX predstavljaju situaciju kada jedan i samo jedan, od dva postojeća ultrazvučna senzora, prijavi postojanje prepreke na putanji. Slučaj pod c) odgovara slučaju kada oba senzora bliskosti prijave prepreku koja se nalazi pod pravim uglom relativno u odnosu na trajektoriju

Page 27: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

kretanja mobilnog robota. Poslednji slučaj d), predstavlja nailazak robota na prepreku koja se nalazi pod uglom α.

U prvom koraku pokušaćemo da na osnovu podataka prikupljenih tokom eksperimentalnog procesa odredimo arhitekturu veštačke neuronske mreže koja će biti u stanju da izvrši predikciju merenja ultrazvučnog senzora. U tu svrhu, koristićemo eksperimentalne podatke prikupljene za treći slučaj (slučaj pod c) na slici 1.13).

Prikupljanje podataka i formiranje skupa obučavajućih parova sprovedeno je u nekoliko faza. U prvoj postavci, mobilni robot se kretao ravnomerno pravolinijski prema objektu koji se nalazi na približno 60 [cm] od početnog položaja robota. Tokom kretanja, dva ultrazvučna senzora (tzv. sonari) vrše akviziciju podataka, na čijim osnovama će biti formiran skup obučavajućih parova. Ultrazvučni talasi nailaze na objekat koji se nalazi na putanji mobilnog robota pod uglom od α =0o. Na slici su prikazana očitavanja dobijena akvizicijom tokom eksperimentalnog procesa. Važno je naglasiti da prilikom akvizicije podataka kretanje objekta nije razmatrano s obzirom da bi za problem takve vrste trebalo razviti mrežu koja je u stanju da vrši predikciju stanja objekta ali i da koriguje komponente određene na osnovu koraka predikcije shodno izvršenom merenju.

Slika 1.14: Očitavanja ultrazvučnih senzora

tokom kretanja mobilnog robota.

S obzirom da ni polazni problem, u kome kretanje objekta „nije dozvoljeno”, nije jednostavan kao što izgleda, u nastavku ćemo u kratkim crtama opisati fizikalnost samog problema. Prilikom kretanja mobilnog robota senzori bliskosti

Page 28: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

(sonari) emituju ultrazvučni talas koji biva reflektovan od površine objekta koji se nalazi na putanji talasa. Tom prilikom, odbijeni (reflektovani) talas biva vraćen do emitera talasa (sonara), na osnovu čega se određuje razdaljina između objekta i mobilnog robota znajući brzinu prostiranja zvučnih talasa i vreme nakon koga je zvučni talas „doneo” informaciju o prisutnosti objekta na putanji. Međutim, s obzirom da mobilni robot tom prilikom menja svoj položaj (poziciju i orijentaciju), problem određivanja distance postaje znatno kompleksniji. U tom slučaju moguće je pored očitavanja ultrazvučnih senzora u analizu uvesti i očitavanje enkodera, tj. senzora koji mere rotaciju pogonskih vratila pored pored očitavanja ultrazvučnih senzora i na taj način određuju relativno pomeranje mobilnog robota između dva sukscesivna položaja. Drugim rečima, pređeni put između dva merenja određen je na osnovu merenja enkodera.

Dakle, na osnovu prethodne analize moguće je formirati ulazni vektorski prostor ali i odgovarajući izlazni vektorski prostor. Kao komponente ulaznog vektora usvojićemo:

p = [d1, d2, e1, e2]

gde su:

d1 – očitavanje prvog sonara u trenutku t;

d2 – očitavanje drugog sonara u trenutku t;

e1 – očitavanje prvog enkodera u trenutku t;

e2 – očitavanje drugog enkodera u trenutku t.

S druge strane, izlazni vektor će biti:

s = [d1, d2]

gde su:

d1 – predikcija očitavanja prvog sonara u trenutku t+1;

d2 – predikcija očitavanja drugog sonara u trenutku t+1.

Problem ćemo modelirati veštačkom neuronskom mrežom sa prostiranjem signala unapred i stim na umu rešenje ćemo razviti Matlab okruženju. Prilikom modeliranja, najbolje rezultate je pokazala mreža sa sledećom arhitekturom 4x10x2. Prilikom sprovođenja procesa modifikacije i određivanja težinskih koeficijenata primenjen je Levenberg-Markeov algoritam učenja. Tom prilikom testirana je veštačka neuronska mreža sa jednim skrivenim slojem i deset procesirajućih elemenata sa sigmoidnim aktivacionim funkcijama (tansig u Matlab nomenklaturi). Deo koda je prikazan u nastavku:

net1 = newff(i,o,[10],{},'trainlm','learngdm')

net1 = train(net1,i,o)

Page 29: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

Na sledećoj slici može se videti uporedni prikaz rezultata modeliranja problema primenom veštačkih neuronskih mreža i realnog očitavanja senzora bliskosti. Na priloženom uporednom prikazu može se videti bliskost realnih očitavanja sonara i vrednosti generisanih nakon sprovedenog procesa obučavanja veštačkih neuronskih mreža.

Slika 1.15: Uporedni prikaz ocitavanja ultrazvučnih senzora

tokom kretanja mobilnog robota i

generisanih vrednosti veštačke neuronske mreže.

Važno je naglasiti da se prethodna slika odnosi na prikaz generisanih izlaznih vrednosti veštačke neuronske mreže sa trening skupom kao ulaznim vrednostima. Međutim, osnovna ideja modeliranja problema iz (tehničke) prakse primenom ove paradigme veštačke inteligencije i nije da sistem (veštačka neuronska mreža) nauči da reprodukuje vrednosti određene skupom obučavajućih parova. Naprotiv, na osnovu skupa obučavajućih parova veštačka neuronska mreža treba da pronađe takve numeričke vrednosti težinskih koeficijenata koje će biti u stanju da ostvare generalizaciju. Drugim rečima, da za većinu vrednosti iz odgovarajućeg domena koje mreža „nije videla” mreža i generiše vrednosti koje se nalaze u zadatom skupu izlaznih parova. Samo u tom slučaju možemo reći da je mreža ostvarila generalizaciju.

Na osnovu prethodnih informacija koje su direktno vezane za sposobnost generalizacije veštačke neuronske mreže, pokušaćemo da testiramo odgovor mreže na osnovu ulaznih veličina koje mreža prethodno videla. U tom smislu,

Page 30: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

uvešćemo vrednosti koje su nastale prilikom akvizicije podataka prilikom nailaska mobilnog robota (ali pre svega zvučnih talasa) na prepreku pod uglom od 30o. Na slici 1.16 je dat uporedni prikaz.

Slika 1.16: Uporedni prikaz ocitavanja ultrazvučnih senzora

tokom kretanja mobilnog robota i

generisanih vrednosti veštačke neuronske

mreže za vrednosti za koje mreža nije bila obučena.

Može se primetiti da se vrednosti koje veštačka neuronska mreža generiše na osnovu vrednosti sa kojima mreža „nije prethodno bila upoznata” neznatno razlikuju od stvarnih merenja ultrazvučnih senzora. Čak i prilikom „skoka” vrednosti očitavanja sonara veštački neuronski sistem prepozna tu promenu i generiše odgovarajuću vrednost. Iznenadni skok vrednosti može nastati kao greška u procesu akvizicije podataka u realnom vremenu, s obzirom da ultrazvučni senzori bliskosti ne nude visok nivo pouzdanosti. U tom smislu, uspešno predviđanje veštačke neuronske mreže da će se gradijent promene merenja ultrazvučnog senzora naglo promeniti, predstavlja jako značajnu pojavu posmatrano sa stanovišta implementacije ovog sistema u realnom vremenu. Ova činjenica je veoma važna s obzirom na kompleksnost problema predviđanja sledećeg ošitavanja ultrazvučnih senzora nakon promene položaja mobilnog robota.

Sledeće testiranje sposobnosti generalizacije obučene veštačke neuronske mreže odnosi se na vrednosti koje su prikupljene prilikom kretanja mobilnog robota koja je različita od one za koju je mreža obučena. Na sledećoj slici može se videti generalizacija veštačke neuronske mreže na osnovu dovedenog test

Page 31: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

skupa. Nije teško zaključiti da i ovom prilikom mreža pokazuje zadovoljavajuće rezultate.

Slika 1.17: Uporedni prikaz ocitavanja ultrazvučnih senzora

tokom kretanja mobilnog robota i

generisanih vrednosti veštačke neuronske

mreže za vrednosti za koje mreža nije bila obučena.

S druge strane, direktno uvođenje informacije sa senzora u posmatrani sistem ili podsistem može se ponekad pokazati kao kontraproduktivno. Naime, senzorsko očitavanje nosi sa sobom potrebnu informaciju (u slučaju „naših” ultrazvučnih senzora u pitanju je prisutnost objekta na putanji), koja nakon obrade treba da bude dalje procesirana. Međutim, u praksi je veoma čest slučaj da usled nesavršenosti senzora kao uređaja, dinamičkih karakterisitka okruženja u kojem „naša mašina” (u ovom slučaju mobilni robot) obavlja zadatke za koje je projektovana, itd. informacija koja je vraćena sa senzora ne odslikava pravo stanje stvari. Naime, kao što se može videti na osnovu dijagramskih prikaza očitavanja senzora, dešava se da nakon niza pravilnih merenja usledi merenje koje nije u skladu sa prethodnom slikom radnog okruženja. U tom slučaju možemo postaviti sledeće pitanje: za poznata merenja do nekog trenutka t (npr. sva očitavanja ultrazvučnog senzora, davača ubrzanja ili puta itd.) postavlja se pitanje, kolika je verovatnoća da se objekat A pomerio sa prethodnog položaja? U tom smislu, neophodno je sprovesti preprocesiranje informacije da bi se odredio precizan odgovora na postavljeno pitanje. Međutim, ovaj tip identifikacije i modeliranja dinamičkih sistema daleko prevazilazi osnovnu namenu ove zbirke zadataka, pa se čitalac upućuje na referentnu literaturu koja je posvećena

Page 32: Primeri primene vestackih neuronskih mreza.pdf

Primeri primene veštačkih neuronskih mreža

pomenutoj problematici. Primenom takvog sistema preprocesiranja sposobnost veštačke neuronske mreže da generalizuje bi u svakom slučaju bila na znatno višem nivou.