Syväoppiminen

Periaate

Syväoppiminen perustuu keinotekoisiin hermoihin, jotka muodostavat monikerroksisen neuroverkon. Hermot eli neuronit laskevat numeerisen tuloksen yhdestä tai useammasta numeerisesta, muilta neuroneilta tai syötteestä saadusta hermoärsykkeestä, perustuen sisäiseen painoarvoon.
Syväoppimisen tavoitteena on luoda algoritmien avulla neuroverkko, joka pystyy ratkaisemaan sille annetut ongelmat. Syväoppimista käytetään erityisesti sellaisten ongelmien ratkaisemiseen, joissa perinteisillä menetelmillä tehdyt ratkaisut vaatisivat erittäin monimutkaisia sääntöjä. Syväoppimista käytetään esimerkiksi puheen, kuvien ja tekstien tunnistamiseen tai käsittelyyn.

Historia

Hermoverkot on havaittu 1950-luvulla. Varhaisissa tutkimuksissa tutkittiin sellaisia hermoverkkoja, joissa on vain muutama kerros. Syväoppimisella tarkoitetaan oppimista hermoverkoilla, joissa on useita kerroksia, jopa useita kymmeniä. Viimeaikaisten hermoverkkojen sovellusten pohjalla on kanadalaisen neuroverkkojen kehittäjän Geoffrey Hintonin 1980-luvulla kehittämä useampikerroksisten hermoverkkojen opetukseen käytettävä backpropagation-algoritmi. Hermoverkkojen tutkimus nousi suosioon lokakuussa 2012, kun Hintonin oppilaat voittivat ImageNet-kuvantunnistuskilpailun ennätystuloksella, ja heidän neuroverkkonsa tunnisti kuvia tuplasti tarkemmin kuin toiseksi sijoittunut kilpaileva tekoäly.

Neuroverkkojen oppiminen

Työn alussa neuroverkon rakenne suunnitellaan ja sen painoarvot alustetaan. Alustettava painoarvo voi olla neuroneissa ennalta määritetty muuttumaton arvo tai satunnaislukugeneraattorilla asetettu luku.
Ohjatussa oppimisessa (engl. supervised) neuroverkolle syötetään ennalta luokiteltuja näytteitä. Neuroverkon tuottamien arvojen ja näytteen luokittelun perusteella, neuronien painoarvoja muutetaan siten, että neuroverkko tuottaisi syötteen luokittelun mukaisen tuloksen. 
Ohjaamattomassa oppimisessa (engl. unsupervised) syväoppimisen -malli (engl. deeplearning model) yrittää automaattisesti luokitella syötettä, ilman että sitä ohjataan millään tavalla.
Semi-ohjatussa oppimisessa (engl. semi-supervised) osa näytteistä on luokiteltuja ja osa ei.
Vahvistusoppimisessa (engl. reinforcement) syväoppimisen -malli oppii palautteen perusteella, jota ympäristö antaa suorituksen aikana.

Käytännön sovelluksia

Syväoppiminen on vielä uutta, mutta sen odotetaan tulevan käytännön sovelluksiin. Syväoppimisen avulla joidenkin työtehtävien rutiiniluonteisin osa voidaan hoitaa vähintään puoliautomaattisesti, minkä avulla saavutetaan säästöjä. Syväoppimista hyödynnetään jo erityisesti tehtävissä, joissa täytyy ymmärtää puhetta tai kirjoitettua tekstiä, tai tulkita kuvamateriaalia.
Hyvä esimerkki syväoppimisen eduista on kuvantunnistus. Syväoppimisessa ei tarvitse luoda tunnistamiseen vaadittavaa suurta määrää ohjelmallisia sääntöjä. Neuroverkolle vain syötetään suuri määrä luokiteltuja valokuvia halutusta aihepiiristä, ja järjestelmä säätää neuroverkon toimintaa niin, että tunnistustarkkuus paranee kohti maksimia. Esimerkiksi kissat voidaan nykyisin tunnistaa kuvista jo 90 prosentin tarkkuudella. Syväoppiminen myös paranee mitä enemmän ja parempaa dataa järjestelmälle annetaan.
Toinen syväoppimisen sovellus on esineiden poimiminen, joka on aina ollut vaikea opettaa robotille. Syväoppimisen avulla MIT-yliopisto pystyi parantamaan robotin kykyä poimia esineitä pudottelematta.
Terveydenhuollossa syväoppimista testataan auttamaan lääkäreitä diagnosoimaan sairauksia poitilaan terveystietojen ja testitulosten perusteella.
Internetin keskustelupalstoja on mahdollista moderoida koneoppimisen järjestelmillä, ja chat-järjestelmissä niitä voidaan hyödyntää asiakkaiden tiedusteluihin vastaamisessa.
Google on yksi syväoppimisen soveltamisen edelläkävijöistä. Google aloitti syväoppimisen tutkimisen Google Brain -projektillaan vuonna 2011. Seuraavana vuonna yhtiö ilmoitti rakentaneensa neuroverkon, joka toimi 16 000 tietokoneella ja pystyi tunnistamaan kissoja kuvista sen jälkeen kun sille oli näytetty 10 miljoonaa kuvaa. Vuonna 2014 Google osti brittiläisen syväoppimisstartup-yrityksen nimeltä DeepMind. Google on käyttänyt syväoppimista indeksoimiensa kuvien tehokkaampaan luokitteluun ja parantaakseen siten hakutuloksia. Google on käyttänyt menetelmää myös epätäydellisten kuvien täydentämisessä muiden samankaltaisten kuvien pohjalta. Videopalvelussaan Google pystyy luomaan syväoppimisen avulla automaattisia yhteenvetoja ja turvallisuusvaroituksia. Googlen puheentunnistustekoäly käyttää syviä neuroverkkoja oppiakseen ymmärtämään puhuttuja käskyjä ja kysymyksiä. Google Brainiin on sisällytetty myös Googlen käännöspalvelu, ja koko järjestelmä kirjoitettiin uudelleen ja siirrettiin uuteen syväoppimisympäristöön nimeltä Google Neural Machine Translation. Google käyttää syväoppimista myös YouTube-suositustensa parantamiseen: neuroverkot tutkivat kaiken mahdollisen käyttäjien tavoista ja mieltymyksistä ja opettelevat päättelemään, mikä saisi heidät jatkamaan videoiden katselua. Vuonna 2015 Google muutti syväoppimiseen keskittyvän TensorFlow-ohjelmointialustansa avoimeen lähdekoodiin. Googlen robottiauto Waymo on käyttänyt syväoppimisalgoritmeja. Deep Mind tutkii terveydenhuoltoprojekteja, joissa etsitään keinoja havaita silmävammoja ja syöpäkasvaimia aikaisissa vaiheissa.
DeepMind käytti vuonna 2014 "syvää vahvistusoppimista" opettamaan tekoälylle tietokonepelien pelaamista. Menetelmä yhdisti vahvistusoppimisen syvän neuroverkon harjoittamiseen. Vuonna 2016 DeepMindin AlphaGo-ohjelma löi ensimmäisenä maailman parhaat ihmispelaajat lautapeli gossa. AlphaGo yhdisti tavanomaisen tekoälyn logiikan syväoppimisen tuottamaan intuitiiviseen tehoon, joka on gossa erityisen tärkeää. Tuloksena oli ylivoimainen itseoppinut ohjelma, jonka siirtoja on kuvattu yhtä aikaa vahvoiksi ja erittäin intuitiivisiksi. DeepMindin seuraava ohjelma AlphaZero opetteli vuonna 2017 yhdessä vuorokaudessa syviä neuroverkkoja käyttäen pelaamaan shakkia paremmin kuin maailman vahvimmat shakkiohjelmat. Ohjelman menestys perustui sen ihmismäiseen tapaan valikoida siirrot pelkän raa'an laskemisen sijaan.

Rajoituksia

Syväoppiminen ei kykene oppimaan käsitteitä, vaan ainoastaan käsitteiden ilmentymiä. Esimerkiksi videopeliä pelaamaan oppinut neuroverkko saattaa oppia toimimaan tietyllä tavalla, joka voidaan ilmaista yksinkertaisena sääntönä, mutta tämä sääntö ei neuroverkosta ole käytännössä luettavissa. Tässä mielessä syväoppiminen on varsin pinnallista, ja syväoppimisella saatuja tuloksia on helppo hämätä esimerkiksi muuttamalla syötettä siten, että se vain vähän poikkeaa opetuksessa käytetystä datasta. Oppimisen tuloksiin ei myöskään voi tästä syystä luottaa .
Kuvantunnistuksessa syväoppimisen on uskottu oppivan kuvissa esiintyviä käsitteitä, kuten 'koira' tai 'kissa', mutta neuroverkon herkkyys pienille kuvan muutoksille, joilla koira saadaankin luokiteltua kissaksi, osoittaa, että tämä ei pidä paikkansa. Lisäksi neuroverkon syvyyden lisääminen ei juurikaan auta luokittelun saamiseksi luotettavammaksi .
Syväoppimisen yksi ongelma on se, että tekoäly ei osaa yhdistää asioita kokonaisuuksiin, sillä syväoppimisessa ei ole kokonaisrakennetta, johon tietoja voisi yhdistää. Tästä seuraa vaikeuksia objektien erottamisessa, mikä voi vaikeuttaa esimerkiksi robottiauton kykyä tunnistaa edessään olevia kohteita. Myös puheen ja tekstin tunnistamisessa neuroverkkomallit ovat rajoittuneita, sillä niiden pään sisällä ei ole samanlaista rikasta mallia maailmasta kuin ihmisen päässä. Syväoppiminen vaatii lisäksi ihmisen ohjaamaan oppimista, mikä edellyttää suuren pohjamateriaalin luokittelua.

Kehitys

Syväoppimista pyritään kehittämään yhdistämällä siihen ihmisaivojen toiminnasta opittuja tekniikoita, jotta tekoäly pystyisi oppimaan itsenäisemmin ja hahmottamaan ympärillään olevaa maailmaa. Tavoitteena pitkällä tähtäimellä on luoda yleiskäyttöinen tekoäly, joka pystyy hoitamaan itsenäisesti erilaisia tehtäviä. Tämän on arveltu johtavan siihen, että tekoäly vie jopa 30–50 prosenttia nykyisistä työpaikoista parissakymmenessä vuodessa, mikä saattaa aiheuttaa merkittäviä yhteiskunnallisia ongelmia mutta voi toisaalta lisätä tuottavuutta ja kasvattaa elintasoa.