openai gym radionica - csnedelja.mg.edu.rs · openai gym radionica vladimir milenkovic, filip...

26
OpenAI Gym radionica Vladimir Milenkovi´ c, Filip Vesovi´ c Matematiˇ cka gimnazija NEDELJA 4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica Vladimir Milenkovi´ c, Filip Vesovi´ c

Upload: trinhdang

Post on 11-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

OpenAI Gym radionica

Vladimir Milenkovic, Filip Vesovic

Matematicka gimnazijaNEDELJA4

INFORMATIKE

28. mart 2018.

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 2: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Šta je OpenAI?

I Pre ove radionice, Petar vam je pricao o Reinforcementlearningu.

I OpenAI je neprofitabilna istraživacka kompanija, kojoj je ciljda pravi sigurnu opštu veštacku inteligenciju (AGI), i daobezbedi da se ta ista veštacka inteligencija raširi što jeviše moguce.

I Kompanija je osnovana krajem 2015. godine u SanFrancisku.

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 3: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Šta je OpenAI Gym?

I OpenAI Gym je interfejs koji nam omogucava da najednostavan nacin komuniciramo sa širokim spektromokruženja namenjenih za ucenje sa pojacavanjem.

I Možemo se fokusirati samo na algoritme mašinskogucenja, dok ce ostali deo posla Gym odraditi za nas

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 4: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Šta je OpenAI Gym?

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 5: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Šta je OpenAI Gym?

Gym sadrži mnoge okruženja:I Atari igriceI Klasicni problemiI Algoritamski problemiI Roboticki problemi

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 6: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

DEMO

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 7: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Primer koda

Slika: Primer koda

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 8: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Objašnjenje koda

I gym.make(’Ime environmenta’) Ucitava novi environmentI env.reset() Uraditi na pocetku, kao i svaki put kada želimo

da pocnemo ispocetkaI env.render() Prikazuje trenutno stanje na ekranuI env.step(action) Funkcija koja odigrava potez action, i kao

rezultat vraca cetvorku:I observation - tuple koji vraca sve potrebne parametre o

trenutnom stanjuI reward - nagrada u upravo odigranom potezuI done - da li je igra vec završena; ukoliko jeste, treba

resetovatiI info - neke debug informacije, necemo koristiti

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 9: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Šta je Keras?

I Keras je python biblioteka koja nam omogucava pravljenjeneuralnih mreža.

I Keras sakriva implementaciju mreže na nižim nivoima, iomoguca nam da samo navodenjem strukture, kao i nekihhiperparametara mreže zapravo kreiramo celu mrežu

I Neuralne mreže se u Keras-u prave sloj po sloj; svakisledeci sloj pravimo pozivanjem neke funkcije koja zaargument ima prošli

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 10: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Funkcije koje cemo koristiti

I novi sloj = Dense(broj cvorova, activation=’imeaktivacione funkcije’)(prošli sloj)- kreira obican, gusto povezan, sloj neuralne mreže.

I Aktivacione funkcije: [’relu’, ’linear’, ’tanh’, ’softmax’,’sigmoid’, ...]

I model = Model(inputs = [lista input layera], outputs =[lista output layera])- pravi model na osnovu datih parametara

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 11: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Šta je TensorFlow?

I TensorFlow je open source Python biblioteka,specijalizovana za izvršavanje kompleksnih racunskihoperacija.

I Osnovni model racunanja TensorFlow-a je usmeren graf, ukome grane predstavljaju kretanja podataka, a funkcijekoje se primenjuju na te podatke su cvorovi grafa.

I Taj grafovski model cini TensorFlow pogodnim pri radu saneuralnim mrežama.

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 12: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Korisne funkcije TensorFlow-a

Primenjuje se tako što specificiramo data flow (napravimogorepomenuti graf), i onda puštamo sve podatke koje treba daobradimo kroz taj graf.

I tf.placeholder(type, shape) - Kreira mesto za ulazpodataka koje uvek mora biti ’feedovano’ podacima.

I matematicke funkcije - tf.log, tf.square, tf.sqrt, .. -primenjuje matematicke funkcije na svaki element tenzora

I tf.stop_gradient - Zaustavlja propagiranje gradijenta ivraca tenzor onakav kakav trenutno jeste

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 13: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Korisne funkcije TensorFlow-a cont’d

I funkcije redukcije - tf.reduce_sum, tf.reduce_max,tf.reduce_min, tf.reduce_mean - racuna odgovarajucefunkcije po dimenzijama tenzora

Slika: Primer reduce_sum

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 14: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

O problemima

I Rešavacemo tri fizicka problema:I CartPole-v0I MountainCar-v0I Acrobot-v1

I Za svaki od njih cemo opisati šta se zapravo radi, mogucastanja, moguce akcije (poteze), kako funkcionišu nagrade,kao i terminirajuca stanja.

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 15: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 1: CartPole-v0 Prikaz

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 16: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 1: CartPole-v0

I Opis zadatka: Štap je pricvšrcen zglobom za kolica, kojase krecu po traci bez trenja. U pocetku, štap je uvertikalnom položaju, i želimo da pomeranjem kolicalevo-desno i ubrzavnjam/usporavanjem kolica postignemoto da štap nikada ne padne.

I Stanje: Naše trenutno stanje možemo opisati pomocu 4parametra:

I Pozicija kola: realan broj u intervalu (-2.4, 2.4)I Ugao pod kojim je nagnut štap u intervalu približnom (-42°,

42°)I Brzine vrha štapa i kola: realni brojevi

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 17: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 1: CartPole-v0 cont’d

I Potezi: Dozvoljena su samo dva poteza: gurni levo i gurnidesno

I Nagrada: Nagrada je jedan za svaki korak tokom kogsimulacija i dalje traje

I Krajnje stanje: Naša simulacija završava ukoliko je:I Ugao štapa veci od 12 po apsolutnoj vrednostiI Centar kola došao to kraja ekranaI Vec odigrano 200 koraka

I Program ce biti ocenjen kao tacan ukoliko u proseku trajeduže od 195 koraka posle 100 pokušaja

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 18: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 2: MountainCar-v0 prikaz

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 19: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 2: MountainCar-v0

I Opis zadatka: Imamo automobil koji nije dovoljno jak dase može popeti na brdo krecuci se samo u smeru vrhabrda. Potrebno je dovesti auto na vrh.

I Stanje: Naše trenutno stanje možemo opisati pomocu 2parametra:

I Pozicija automobila: realan broj u intervalu (-1.2, 0.6)I Trenutna brzina automobila: realan broj u intervalu (-0.07,

0.07)I Potezi: Dozvoljena su tri poteza: gurni levo, ne radi ništa, i

gurni desno

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 20: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 2: MountainCar-v0 cont’d

I Nagrada: Nagrada je -1 za svaki korak tokom kog seautomobil još nije popeo na cilj

I Krajnje stanje: Proces se završava kada automobildostigne koordinatu 0.5, ili kada se završi dvesta poteza.

I Program ce biti ocenjen kao tacan ukoliko je prosecnanagrada nakon 100 izvršavanja bolja od -110.

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 21: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 2: MountainCar-v0 cont’d

I Da li postoji neki problem vezan za okruženjeMountainCar-v0?

I Koji su nacini da taj problem rešimo?

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 22: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 3: Acrobot-v1 prikaz

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 23: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 3: Acrobot-v1

I Opis zadatka: Imamo dva štapa koja vise, gde je vrhprvog štapa fiksiran, i oni su povezani zglobom. Cilj nam jeda zanjišemo donji štap što je moguce više.

I Stanje: Naše trenutno stanje možemo opisati pomocu dvaugla (datih kao sinus i kosinus tih uglova), i ugaone brzineoba štapa. Paziti na to da je drugi ugao dat u referentomsistemu prvog štapa, ukoliko je drugi ugao 0, to znaci dasu štapovi kolinearni.

I Potezi: Potezi koji možemo raditi su: ne raditi ništa, idelovanje ugaonim momentom od +1 ili -1 u tacki spojadva štapa.

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 24: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Problem 3: Acrobot-v1 cont’d

I Nagrada: Nagrada je -1 za svaki trenutak kada još uveknismo prešli preko granice.

I Krajnje stanje: Završava se kada kraj donjeg štapa predepreko odredene y koordinate; kad se zanjiše dovoljno.

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 25: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

Vaš zadatak

I Imate implementiran skelet A3C-a, koji ima implementiranukomunikaciju sa OpenAI Gym-om, podršku zamultithreading, kao i još neke pomocne i skeletne funkcije

I Vaš današnji zadatak je:I Implementacija mreže za racunanje polise, kao i vrednost

funkcije V.I Implementacija funkcije gubitkaI Implementacija odabira akcije

Prvo probati na CartPole-u, kada proradi na njemu,optimizovati kako bi radilo i na ostala dva problema.

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic

Page 26: OpenAI Gym radionica - csnedelja.mg.edu.rs · OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovi´ c´ Matematicka gimnazijaˇ NEDELJA4 INFORMATIKE 28. mart 2018. OpenAI Gym radionica

Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak

SRECNO!https://goo.gl/k6qBM6

OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic