neuroverkot ja alphago zero - jyx.jyu.fi

33
Mikko Merikivi Neuroverkot ja AlphaGo Zero Tietotekniikan kandidaatintutkielma 2. toukokuuta 2019 Jyväskylän yliopisto Informaatioteknologian tiedekunta

Upload: others

Post on 02-Nov-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

Mikko Merikivi

Neuroverkot ja AlphaGo Zero

Tietotekniikan kandidaatintutkielma

2. toukokuuta 2019

Jyväskylän yliopisto

Informaatioteknologian tiedekunta

Page 2: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 3: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 4: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 5: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 6: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 7: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 8: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 9: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 10: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 11: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 12: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

(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

Page 13: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 14: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 15: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 16: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 17: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 18: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 19: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 20: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 21: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

(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

Page 22: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 23: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 24: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 25: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 26: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 27: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 28: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 29: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 30: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 31: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 32: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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

Page 33: Neuroverkot ja AlphaGo Zero - jyx.jyu.fi

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