openai gym radionica - csnedelja.mg.edu.rs · openai gym radionica vladimir milenkovic, filip...
TRANSCRIPT
OpenAI Gym radionica
Vladimir Milenkovic, Filip Vesovic
Matematicka gimnazijaNEDELJA4
INFORMATIKE
28. mart 2018.
OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic
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
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
Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak
Šta je OpenAI Gym?
OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic
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
Uvod u OpenAI Gym Korišcenje OpenAI Gym-a Keras/TensorFlow Problemi Zadatak
DEMO
OpenAI Gym radionica Vladimir Milenkovic, Filip Vesovic
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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