
Valljuk be, az AI mindenütt jelen van. Elon Musk és Mark Zuckerberg egymással szembeni küzdelemben zajlik az AI jövőjével kapcsolatban. Van, amely démonizálja. És olyanok, akiknek utópisztikus nézetei szerint az AI szinte Isten-szerű lehet az emberiség megsegítésében. Bármelyik oldalon is dőlnek a nézetek, az AI itt marad.
- Mesterséges intelligenciával hívjuk meg a démonokat. - Elon Musk "A gyilkos robotok térnyerésétől való félelem olyan, mintha aggódna a Mars túlnépesedése miatt." - Andrew NgHa örülsz, hogy belevágsz és belefogsz az AI-ba, akkor a játékok remek kiindulópontot jelentenek. Ők voltak az AI tesztjei. De mielőtt beugrana, íme egy kis előzmény arról, hogyan alakult a játék programozása az idők során.
A játékprogramozás története
A játékprogramozók heurisztikus, ha-akkor-más típusú döntéseket használtak művelt találgatások megtételére. Láttuk ezt a legkorábbi arcade videojátékokban, mint például a Pong és a PacMan. Ez a tendencia nagyon sokáig jellemző volt. De a játékfejlesztők csak ennyi forgatókönyvet és éles esetet tudnak megjósolni, így a botod nem körökben fut!
A játékfejlesztők ezt követően megpróbálták utánozni, hogy az emberek hogyan fognak játszani, és egy játékrobotban modellezték az emberi intelligenciát.
A DeepMind csapata ezt úgy csinálta, hogy általánosította és modellezte az intelligenciát, hogy megoldja az Atari játékot. A játékrobot mély tanulási ideghálózatokat használt, amelyeknek nincsenek játékspecifikus ismereteik. A képernyőn látott képpontok és a játékvezérlők ismerete alapján verték meg a játékot. A DeepMind egyes részei azonban még mindig nem nyílt forráskódúak, mivel a Google a verseny legyőzésére használja.
Az AI demokratizálása
Elon Musk megalapította az OpenAI-t, hogy elkerülje az AI hihetetlen erejének összpontosítását néhány ember kezében. Arra törekszik, hogy mindenki számára hozzáférhetővé tegye az AI-t. Ma felfedezzük az OpenAI tornatermet és a nemrég megjelent Univerzumot, amely a Gym tetejére épül.
Az OpenAI Gym egyszerű felületet biztosít bármilyen tetszőleges dinamikus környezettel való interakcióhoz és kezeléshez. Az OpenAI Universe egy olyan platform, amely lehetővé teszi bot felépítését és tesztelését.
Több ezer környezet létezik. Ezek a klasszikus Atari játékoktól, a Minecraft-tól és a Grand Theft Auto-tól a fehérjehajtás-szimulációkig terjednek, amelyek gyógyíthatják a rákot. Létrehozhat egy botot, és bármilyen környezetben futtathatja, csak néhány sor Python kód használatával. Ez túl fantasztikus, hogy ne próbálja ki!
Projekt (1 óra)
Olyan AI Game Botot fogunk építeni, amely a „Reinforcement Learning” technikát használja. Ezt később elmagyarázom. Önállóan fog játszani az Atari Neon Race Car játékkal (bármelyik játékot kiválaszthatja). Ezt a játékrobotot az OpenAI Gym és Universe könyvtárai segítségével építjük fel.
1. lépés: Telepítés
Ellenőrizze, hogy telepítve van-e a Python, vagy telepítse a Homebrew használatával. Letölthet egy dedikált Python IDE-t, például PyCharm vagy iPython notebookot. Szeretek egyszerűvé tenni és a Sublime-ot használni. Végül telepítse a Gym, Universe és más szükséges könyvtárakat a pip használatával.
// Install python using brewbrew install python3// Install the required OpenAI librariespip3 install gympip3 install numpy incrementalbrew install golang libjpeg-turbo pip install universe
Az Univerzumban (a környezetekben) minden konténerként működik a Docker belsejében. Ha még nem rendelkezik, telepítse és futtassa innen a Dockert.
2. lépés: Kódolja a Game Bot programot
A Game Bot kódolva van a Pythonban, ezért a két szükséges függőség importálásával kezdjük: a Gym és az Universe.
import gymimport universe
Ehhez a Game Bot-hoz használjuk a kedvenc gyerekkori játékomat, a Neon Race Cars -t tesztkörnyezetként. Itt megtalálja a kiválasztott egyéb környezet / játékok teljes listáját.
Az Univerzum segítségével annyi környezetet futtathat, amennyit csak akar, párhuzamosan. De ehhez a projekthez csak egyet fogunk használni.
env = gym.make(‘flashgames.NeonRace-v0’)env.configure(remotes=1) # creates a local docker container
Megerősítő tanulás
Most hozzáadjuk a játék bot logikáját, amely az erősítés tanulási technikát használja. Ez a technika figyeli a játék korábbi állapotát és jutalmát (például a képernyőn látható pixeleket vagy a játék pontszámát). Ezután előáll egy cselekvés, amelyet a környezeten kell végrehajtani.
A cél az, hogy a következő megfigyelését jobbá tegyük (esetünkben a játék pontszámának maximalizálása érdekében). Ezt a műveletet egy ügynök (Game Bot) választja ki és hajtja végre a pontszám maximalizálása céljából. Ezután alkalmazzák a környezetre. A környezet rögzíti a kapott állapotot és jutalmat annak alapján, hogy a cselekvés hasznos volt-e vagy sem (megnyerte a játékot?).

Most lekérhetjük az env.reset () metódussal inicializált környezetek megfigyelési listáját.
observation_n = env.reset()
A megfigyelés itt egy környezeti specifikus objektum. Ez a megfigyelteket ábrázolja, például a képernyőn lévő nyers pixeladatokat vagy a játék állapotát / pontszámát.
A következő lépés egy játékügynök létrehozása egy végtelen hurok felhasználásával, amely a megfigyelés alapján folyamatosan végrehajt valamilyen műveletet. Botunkban definiáljunk egyetlen műveletet a felfelé mutató nyíl ismételt megnyomásával (Buta bot! Nyugodtan fejlesztheti komplexé ...). A műveletet itt az eseménytípus (KeyEvent), a vezérlőgomb (Fel nyíl) határozza meg, és igazra állítja az ügynök által látott összes megfigyeléshez.
while True:action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n]
Ezután a env.step()
módszert használjuk arra, hogy a műveletet egy lépésben előre lépjünk. Ez a megerősített tanulás nagyon alapvető megvalósítása.
observation_n, reward_n, done_n, info = env.step(action_n)
A step módszer itt négy változót ad vissza:
observation_n
: A környezet megfigyeléseireward_n
: Ha cselekedete hasznos volt vagy sem: + 1 / -1done_n
: Jelzi, hogy a játéknak vége-e vagy sem: Igen / Neminfo
: További információk, például a teljesítmény és a késés a hibakeresés céljából
Ezt a műveletet egyszerre futtathatja az összes olyan környezetben, amelyben a botot oktatja. Használja az env.render () metódust a bot elindításához.
env.render()
Most készen áll a Game Bot versenyre a környezettel. Ennek az alaprobotnak a teljes kódja, valamint a fejlett verzió itt érhető el a Github repóban.
3. lépés: Futtassa a Game Bot programot
Most a szórakoztató részről: győződjön meg arról, hogy a Docker fut, és futtassa a botot. Lásd akcióban más autók verésével vagy elmulasztásával. Ha ez nem sikerül, folytassa a botot, hogy megverje az intelligenciát!
python gamebot.py


Csináld tovább az AI-t, és végül kinyithatod Isten módját! # 100DaysOfCode

Ha tetszett ez, kérlek tapsolj ? s o mások is láthatják! Kövess engem a Twitteren @ H ariniLabs vagy az M edium-on, hogy megkapd a legfrissebb frissítéseket más történetekről, vagy csak köszönj :)
PS: Iratkozzon fel a hírlevelemre itt , hogy elsőként szerezzen új friss tartalmat, és ez egy adag inspirációval teli a # WomenInTech világából, és igen, a férfiak is regisztrálhatnak!