Vahvisteoppimista

10.05.2019

Vahvisteoppimista

Reinforcement learning – mistä tässä on oikein kysymys?

Taustaa

Ottaen huomioon koneoppimisen ja tekoälyn hyökyaaltomaisen vyörymisen mediaan, työpaikoille, tuotteisiin ja yhteiskuntaan, monille saattaa tulla yllätyksenä että koneoppimisen nykymenetelmät ovat itse asiassa aika vanhaa perua. Neuroverkot, joihin suuri osa “tekoäly”-sovelluksista nykyään perustuu, keksittiin jo 50-luvulla1. Neuroverkkojen todellinen potentiaali on kuitenkin saatu valjastettua vasta tällä vuosikymmenellä. Tämän ovat mahdollistaneet ennen kaikkea järjestelmällinen datan kerääminen (datan määrä ei ole enää este) sekä pilvipalvelut, jotka tarjoavat käytännössä rajattomat laskentaresurssit tarpeen mukaan (jos kukkaro kestää). Datan ja laskennan saatavuus muillekin kuin suuryrityksille ja valtiollisille toimijoille on niin sanotusti demokratisoinut tekoälyn ja koneoppimisen kehityksen.

Neuroverkkoja, puumalleja ym. koneoppimisalgoritmeja käytetään suurelta osin ns. ohjattuun oppimiseen, minkä tavoitteena on muodostaa malli, joka ennustaa mielenkiinnon kohteena olevaa ilmiötä (esim. sairauden todennäköisyyttä, asiakaspoistumaa, projektien kustannuksia, tilauskannan kokoa tai tuotteiden hintoja). Bisneskontekstissa uusin tulokas koneoppimisen saralla on niin kutsuttu Reinforcement Learning, vapaasti suomennettuna vahvisteoppiminen. Vahvisteoppiminen poikkeaa “perinteisestä” koneoppimisesta siten, että tavoitteena on löytää yrityksen ja erehdyksen kautta optimaalinen toimintastrategia (policy) määritellyssä toimintaympäristössä.


Tekoälyagentin ja toimintaympäristön välinen vuorovaikutus. Kullakin hetkellä (t) Agentti “saa” ympäristön määrittämän tilan (esim. koordinaatit). Agentti tekee toimintastrategiansa mukaisen toimenpiteen (esim. siirtyy johonkin suuntaan), perustuen odotettavissa olevaan palkintoon. Toimenpiteen jälkeen Agentin tila muuttuu ja Agentti saa ympäristön määrittämän palkinnon tälle tilalle.


Laitoin tuossa yllä perinteinen-sanan lainausmerkkeihin ihan tarkoituksella. Vahvisteoppimisen historia ulottuu nimittäin yhtä kauas kuin neuroverkkojen2. Miksi tästä sitten puhutaan isommin vasta nyt? Samasta syystä kuin tekoälystä yleensä; laskentateho ei enää ole rajoittava tekijä. Tästä huolimatta vahvisteoppimisen käytännön soveltaminen on toistaiseksi ollut vähäistä, mille on löydettävissä useitakin eri syitä.

Haasteet

Vahvisteoppimisen yhtenä etuna on usein mainittu se, että siinä missä monimutkaisten neuroverkkojen opettamiseen saatetaan tarvita miljoonia havaintoja, vahvisteoppimiseen ei välttämättä tarvita lainkaan historiadataa (eli havaintoja jostakin asiasta ja siihen liittyvistä tekijöistä). Tämä ei kuitenkaan tarkoita, etteikö vahvisteoppiminen tarvitsisi ollenkaan dataa — päinvastoin. Koska vahvisteoppimisessa tekoälyagentti oppii tekemiensä ratkaisujen seuraukset yrityksen ja erehdyksen kautta, täytyy agentin voida kerätä kokemusta, eli dataa. Mitä enemmän agentti harjoittelee, sen taitavammaksi se tulee (ainakin teoriassa). Ihmisen sanotaan tarvitsevan ainakin 10 000 tuntia harjoitusta tullakseen maailman huipuksi jossain asiassa (perushyvään suoritukseen riittää toki vähempikin). Tekoälyagentti selviää tästä kyllä ajallisesti paljon lyhyemmässä ajassa (esim. Googlen AlphaZero oppi vain neljässä tunnissa päihittämään maailman vahvimman shakkiohjelman), mutta vain jos harjoituskertoja on mahdollista simuloida lukuisia määriä. Ei siis ole ihme, että vahvisteoppimisen kehitystä on opeteltu erilaisten pelien avulla.

Tekoälyagenttien opettamisen haastavuus ei ole ainut hidaste. Ehkä merkittävämpi haaste liittyy osaamiseen. Koneoppimisen soveltaminen on edelleen enimmälti data-analyytikkojen heiniä. Siinä missä koneoppimisalgoritmien hyödyntäminen ei periaatteessa vaadi kummoisia ohjelmointitaitoja (tai ainakin tarvittava osaaminen on hyvin spesifiä laajemmassa kontekstissa), vahvisteoppiminen on hyvin ohjelmointi-intensiivistä. Vaikka agentin oppiminen, joka toki on keskeisessä asemassa, perustuu koneoppimisalgoritmeihin (esim. syviin neuroverkkoihin), tämä ei alkuunkaan riitä. Agentti itsessään, sen toimintalogiikka, toimintaympäristö ominaisuuksineen ja agentin palkitsemismalli pitää yleensä ohjelmoida alusta alkaen. Vain harvalla datatieteilijällä on kykyä tähän, joten käytännössä toimivan ratkaisun kehittäminen vaatii osaavaa tiimiä, jossa analyytikkojen lisäksi on myös ohjelmistokehittäjiä.

Leikitään hetki ajatuksella, että käytettävissä olisi huipputiimi ja Googlen laskentaresurssit. Sitten varmaan syntyisi vahvisteoppimista hyödyntäviä ratkaisuja liukuhihnalta? Ehkä, mutta luulenpa, että näin ei kuitenkaan tapahtuisi. Tämä johtuu siitä, että vahvisteoppiminen ei ole sellainen vasara, jolla voi iskeä jokaista vastaantulevaa naulaa; se ei sovellu läheskään kaikkiin ongelmiin. Kuten mainitsin yllä, vahvisteoppimisen tavoitteena on löytää optimaalinen strategia. Käynkin seuraavaksi läpi tunnistettuja sovelluksia.

Käyttökohteita

Pelaaminen tulikin jo mainittua. Kuuluisampana esimerkkinä tästä on Go-pelin herruus, kun vuonna 2016 Googlen DeepMind-yksikön AlphaGo-ohjelma voitti Go:n moninkertaisen maailmanmestarin Lee Sedolin3. Puhtaalla laskennalla tähän ei päästy, sillä Go:n mahdollisten siirtojen määrä ylittää universumissa olevien atomien lukumäärän, vaan oleellista oli agentin kyky toimia luovasti eri pelitilanteissa. Vaikkei pelailusta itsestään synny kovin kummoisia bisneshyötyjä, on opittu se, että niihin bisnesongelmiin, jotka on käännettävissä peleiksi, vahvisteoppiminen soveltuu kaikkein parhaiten.

Hyvä esimerkki tästä peli-lähestymistavan hyödyntämisestä löytyy itse asiassa hämmästyttävän läheltä, Helsinki-Vantaan lentokentältä. Muiden tekoälysovellusten lisäksi Finavia hinnoittelee nykyään parkkipaikkoja dynaamisesti kysynnän perusteella. Optimaalinen strategia tähän dynaamiseen hinnoitteluun on haettu vahvisteoppimista hyödyntäen.

Ottaen huomioon että Google on vahvisteoppimisen edelläkävijä, olisi outoa, jos se ei itse pyrkisi hyödyntämään sitä. Epäilemättä Googlella panostetaan tähän asiaan melkoisesti ja tuloksiakin on saatu. Joo muutama vuosi sitten Google kertoi pystyneensä vähentämään datakeskuksiensa jäähdytyskuluja peräti 40%. Tähän tarvittiin useita neuroverkkomalleja, perustuen kerättyyn sensoridataan, joilla ennustettiin tulevaa energiatehokkuutta, sekä lähituntien ilman painetta ja -lämpötilaa. Olkoon kuinka tarkkoja hyvänsä, tällaiset ennusteet eivät kuitenkaan yksin riitä; tarvitaan vielä toimintaperiaate ja automatiikka, joka käyttää ennusteita järjestelmän säätämiseen. Tätä toimintamallia optimoitaessa vahvisteoppiminen astuu kuvaan.


PUE = Power Usage Effectiveness. © Google


Analyytikon näkökulmasta yksi hienoimpia vahvisteoppimisen sovelluksia on Googlen AutoML4. Monimutkaisten syvien neuroverkkojen parametrien ja topografian optimointi on todella hankalaa ja jo pitkään on yritetty kehittää parempia menetelmiä tähän ns. NAS-ongelmaan (Neural Architecture Search). Yksinkertaisin, mutta hyvin tehoton, tapa on generoida hirveä määrä satunnaisia malleja (joillakin oletuksilla) ja kokeilla mikä tuottaa parhaan tuloksen. Googlen lähestymistavassa optimointihomma ulkoistetaan tekoälyagentille, jota palkitaan parempien mallirakenteiden löytämisestä. Iteratiivisen prosessin tuloksena saadaan parempia malleja, joiden rakenne voi helposti olla ihmiselle täysin epäintuitiivinen.

Varmasti eniten kiinnostusta vahvisteoppimiseen on herännyt finanssimaailmassa. Jo nyt merkittävä osa kaupankäynnistä tapahtuu automaattisesti. Edelleenkin, siinä missä esim. pörssikurssien muutoksia voidaan yrittää ennustaa tilastollisesti/koneoppimisella (se että onko tässä mitään järkeä on toinen juttu), ennustemalli ei kerro mitä missäkin tilanteessa kannattaa sijoituksillaan tehdä. Päätöksen joutuu tekemään joko ihminen, sääntöpohjainen algoritmi (if/else) tai tekoälyagentti. Laukkasen Mikalta olen kuullut, että ei ole kovin helppo homma kouluttaa toimivaa pörssi-agenttia. Tai ainakaan vielä ei ole Mika päivätöitä lopettanut…

Vahvisteoppimista tarvitaan myös autonomisissa kuljettimissa/kulkuneuvoissa. Esimerkiksi itseohjautuva auto (kuten Waymo) havainnoi ympäristöään jatkuvasti lukuisilla eri sensoreilla, joiden keräämää dataa tulkitaan koneoppimismalleilla. Lisäksi tarvitaan tekoälyagentti (tai mahdollisesti useampia agentteja) tekemään päätöksiä ennustemallien antamien ennusteiden perusteella; lisätäänkö nopeutta?, hiljennetäänkö?, jarrutetaanko?, käännytäänkö?. Autonomisen auton kehittäminen on erityisen haastavaa sen takia, että tekoälyagentin toimintaympäristö ei ole suljettu ja tarkasti määritelty; liikenteessä voi tulla vastaan käytännössä mitä vain, mutta epäonnistumisille on todella alhainen toleranssi. Robottikuljettimen opettaminen toimimaan rakennustyömaalla on jo selvästi helpompi homma, koska toimintaympäristö on yleensä rajattu, eivätkä toimintavaatimukset ole läheskään yhtä haastavat kuin autoissa.


Googlen itseohjautuva auto, Waymo. Mountain View, California. © Lasse Ruokolainen


Ehkä mielenkiintoisin viimeaikainen edistysaskel on tehty tekstinkäsittelyn saralla. Itse asiassa jo 2 vuotta sitten, Salesforce kehitti tekoälyagentin, joka kykenee referoimaan tekstiä. Mitä hyötyä tästä sitten voi olla? No, me hukumme informaatioon; oin täysin mahdoton omaksua kaikkea relevanttia kirjoitettua materiaalia, suppeastakaan aiheesta. Luotettava automaattinen dokumenttien referointi olisi omiaan tehostamaan aika monen ihmisen työtä merkittävästi, kun tarve kahlata läpi lukemattomia sähköposteja tai muita dokumentteja alusta loppuun poistuisi. Tämä myös mahdollistaisi helpomman ja jopa automaattisen yhteenvetojen ja synteesien tuottamisen, mistä olisi valtavasti hyötyä mm. tieteessä.

Myös terveydenhuollossa on potentiaalia vahvisteoppimisen hyödyntämiselle. Esimerkiksi lääkeannostuksen optimointia, kuvantamistuloksiin perustuvaa automaattista diagnosointia ja dynaamista hoitosuosittelua on tutkittu. Tähän soveltamisalueeseen liittyy tosin vähän sama ongelma kuin kaupankäyntiin. Simulaatioilla voidaan kouluttaa agetti joka on teoriassa toimiva, mutta siinä missä robottiautoa voidaan vielä kouluttaa todellisessa tilanteessa, ihmishenkiä ja yritysten tulosta ei hevin anneta automatiikan armoille.

Ja käteen jäi?

Vahvisteoppiminen on avain autonomiseen tekoälyyn. Määrittelemällä “pelisäännöt” ja palkitsemismallit, voidaan tekoälyagentti saada toimimaan optimaalisesti halutussa toimintaympäristössä, ennen kaikkea halutuissa toimintaraameissa. Vahvisteoppimisessa on valtavasti potentiaalia, mutta siitä ei välttämättä ole hyötyä joka tilanteessa. Mitä pelimäisempi ongelma, sen helpommin sovellettavissa. Vahvisteoppimismallien koulutus on myös työlästä ja lisäksi ratkaisuiden kehittäminen vaatii aika erityyppistä osaamista kuin mitä data-analyytkoilta tyypillisesti löytyy. Tässä voisi olla mielenkiintoinen paikka yhteistyölle pelitalojen ja analytiikka-/asiakasorgasaatioiden välillä. Tähän mennessä nähdyt sovellukset luovat kyllä kovia odotuksia siitä mitä tuleman pitää.

 


1. A brief history of neural nets and deep learning.
2. History of Reinforcement Learning
3. Google’s DeepMind defeats legendary Go player Lee Se-dol in historic victory39
4. Using Machine Learning to Explore Neural Network Architecture

Jaa
Contact Person

Bloggaaja

Lasse Ruokolainen

Bilot Alumni

Vincit Bilot

Vincit ja Bilot ovat nyt virallisesti yhtä!

Toiminta jatkuu Vincit-nimen alla.

You have Successfully Subscribed!

Vincit Bilot

Vincit ja Bilot ovat nyt virallisesti yhtä!

Toiminta jatkuu Vincit-nimen alla.

You have Successfully Subscribed!