UNMEAPI

Učenje Neuronske Mreže Evolucijskim Algoritmom na Primjeru Igre


Opis projekta

Ovaj projekt se bavi problemom učenja neuronske mreže uz pomoć evolucijskog algoritma. Specifično, potrebno je naučiti neuronsku mrežu da igra modificiranu inačicu poznate i popularne igre “Flappy Bird”. Mrežu smatramo naučenom ako je sposobna uspješno igrati igru. Pod time podrazumijevamo da treba igrati tako da prolazi kroz cijevi te pritom sakupi što više novčića.

Kako bismo to postigli, bilo nam je potrebno nekoliko stvari. Za početak, trebao nam je fizički model igre. On nam omogućuje da neuronskoj mreži damo informacije o “svijetu” unutar igre te tako neuronska mreža može donijetu odluku o tome što treba učiniti sljedeće. Uz pomoć fizičkog modela također možemo napraviti grafički prikaz same igre. Nakon definiranja fizičkog modela, trebao nam je algoritam koji će naučiti neuronsku mrežu da igra. Tu smo koristili dosta jednostavan genetski algoritam koji koristi mutaciju, selekciju i crossover operatore kako bi populaciju neuronskih mreža doveli do prihvatljivog rješenja. I na kraju naravno, bila nam je potrebna sama neuronska mreža koju je trebalo naučiti.


Kako to izgleda?

Ako niste upoznati s igrom “Flappy Bird”, više informacija možete pronaći ovdje.

Naša inačica igre je malo modificirana u odnosu na izvornu inačicu. Dodali smo novčiće koji se pojavljuju svako malo između cijevi i mogu se skupljati kako bi se dobili dodatni bodovi. Cijevi smo modificirali tako da se pomiču gore-dolje, umjesto da su statičke.

Ovdje možete vidjeti kako to izgleda kada igru igra čovjek...



... a ovdje kako to izgleda kada igra naučena neuronska mreža.

Komentari članova tima

Boris Generalić

Radeći na ovom projektu upoznao sam se s područjem umjetne inteligencije, naučio sam kako izraditi model i logiku potrebnu za implementaciju računalne igre te sam unaprijedio svoje znanje kod izrade grafičkog korisničkog sučelja i samim time dobro upoznao JavaFX tehnologiju. Osim što sam puno naučio, najviše se ponosim time što sam stekao jako pozitivna iskustva radeći u timu i što sam imao priliku raditi s izrazito marljivim ljudima kojima je stalo da projekt uspije. Na početku, samim time zbog toga što je ovo bio prvi ozbiljniji projekt u dosadašnjem dijelu studija, nisam bio siguran kako će to ispasti, međutim zbog upornosti i želje cijelog tima te brojnim sastancima koje smo imali ostvarili smo sve zadatke uspješno.

Damir Kopljar

Kroz ovaj projekt stekao sam teoretska i praktična znanja o vrlo zanimljivoj grani računarstva, umjetnoj inteligenciji. Iako je u početku bilo teško usvojiti sve pojmove o neuronskim mrežama i genetskom algoritmu, na kraju se trud isplatio. Kroz projekt stekli smo znanja o umjetnim neuronskim mrežama, genetskom algoritmu i izradi same igrice (koja uključuje izradu game engine-a i grafike). Osim same aplikacije i stečenog znanja kroz rad na projektu upoznao sam i nove kolege s kojima ću nadam se, raditi i na budućim projektima.

Domagoj Latečki

Smatram da smo ovim projektom stekli mnoga nova znanja u području umjetne inteligencije te time stekli dobar uvod u to područje. Zanimljivo je bilo uspoređivati naučenost neuronskih mreža u raznim stadijima učenja. Može se vidjeti kako algoritam učenja postepeno pronalazi mreže koje su sve bolje i bolje i to me jako fascinira. Jako je lijep osjećaj kada pokrenete svoj kôd i on radi, a još je ljepši osjećaj kada gledate kako vaš algoritam učenja uspješno djeluje.

Jure Čular

Na ovom projektu sam naučio raditi s JavaFX-om, logiku izrade računalnih igara te vještine potrebne za rad s umjetnim neuronskim mrežama. Uz sve stečeno znanje imao sam super iskustvo u radu s timom. U početku nisam bio siguran koliko će me zanimati ovo područje i želim li u budućnosti raditi s takvim tehnologijama, ali sam s vremenom shvatio da je to ono s čime želim raditi i što me zanima.

Martin Matak

Projekt je bio zanimljiv jer za razliku od ostalih projekata na kojima sam radio, na ovom je bio izražen timski rad. Naučio sam ponešto o neuronskim mrežama, evolucijskim algoritmima te tehnologiji JavaFX. Također, shvatio sam koliko je važno imati dobar tim jer bez kvalitetnog tima projekt ne bi uspio. Jednom tjedno smo imali sastanke s mentorom i smatram da je to dobro jer se time osigurava konstantan rad odnosno napredak. Toplo preporučujem ovakav nekakav projekt bilo kome tko na zabavan i zanimljiv način želi naučiti nešto o stvarima koje sam ranije spomenuo.

Komentar mentora

Marko Čupić

Zadatak sam formulirao na sljedeći način. 'Želim da iskombinirate četiri područja računarske znanosti: neuro-računarstvo, evolucijsko računarstvo, izradu fizikalnog modela i simulacije te računalnu grafiku; implementirajte kompletnu računalnu igru kojom može upravljati neuronska mreža koja je evoluirana za upravljanje tom igrom; naglasak nije na kompleksnosti same igre već na uspješnom kombiniranju ovih zadanih područja'. Rezultat projekta ocijenio sam visokim ocjenama, uzevši u obzir kvalitetu napravljenoga te činjenicu da je napravljen u trenutku u kojem studenti još nisu slušali kolegije Umjetna inteligencija te Interaktivna računalna grafika. Rezultat je dostupan na ovim stranicama pa uživajte! Usput, nikad u životu nisam igrao Flappy Bird; moram priznati da je igrica sasvim zarazna...

Slike