ENAA - Evolutivni Neuro Autonomni Agenti

Autor: Velibor Ilić

ABSTRAKT: U radu se govori o evolutivnim autonomnim agentima kojima upravlja neuronska mreža. Predložen je hijerarhijskih model neuronskih mreža. Prikazan softver ENAA koji simulira evolutivno obučavanje agenata koji se kreću unutar arene i izvršavaju postavljene ciljeve.

Ključne reči: Evolutivni autonomni agenti (EAA), neuronske mreže (ANN), genetski algoritam (GA), simuliranje evolucije

Datum izrade: Maj, 2001
Demo: https://www.dropbox.com/s/cw6y83edi3e0tqv/enaa.zip?dl=0

Ilić, V., (2002): “Evolutionary Neuro Autonomous Agents”, Seminar on Neural Network Applications in Electrical Engineering “Neurel 6th”, Belgrade, Sponsored by IEEE Signal Processing Society, pp 37-40, IEEE Catalog Number 02EX609, ISBN 0-7803-7593-9, Library of Congress: 2002108419,
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1057963


      Velibor Ilic

Sadržaj
Uvod
Opis problema
Arena
Agenti
Evolutivno obučavanje agenata
Program ENAA
Zaključak
Literatura

UVOD
Agenti predstavljaju softver koji, u interakciji sa okruženjem, ima sposobnost da fleksibilno i samostalno reaguje u skladu sa ciljevima koji su mu postavljeni. Interakcija sa okruženjem u ovom kontekstu znači da je agent sposoban da reaguje na ulaz dobijen od senzora iz okruženja i da može da izvodi akcije koje menjaju okruženje u kome agenti deluju. Okruženje u kome agenti deluju može biti fizičko (realan svet) ili softversko (računar na kome se agent nalazi ili Internet). Autonomnost znači da je sistem u stanju da reaguje bez intervencije korisnika (ili drugih agenata) i da ima kontrolu nad sopstvenim akcijama i unutrašnjim stanjem. Takav sistem bi takođe trebalo da bude sposoban da uči iz iskustva.

Karakteristični eksperimenti u kojima se upotrebljavaju evolutivni autonomni agenti (EAA) sastoje od populacije agenata koji evoluiraju upotrebom genetskog algoritma tokom mnogo generacija, tako što najbolji preživljavaju u datom okruženju. Neuronske mreže su posebno pogodne za ovu svrhu pošto imaju sposobnost obučavanja. Neuronska mreža prima i obrađuje ulazne informacije iz okruženja i upravlja ponašanjem agenta vršeći izbor njegovih akcija.

OPIS PROBLEMA
U primeru koji će biti opisan u radu zadatak agenata je da nauče da: pretraže što veću površinu arene, pojedu što više hrane i nauče da izbegavaju polja sa otrovom. Agenti su smešteni u areni veličine 30×30 polja. Početna generacija agenata nema definisan algoritam ponašanja tako da se agenti pokreću nasumično (najčešće se rotiraju u levu ili desnu stranu ili se zaglave na nekom od zidova arene). Agenti dobijaju pozitivne i negativne bodove u zavisnosti od akcije koju načine. Dobijeni bodovi ne utiču na trenutno ponašanje agenata, ali nam omogućavaju da lakše uočimo agenta koji se trenutno najbolje prilagodio zadatku u okruženju u kome se nalazi. Agenti imaju ograničen životni vek. Nakon “smrti” jednog agenta, kreira se novi na slučajnoj poziciji u areni, tako da se u areni uvek nalazi isti broj agenata.

ARENA
Arena, po kojoj se kreću agenti se sastoji od 30×30 polja (slika 1). Po areni su slučajno raspoređeni hrana i otrov. Po areni su slučajno razbacani hrana i otrovi, ali u njoj postoje i dve zone sa povećanom količinom hrane odnosno otrova. U gornjem desnom uglu se nalazi povećana količina hrane, dok se u desnom donjem uglu nalazi veća količina otrova.


Slika 1. – arena u kojoj se kreću agenti

Polja su u areni označena na sledeći način:

Izgled polja Opis Vrednost na senzoru
zeleni kružić hrana
-0.5
crveni kružić otrov
0.5
sivi pravougaonik zid
1.0
plava tačka istražena polja
-1.0
bela polja neistražena polja
0

Sezone predstavljaju određeni vremenski period nakon koga se u areni obnavlja količina hrane i otrova i brišu se polja koja agenti označavaju kao pretražena. U primeru koji je obrađen u radu, sezona traje 300 vremenskih jedinica.

AGENTI
Agenti sadrže: senzore (s1, s2, s3) koji im omogućavaju da očitavaju sadržaj polja u svojoj blizini, motore (m1, m2 i m3) pomoću kojih se kreću i upravljačku i nadzornu neuronsku mrežu. Unutrašnja organizacija agenta je prikazana na slici 2. U programu ENAA su agenti predstavljeni strelicama koje mogu biti usmerene u jednom od četiri smera (levo, desno, gore, dole).


Slika 2. – organizacija agenta

U agentu su senzori (s1, s2, s3) raspoređeni kao na slici 3. Oni omogućavaju agentima da čitaju sadržaj polja. Jedan senzor očitava polje neposredno ispred agenta, a druga dva senzora očitavaju polja sa leve i desne strane agenta. Agenti se kreću pomoću tri motora, prvi motor omogućava kretanje jedno polje napred, dok ostala dva motora omogućavaju rotiranje agenta u levu ili desnu stranu. Prilikom kretanja, agenti markiraju polja u areni na kojima su boravili.


Slika 3. – položaji senzora agenta

Upravljačka neuronska mreža (slika 2.) očitava vrednosti senzora s1, s2, s3 (slika 3.) i na osnovu tih vrednosti upravlja kretanjem agenta (odlučuje koji će se motor uključiti). U jednom koraku može biti uključen samo jedan motor. Nakon obrade vrednosti senzora, na izlazu neuronske mreže se dobiju tri vrednosti (m1, m2 i m3). Agent uključuje motor čiji izlaz neuronske (m1, m2, m3) ima najveću vrednost.

Nadzorna neuronska mreža (slika 2.) prati vrednosti senzora s1, s2, s3 i izlazne vrednost upravljačke neuronske mreže preko parametra O1. Parametar O1 dobija vrednosti (1, 0 ili -1) u zavisnosti od toga koji motor je bio uključen (m1, m2 ili m3). Preko nadzorne neuronske mreže agenti imaju mogućnost da sami koriguju svoju ponašanje za vreme svog životnog perioda. Ukoliko se na izlazu nadzorne neuronske mreže (parametar O2) pojavi vrednost veća od 0.5, agent vrši korekciju težinskih koeficijenta upravljačke neuronske mreže. Agenti imaju znatno slabiji intenzitet dejstva na težinske koeficijente upravljačke neuronske mreže, nego mutacija prilikom kreiranja novog agenta. Međutim, sam agent ima češće priliku da utiče na težinske koeficijente upravljačke neuronske mreže. Ako se posmatra duži vremenski period, dejstvo nadzorne neuronske mreže na upravljačku neuronsku mrežu nije zanemarljivo.

EVOLUTIVNO OBUČAVANJE AGENATA
U toku evolutivnog obučavanja, agenti izvršavaju svoj zadatak samostalno i nakon određenog vremenskog perioda se ocenjuje njihov učinak. Posle toga se kreira nova generacija agenata po uzoru na agente sa najboljim rezultatima iz prethodne generacije. Postupak se ponavlja preko više generacija agenata, a krajnji rezultat evolucije bi trebalo da predstavlja populacija agenata čije ponašanje i neuro-dinamika najbolje odgovaraju uslovima okruženju.

Početna generacija agenata, koja se kreira pokretanjem simulacije, nema informaciju šta se od njih očekuje i na koji način treba da se ponašaju. Agenti se u početku najčešće stalno rotiraju u levu ili desnu stranu ili se “zaglave” pored zida pošto “ne znaju” da treba da skrenu u stranu kada im se zid nađe na putu. Da bi se agenti naučili da se kreću kroz arenu, neophodno ih je motivisati tako što dobijaju pozitivne poene za ispravne poteze, a negativne poene kada načine potez koji ne bi trebalo da rade.

Ukoliko agent sakupi više bodova od ostalih, uglavnom znači da taj agent ima najbolji algoritam ponašanja, međutim i povoljni početni uslovi takođe mogu omogućiti agentu da prikupi više bodova od drugih.
Na primer, agent koji se kreće ispred drugog agenta ima priliku da pokupi više hrane, ili ako je agent kreiran u zoni gde preovladava hrana ima bolje preduslove nego agent kreiran u zoni sa većom količinom otrova. Agenti koji steknu više bodova zahvaljujući boljim početnim uslovima, a ne boljim algoritmom ponašanja, mogu usporiti evoluciju ili je čak usmeriti u pogrešnom smeru.

Takvi slučajevi utiču na nekoliko generacija agenta u kojima potomci mogu imati lošije rezultate nego prethodna generacija agenata ali na duži vremenski period ovakve pojave nisu previše štetne.

Životni vek agenta ograničen je količinom energije ili maksimalnom dužinom života. Za svaki načinjeni korak agentima se oduzima po jedna energetska jedinica. Kada agent potroši svu energiju, uništava se i umesto njega se kreira novi agent na slučajnoj poziciji u areni. Koeficijenti neuronske mreže novog agenta formiraju se ukrštanjem agenta koji je upravo uništen i agenta sa najvećim brojem bodova, na tako dobijene težinske koeficijente se primenjuje “mutacija” koja se sastoji u dodavanju slučajnih brojeva u intervalu od -0.3 do 0.3 na težinske koeficijente mreže. Na isti način se podešavaju težinski koeficijenti upravljačke i nadzorne neuronske mreže.

Životni vek agenta je ograničen količinom energije koju agent troši prilikom kretanja kroz arenu. Za svaki korak agentu se oduzima po jedna energetska jedinica. Prilikom kreiranja, svaki agent dobija 300 energetskih jedinica. Prelaskom preko polja na kome se nalazi hrana agent dobija dodatnih 100 energetskih jedinica, dok prilikom prelaska preko polja na kome se nalazi otrov agentu se oduzima 100 energetskih jedinica.
Agenti koji imaju dobar algoritam ponašanja, prikupljaju veću količinu hrane i izbegavaju otrov, na taj način povećavaju sebi šansu da ostvare prednost u odnosu na ostale agente i da svoje iskustvo prenesu na nove generacije agenata.

Poeni koje agenti dobijaju ne utiču na njihovo trenutno ponašanje, nego se koriste za uočavanje agenata se najboljim algoritmom ponašanja. Agenti sa najvećim brojem bodova stiču mogućnost da svoje “gene” (informacije) prenose na nove generacije. Kada jedan agent uspešno reši situaciju koja mu omogućava da stekne prednost u odnosu na ostale agente, većina agenata narednih generacija će naslediti takvo ponašanje. Ukoliko se neki od agenata počne ponašati loše (npr. agent prikuplja otrove umesto hrane), takav agent ne dobija priliku da takvo ponašanje prenese na potomke. U programu ENAA agenti su bodovani na sledeći način:

Opis akcije Broj bodova
Istraženo polje 1
Otkriveno novo polje 3
Polje sa hranom 100
Polje sa otrovom -1000

Agenti imaju tri senzora koji mogu da detektuju 5 različitih situacija (neotkriveno polje, istraženo polje, zid, hrana, otrov) što čini skup od 53=125 mogućih situacija koje bi agent trebalo da uspešno nauči. Od tog skupa mogućih situacija agenti prvo uče one situacije sa kojima se češće sreće i one u kojima se direktno ostvaruje veća količina pozitivnih ili negativnih poena. Za postupke u kojima se indirektno ostvaruju bodovi, potrebno je duže obučavanje.

ENAA - SIMULACIONI SOFTVER
Program ENAA omogućava simulaciju evolutivnog obučavanja agenata u areni veličine 30×30 polja. Agentima početne generacije se upisuju slučajni brojevi u intervalu od -0.5 do 0.5 na težinske koeficijente upravljačke i nadzorne neuronske mreže.

Zadatak agenata je da nauče da istražuju što veću površinu arene, zaobilaze prepreke, prikupljaju hranu i izbegavaju otrove. Program omogućava vizuelno praćenje toka obučavanja agenata, prikazivanje trenutnih rezultata svakog pojedinačnog agenta u areni (broj pređenih polja, broj otkrivenih novih polja arene, broj pojedene hrane i otrova, broj bodova, količinu energije, starost agenta). Tokom simulacije kreiraju se dva log fajla sa rezultatima koje su agenti ostvarili i sa zbirnim rezultatima po sezonama. Ovi log fajlovi se mogu učitati u Microsoft Excel radi statističke analize ili crtanja grafikona.

Program ENAA omogućava korisniku da tokom simulacija uključi ili isključi pojavljivanje hrane i otrova u areni i da tako simulira različite okolnosti koje se mogu pojaviti. Takođe korisnik može u toku simulacije menjati vrednost bodova koje agenti dobijaju za prikupljenu hranu, otrov i istražena polja, i na taj način uticati na ponašanje agenata. Tokom simulacije se mogu učitavati različiti rasporedi zidova u areni.

Simulacija se može početi u arenu bez hrane i otrova, a kasnije uključiti opcije za njihovo pojavljivanje ili obe opcije istovremeno. Kada agenti jednom nauče da izbegavaju otrove oni prenose to znanje prenose na svoje potomke. To znanje se ne gubi, čak i ako se otrovi ne pojavljuju u areni tokom života više generacija.
Program ENNA je napisan na programskom jeziku Delphi 6.0.

ZAKLJUČAK
Efikasnost evolutivnog obučavanja neuronskih mreža (brzina i tačnost) je manja nego kada se neuronske mreže obučavaju nad tačno definisanim trening skupom (backpropagation algoritma). Iz primera prikazanog u radu se može videti da ovakvi modeli agenata mogu prikupljati informacije o sistemu u kome se nalaze. Takođe, iz opisanog primera u ovom radu vidimo da se neuronske mreže mogu obučavati evolutivnim postupkom, tj. izborom agenta čija neuronska mreža omogućava duži životni vek i prikupljanje najviše poena.

Ovaj način obučavanja neuronskih mreža je interesantan iz razloga što se one ne obučavaju nekom matematičkom funkcijom nego se težinski koeficijenti menjaju dodavanjem slučajnih brojeva i izborom neuronske mreže koja daje najbolje rezultate.

Demo program ENAA u kome su primenjeni evolutivni neuro agenti i koji je poslužio za eksperimentalna ispitivanja u može se preuzeti sa adrese:

https://www.dropbox.com/s/cw6y83edi3e0tqv/enaa.zip?dl=0

LITERATURA I LINKOVI
[1] Ilić, V., (1999) “Obučavanje neuronskih mreža za prepoznavanje ćiriličnih slova”, magistarski rad, Tehnički Fakultet “Mihajlo Pupin”, Zrenjanin
[2] Ilić, V., (2000), “NeuroVCL components for Delphi”, NEUREL 2000, Zavod za grafičku obradu Tehnološko-metalurškog fakulteta, Beograd
[3] Ilić, V. (2000), “Force learn algorithm – training neural networks with patterns which have highest errors”, NEUREL 2000, Zavod za grafičku obradu Tehnološko-metalurškog fakulteta, Beograd
[4] Ilić, V., (2001), “Sistemi na bazi tehnologije agenata”, http://solair.EUnet.rs/~ilicv/agenti.html
[5] Berberski, Ž., (1996).: “Šta sve mogu neuronske mreže?”, časopis “Računari” br 120, BIGZ, Beograd
[6] Bernander, O., (1998) “Neural Network”, Microsoft(R) Encarta(R) 98 Encyclopedia. (c) 1993-1997 Microsoft Corporation
[7] Hotomski, P., (1995): “Sistemi Veštačke inteligencije”, Tehnički fakultet “Mihajlo Pupin”, Zrenjanin
[8] Jocković, M., Ognjanović Z., Stankovski S. (1997) “Veštačka inteligencija inteligentne mašine i sistemi”, Grafomed, Beograd
[9] Milenković, S., (1997): “Veštačke neuronske mreže”, Zadužbina Andrejević, Beograd
[10] Nikić, B., (1990): “Primena teorije prepoznavanja oblika kod obrade otiska papilarnih linija prstiju”, magistarski rad, TF “Mihajlo Pupin”, Zrenjanin
[11] Reisdorph, K., (1998): “Naučite Delphi za 21 dan”, Kompjuter biblioteka, Beograd
[12] Sajić, I., (1995): “Neuronske mreže”, časopis “Računari” br 108, BIGZ, Beograd
[13] Subašić, P., (1998): “Fazi logika i neuronske mreže”, Tehnička Knjiga, Beograd
[14] “Frequently asked questions about AI”, http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/ai/ai_general/top.html
[15] “Neural Network Frequently asked questions”, ftp://ftp.sas.com/pub/neural/FAQ.html
[16] Jennings, N., R., Sycara, K., Wooldridge, M., (1998) “A roadmap of agent research and development” (7-38), “Autonomous Agents and Multi-Agents systems”, Kluwer Academic Publishers, Boston
[17] Moukas, A., Pattie, M., (1998) “AMALTHAEA: An Evolving Multi-Agent Information Filtering and Discovery” (59-88), “Autonomous Agents and Multi-Agents Systems for the WWW”, Kluwer Academic Publishers, Boston
[18] Grand, S., Cliff, D., (1998) “Creatures: Entertainment Software Agents with Artificial Life” (39-57), “Autonomous Agents and Multi-Agents systems”, Kluwer Academic Publishers, Boston
[19] Downing, T., E,. Moss, S., Pahl-Wostl, C., (2000) “Understanding Climate Policy Using Participatory Agent-Based Cocial Simulation”, (199-213), “Multi-Agent-Based Simulation”, Second International Workshop, MABS 2000, Springer, Boston
[20] Grosof, B., N., (1997) “Building Comercial Agents: An IBM Research Perspective ”, http://www.research.ibm.com/iagents/paps/rc20835.pdf
[21] Grosof, B., N., Foulger, D., A,. (1995) “Globenet and RAISE: Intelligent Agents for Networked Newsgroups and Customer Service Support”, http://www.research.ibm.com/iagents/paps/rc20226.pdf
[22] Chess, D., Harrison, C., Kershenbaum, A., “Mobile Agents: Are They A Good Idea?” http://www.research.ibm.com/iagents/paps/mobile_idea.pdf
[23] http://www.botknowledge.com/
[24] http://agents.umbc.edu/
[25] http://www.research.ibm.com/iagents/
[26] http://www.iiia.csic.es/~sierra
[27] http://www.agentlink.org
[28] http://multiagent.com/
[29] http://www.botspot.com