Syväoppiminen

Syväoppiminen () on joukko tekoälymenetelmiä, joissa hyödynnetään usean kerroksen neuroverkkoja. ==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== Ensimmäisen kokeelliset neuroverkot kehitettiin 1950-luvulla, jolloin käytettiin yhtä kerrosta neuroneja. Kiinnostus lopahti kun todettiin yksinkertaisten verkkojen rajallisuus. 1970- ja 1980-luvuilla Geoffrey Hinton tutki neuroverkkoja. Hinton julkaisi vuonna 1986 David Rumelhartin ja Ronald Williamsin kanssa merkittävän artikkelin backpropagation-tekniikasta. Neuroverkkojen kehitys laantui 1980- ja 1990-luvuilla saatujen menestysaskelien jälkeen. Princetonin yliopistossa professori Fei-Fei Li työskenteli kuvatunnistusmenetelmän parissa, jossa 14 miljoonaa kuvaa oli luokiteltu 22 tuhanteen kategoriaan. Tätä kutsuttiin ImageNetiksi ja Li jatkoi sen kehitystä siirryttyään Stanfordiin vuonna 2009. ImageNet sai huomiota, kun Toronton yliopistosta Geoffrey Hintonin ryhmä koulutti neuroverkon ImageNetin tietojoukolla ja saavutti merkittävästi paremman suorituskyvyn kuvien tunnistamisessa. Tämä oli ensimmäinen Lin järjestämään kilpailuun osallistunut syvä neuroverkko. Moderneissa neuroverkoissa voi olla tuhansista miljardeihin neuronia. Vuonna 1998 Yann LeCun kirjoitti neuroverkosta, jossa oli seitsemän kerrosta ja 60 000 koulutettavaa parametria. Vuonna 2012 esitellyssä AlexNetissä oli kahdeksan kerrosta, mutta 60 miljoonaa parametria. Tuolloin yhdistyivät neuroverkot, jättimäiset datajoukot sekä grafiikkaprosessorilla suoritettu laskenta, jolloin voitiin käsitellä paljon suurempia tietojoukkoja. ==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 () 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 () syväoppimisen -malli () yrittää automaattisesti luokitella syötettä, ilman että sitä ohjataan millään tavalla. Ohjaamatonta oppimista ovat muun muassa sellaiset autoenkooderit, jotka muuttavat vastaanottamansa syötteen matalampiuloitteiseen muotoon, ja yrittävät muokata sen takaisin alkuperäiseksi syötteeksi. Osittain ohjatussa oppimisessa () osa näytteistä on luokiteltuja ja osa ei. Tämä voi tarkoittaa esimerkiksi sitä, että osaa verkosta esiharjoitetaan ohjaamattomasti, ja sitten tätä neuroverkkoa käytetään osana ohjattua arkkitehtuuria. Vahvistusoppimisessa () 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. Yksi syväoppimisen eduista on kuvantunnistus. Syväoppimisessa ei tarvita 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. Niinpä kissat voidaan nykyisin tunnistaa kuvista jo 90 prosentin tarkkuudella. Syväoppiminen myös paranee mitä enemmän ja parempaa dataa järjestelmälle annetaan. Digitaalisessa signaalinkäsittelyssä syväoppimista voidaan yhdistää digitaalisen signaaliprosessorin kanssa kohinan vaimennukseen, jolloin puhe tulee selkeämmin esiin. Eräs 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 potilaan 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.Tegmark 2017, s. 83–88. 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ä. Niinpä 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ä paikkaansa. 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 vaikkapa robottiauton kykyä tunnistaa edessään olevia kohteita. Myös puheen ja tekstin tunnistamisessa neuroverkkomallit ovat rajoittuneita, sillä niissä 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. ==Lähteet== * ===Viitteet=== ==Kirjallisuutta== * ==Aiheesta muualla== * Luokka:Koneoppiminen * 30 amazing applications of deep learning Yaron Hadad, 16.3.2017