Kykenevätkö tietokoneet pelaamaan videopelejä kuten ihminen? Vuonna 2015 DQN päihitti ihmisasiantuntijat monissa Atari-peleissä. Mutta kun tulee monimutkaisia sotastrategiapelejä, tekoäly ei pärjää hyvin. Vuonna 2017 ammattilaisjoukkue voitti DeepMindin tekoälyohjelman Starcraft 2:ssa helposti.
Kuten DeepMindin paperista lainataan:
Se on moniagenttiongelma, jossa useat pelaajat ovat vuorovaikutuksessa keskenään; informaatio on epätäydellistä osittain havainnoidun kartan vuoksi; siinä on suuri toiminta-avaruus, johon liittyy satojen yksiköiden valinta ja hallinta; siinä on suuri tila-avaruus, jota on havainnoitava pelkästään raa’an syötteen ominaisuustasoista; ja siinä on viivästynyt luotonanto, joka vaatii pitkäaikaisia strategioita tuhansien askeleiden ajan.
Aloitetaanpa matkamme takaisin Deep Q-Network DQN:ään. Alla olevassa Seaquest-pelissä DQN oppii itsestään lukemaan pisteet, ampumaan vihollisen ja pelastamaan sukeltajat raakakuvista. Se löytää myös tietoa, jota voimme kutsua strategiaksi, kuten milloin sukellusvene kannattaa tuoda pintaan hakemaan happea.
Q-oppimisella opitaan toiminta-arvofunktio Q(s, a): kuinka hyvä on tehdä jokin toiminta tietyssä tilassa. Esimerkiksi alla olevassa laudan asennossa, kuinka hyvä on siirtää sotilasta kaksi askelta eteenpäin. Kirjaimellisesti annamme skalaarisen arvon tällaisen siirron tekemisen hyödylle.
Q:ta kutsutaan toiminta-arvofunktioksi (tai tässä artikkelissa Q-arvofunktioksi).
Q-oppimisessa rakennamme muistitaulukon Q, johon tallennamme Q-arvot kaikille mahdollisille s:n ja a:n kombinaatioille. Jos olet shakinpelaaja, se on parhaan siirron huijauslista. Yllä olevassa esimerkissä saatamme huomata, että siirtämällä sotilasta 2 askelta eteenpäin on korkeimmat Q-arvot kaikkiin muihin nähden. (Muistin kulutus on liian suuri shakkipelin kannalta. Mutta pitäydytään tässä lähestymistavassa vielä vähän aikaa.)
Teknisesti ottaen otamme näytteen toiminnosta nykyisestä tilasta. Selvitämme palkkion R (jos sellainen on) ja uuden tilan s’ (uusi laudan sijainti). Muistitaulukosta määrittelemme seuraavan suoritettavan toiminnon a’, jolla on suurin Q(s’, a’).
Videopelissä saamme pisteitä (palkkioita) ampumalla vihollisen alas. Shakkipelissä palkkio on +1, kun voitamme tai -1, jos häviämme. Tämä luo yhden askeleen katseen eteenpäin. R + Q(s’, a’) tulee kohteeksi, jonka haluamme Q(s, a):n olevan. Sanotaan esimerkiksi, että kaikki Q:n arvot ovat nyt yhtä suuret kuin yksi. Jos liikutamme joystickiä oikealle ja saamme 2 pistettä, haluamme siirtää Q(s, a) lähemmäs 3 (eli 2 + 1).
Leave a Reply