Neuroverkot ja AlphaGo Zero - jyx.jyu.fi
Transcript of Neuroverkot ja AlphaGo Zero - jyx.jyu.fi
Mikko Merikivi
Neuroverkot ja AlphaGo Zero
Tietotekniikan kandidaatintutkielma
2. toukokuuta 2019
Jyväskylän yliopisto
Informaatioteknologian tiedekunta
Tekijä: Mikko Merikivi
Yhteystiedot: [email protected]
Työn nimi: Neuroverkot ja AlphaGo Zero
Title in English: Neural Networks and AlphaGo Zero
Työ: Kandidaatintutkielma
Sivumäärä: 33+0
Tiivistelmä: Tutkielmassa perehdytään AlphaGo Zeron toimintaan ja oleellisimpiin siinä
käytettyihin tekniikoihin. AlphaGo Zero on tekoäly go-lautapelille, jota on pidetty tekoälyil-
le hankalana. Tärkeä syy AlphaGo Zeron menestykseen oli käyttää neuroverkkojen ja Monte
Carlo -puuhaun yhdistelmää. Löydän tälle menetelmälle muitakin käyttökohteita. Kehitystä
aikaisempaan AlphaGo-tekoälyyn nähden oli erityisesti pelaamaan oppiminen ilman ihmis-
ten ohjausta, kahden neuroverkon yhdistäminen yhdeksi, joka antaa kaksi ulostuloa, sekä
residuaalisten neuroverkkojen käyttäminen.
Avainsanat: AlphaGo Zero, neuroverkot, Monte Carlo -puuhaku, koneoppiminen, tietokone-
go, vahvistusoppiminen, konvoluutioneuroverkot, residuaaliset neuroverkot
Abstract: This thesis explains how AlphaGo Zero and the most relevant of the techniques
it utilizes work. AlphaGo Zero is an artificial intelligence for go, a board game that has
been thought to be difficult for computers. An important reason for the success of AlphaGo
Zero was how it combined neural networks and Monte Carlo tree search. I present other
applications for this method as well. AlphaGo Zero had a number of improvements compared
to its predecessor AlphaGo. The most important ones were that it learns without human
guidance, that it combines two neural networks into one that has two outputs, and that it
utilizes residual networks.
Keywords: AlphaGo Zero, neural networks, Monte Carlo tree search, machine learning,
computer go, reinforcement learning, convolutional neural networks, residual neural net-
works
i
KuviotKuvio 1. Päättynyt go-peli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Kuvio 2. Monte Carlo -puuhaun vaiheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Kuvio 3. Neuroverkko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Kuvio 4. Neuroni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Kuvio 5. AlphaGo Zeron pelaaminen itseään vastaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Kuvio 6. AlphaGo Zeron käyttämän puuhaun vaiheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
ii
Sisältö1 JOHDANTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 GO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1 Gon säännöt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Tietokone-gon historiaa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 YLEISTÄ KONEOPPIMISESTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 MONTE CARLO -PUUHAKU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 NEUROVERKOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115.1 Oppivat neuroverkot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.2 Virheenkorjausoppiminen ja vastavirta-algoritmi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.3 Konvoluutioneuroverkot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6 ALPHAGO ZERON TOIMINTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186.1 AlphaGo Zeron neuroverkko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.2 AlphaGo Zeron puuhaku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7 YHTEENVETO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
LÄHTEET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
iii
1 Johdanto
Tarve luoda tekoälyjä oppiviksi on tiedostettu jo pitkään. Esimerkiksi Alan Turing ehdotti ai-
koinaan, että aikuisen aivojen simuloinnin sijaan voisi simuloida lapsen (Turing 1950). Oh-
jattua oppimista sekä vahvistusoppimista hyödyntävä tekoäly nimeltään AlphaGo voitti teko-
älyille erittäin hankalana pidetyssä go-lautapelissä ensimmäisenä ammattitasoisen pelaajan
pelin tavallisilla säännöillä (Silver ym. 2016). AlphaGon seuraaja, AlphaGo Zero, sen sijaan
voitti AlphaGon sadassa pelissä häviämättä kertaakaan (Silver, Schrittwieser ym. 2017). Ai-
kaisemmat tekoälyt ovat voittaneet ammattitasoisia pelaajia vastaan gossa joko pienemmällä
kuin normaalilla 19x19 laudalla tai ovat saaneet tasoituskiviä (kts. historiaosio).
AlphaGo Zeron voitto oli merkittävää myös siksi, että se hyödynsi vahvistusoppimista eli
sitä ei opetettu opetusesimerkein vaan se oppi itsenäisesti pelkkien sääntöjen tuntemuksen
avulla (Silver, Schrittwieser ym. 2017). AlphaGossa oli jo käytetty ajatusta yhdistää neu-
roverkot ja Monte Carlo -puuhaku (Silver ym. 2016), ja AlphaGo Zero kehitti tätä ideaa
lisää erityisesti yhdistämällä kaksi neuroverkkoa yhdeksi, joka antaa kaksi ulostuloa, sekä
käyttämällä residuaalisia neuroverkkoja. Tämä kaikki johti myös huomattavaan parannuk-
seen suorituskyvyssä vaatimalla vain 3 vuorokautta harjoittelua verrattuna AlphaGon muu-
tamaan kuukauteen ja käytti siihen yhtä tietokonetta monen sijaan toisin kuin AlphaGo. (Sil-
ver, Schrittwieser ym. 2017).
Pelejä on käytetty tekoälytutkimuksessa eräänä tutkimuskohteena. Tutkimuksessa käytetyt
pelit ovat usein tarkkoja säännöiltään ja sellaisia, että niiden tilat ovat helppoja kuvata. Ky-
seiset pelit ovat kuitenkin kiinnostavia tekoälytutkimuksen kannalta, koska ne ovat hankalia
ratkaista, mutta kuten tosielämässä, on vuorolla tehtävä edes jokin päätös ja usein lisäksi
rajatussa ajassa. (Russell ja Norvig 2010, s. 161–162). Deterministiset pelit ovat myös mää-
ritelmällisesti toistettavissa, ja digitaaliset pelit yleensäkin ovat usein halpoja testialustoja.
Täydellisen informaation peleissä on suunnilleen bd mahdollista siirtosarjaa missä b on pe-
lin leveys (laillisten siirtojen määrä per tilanne) ja d on pelin syvyys (pelin pituus) (Silver
ym. 2016). Shakille siirtosarjoja on keskimäärin noin 3580 (Silver ym. 2016) tai 35100 (Rus-
sell ja Norvig 2010, s. 162) ja golle siirtosarjoja on peräti noin 250150 (Silver ym. 2016).
1
Tämä tutkielma tutkii AlphaGo Zeron toimintaa ja ottaa painopisteekseen tarkastelulleen
neuroverkot, poiketen AlphaGosta aiemmin tehdystä kandidaatintutkielmasta, joka painottui
Monte Carlo -puuhakuun (Kumpulainen 2017). Aloitan käsittelemällä go-lautapeliä luvus-
sa 2. Seuraavaksi kerron lyhyesti koneoppimisen suuntauksista luvussa 3. Tämän jälkeen
päästään AlphaGo Zerossa käytettyjen tekniikoiden perusmuotoihin, sillä luvussa 4 käsitel-
lään Monte Carlo -puuhakua ja luvussa 5 käsitellään neuroverkkoja. Viimein luvussa 6 hyö-
dynnetään aikaisemmin käsiteltyä tietoa, jotta voidaan ymmärtää AlphaGo Zeron toiminta.
Lopussa on vielä yhteenveto, jossa kerron pääpiirteet AlphaGo Zeron toiminnasta ja kerron
esimerkkejä muista sovelluskohteista, joissa Monte Carlo -puuhakua ja neuroverkkoja on
yhdistetty.
2
2 Go
Go on vanha lautapeli, jonka säännöt ovat perustaltaan yksinkertaiset: ”Musta aloittaa. Pelaa-
jat vuorottelevat pelaten yhden kiven vuorollaan. Tavoitteena on ympäröidä alueita.” (Ame-
rican Go Association 2018). Hieman tarkemmin pelialue on neliskulmainen ja kiviä asetetaan
vuorotellen laudalla oleviin risteyskohtiin, joita on normaaleilla säännöillä 19x19. Pysty- tai
sivusuunnassa vierekkäiset saman pelaajan kivet muodostavat ryhmiä, jotka tulevat kaapa-
tuksi, jos niillä ei ole vapauksia eli viereisiä vapaita risteyskohtia. (Browne ym. 2012). ”Peli
päättyy, kun molemmat pelaajat passaavat, ja enemmän aluetta hallitseva pelaaja voittaa”
(Browne ym. 2012, suomennos minun).
Yksinkertaisista säännöistään huolimatta peli on haastava tekoälyille. Pelit ovat pitkiä, jolloin
hakupuista tulisi syviä (Browne ym. 2012). Vaihtoehtoisia siirtoja on paljon per vuoro tavalli-
sella 19x19-laudalla ja siirtojen merkitys voi tulla ilmi vasta hyvin pitkän ajan kuluttua (Gel-
ly ym. 2012). Lisäksi golle ei ole tunnettuja luotettavia heuristisia arvottamisfunktioita muil-
le kuin loppuasetelmille (Browne ym. 2012) mitä selittää se, että yhden pelaajan etu alueis-
sa tasapainottuu usein toisen pelaajan paremmalla strategisella asemalla (Gelly ym. 2012).
Kuvio 1. Päättynyt go-peli
(Public Domain Pictures).
3
Kaikkien siirtosarjojen arviointi gossa olisi toteuttamiskelvotonta (Silver ym. 2016). Gota
onkin pidetty yhtenä suurista haasteista tekoälyille vielä sen jälkeen, kun Deep Blue voitti
shakin maailmanmestarin Garry Kasparovin vuonna 1997 (Gelly ym. 2012).
2.1 Gon säännöt
Koska AlphaGo vastaan Lee Sedol -ottelussa käytettiin kiinalaista säännöstöä, käyn sen tar-
kemmin läpi (Korea Baduk Association 2016). Käytän lähteenäni American Go Associatio-
nin (2018) linkittämää käännöstä Chinese Weiqi Associationin virallisista säännöistä. (Da-
vies 1992). Suomennos on minun.
Pelilauta gossa on 19 pystysuuntaisen ja 19 vaakasuuntaisen viivan muodos-
tama neliö. Kohtia, joissa viivat leikkaavat toisensa, kutsutaan risteyskohdiksi.
Risteyskohtia on siis 361. Kivet ovat gossa mustia ja valkoisia.
Pelissä on kaksi pelaajaa, joista toinen asettaa valkoisia kiviä risteyskohtiin
ja toinen mustia kiviä. Musta asettaa ensimmäisen kiven, sitten valkoinen ja näin
jatketaan vuorotellen aina asettaen tasan yhden kiven. Kiviä ei siirretä, kun ne
on asetettu. Lisäksi on mahdollista olla tekemättä mitään vuorollaan eli passata,
ja peli päättyy, kun molemmat pelaajat passaavat.
Kivillä on kahdesta neljään viereistä risteyskohtaa sivu- tai pystysuunnassa.
Jos näissä ei ole kiveä, niitä kutsutaan vapauksiksi. Jos kaksi tai useampi ki-
veä on kiinni toisissaan sivu- tai pystysuunnassa, ne muodostavat ketjun. Ketjun
kivien vapaudet lasketaan yhteen.
Jos kivellä tai ketjulla ei ole yhtään vapauksia, se poistetaan pelistä. Näin voi
tapahtua, kun vastustaja asettaa viimeiselle tyhjälle kiveä tai ketjua ympäröiväl-
le paikalle oman kivensä. Tavallisesti sellaiseen paikkaan ei voi asettaa kiveään
missä sillä ei olisi vapauksia, mutta poikkeuksena on, jos tämä siirto veisi vastus-
tajan ketjulta viimeisen vapauden, jolloin kiven asettaminen sallitaan ja mainitut
vastustajan kivet poistetaan pelistä. Toinen kielletyn siirron tyyppi on, että sama
pelitilanne kuin joskus aikaisemmin toistuisi.
Kun molemmat pelaajat passaavat tai toinen luovuttaa, peli päättyy ja pisteet
lasketaan. Lopussa sellaiset kivet, jotka molemmat pelaajat hyväksyvät tulevan
4
väistämättä lopulta kaapatuiksi, ovat kuolleiksi kutsuttuja. Pisteidenlaskussa en-
sin poistetaan kuolleet kivet laudalta. Sitten lasketaan yhden pelaajan jäljelle
jääneet, eli elävät, kivet sekä tila, jonka ne sulkevat sisäänsä. Nämä ovat molem-
mat yhden pisteen arvoisia. Ne alueet, jotka jäävät molempien pelaajien kivien
väliin, jaetaan molemmille pelaajille tasaisesti.
Voittaja selvitetään vertaamalla pisteitä lukuun 180,5, mikä on puolet ris-
teyskohtien määrästä. Jos pelaajalla, jonka kivet laskettiin, oli hallussaan yli tä-
mä määrä aluetta, hän voittaa. Muuten hän häviää ja toinen pelaaja on voittaja.
Tasan 180,5 pistettä tarkoittaa tasapeliä.
Joissakin kilpailuissa lisäksi mustan saamaa etua alussa tasoitetaan kompen-
saatiokivillä, jotka poistetaan pisteenlaskussa mustalta ja annetaan valkoiselle.
2.2 Tietokone-gon historiaa
Go-ohjelmia alettiin tekemään noin vuonna 1960 ja heti ensimmäisessä tieteellisessä julkai-
sussa aiheesta vuonna 1963 pohdittiin koneoppimisen hyödyntämistä (Bouzy ja Cazenave
2001). Vasta 1997 saavutettiin vahvan aloittelijan taso α-β -hakua hyödyntämällä. Nopea
kehitys alkoi 2006 Monte Carlo -puuhaun (MCTS) ansiosta. (Browne ym. 2012).
Esimerkkeinä MCTS:n mahdollistamasta kehityksestä vuonna 2008 MoGo voitti ammatti-
laispelaajan 9x9 laudalla, sekä suurella laudalla (joskin monella tasoituskivellä) myöskin
vuonna 2008. Crazy Stone oli ensimmäinen go-ohjelma, joka voitti ammattitasoisen go-
pelaajan vähemmällä kuin 9 kiven tasoituksella. Fuego-tekoäly oli ensimmäinen, joka voitti
tasaisen ottelun 9x9-laudalla ammattitasoista go-pelaajaa vastaan. (Browne ym. 2012). Suu-
rin osa 2010-luvun alun tekoälyistä hyödynsi joko All Moves As First -parannusta tai Rapid
Action Value Estimation -parannusta Monte Carlo -puuhakuun (Browne ym. 2012).
Neuroverkkoja on käytetty go-tekoälyissä ennenkin (Bouzy ja Cazenave 2001), mutta hil-
jattain AlphaGo on menestynyt gossa yhdistelmällä syvien konvoluutioneuroverkkojen ja
Monte Carlo -puuhaun mahdollistamaa koneoppimista käyttäen oppimisaineistonaan mesta-
ripelaajien pelejä (Silver ym. 2016). AlphaGo voitti lokakuussa 2015 Euroopan mestarin Fan
Huin viisi peliä viidestä (Silver ym. 2016) ja muokattu versio voitti 18-kertaista maailman-
5
mestaria Lee Sedolia vastaan 2016 4–1. AlphaGo Zero, joka aloitti oppimisensa puhtaalta
pöydältä ilman ihmisten peleistä oppimista, sen sijaan voitti sata peliä sadasta AlphaGon sen
version, joka oli pelannut Lee Sedolia vastaan. Edelleen muokattua versiota AlphaGosta ni-
meltään AlphaGo Master vastaan AlphaGo Zero voitti 89 peliä sadasta. (Silver, Schrittwieser
ym. 2017).
6
3 Yleistä koneoppimisesta
Kerron seuraavaksi koneoppimisesta yleisellä tasolla. Tarkemmin sen suuntauksista käsitte-
len vahvistusoppimista, jota AlphaGo Zero hyödynsi (Silver, Schrittwieser ym. 2017), sekä
ohjattua oppimista, joka auttanee edellisen ymmärtämisessä. AlphaGo hyödynsi molempia
näistä (Silver ym. 2016). Lisäksi on olemassa ohjaamaton oppiminen, jossa etsitään raken-
netta luokittelemattomasta datasta (Sutton ja Barto 2018, s. 2).
Ilman oppimista tekoälyyn pitäisi ohjelmoida formaalit kuvaukset siitä mitä niiden pitäi-
si osata tehdä. Tosielämän ilmiöt harvemmin tosin ovat suoraan matemaattisesti kuvailta-
via. Täten esimerkiksi kuvantunnistuksessa tämä lähestymistapa alkaa menemään vaikeaksi.
(Goodfellow, Bengio ja Courville 2016, s. 2–4).
Esimerkiksi tuolit voivat olla hyvinkin monenmuotoisia ja -värisiä ja vaikka esine olisikin
aina tietynlainen, olosuhteet vaikuttavat paljon siihen miltä se näyttää. Se voi olla varjos-
sa, osittain näkyvissä tai kuvakulma voi olla erilainen. Koneoppiminen eli tavat tekoälylle
hankkia itse tietonsa (Goodfellow, Bengio ja Courville 2016, s. 3–4) voi siis olla käytännöl-
lisempi vaihtoehto moneen tosielämän ongelmaan. Se antaa mahdollisuuden tekoälylle olla
välittämättä noista suuristakin epäoleellisista vaihteluista ollen silti herkkä esimerkiksi sille
onko kuvassa koira tai susi (LeCun, Bengio ja Hinton 2015).
Ohjatun oppimisen merkittävyydestä kertoo, että se on suorastaan hallinnut viimeaikaisia
hahmontunnistuskilpailuja (Schmidhuber 2015). Ohjatussa oppimisessa tekoälyä opetetaan
näyttämällä sille mallidataa, jossa tunnistettavaksi tarkoitettuja asioita (kuvien tapauksessa
esimerkiksi taloja, autoja tai ihmisiä) on luokiteltu sen mukaan, mitä niissä on (Sutton ja
Barto 2018, s. 2).
Tekoäly antaa jotain tuloksia arviostaan mitä datasta löytyi, vertaa näitä odotettuihin, ja saa-
dun virheen avulla muuttaa sisäisiä parametrejaan (LeCun, Bengio ja Hinton 2015). Tavoite
on, että lopulta sen antamat tulokset vastaisivat hyvin mallidataa ja se pystyisi yleistämään
oppimaansa myös opetusesimerkkien ulkopuolelle. (Sutton ja Barto 2018, s. 2).
Vahvistusoppiva tekoäly oppii yrityksen ja erehdyksen kautta muuttuvassa ympäristössä
7
(Kaelbling, Littman ja Moore 1996). Sille ei kerrota ulkopuolelta mitä pitäisi tehdä (Sut-
ton ja Barto 2018, s. 1). Tekoälyllä on vahvistusoppimisessa selvästi määriteltyjä tavoitteita
(Sutton ja Barto 2018, s. 2), joihin päästäkseen sen pitää pystyä saamaan tietoa ympäris-
tönsä tilasta sekä vaikuttamaan ympäristöönsä jotenkin. Ne toimenpiteet, jotka se valitsee,
muuttavat ympäristön tilaa, ja tekoäly saa jonkinlaisen palkintosignaalin tästä uudesta tilasta.
(Kaelbling, Littman ja Moore 1996). Tämän palkintosignaalin maksimointi on mihin tekoäly
pyrkii oppimaan (Sutton ja Barto 2018, s. 2).
8
4 Monte Carlo -puuhaku
Koska Monte Carlo -puuhaulla on ollut suuri merkitys tietokone-gon lähihistoriassa ennen
syväoppimisen aikaa ja AlphaGo Zero myös hyödyntää sitä, käsittelen sen tässä vaiheessa.
Monte Carlo -puuhaku (Monte Carlo Tree Search, tai MCTS) on hakualgoritmi, jossa muo-
dostetaan puuta hyvistä toimintatavoista tutkimalla hakuavaruutta satunnaisesti tai ainakin
osittain satunnaisesti (Chaslot ym. 2008). Monte Carlo -puuhaun joitain etuja on, että se ei
väistämättä tarvitse erityistä tietämystä toimialueesta, ja sen antamat tulokset ovat tyypilli-
sesti sitä parempia mitä enemmän laskentatehoa sillä on käytettävissään (Browne ym. 2012).
Algoritmi toimii käsitteellisellä tasolla yksinkertaisesti. Se muodostaa puuta merkiten sen
solmuihin palkkioluvun (yksinkertaisimmillaan voittojen määrät) ja pelatut pelit kyseises-
tä solmusta lähtien. Seuraavaksi tarkasteltava solmu valitaan jollain menettelytavalla, jossa
tasapainotetaan parhaita tuloksia antavia solmuja ja vähän käsiteltyjen solmujen tutkimis-
ta. Valitusta solmusta lähtien tehdään simulaatio, joka on yksinkertaisimmillaan satunnai-
sia siirtoja, ja puuta päivitetään sen mukaan johtiko simulaatio voittoon tai tappioon. Tätä
jatketaan, kunnes esimerkiksi käytettävissä oleva aika, muisti tai toistojen määrä on loppu.
(Browne ym. 2012).
Browne ym. listaavat, että Monte Carlo -puuhaun jokaisessa toistossa on seuraavat neljä
vaihetta mitkä olen mukaillen suomentanut:
1. Valinta (selection): Lähtien juurisolmusta, jotain lapsisolmun valintamenettelyä käy-
Kuvio 2. Monte Carlo -puuhaun vaiheet
9
tetään rekursiivisesti kulkien alas puussa, kunnes kaikista kiireellisin laajennettavissa
oleva solmu saavutetaan. Solmu on laajennettavissa, jos se ei ole päätepiste ja sillä on
ennestään tarkastelemattomia (laajentamattomia) lapsia.
2. Laajennus (expansion): Yksi (tai useampi) lapsisolmu lisätään laajentamaan puuta va-
liten sallituista toimenpiteistä.
3. Simulaatio (simulation/playout/rollout): Simulaatio suoritetaan uudesta tai uusista sol-
muista oletusmenettelyksi kutsutulla tavalla (yksinkertaisimmillaan satunnaisia siirto-
ja) ja saadaan jokin lopputulos.
4. Vastavirta (backpropagation): Puuta noustaan ylös päivittäen sen solmujen tilastot ot-
tamaan huomioon simulaation tulos
Monte Carlo -puuhaku on kuitenkin vain päätöstentekovaiheen algoritmi, joten se ei itse
yritä muodostaa globaalia evaluaatiofunktiota (Sutton ja Barto 2018, s. 443–444). Kerron
seuraavaksi neuroverkoista, jollaista AlphaGo Zero käyttää paikkaamaan tätä Monte Carlo
-puuhaun heikkoutta.
10
5 Neuroverkot
Keinotekoiset neuroverkot, joita kutsun helppouden nimissä pelkiksi neuroverkoiksi, ovat
yksinkertainen mutta laajaan ongelmien kirjoon soveltuva ongelmanratkaisun menetelmä
(Graupe 2013, s. 1–2). Neuroverkkojen käyttötarkoituksia löytyy esimerkiksi mallintamises-
ta, aikasarja-analyysistä, hahmontunnistuksesta ja signaalinkäsittelystä (Haykin 1999, s. xii).
Keinotekoiset neuroverkot ovat saaneet vaikutteita biologisten neuroverkkojen toiminnasta
ja pystyvät järjestäytymään uudelleen oppimisen myötä toisin kuin tavalliset algoritmit, jot-
ka ovat muuttumattomia (Graupe 2013, s. 1–2). Erittäin olennainen etu neuroverkoilla onkin
niiden kyky oppia (Haykin 1999, s. xii). Ne myös hyötyvät kehityksestä, jossa prosessorit
saavat ennemminkin lisää ytimiä kuin kellotaajuutta: neuroverkot pystyvät nimittäin myös
hyödyntämään rinnakkaislaskentaa (Graupe 2013, s. 1–2).
Neuroverkot koostuvat rajallisesta määrästä yksiköitä, joita kutsutaan neuroneiksi, sekä nii-
den välisistä yhteyksistä. Neuronit ovat kerroksissa, ja ensimmäistä niistä kutsutaan syöteker-
rokseksi ja viimeistä ulostulokerrokseksi. Näiden välissä on vielä piilokerroksia. (Schmid-
huber 2015). Kerrokset voi intuitiivisesti tulkita eri ”tasoisia” piirteitä tunnistaviksi (Haykin
1999, s. 157). Esimerkiksi kuvien tapauksessa ensimmäiset kerrokset voisivat etsiä kuvis-
ta reunoja, seuraavat suurempia muotoja, seuraavat muotojen yhdistelmiä, ja lopulta koko-
Syöte #1
Syöte #2
Syöte #3
Syöte #4
Ulostulo
SyötekerrosPiilokerros
1
Piilokerros
2Ulostulokerros
Kuvio 3. Neuroverkko, jolla on kolme laskentakerrosta ja yksi ulostulo. Mukaillen lähdettä
(TeXample.net).
11
Kuvio 4. Neuroni mukaillen Haykinia (1999, s. 17). Neuronille tulevat jotkin syötteet x0, ...,
xm, joilla on vastaavasti painoarvot wk0, ..., wkm. Syötteiden painotettu summaus palauttaa
arvon vk, joka annetaan vielä aktivaatiofunktiolle φ , ja neuroni palauttaa arvon yk. Joskus
lisäksi käytetty vakiotermi bk on esitetty tässä vakioksi 1 määritetyllä x0:lla kerrottuna jollain
painoarvolla wk0. (Haykin 1999, s. 10–11, 17)
naisia haettavia kohteita kuten kasvoja. Suuri määrä kerroksia on osoittautunut oleelliseksi
monimutkaisten ilmiöiden tulkinnassa neuroverkoilla (He ym. 2016).
Neuronit ottavat vastaan jotain syötettä ja antavat ulos jonkin reaaliluvun (Schmidhuber
2015). Neuronit ovat tällä tavalla yhteydessä toisiinsa, ja se minkä reaaliluvun ne antavat
ulos riippuu niiden saamasta syötteestä, painoarvoista syötteille sekä niiden sisäisestä algo-
ritmista. Syöte ja painoarvot yhdessä vaikuttavat siihen mitä neuroni lopulta laskee ja palaut-
taa jollakin sisäisellä algoritmillaan. (Aggarwal 2018, s. 2). Tämä on esitetty kuviossa 4.
Perseptroni on yksinkertainen neuroverkko, jolla on vain syötekerros sekä yhdestä neuronista
koostuva ulostulokerros (Aggarwal 2018, s. 5). Lisäksi sen ulostulo määräytyy kynnysfunk-
tiolla nollaksi tai yhdeksi (Russell ja Norvig 2010, s. 726, 729). Perseptronin syötekerros
muodostuu syötteestä saaduista reaalilukuarvoista, esimerkiksi pikseleiden kirkkauksista tai
äänen lujuudesta tietyllä ajanhetkellä. Näitä syötekerroksen alkioita on d kappaletta ja niil-
lä on lisäksi jokin painoarvo. Ulostulokerroksen neuroni summaa yhteen saamansa syötteet
x kerrottuna niiden painoarvoilla w saaden tulokseksi vk eli vk = ∑di=1 wixi. Lopuksi per-
septroni päättää mitä se antaa vastaukseksi sille esitettyyn ongelmaan aktivaatiofunktiolla.
(Aggarwal 2018, s. 5–6). Tavallisen perseptronin tapauksessa verrataan saatua tulosta johon-
kin raja-arvoon, ja perseptroni palauttaa vertauksen perusteella joko yhden (tosi) tai nollan
(epätosi). Tämä aktivaatiofunktio tunnetaan myös nimellä kynnysfunktio. Muitakin aktivaa-
12
tiofunktioita on, esim. logistinen aktivaatiofunktio. (Russell ja Norvig 2010, s. 726, 729).
Aktivaatio on se luku, jonka aktivaatiofunktio palauttaa (Russell ja Norvig 2010, s. 728).
Useamman laskentakerroksen neuroverkolla syötekerroksen neuronit aktivoituvat ympäris-
tön havaitsemisesta tulleesta syötteestä ja loput aktivoituvat aikaisemmin aktivoituneiden
neuroneiden painotetuista ulostuloista (Schmidhuber 2015). Jos neuroverkossa ei ole sykle-
jä, sitä kutsutaan eteenpäin kytketyksi neuroverkoksi (Russell ja Norvig 2010, s. 729). Jois-
sain toteutuksissa kaukaisempienkin kuin vierekkäisten kerrosten välillä voi olla myös oi-
kopolkuja (Schmidhuber 2015). Sellaista neuroverkkoa, jossa neuroneja on yhteydessä ai-
empiin muodostaen syklejä, kutsutaan takaisinkytkeytyväksi neuroverkoksi (Tieteen termi-
pankki 2019; Russell ja Norvig 2010, s. 729).
5.1 Oppivat neuroverkot
Neuroverkkojen kyvyt alkavat paljastua vasta, kun ne ovat oppivia. Oppiminen tarkoittaa Ag-
garwalin (2018) mukaan keinotekoisten neuroverkkojen kontekstissa sitä, että eri kerrosten
neuroneja yhdistäviä painoarvoja muutetaan riippuen siitä miten hyvin neuroverkon antama
tulos vastasi toivottua (Aggarwal 2018, s. 2). Haykin (1999) lisää, että toinen harvinaisem-
pi tapa neuroverkoille oppia on muuttaa rakennettaan (Haykin 1999, s. 2). Joka tapauksessa
oppimalla neuroverkko voi kehittyä toimimaan ongelmassa paremmin usean syöte–ulostulo-
syklin avulla (Aggarwal 2018, s. 2).
Jotta oppimista voi olla, täytyy olla jokin tavoite, jolla voidaan arvioida onko jotain opittu.
Yleinen valinta tavoitteeksi on niin kutsutun tappiofunktion antaman arvon minimoiminen
(Aggarwal 2018, s. 7).
Neuroverkkoja pystytään myös hyödyntämään tilanteissa, joissa pitää mukautua muuttuvaan
ympäristöön. Eräs päätös, joka ympäristöön mukautuvan tekoälyn kanssa pitää tehdä, on
miten nopeasti se mukautuu. Liian nopea mukautuminen ei ole hyväksi nimittäin sekään:
häiriöt voivat aiheuttaa heikompaa suoritusta yleisemmissä tilanteissa. (Haykin 1999, s. 3).
Haykin (1999, s. 51–61) esittää neuroverkoille olevan ainakin seuraavat tavat oppia:
• Virheenkorjausoppiminen (error-correction learning). Merkittävyytensä vuoksi käsit-
13
telen tämän tarkemmin luvussa 5.2.
• Muistiperustainen oppiminen
• Hebbin oppiminen. Tässä oppimisen muodossa toisiinsa kytköksissä olevat neuronit,
jotka aktivoituvat samanaikaisesti, kasvattavat niiden välistä painoarvoaan. Toisaalta
jos ne eivät aktivoidu samanaikaisesti, tätä painoarvoa pienennetään.
• Kilpailullinen oppiminen. Tässä oppimisen muodossa on vain yksi aktivoituva ulostu-
loneuroni ja ulostulokerroksen neuronit ”kilpailevat” aktivoitumisesta. On myös mah-
dollista, että neuronit voivat hiljentää toisia saman kerroksen neuroneita. Oppiminen
on tässä sitä, että painoarvoja siirretään ei-aktiivisilta syötteenä olleilta neuroneilta ak-
tiivisille.
• Boltzmann-oppiminen, jossa neuronit antavat ulostulona joko 0 tai 1 ja jossa tuo ulos-
tulo muutetaan jollain niin kutsutusta lämpötilasta riippuvalla todennäköisyydellä.
Syväoppiminen ei ole tarkasti määritelty käsite, mutta se tarkoittaa riittävän suurta ongel-
man syvyyttä tietyssä neuroverkossa. Ongelman syvyys on lyhin yhtenäinen muutettavissa
olevien painojen reitti, jolla voidaan ratkaista ongelma. Painoarvoja voi tällaisissa neuro-
verkoissa olla jopa satoja miljoonia. Siitä, mikä on riittävän syvä ongelma, ei ole lähteeni
mukaan riittävää yksimielisyyttä, että sitä voisin määritellä tässä. (Schmidhuber 2015).
5.2 Virheenkorjausoppiminen ja vastavirta-algoritmi
Virheenkorjausoppiminen on esimerkiksi erittäin käytetyn vastavirta-algoritmin perusta (Hay-
kin 1999, s. 156). Tässä oppimisen muodossa neuroverkon ulostuloa yk(n) verrataan johon-
kin haluttuun ulostuloon dk(n) (Haykin 1999, s. 51–53). Tämä tehdään jonkinlaisen tappio-
funktion avulla, jonka antamia arvoja pyritään minimoimaan (Bottou 2012).
Vastavirta-algoritmia hyödyntävä neuroverkko toimii kahdessa vaiheessa: ensimmäiseksi se
ottaa jonkin syötteen, jota neuroverkko käsittelee ihan normaalisti ja palauttaa jonkin arvon.
Tätä vertaamalla toivottuun arvoon saadaan virhe, jota kuljetetaan päinvastaiseen suuntaan
neuroverkossa korjaten tämän tiedon avulla painoarvoja vastaamaan toivottua tulosta parem-
min. (Haykin 1999, s. 156).
Painoarvojen muuttamiseen ehdotetaan usein gradienttimenetelmää. Yleisellä tasolla gra-
14
dienttimenetelmässä uusi painoarvo wt+1 saadaan yhtälöllä
wt+1 = wt − γ1n
n
∑i=1
∇wQ(zi,wt), (5.1)
jossa γ on oppimisnopeus, n on opetusesimerkkien määrä, ∇w on gradientti (usean muuttujan
yleistys derivaatalle), ja Q(zi,wt) on tappiofunktion tulos opetusesimerkille zi käsiteltävänä
olevalle painoarvolle wt . (Bottou 2012).
Stokastinen gradienttimenetelmä käyttää jokaisella iteraatiollaan vain yhtä satunnaista
opetusesimerkkiä ja on muotoa
wt+1 = wt − γt∇wQ(zi,wt) (5.2)
(Bottou 2012). Bottou (2012) argumentoi, että stokastista gradienttimenetelmää kannattaa
käyttää silloin, kun opetukseen käytettävä aika on pullonkaulana eikä opetusesimerkkien
määrä (Bottou 2012).
AlphaGo Zeroa käsittelevässä paperissa väitetään sen käyttävän stokastista gradienttimene-
telmää (Silver, Schrittwieser ym. 2017), mutta siinä myös puhutaan minisatseista, ja ”stokastinen”-
termiä käytetään välillä, vaikka tarkoitetaan minisatsi-gradienttimenetelmää (Ruder 2016).
Näillä perusteilla olen tehnyt johtopäätöksen, että oikeasti AlphaGo Zero hyödyntää minisatsi-
gradienttimenetelmää. Se on välimuoto tavalliselle ja stokastiselle gradienttimenetelmälle,
nimittäin siinä opetusesimerkit jaetaan minisatseihin, ja painoarvoja päivitetään jokaisen mi-
nisatsin käsittelyn jälkeen (Ruder 2016).
Laajemmassa mittakaavassa neuroverkon opetus voidaan jakaa vielä epookkeihin eli jak-
soihin, joissa kaikki oppimisesimerkit käsitellään (Haykin 1999, s. 161). Hyvä käytänne on
satunnaistaa oppimisesimerkkien näyttämisjärjestys epookkien välillä. Neuroverkon opetus
voi tapahtua jokaisen opetusesimerkin näyttämisen jälkeen, mutta on myös mahdollista näyt-
tää kaikki opetusesimerkit satsina. Opettamisen lopetuskriteerejä on olemassa useita, joille
on omat hyötynsä ja haittansa. (Haykin 1999, s. 171–173).
Lopuksi kerron joistain optimointitekniikoista, jotka ovat myös AlphaGo Zerossa käytössä
(Silver, Schrittwieser ym. 2017). Oppimisnopeuden jäähdytys (annealing) tarkoittaa op-
pimisnopeuden hidastamista opetuksen edetessä, jolloin aluksi opitaan nopeasti ja lopussa
15
ei heiluttaisi optimaalisten painoarvojen ympärillä. Momentti tarkoittaa osan aikaisemmin
saadusta painoarvon muutoksesta lisäämistä nykyiseen painoarvon muutokseen. Tämän an-
siosta jokaisessa ulottuvuudessa, jossa painoarvoa muutetaan samaan suuntaan päivitysten
välillä, muutosnopeus kiihtyy. Lisäksi niissä ulottuvuuksissa, joissa painoarvoa muutetaan
vastakkaisiin suuntiin päivitysten välillä, muutosnopeus hidastuu. (Ruder 2016).
5.3 Konvoluutioneuroverkot
Konvoluutioneuroverkot ovat eräs neuroverkkotyyppi, joka sopii ruudukkomaisen datan kä-
sittelyyn. Konvoluutioneuroverkot käyttävät konvoluutio-nimistä matemaattista operaatiota
vähintään yhdessä kerroksessaan matriisien kertolaskun sijaan (Goodfellow, Bengio ja Cour-
ville 2016, 326). Intuition antamiseksi mistä konvoluutiossa on kyse, eräs (ei ainoa) käyttö-
tarkoitus konvoluutiolle on painotettu keskiarvo häiriöllisessä datassa (Goodfellow, Bengio
ja Courville 2016, 327).
Loppu alaluvusta perustuu Goodfellow’n, Bengion ja Courvillen kirjan (2016) sivuun 327.
Konvoluutio on matemaattinen operaatio kahden funktion f ja g välillä, mikä tuottaa uuden
funktion s. Sen määritelmälle on jatkuvien funktioiden versio, mutta neuroverkkojen yhtey-
dessä olemme kiinnostuneita tilanteesta, jossa f ja g ovat määriteltyjä kokonaisluvuille:
s(t) =∞
∑a=−∞
f (a)g(t −a). (5.3)
Konvoluutiota merkitään yleensä merkillä ∗. Äskeisessä määritelmässä olisi voinut merkitä
siis:
s(t) = ( f ∗g)(t). (5.4)
Koneoppimisessa usein halutaan käyttää konvoluutiota useammassa ulottuvuudessa saman-
aikaisesti. Esimerkiksi kaksiulotteiselle kuvalle f voitaisiin käyttää kaksiulotteista ydintä
16
(kuten jälkimmäistä funktiota kutsutaan neuroverkkojen kontekstissa) g seuraavasti:
S(i, j) = ( f ∗g)(i, j) = ∑m
∑n
f (m,n)g(i−m, j−n). (5.5)
Usein tosin neuroverkoissa käytetään hyvin läheistä funktiota nimeltään ristikorrelaatio:
S(i, j) = (g∗ f )(i, j) = ∑m
∑n
f (i+m, j+n)g(m,n). (5.6)
Etuna konvoluution käyttöön on, että ytimen g ei tarvitse olla koko syötteen f kokoinen.
Tämä usein mahdollistaa huomattavan paljon paremman tehokkuuden ja se vie vähemmän
muistia. Vaikka ydin onkin konvoluutioneuroverkossa pienempi kuin tavallisessa neurover-
kossa, voidaan useammalla konvoluutiotasolla syvemmät tasot saada epäsuorasti yhteyksiin
koko tai lähes koko syötteeseen. Lisäksi konvoluutiolla voidaan löytää samanlaisia piirteitä
mistä tahansa kohtaa syötettä. Esimerkiksi reunoja tunnistettaessa kuvasta samaa ydintä voi
hyvinkin uudelleenkäyttää löytämään reuna muualtakin kohtaa kuvasta kuin yhdestä tietystä
paikasta. (Goodfellow, Bengio ja Courville 2016, 327).
17
6 AlphaGo Zeron toiminta
AlphaGo Zero oppii pelaamalla itseään vastaan aloittaen ”puhtaalta pöydältä” ilman ihmis-
ten antamaa ohjausta. AlphaGosta poiketen se käyttää pelkästään yhtä neuroverkkoa, joka
antaa ulostuloinaan sekä todennäköisyydet valita kukin mahdollinen siirto tutkittavaksi et-
tä arvion voiton todennäköisyydelle kyseisestä tilanteesta. Samoin kuin AlphaGossa, myös
AlphaGo Zerossa on käytössä eräs variantti Monte Carlo -puuhausta auttamassa löytämään
parempia siirtoja kuin ilman sitä se samassa ajassa pystyisi. (Silver, Schrittwieser ym. 2017).
AlphaGo Zeron neuroverkko saa syötteenään 17 kappaletta 19x19 kuvia, joista 8 kertoo ny-
kyisen pelaajan kivien paikat yhteensä kahdeksassa viime laudan tilanteessa, 8 kertoo vastus-
tajan kivien paikat kahdeksassa viime laudan tilanteessa ja yksi kertoo mikä pelaaja on nyt
vuorossa. (Silver, Schrittwieser ym. 2017). Historiatiedot ovat välttämättömiä, koska muuten
voitaisiin joutua samaan pelitilanteeseen kuin joskus aikaisemmin on ollut mikä on kiellettyä
gon säännöissä (Davies 1992).
AlphaGo Zeroa opetetaan laittamalla se pelaamaan itseään. Painoarvot ovat AlphaGo Ze-
ron neuroverkolla aluksi satunnaisesti valittu. (Silver, Schrittwieser ym. 2017). Seuraavaksi
ajetaan Silver ym. (2017) mukaan jatkuvasti ja samanaikaisesti kolmea prosessia:
• Yksinpelaaminen: Paras AlphaGo Zero -pelaaja αθ∗ pelaa itseään vastaan muodostaen
dataa
• Optimoijaprosessi: Neuroverkon parametreja optimoidaan tällä datalla
• Arvioijaprosessi: AlphaGo Zeron pelaajia αθ i arvioidaan ja saatetaan valita uudeksi
αθ∗:ksi
Nämä prosessit voidaan jakaa hieman tarkemmin seuraaviin vaiheisiin (Silver, Schrittwieser
ym. 2017):
• Yksinpelaaminen: Se pelaaja αθ∗, jonka arvioijaprosessi on valinnut parhaaksi, pelaa
25000 peliä itseään vastaan luvussa 6.2 kuvattua puuhakua hyödyntäen
1. Juurisolmusta lähtevien kaarien tutkimisen todennäköisyyksiin lisätään Dirichlet-
kohinaa
18
2. Jokaisen siirron valitsemiseen käytetään 1600 puuhaun toistokertaa. 30 ensim-
mäisen siirron ajan lämpötilaparametrina τ käytetään 1:tä ja lopun aikaa se on
äärimmäisen pieni.
3. Selvästi hävityssä pelissä luovutetaan. Tässä selvästi hävitty peli tarkoittaa alle
5 % voittotodennäköisyyttä, jota mitataan pelaamalla 10 % peleistä loppuun asti
ilman luovutusta
4. Tiedot pelin jokaisesta vuorosta t talletetaan muodossa (st ,πt ,zt), jossa s on peli-
laudan tilanne, π on vektori puuhaun antamista todennäköisyyksistä valita kukin
mahdollinen siirto tutkittavaksi ja z on pelin voittaja vuorossa olevan pelaajan
näkökulmasta katsottuna arvolla -1 tai +1.
• Optimoijaprosessi: Neuroverkon parametreja optimoidaan yksinpelaamisen tuottamal-
la datalla
1. 500000 viimeisimmästä pelistä valitaan satunnaisista peleistä yhteensä 2048 sa-
tunnaista pelitilannetta minisatsiksi
2. Neuroverkon parametrit optimoidaan minisatsi-gradienttimenetelmällä, jossa hyö-
Opetettaessa AlphaGo Zeroa se pelaa jatkuvasti itseään vastaan. Vuoroa merkittäessä t:llä pelilaudan tilanne
on st . Jokaisella vuorolla ajetaan useita puuhakuja, jotka neuroverkon avulla lopulta antavat eri
siirtovaihtoehtojen todennäköisyydet voittaa π minkä avulla tehdään aina seuraava siirto. Lopulta saadaan
voittaja z. Neuroverkolle annetaan jokaiselta vuorolta tiedot (st ,πt ,zt), ja se pyrkii muuttamaan sisäisiä
parametrejaan vastaamaan näitä tarkempia arvioita siirtojen hyvyydestä πt ja lopullisesta voittajasta zt . Luvan
kanssa lähteestä (Silver, Schrittwieser ym. 2017).
Kuvio 5. AlphaGo Zeron pelaaminen itseään vastaan
19
dynnetään oppimisnopeuden ja momentin jäähdytystä. Optimoinnissa virhe neu-
roverkon odottaman voittajan v ja yksinpelaamisesta saadun voittajan z välillä
minimoidaan, ja neuroverkon siirtojen todennäköisyyksien p ja puuhaun anta-
mien todennäköisyyksien π yhtäläisyys maksimoidaan.
3. Tuhannen toiston välein vaiheita 1 ja 2 luodaan uusi tarkastuspiste, jota arvioi
arvioijaprosessi. Tämä saatetaan valita uudeksi αθ∗:ksi, jonka avulla pelejä luo-
daan minisatseihin.
• Arvioijaprosessi: Optimoijaprosessin luomaa tarkastuspistettä verrataan nykyiseen par-
haaseen pelaajaan αθ∗.
1. Arviointi on 400 peliä pitkä. Jokaisen siirron valitsemiseen käytetään 1600 puu-
haun toistokertaa. Lämpötilaparametri τ on äärimmäisen pieni.
2. Jos uusi ehdokas parhaaksi pelaajaksi voittaa enemmän kuin 55 % peleistä, se va-
litaan uudeksi parhaaksi pelaajaksi αθ∗ ja sitä käytetään jatkossa itseään vastaan
pelaamisessa sekä vertailukohtana uusissa tarkastuspisteiden arvioinneissa
6.1 AlphaGo Zeron neuroverkko
AlphaGo Zeron neuroverkko on arkkitehtuuriltaan residuaalinen neuroverkko (Silver, Schrittwie-
ser ym. 2017). Residuaaliset neuroverkot tekevät helpommaksi neuroverkoille oppia käytän-
nössä ohittamaan sellaiset kerrokset, joista ei olisi mitään hyötyä ongelman ratkaisemisessa.
Residuaaliset neuroverkot koostuvat ryhmistä ”tavallisia” kerroksia sekä tavasta ohittaa ryh-
miä esimerkiksi summaamalla yhteen ryhmän saaman syötteen ja mitä ryhmä antaisi ulos-
tulonaan normaalisti. Jos ryhmän ulostulo olisi normaalisti lähellä nollaa, lopputulema koko
operaatiosta olisi lähellä sitä mitä ryhmä sai syötteenään, ihan kuin mitään ei olisi tapahtunut.
(He ym. 2016).
Tarkemmin ottaen Silver ym. (2017) mukaan AlphaGo Zeron neuroverkko ensin tekee seu-
raavat operaatiot syötteilleen:
1. Konvoluutio ytimen koolla 3x3
2. Eränormalisaatio (batch normalization). Tämä tarkoittaa parametrien normalisointia
keskiarvolle nolla ja varianssille yksi (Ruder 2016).
20
3. Tasasuuntaus (rectifier nonlinearity). Tämä funktio palauttaa nollaa negatiivisilla syöt-
teillä, ja Maas ym. argumentoivat sen vähentävän esimerkiksi sigmoidi-aktivaatiofunktiolla
tapahtuvaa häviävän gradientin ongelmaa, jossa neuroverkon alemmilla kerroksilla
oleva loiva gradientti aiheuttaa hidasta konvergoitumista (Maas, Hannun ja Ng 2013).
Residuaaliryhmät, joita on joko 19 tai 39 riippuen siitä oliko kyseessä 20 tai 40 ryhmän
versio AlphaGo Zerosta, koostuvat seuraavista operaatioista:
1. Konvoluutio ytimen koolla 3x3
2. Eränormalisaatio
3. Tasasuuntaus
4. Konvoluutio ytimen koolla 3x3
5. Eränormalisaatio
6. Summaus saadusta tuloksesta sekä siitä mitä ryhmä sai alun perin syötteenään
7. Tasasuuntaus
Näiden residuaaliryhmien läpikäynnin jälkeen ulostulo annetaan kahdelle ulostulo”päälle”.
Ensimmäinen eli toimintalinjapää koostuu seuraavista operaatioista:
1. Konvoluutio ytimen koolla 1x1
2. Eränormalisaatio
3. Tasasuuntaus
4. Kerros, joka antaa ulostulona vektorin kooltaan 192 + 1, jossa on logit-operaatiolla
muutetut todennäköisyydet siirroille ja passaukselle. Logit-operaatio on log p1−p , jossa
p on todennäköisyys.
Toinen ulostulopää on nimeltään arvottamispää ja se koostuu seuraavista operaatioista:
1. Konvoluutio ytimen koolla 1x1
2. Eränormalisaatio
3. Tasasuuntaus
4. Lineaarinen kerros
5. Tasasuuntaus
6. Lineaarinen kerros, jolla muutetaan ulostulo yhdeksi luvuksi
21
7. Tanh-operaatio, joka palauttaa arvon väliltä [-1, 1]
6.2 AlphaGo Zeron puuhaku
AlphaGo Zeron Monte Carlo -puuhaussa puun jokainen solmu sisältää kaaret kaikille siitä
lähteville laillisille siirroille. Näihin kaariin (s,a) on talletettuna Silverin (2017) mukaan:
N(s,a) Käyntikerrat
W (s,a) Kaikkien käsiteltyjen lapsisolmujen todennäköisyydet voittaa laskettuina yhteen
Q(s,a) Keskimääräinen todennäköisyys voittaa
P(s,a) Aikaisemmin saatu todennäköisyys tämän kaaren valitsemiselle käsiteltäväksi
Käytetty Monte Carlo -puuhaun muunnelma toimii kuvion 6 mukaisesti seuraavissa vaiheis-
sa (vertaa lukuun 4) (Silver, Schrittwieser ym. 2017):
1. Valinta: Aloittaen juurisolmusta ja päättyen lehtisolmuun, algoritmi valitsee mihin sol-
muun mennään etsimällä mikä kaari saa suurimman arvon laskemalla yhteen sen kes-
kimääräisen todenäköisyyden voittaa Q ja luottamusrajan U , joka riippuu aikaisem-
masta todennäköisyydestä kaaren valitsemiselle P, käyntikertojen määrästä N sekä
vakiosta, joka määrää miten paljon suositaan uusien solmujen tutkimista hyväksi jo
löydettyjen sijaan.
2. Laajennus ja arviointi: Valittu lehtisolmu lisätään jonoon neuroverkon arvioitavaksi.
Kun arviointi on valmis, lehtisolmu laajennetaan ja sen kaaret alustetaan. Ensimmäi-
nen neuroverkon ulostuloista eli vektori todennäköisyyksistä valita solmu käsiteltäväk-
Kuvio 6. AlphaGo Zeron käyttämän puuhaun vaiheet
Luvan kanssa lähteestä (Silver, Schrittwieser ym. 2017).
22
si, tallennetaan vastaavien kaarien P-attribuutteihin. Toinen neuroverkon ulostuloista,
v, otetaan talteen. v on arvio todennäköisyydestä senhetkiselle pelaajalle voittaa kysei-
sestä tilanteesta.
3. Vastavirta: Solmuja mennään takaisinpäin tehden seuraavat muutokset niihin: solmu-
jen käyntikertoja N(st ,at) kasvatetaan yhdellä, W (st ,at) =W (st ,at)+ v ja Q(st ,at) =W (st ,at)N(st ,at)
.
4. Pelaaminen: Edeltäviä vaiheita toistetaan kunnes puuhaku on valmis. Sen jälkeen Alp-
haGo Zero valitsee siirron tehtäväksi juurisolmusta sen perusteella miten monta kertaa
solmussa on käyty ja muuttaen tätä lämpötilaparametrin τ perusteella. Olemassaolevaa
puuta hyödynnetään jatkossa muuttamalla juurisolmu uuden siirron mukaiseksi. Toi-
nen vaihtoehto toiminnalle tässä vaiheessa on, että AlphaGo Zero päättää luovuttaa.
23
7 Yhteenveto
AlphaGo Zero oli suuri saavutus tekoälytutkimuksessa, sillä se ei pelkästään ollut ylivertai-
nen go-tekoälynä, vaan se myös aloitti oppimisensa puhtaalta pöydältä. Tässä tutkielmassa
olen käynyt läpi siinä hyödynnettyjä tekniikoita ja lopulta kerroin miten nämä palaset sopivat
yhteen muodostaen AlphaGo Zeron.
Silver ym. (2017) tuovat esille erityisesti kaksi muutosta neuroverkon arkkitehtuurissa ver-
rattuna siihen versioon AlphaGosta, joka pelasi Lee Sedolia vastaan:
• Neuroverkkojen yhdistäminen yhdeksi, jolla on kaksi ulostulopäätä
• Residuaalisen neuroverkon käyttäminen konvoluutioneuroverkon sijaan
Näiden suorituskykyjä verrattiin opettamalla AlphaGo Zeroa 72 tuntia jokaisella neljällä
mahdollisella yhdistelmällä näitä arkkitehtuureita. Tästä Silver ym. (2017) tekivät johtopää-
tökset, että kumpikin arkkitehtuurin muutos antoi noin 600 lisää Elo-lukua. Toinen heidän te-
kemänsä huomio oli, että residuaalinen neuroverkko antoi parempia ennusteita ammattimais-
ten ihmispelaajien siirroista kuin konvoluutioneuroverkko. (Silver, Schrittwieser ym. 2017).
Myöskin tapaa opettaa AlphaGo Zeroa vahvistusoppimisella verrattiin ohjattuun oppimiseen
72 tunnin opetuksella. Kävi ilmi, että vaikka ohjatulla oppimisella opetettu versio pystyi en-
nustamaan ammattimaisten ihmispelaajien siirtoja paremmin, vahvistusoppinut tekoäly saa-
vutti paremman Elo-luvun. (Silver, Schrittwieser ym. 2017).
Sekä AlphaGo että AlphaGo Zero hyödyntävät yhdistelmää Monte Carlo -puuhausta ja sy-
vistä neuroverkoista (Silver ym. 2016; Silver, Schrittwieser ym. 2017). Yhtä syviä neuro-
verkkoja ei oltu ennen käytetty go-tekoälyissä (Silver ym. 2016), mutta erityisesti noiden
yhdistelmä vaikuttaisi olevan merkittävä tekijä AlphaGon, ja oletettavasti siksi myös Alp-
haGo Zeron, menestykseen verrattuna aiempiin go-tekoälyihin. Silver ym. (2016) nimittäin
tutkivat AlphaGon toimintaa myös erilaisilla simulaatiovaiheilla Monte Carlo -puuhaussa
(Silver ym. 2016).
Kyseisessä testissä arvottamisneuroverkolla tehty simulaatio oli jatkuvasti parempi ennusta-
maan ammattilaisten siirtoja kuin 100 satunnaista siirtoa, sekä jatkuvasti parempi kuin 100
24
siirtoa heidän myös kehittämäänsä nopean simulaation menettelyä käyttäen. He mainitsevat
myös vahvistusopetetulla toimintalinjaneuroverkolla tehdyn simulaation tarvitsevan 15000
kertaa vähemmän laskentaa kuin Monte Carlo -simulaation (Silver ym. 2016).
Seuraavaksi annan joitain esimerkkejä muista tekoälyistä, joissa on yhdistetty Monte Carlo
-puuhaku ja neuroverkot. Tämä havainnollistaa mielestäni sitä, että tämä tekniikka toimii ja
ei sovellu pelkästään go-tekoälyihin tai hyvin samankaltaisiin käyttötarkoituksiin. Myönnän
toki, että tarkka toteutus voi näissä olla erilainen kuin AlphaGossa ja AlphaGo Zerossa.
Segler ym. (2018) ovat tehneet tekoälyn retrosynteesiin, joka tarkoittaa molekyylien rekursii-
vista muuntamista yksinkertaisemmiksi. Yhdistelmällä MCTS:ää ja neuroverkkoja se antaa
ratkaisut lähes kaksi kertaa suurempaan määrään molekyylejä ja 30 kertaa nopeammin kuin
perinteinen tietokoneavusteinen menetelmä. (Segler, Preuss ja Waller 2018).
Paxton ym. (2017) tutkivat tehtävien ja liikkeen suunnittelua. He käyttävät Monte Carlo -
puuhaussaan tavallisesta poikkeavaa luottamusrajaa, joka hyödyntää neuroverkkoa. (Paxton
ym. 2017). Swiechowski ym. (2018) käyttävät arvottamisverkkoa lopettamaan simulaation
Monte Carlo -puuhaussa ennenaikaisesti tekoälyssään Hearthstone-peliin. Hearthstone sisäl-
tää epätäydellistä informaatiota ja satunnaisuutta. (Swiechowski, Tajmajer ja Janusz 2018).
Wang ym. (2019) kehittämä tekoäly suunnittelee neuroverkkojen rakenteita käyttäen siihen
yhdistelmää Monte Carlo -puuhakua ja neuroverkkoa (Wang ym. 2019).
AlphaGo Zeron algoritmien yleisluonteisuudesta kertoo se vielä, että kyseisestä tekoälys-
tä on luotu yleistetty versio, AlphaZero. AlphaZero on yksittäinen ohjelma, joka on voit-
tanut 100 pelin ottelut parhaita shakki-, go- ja shogi -spesifisiä tekoälyjä vastaan. Ennen
AlphaZeron opettamista kuhunkin peliin se tunsi pelkästään niiden säännöt. (Silver, Hubert
ym. 2017).
25
Lähteet
Aggarwal, Charu C. 2018. Neural networks and deep learning. Springer. https://doi.
org/10.1007/978-3-319-94463-0.
American Go Association. 2018. The Rules of Go. Saatavilla WWW-muodossa, http:
//www.usgo.org/rules-go, viitattu 16.2.2018.
Bottou, Léon. 2012. ”Stochastic gradient descent tricks”. Teoksessa Neural networks: Tricks
of the trade, 421–436. Springer. https://link-springer-com.ezproxy.jyu.
fi/chapter/10.1007/978-3-642-35289-8_25.
Bouzy, Bruno, ja Tristan Cazenave. 2001. ”Computer Go: an AI oriented survey”. Artificial
Intelligence 132 (1): 39–103. https://www-sciencedirect-com.ezproxy.
jyu.fi/science/article/pii/S0004370201001278.
Browne, Cameron B., Edward Powley, Daniel Whitehouse, Simon M. Lucas, Peter I. Cow-
ling, Philipp Rohlfshagen, Stephen Tavener, Diego Perez, Spyridon Samothrakis ja Simon
Colton. 2012. ”A survey of monte carlo tree search methods”. IEEE Transactions on Com-
putational Intelligence and AI in games 4 (1): 1–49. https://ieeexplore-ieee-
org.ezproxy.jyu.fi/abstract/document/6145622/.
Chaslot, Guillaume, Sander Bakkes, Istvan Szita ja Pieter Spronck. 2008. Monte-Carlo Tree
Search: A New Framework for Game AI. [kielellä eng]. https://jyu.finna.fi/
PrimoRecord/pci.narcisuvt:oai:tilburguniversity.edu:publicati
ons%2Fa91efacf-818a-4007-a1dd-f43b80903b8a.
Davies, D. 1992. ”The Go Player’s Almanac”. Luku The Rules of Go, toimittanut Richard
Bozulich. Extracted, adapted, and edited by Fred Hansen. Ishi Press. https://www.cs.
cmu.edu/~wjh/go/rules/Chinese.html.
Gelly, Sylvain, Levente Kocsis, Marc Schoenauer, Michele Sebag, David Silver, Csaba Sze-
pesvári ja Olivier Teytaud. 2012. ”The grand challenge of computer Go: Monte Carlo tree
search and extensions”. Communications of the ACM 55 (3): 106–113. https://dl.
acm.org/citation.cfm?id=2093574.
26
Goodfellow, Ian, Yoshua Bengio ja Aaron Courville. 2016. Deep Learning. http://www.
deeplearningbook.org. MIT Press.
Graupe, kirjoittaja, Daniel. 2013. Principles of artificial neural networks. 3rd edition. 363.
Advanced series on circuits and systems. Hackensack New Jersey: World Scientific. http:
//search.ebscohost.com/login.aspx?direct=true&scope=site&db=
nlebk&AN=622050.
Haykin, Simon. 1999. Neural networks : a comprehensive foundation. 2nd ed. Upper Saddle
River (NJ): Prentice Hall.
He, Kaiming, Xiangyu Zhang, Shaoqing Ren ja Jian Sun. 2016. ”Deep residual learning for
image recognition”. Teoksessa Proceedings of the IEEE conference on computer vision and
pattern recognition, 770–778. https://ieeexplore-ieee-org.ezproxy.jyu.
fi/stamp/stamp.jsp?arnumber=7780459.
Kaelbling, Leslie Pack, Michael L Littman ja Andrew W Moore. 1996. ”Reinforcement lear-
ning: A survey”. Journal of artificial intelligence research 4:237–285. https://www.
jair.org/index.php/jair/article/view/10166.
Korea Baduk Association. 2016. Uutinen Lee Sedolin ja AlphaGon välisestä ottelusta. Saa-
tavilla WWW-muodossa, http://www.baduk.or.kr/news/report_view.asp?
news_no=1671, viitattu 16.2.2018.
Kumpulainen, Samu. 2017. AlphaGo ja Monte Carlo -puuhaku [kielellä fin]. http://
urn.fi/URN:NBN:fi:jyu-201705182415.
LeCun, Yann, Yoshua Bengio ja Geoffrey Hinton. 2015. ”Deep learning”. Nature 521 (7553):
436–444. https://www.nature.com/articles/nature14539.
Maas, Andrew L, Awni Y Hannun ja Andrew Y Ng. 2013. ”Rectifier nonlinearities improve
neural network acoustic models”. Teoksessa Proc. icml, 30:3. 1. http://robotics.st
anford.edu.ezproxy.jyu.fi/~amaas/papers/relu_hybrid_icml2013_
final.pdf.
27
Paxton, Chris, Vasumathi Raman, Gregory D Hager ja Marin Kobilarov. 2017. ”Combi-
ning neural networks and tree search for task and motion planning in challenging envi-
ronments”. Teoksessa 2017 IEEE/RSJ International Conference on Intelligent Robots and
Systems (IROS), 6059–6066. IEEE. https://ieeexplore-ieee-org.ezproxy.
jyu.fi/document/8206505.
Public Domain Pictures. Finished Go Game. Saatavilla WWW-muodossa, https://www.
publicdomainpictures.net/en/view-image.php?image=163474&pictu
re=finished-go-game, viitattu 24.3.2019.
Ruder, Sebastian. 2016. ”An overview of gradient descent optimization algorithms”. arXiv
preprint arXiv:1609.04747v2. https://arxiv.org/pdf/1609.04747.pdf.
Russell, Stuart J, ja Peter Norvig. 2010. Artificial intelligence: a modern approach. Third
edition. Pearson Education, Inc.
Schmidhuber, Jürgen. 2015. ”Deep learning in neural networks: An overview”. Neural Networks
61:85–117. http://dx.doi.org/10.1016/j.neunet.2014.09.003.
Segler, Marwin HS, Mike Preuss ja Mark P Waller. 2018. ”Planning chemical syntheses
with deep neural networks and symbolic AI”. Nature 555 (7698): 604. https://www-
nature-com.ezproxy.jyu.fi/articles/nature25978.
Silver, David, Aja Huang, Chris J. Maddison, Arthur Guez, Laurent Sifre, George Van Den
Driessche, Julian Schrittwieser, Ioannis Antonoglou, Veda Panneershelvam ja Marc Lanctot.
2016. ”Mastering the game of Go with deep neural networks and tree search”. Nature 529
(7587): 484–489. https://www-nature-com.ezproxy.jyu.fi/articles/
nature16961.
Silver, David, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Art-
hur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel ym. 2017. ”Mas-
tering chess and shogi by self-play with a general reinforcement learning algorithm”. arXiv
preprint arXiv:1712.01815v1. https://arxiv.org/pdf/1712.01815.pdf.
28
Silver, David, Julian Schrittwieser, Karen Simonyan, Ioannis Antonoglou, Aja Huang, Art-
hur Guez, Thomas Hubert, Lucas Baker, Matthew Lai ja Adrian Bolton. 2017. ”Mastering
the game of go without human knowledge”. Nature 550 (7676): 354–359. https://www.
nature.com/articles/nature24270.
Sutton, Richard S., ja Andrew G. Barto. 2018. Reinforcement learning: An introduction.
Second edition. MIT press. http://incompleteideas.net/book/RLbook2018.
pdf.
Swiechowski, Maciej, Tomasz Tajmajer ja Andrzej Janusz. 2018. ”Improving Hearthsto-
ne AI by Combining MCTS and Supervised Learning Algorithms”. Teoksessa 2018 IEEE
Conference on Computational Intelligence and Games (CIG), 1–8. IEEE. https : / /
ieeexplore-ieee-org.ezproxy.jyu.fi/stamp/stamp.jsp?arnumber=
8490368.
TeXample.net. Example: Neural network. Saatavilla WWW-muodossa, http://www.
texample.net/tikz/examples/neural-network/, viitattu 24.3.2019.
Tieteen termipankki. 2019. Nimitys:recurrent neural network. Saatavilla WWW-muodossa,
https://www.tieteentermipankki.fi/wiki/Nimitys:recurrentneura
lnetwork, viitattu 25.2.2019.
Turing, Alan M. 1950. ”Computing machinery and intelligence”. Mind 59:433–460. http
s://link-springer-com.ezproxy.jyu.fi/chapter/10.1007/978-1-
4020-6710-5_3.
Wang, Linnan, Yiyang Zhao, Yuu Jinnai, Yuandong Tian ja Rodrigo Fonseca. 2019. ”Alphax:
exploring neural architectures with deep neural networks and monte carlo tree search”. arXiv
preprint arXiv:1903.11059v1. https://arxiv.org/pdf/1903.11059.pdf.
29