SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br Autonomno kretanje virtualnih objekata Marin Hrkec Zagreb, lipanj 201

Слични документи
KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

RAČUNALO

2D računalna igra na engleskom jeziku namijenjena široj publici Žanr: Arcade / Story Teller / Rage game Autor: Vito Gambin 6.razred OŠ Fažana Mentor:

Microsoft Word - privitak prijedloga odluke

PuTTY CERT.hr-PUBDOC

Odreivanje neodreenosti hadronske strukture metodama strojnog ucenja

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na

MAZALICA DUŠKA.pdf

WAMSTER Prezentacija

_sheets.dvi

АНКЕТА О ИЗБОРУ СТУДИЈСКИХ ГРУПА И МОДУЛА СТУДИЈСКИ ПРОГРАМИ МАСТЕР АКАДЕМСКИХ СТУДИЈА (МАС): А) РАЧУНАРСТВО И АУТОМАТИКА (РиА) и Б) СОФТВЕРСКО ИНЖЕЊЕ

KATALOG ZNANJA IZ INFORMATIKE

Može li učenje tablice množenja biti zabavno?

Golden 7 Classic HTML5 na stolnim računalima i mobilnim uređajima. Vrsta igre: Video slot PVI (povratak vrijednosti igraču): 95,00 % Golden 7 Classic

Development Case

Microsoft Word - 6. RAZRED INFORMATIKA.doc

Microsoft Word - III godina - EA - Metodi vjestacke inteligencije

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике

I година Назив предмета I термин Вријеме Сала Математика :00 све Основи електротехнике :00 све Програмирање

Objektno orjentirano programiranje 2P

Recuva CERT.hr-PUBDOC

INTERPRETER LOGO NAREDBI Teodor Lozinski Tomislav Višnić Kolegij: Uporaba računala u nastavi, Fizički odsjek, PMF, Sveučilište u Zagrebu, UVOD Z

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Elementarna matematika 1 - Oblici matematickog mišljenja

Kriteriji ocjenjivanja 6razred

PowerPoint Presentation

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan

Prikaz znakova u računalu

Web programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju

Satnica.xlsx

Napredno estimiranje strukture i gibanja kalibriranim parom kamera

eOI Middleware Upute za instalaciju

kriteriji ocjenjivanja - informatika 8

Microsoft PowerPoint - vezbe 4. Merenja u telekomunikacionim mrežama

SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni preddiplomski studij PRI

Microsoft Word - Smerovi 1996

Pojačavači

DUBINSKA ANALIZA PODATAKA

УНИВЕРЗИТЕТ У ИСТОЧНОМ САРАЈЕВУ ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ ПРЕДМЕТ Почетак испита Термин Математика Основи електротехнике

PowerPoint Presentation

Anaconda Eye Rapids HTML5 na stolnim računalima i mobilnim uređajima Vrsta igre: Video slot PVI (povratak vrijednosti igraču): 96,08 % Dragulj poznat

Postojanost boja

PowerPoint Presentation

Microsoft PowerPoint - podatkovni promet za objavu.pptx

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

UNIVERZITET U NOVOM SADU TEHNIČKI FAKULTET MIHAJLO PUPIN ZRENJANIN TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo (RADNA

Microsoft PowerPoint - LB7-2_WCCF_2010.ppt

PowerPoint Presentation

CARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:

AKD KID Middleware Upute za Macintosh instalaciju V1.0

Структура модула студијског програма МЕНАЏМЕТ И ОРГАНИЗАЦИЈА

Podružnica za građenje

Programiranje 1 IEEE prikaz brojeva sažetak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, IEEE p

Школа Ј. Ј. Змај Свилајнац МЕСЕЧНИ ПЛАН РАДА ЗА СЕПТЕМБАР Школска 2018 /2019. Назив предмета: Информатика и рачунарство Разред: 5. Недељни број часова

Numeričke metode u fizici 1, Projektni zadataci 2018./ Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrs

The Land of Heroes Vrsta igre: Video slot PVI (povratak vrijednosti igraču): 96,17 % Pronađite magičan mlin kako biste se spasili od strašne hladnoće

8 2 upiti_izvjesca.indd

Logičke izjave i logičke funkcije

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br Klasifikacija slika kućnih brojeva dubokim konvolucijskim modelima Iv

Повезивање са интернетом

ПА-4 Машинско учење-алгоритми машинског учења

Microsoft Word - Svrha projekta.doc

Pharao s Riches Vrsta igre: Video slot PVI (povratak vrijednosti igraču): 96,10 % / 95,13 % / 94,40 % Bogatstvo i ostala blaga nekadašnjeg vrhovnog vl

NAZIV PREDMETA OBLIKOVANJE WEB STRANICA Kod SIT132 Godina studija 3. Bodovna vrijednost Nositelj/i predmeta Haidi Božiković, predavač 6 (ECTS) Suradni

1

FAKULTET STROJARSTVA I BRODOGRADNJE KATEDRA ZA STROJARSKU AUTOMATIKU SEMINARSKI RAD IZ KOLEGIJA NEIZRAZITO I DIGITALNO UPRAVLJANJE Mehatronika i robot

OpenDNS Family Shield CERT.hr-PUBDOC

18. ožujka Državno natjecanje / Osnovna škola (6. razred) Primjena algoritama (Basic/Python/Pascal/C/C++) Sadržaj Zadaci... 1 Zadatak: Kineski..

Microsoft Word - CCERT-PUBDOC doc

INDIKATOR SVJETLA FUNKCIJE TIPKI 1. Prikazuje se temperatura i parametri upravljanja 2. Crveno svjetlo svijetli kad grijalica grije 3. Indikator zelen

Slide 1

ALIP1_udzb_2019.indb

eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prij

OBRAZAC 1. Vrednovanje sveucilišnih studijskih programa preddiplomskih, diplomskih i integriranih preddiplomskih i diplomskih studija te strucnih stud

Klasifikacija slika kucnih brojeva dubokim konvolucijskim modelima

PowerPointova prezentacija

Mentor: Ružica Mlinarić, mag. inf. Računalstvo Usporedba programskih jezika Sabirnice Operacijski sustav Windows 10 Operacijski sustav ios Osnovna gra

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Algoritmi SŠ P1

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Microsoft Word - Master 2013

Satnica.xlsx

Microsoft Word - 6ms001

(Microsoft Word - S1-MTS-Primjena ra\350unala u poslovnoj praksi -Breslauer N)

Microsoft Word - IP_Tables_programski_alat.doc

Microsoft PowerPoint - 5. Predavanje-w2.pptx

INTEGRIRANI KNJIŽNIČNI SUSTAV Sustav za podršku Upute za instalaciju: Aleph v22 ZAG

Newtonova metoda za rješavanje nelinearne jednadžbe f(x)=0

Matematika 1 - izborna

GLAZBENA UČILICA Marko Beus Filozofski fakultet u Zagrebu 098/ Sažetak Glazbena učilica je projekt osmišljen kao nadopuna

MultiBoot Korisnički priručnik

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

No Slide Title

DWA2

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD Mario Svačina Zagreb, 2014.

Транскрипт:

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 6404 Autonomno kretanje virtualnih objekata Marin Hrkec Zagreb, lipanj 2019.

iii

SADRŽAJ 1. Uvod 1 2. Korišteni alati i tehnologije 2 2.1. Programsko okruženje Unity...................... 2 2.2. Programski jezik C#.......................... 2 3. Umjetna inteligencija 3 3.1. Neuronske mreže............................ 3 3.1.1. Umjetni neuron......................... 3 3.1.2. Umjetna neuronska mreža................... 4 4. Struktura scene 6 4.1. Izrada terena............................... 6 4.2. Model pokretnog objekta (lik)..................... 6 5. Implementacija 8 5.1. Implementacija neuronske mreže.................... 8 5.2. Struktura neuronske mreže....................... 9 6. Grafičko korisničko sučelje 11 6.1. Glavni izbornik............................. 11 6.2. Scena za prikupljanje podataka..................... 11 6.3. Scena za učenje............................. 12 6.4. Scena za testiranje............................ 12 7. Zaključak 14 Literatura 15 iv

1. Uvod Računalni vid, raspoznavanje uzoraka, obrada prirodnog jezika, samovozeći automobili su samo neka od velikih postignuća umjetne inteligencije. Neki zadaci su jednostavni za čovjeka, ali vrlo teški za računalo. Umjetna inteligencija se koristi za rješavanje vrlo složenih problema koje je teško riješiti na klasičan algoritamski način jer se ne zna ni kako ih ljudi rješavaju. Jedan od takvih problema je i autonomno kretanje objekata. Testiranje autonomnog kretanja pravih objekata bilo bi neekonomično pa se često rade grafičke simulacije autonomnog kretanja. Središte ovog rada je proučiti metode umjetne inteligencije pogodne za autonomno upravljanje kretanjem virtualnih objekata, napraviti modele virtualnih objekata i model scene te implementirati simulaciju kretanja objekata u sceni u grafičkom programskom okruženju Unity. 1

2. Korišteni alati i tehnologije 2.1. Programsko okruženje Unity Unity je multiplatformsko grafičko programsko okruženje (engl. game engine) koje omogućuje jednostavnu izradu 2D i 3D igara. Unity je razvila tvrtka Unity Technologies SF 2005. godine. Podržava pisanje skripti u programskom jeziku C#, dok su u prijašnjim verzijama bili podržani i programski jezici Javascript i Boo. Skripta je jedan od osnovnih dijelova igre, to je tekstualna datoteka s nizom instrukcija koje definiraju program koji Unity izvodi. Velika prednost programskog okruženja Unity je velika javna baza skripti, modela, animacija i scena za izradu igre. Za izradu ovog rada, koristio sam neke dijelove iz kolekcije Standard Assets.[1] Unity podržava izradu igara za 25 različitih platformi. Prema podatcima iz 2018. godine, Unity se koristio za izradu oko polovice novih mobilnih igara na tržištu i oko 60 posto sadržaja s proširenom ili virtualnom stvarnosti.[4] 2.2. Programski jezik C# Programski jezik C# je objektno orijentirani programski jezik. Razvila ga je tvrtka Microsoft oko 2000. godine zajedno s.net platformom. Nastao je s namjerom da bude jednostavan, moderan jezik visokih performansi za.net platformu.[2] 2

3. Umjetna inteligencija Umjetna inteligencija (engl. Artificial Intelligence) dio je računarske znanosti. Bavi se izgradnjom računalnih sustava koji obavljaju zadaće za koje je potreban neki oblik inteligencije.[3] Jedno od područja umjetne inteligencije je strojno učenje. Strojno učenje je programiranje računala na način da optimiziraju neki kriterij uspješnosti temeljem prethodnog iskustva ili podatkovnih primjera. Učenje se svodi na izvo denje algoritma koji optimizira parametre modela.[5] 3.1. Neuronske mreže 3.1.1. Umjetni neuron Jednostavan model umjetnog neurona naziva se TLU-perceptor (engl. Threshold Logic Unit). To je matematički izraz inspiriran radom i strukturom biološkog neurona. Kao i biološki neuron, perceptron prima ulaze, procesira ih i donosi odluku o izlazu. Model TLU-perceptrona je prikazan na slici 3.1. Slika 3.1: TLU-perceptron Svaki ulaz neurona x i ima odgovarajuću težinu w i. Vrijednost svakog ulaza x i množi se s težinom tog ulaza w i i sumira u tijelu neurona. Toj sumi se još pridodaje konstantan pomak w 0 koji se često označava i b (engl. bias). Time je definirana ukupna 3

vrijednost net. ( n net = i=1 x i w i ) + w 0 (3.1) Ta se vrijednost propušta kroz prijenosnu funkciju (engl. transfer function) koja predstavlja konačan izlaz neurona. 3.1.2. Umjetna neuronska mreža Umjetna neuronska mreža je skup me dusobno povezanih jednostavnih procesnih elemenata (neurona) čija se funkcionalnost temelji na biološkom neuronu. U radu s umjetnim neuronskim mrežama postoje dvije faze rada: 1. faza učenja (treniranja) i 2. faza obrade podataka (iskorištavanja) Slika 3.2: Unaprijedna slojevita umjetna neuronska mreža Učenje (treniranje) umjetne neuronske mreže je iterativan postupak predočavanja ulaznih primjera i očekivanog izlaza pri čemu dolazi do postupnog prilago davanja težina veza izme du neurona. Jedno predočavanje svih uzoraka naziva se epohom.[6] Umjetna neuronska mreža se sastoji od tri sloja: ulaznog, skrivenog i izlaznog sloja. Skriveni sloj može sadržavati više podslojeva i svaki podsloj može sadržavati različiti broj neurona. Neuroni ulaznog sloja proslje duju ulazne podatke za učenje ostatku 4

mreže. Neuron nekog sloja na ulazu prima izlaze svih neurona prethodnog sloja pomnožene težinom, a izlaz tog neurona primaju svi neuroni sljedećeg sloja na ulazu. Izlazi neurona izlaznog sloja predstavljaju izlaze neuronske mreže. Model unaprijedne slojevite umjetne neuronske mreže s dva skrivena sloja prikazan je na slici 3.2. U unaprijednoj neuronskoj mreži nema povratnih veza (ciklusa) me du neuronima. Učinkovit postupak učenja višeslojnih neuronskih mreža naziva se postupak propagacije pogreške unatrag (engl. Error backpropagation). Postupak osvježava težine neurona nakon propagiranja ulaznih podataka ovisno o pogrešci na izlazu. 5

4. Struktura scene 4.1. Izrada terena Teren je kvadratnog oblika ogra den zidovima koji definiraju željenu putanju objekta. Izra den teren je prikazan na slici 4.1. Izra den teren nema zadani cilj, već je cilj da model lika koji se kreće po sceni prati putanju terena ne sudarajući se sa zidovima. Slika 4.1: Teren labirinta 4.2. Model pokretnog objekta (lik) Za kretanje po sceni i prikupljanje podataka za treniranje neuronske mreže se koristi jednostavan objekt valjak koji na sebi ima kvadar koji predstavlja prednju stranu, tj. oči objekta. Model objekta je prikazan na slici 4.2. Na taj objekt je postavljeno 5 senzora koji se koriste za odre divanje udaljenosti objekta od prepreka (zidova). Senzori su označeni crvenom bojom i svi su jednake udaljenosti. Prilikom gibanja kojim upravlja 6

Slika 4.2: Model za kretanje po sceni neuronska mreža, giba se lik preuzet iz kolekcije Standard Assets AIThirdPerson- Controller. Model tog lika je prikazan na slici 4.3. Taj lik ima komponentu AICharacterControl pomoću koje može pratiti druge objekte u sceni. Neuronska mreža upravlja valjkom koji se ne prikaže u sceni kojeg prati AIThirdPersonController i na taj način daje dojam da zapravo upravlja njime. Slika 4.3: Model lika koji se kreće po sceni 7

5. Implementacija 5.1. Implementacija neuronske mreže Prva faza rada umjetne neuronske mreže je faza učenja. Za učenje neuronske mreže potrebni su podatci za učenje. Za pokretanje objekta, potrebno je implementirati skriptu za pokretanje. Na slici 5.3 je isječak koda za odre divanje udaljenosti pomoću senzora. Prikupljanje podataka je provedeno tako da sam upravljao objektom kroz teren dva puta i u datoteku zapisao udaljenosti senzora od zidova, brzinu i rotaciju objekta. Takvim postupkom je stvorena datoteka veličine 583KB s više od 6000 redaka i ona predstavlja skup za učenje neuronske mreže. Nakon prikupljanja podataka, potrebno je provesti fazu učenja. Iako postoje razne gotove implementacije umjetnih neuronskih mreža, poput Tensorflowa, odlučio sam sâm izraditi jednostavnu neuronsku mrežu. Dijagram razreda za implementaciju neuronske mreže je prikazan na slici 5.1. Razred Neuron predstavlja umjetni neuron. Neuron ima konstruktor kojem se kao argument predaje broj ulaza u neuron i pri pozivu konstruktora se vrijednosti težina postavljaju na slučajnu vrijednost. Razred Layer predstavlja jedan sloj u neuronskoj mreži. Layer ima konstruktor kojem se kao argumenti predaju broj neurona u tom sloju i broj ulaza u svaki neuron. Razred ANN predstavlja umjetnu neuronsku mrežu (engl. Artificial Neural Network). Pri stvaranju mreže, kao argumenti konstruktora šalju se broj ulaza, broj izlaza, broj skrivenih slojeva, broj neurona u skrivenom sloju i stopa učenja η. Metoda CalcOutput koristi se računanje izlaza na temelju trenutnih težina neurona. Metoda UpdateWeights ažurira vrijednosti težina postupkom propagacije pogreške unatrag. Metoda Train se koristi za treniranje neuronske mreže. Kao argumenti, metodi Train, šalju se ulazne i očekivane izlazne vrijednosti. Train poziva metode CalcOutput za izračun izlaza i UpdateWeights za ažuriranje težina. Isječak koda metode Train prikazan je na slici 5.2. Metoda PrintWeights zapisuje vrijednosti težina u tekstualnu datoteku, a metoda LoadWeights učitava vrijednosti težina iz tekstualne datoteke. 8

Slika 5.1: Dijagram razreda neuronske mreže 5.2. Struktura neuronske mreže Neuronska mreža korištena u radu se sastoji od tri sloja. Odabrana neuronska mreža na ulaz prima podatke o udaljenostima do zida sa senzora. Skriveni sloj sadrži pet neurona, a izlazni sloj sadrži dva neurona - prvi izlaz definira brzinu, a drugi rotaciju objekta. Budući da se objekt može pomicati unaprijed i unazad te rotirati ulijevo i udesno, korištena prijenosna funkcija je tangens hiperbolni. f(x) = tanh(x) f : R [ 1, 1] Funkcija tangens hiperbolni preslikava skup realnih brojeva u interval [ 1, 1] što odgovara pomicanju i rotiranju u dva smjera. Pozitivna vrijednost označava pomicanje 9

Slika 5.2: Metoda Train unaprijed, odnosno rotiranje udesno, a negativna pomicanje unazad, odnosno rotiranje ulijevo. Pri pokretanju scene, mreža počinje s treniranjem i staje nakon odre denog broja epoha. Po završetku izvo denja, težine neuronske mreže se zapišu u datoteku. Takva neuronska mreža je davala najbolje rezultate nakon treniranja. Prvenstveno, širina terena nije bila konstantna pa se neuronska mreža nije snalazila na takvom terenu. Zato sam nastojao kreirati teren s konstantnom širinom. Neuronska mreža se tada puno bolje snalazila i nakon više treniranja sam najbolju neuronsku mrežu spremio u datoteku. Učenje neuronske mreže je provo deno na računalu s dvojezgrenim procesorom frekvencije radnog takta 2.5 GHz, 8GB radne memorije i grafičkom karticom osnovne frekvencije 1021 MHz. Za zadovoljavajući rezultat, bilo je potrebno 35 minuta učenja u 10000 epoha. Slika 5.3: Očitavanje udaljenosti sa senzora 10

6. Grafičko korisničko sučelje 6.1. Glavni izbornik Pri pokretanju apikacije, pojavi se glavni izbornik s četiri gumba. Glavni izbornik je prikazan na slici 6.1. Gumb Igraj pokreće scenu za prikupljanje podataka za učenje neuronske mreže. Gumb Učenje pokreće scenu za učenje u kojoj se neuronska mreža trenira. Gumb Učitaj mrežu pokreće scenu za testiranje naučene neuronske mreže, a gumb Iza di služi za izlazak iz aplikacije. Slika 6.1: Glavni izbornik 6.2. Scena za prikupljanje podataka U sceni za prikupljanje podataka, korisnik upravlja objektom kroz labirint. Scena je prikazana na slici 6.2. Aplikacija zabilježi udaljenosti sa senzora, brzinu i rotaciju lika 11

u svakoj sličici (engl. frame) i pri izlasku iz scene se ti podaci spremaju u tekstualnu datoteku trainingdata.txt. Zapisi u toj datoteci su oblika: senzor1,senzor2,senzor3,senzor4,senzor5,brzina,rotacija Slika 6.2: Scena za prikupljanje podataka 6.3. Scena za učenje U sceni za učenje, neuronska mreža uči na temelju podataka zapisanih u datoteci trainingdata.txt u odre den broj epoha. Scena je prikazana na slici 6.3. Nakon prolaska svih epoha, neuronska mreža počinje upravljati likom u sceni kroz labirint. Pri izlasku iz scene, spremaju se trenutne vrijednosti težina svih neurona u tekstualnu datoteku weights.txt. 6.4. Scena za testiranje Scena za testiranje je istovjetna sceni za učenje, s razlikom da se u sceni za testiranje odmah učitaju težine svih neurona iz tekstualne datoteke weights.txt. Nakon učitavanja datoteke, neuronska mreža odmah počinje upravljati likom kroz scenu. 12

Slika 6.3: Scena za učenje 13

7. Zaključak Ideja strojnog učenja je da računalo samo uči na temelju podataka ili prethodnog iskustva. To puno olakšava rješavanje problema koji se ne mogu riješiti algoritamski. U ovom završnom radu, prikazano je kako u grafičkom pogonu Unity ostvariti pokretanje objekata. Za simulaciju autonomnog kretanja, odabrana je implementacija umjetnom neuronskom mrežom. U ovoj simulaciji, umjetna neuronska mreža pokazala se kao zadovoljavajući izbor za simulaciju autonomnog kretanja objekata. Implementirano je da se objektom upravlja samo na temelju podataka dobivenih sa senzora. Za poboljšanje dobivenih rezultata, potrebno bi bilo pronaći optimalne dimenzije neuronske mreže i povećati broj senzora za veću preciznost. Izradom ovog završnog rada stekao sam nova znanja o grafičkom pogonu Unity, strojnom učenju i neuronskim mrežama i smatram da ću znanje stečeno izradom ovog rada moći primijeniti u mnogim drugim područjima. 14

LITERATURA [1] Unity Asset Store : Standard Assets. https://assetstore.unity.com/ packages/essentials/asset-packs/standard-assets-32351. [2] Wikipedia: C# (programming language). https://en.wikipedia.org/ wiki/c_sharp_(programming_language). [3] Enciklopedija.hr: Umjetna inteligencija. http://www.enciklopedija. hr/natuknica.aspx?id=63150. [4] DeepMind partners with gaming company for AI research. https://www. dailydot.com/debug/unity-deempind-ai/. [5] B. D. Bašić i J. Šnajder. Predavanja: Strojno učenje, 2016. [6] B. D. Bašić, M. Čupić, i J. Šnajder. Predavanja: Umjetne neuronske mreže, 2018. 15

Autonomno kretanje virtualnih objekata Sažetak U ovom radu opisuje se kako upotrijebiti umjetnu neuronsku mrežu za autonomno kretanje virtualnog objekta u sceni. Obra den je postupak izrade neuronske mreže. Opisan je postupak propagacije pogreške unatrag. Rezultat rada je simulacija autonomnog kretanja objekta u sceni. Korisnik može tipkovnicom upravljati objektom, generiranim podacima trenirati neuronsku mrežu te pokrenuti autonomno kretanje. Ključne riječi: umjetna inteligencija, strojno učenje, neuronske mreže, autonomno kretanje, virtualni objekti, C#, Unity Autonomous Movements of Virtual Objects Abstract This thesis describes how to use neural network for autonomous movements of virtual object in a scene. It is described how to make a neural network. Error backpropagation algorithm is described. Resulting work is an autonomous movement of an object simulation. User can navigate an object using a keyboard and train neural network with generated data and start the autonomous movement. Keywords: artificial intelligence, machine learning, neural networks, autonomous movements, virtual objects, C#, Unity