Neuroverkot

Neuroverkot ovat informaation käsittelyn, matematiikan tai laskennan malleja, jotka ovat saaneet inspiraationsa aivojen rakenteesta. Neuroverkko on graafi, koostuu neuroneista, joita yhdistävät synapsit. Neuroni saa signaaleja ja laskee niistä painotetun summan, jonka tietyn rajan ylitettyään lähettää eteenpäin. Signaalit ovat neuroverkoissa yksinkertaisesti lukuja. Neuroverkko järjestetään tasoiksi, joiden läpi signaali kulkee. Neuroverkot koulutetaan näyttämällä niille malleja, joilla on syöte ja tulos, ja verkko muodostaa todennäköisyyksin painotetun sisäisen mallin näistä.
Aivotutkijat Warren McCulloch ja Walter Pitts esittivät ensimmäisen ihmisaivojen toimintaa ja matemaattista logiikkaa yhdistelevän laskentamallin vuonna 1943. 

Neuroverkkojen perusajatus perustuu luonnollisiin hermoverkkoihin, mutta tarkkaan luonnollisten hermoverkkojen jäljittelyyn ei nykyisin yleensä pyritä, vaan neuroverkkotekniikoiden kehittäminen perustuu enemmän esimerkiksi tilastotieteeseen ja signaalinkäsittelyn teoriaan.

Siinä kun tavallisissa asiantuntijajärjestelmissä käytetään "jos-niin"-sääntöpareja (esim. jos raidat, niin seepra; jos pitkät korvat, niin aasi), neuroverkkoa opetetaan esimerkkien avulla (nämä ovat eri-ikäisiä seeproja, nämä aaseja). Pyritään siihen, että neuroverkko oppii muuttujien epälineaariset riippuvuussuhteet suoraan havaintoaineistosta (em. esimerkissä neuroverkko oppii tarkastelemaan korvia ja värin kuvioita, ei esim. jalkojen pituutta). Muilta osin neuraalilaskenta muistuttaa tilastotieteessä käytettyjä yleistettyjä lineaarisia malleja (GLM).

Neuroni ja neuroverkon kerrokset 
Neuroverkot koostuvat joukosta (keinotekoisia) neuroneita. Neuronit ovat yksinkertaisia, toisiinsa kytkettyjä tiedonkäsittely-yksiköitä. Keinotekoinen neuroni muistuttaa karkeasti biologista neuronia, ja koostuu seuraavista osista:

 synapseista
 summaajasta
 aktivaatiofunktiosta

Synapsi on kahden neuronin välinen kytkentä, jolle on määritelty kytkentäkohtainen paino. Summaajan tehtävä on laskea kaikilta syötesynapseilta tulleiden signaalien summa. Lopulta neuroni tuottaa tämän summan perusteella aktivaation.

Keinotekoiset neuroverkot järjestetään lähes aina kerroksiksi, joissa on tietty joukko vektoriksi järjestettyjä neuroneja. Niistä lähteviä synapseja, summajia ja aktivaatioita voidaan mallintaa yhdistetyllä funktiolla, joka koostuu lineaarikuvauksesta, vakiotermistä ja aktivaatiofunktiosta. Yhden kerroksen aktivaatio on seuraavan kerrokseen sisään tuleva signaali.

Lineaarikuvaus ja vakiotermi 

Neuronin  summaaja laskee syöttösynapseilta tulleiden signaalien summan

 

jossa  ovat syötesignaaleita ja  on vakiotermi (bias). Tämä esitetään usein matriisimuodossa

 

notaation ja derivaattojen laskennan selkeyttämiseksi.

Aktivaatiofunktio 

Aktivaatiofunktio  laskee summasta  epälineaarisen kuvauksen

 

jossa  on ulostulosignaali. Aktivaatiofunktio lasketaan yleensä jokaiselle kerroksen neuronille erikseen.

Epälineaarisuus mahdollistaa mielivaltaisen funktion approksimoimisen. Epälineaarinen aktivaatiofunktio voi olla esimerkiksi askelfunktio

 

tai logistinen (sigmoidi) funktio

 

Nykyisin yleisin aktivaatiofunktio on ReLU ()

 

muun muassa sen helpon derivoituvuuden vuoksi. Se ei myöskään kärsi häviävien gradienttien ongelmasta toisin kuin sigmoidiset funktiot.

Neuroverkkorakenteet 

Neuroverkkokerroksia yhdistelemällä voidaan rakentaa erilaisia neuroverkkoja. Yleisin neuroverkkorakenne on eteenpäinsyöttävä verkko, jossa kaikki edellisen kerroksen neuronit on kytketty kaikkiin seuraavan kerroksen neuroneihin. Eri tarkoituksiin on kehitetty lisäksi monia erilaisia neuroverkkorakenteita.

 Eteenpäin kytketty yksikerroksinen perseptroniverkko ()
 Eteenpäin kytketty monikerroksinen perseptroniverkko ()
 Takaisinkytketty neuroverkko ()
 Pitkä lyhytkestomuisti ()
 Konvoluutioneuroverkko ()
 Generatiivinen kilpaileva verkosto ()
 Autoenkoodaaja ()

Opetus 
Neuroverkkojen opettamisessa kytkentöjen synaptiset painot optimoidaan siten, että opetusnäytteiden vasteiden ja haluttujen vasteiden ero minimoituu.

Opetusnopeutta voidaan parantaa nolla-keskiarvoistamalla opetusdata ja vähentämällä opetusnäytteen piirteiden keskinäistä riippuvuutta esimerkiksi pääkomponenttianalyysillä.

Hukkafunktio, gradientti ja vastavirta-algoritmi 

Jotta neuroverkkoa voidaan opettaa, sille on määriteltävä hukkafunktio (). Hukkafunktio antaa numeerisen arvon sille, kuinka hyvin neuroverkon ennustukset vastaavat havaittua dataa. Regressiotehtävissä käytetään usein virheiden neliösummaa

 

jossa  on neuroverkon ennuste datapisteen  perusteella, ja luokittelutehtävissä ristientropiaa ()

 

jossa  on datapisteen  oikea luokka.

Kun hukkafunktio on määritelty, käytetään gradienttimenetelmää () sen minimoimiseksi. Siinä virhefunktion gradientti lasketaan painokertoimien suhteen ja siirrytään askel askeleelta vastakkaiseen suuntaan gradienttiin nähden. Askeleen pituus voi olla osa gradientin pituudesta, esimerkiksi 0.02, tai se voidaan määrittää . Usein gradientin laskemiseksi ei käytetä koko datasettiä joka askelmalla, vaan gradientti lasketaan satunnaistetusta alijoukosta dataa ().

Monikerroksisten neuroverkkojen opetuksessa käytetään vastavirta-algoritmia (),  joka nopeuttaa gradientin laskemista. Vastavirta-algoritmi aloittaa gradientin laskemisen verkon viimeisestä kerroksesta. Se laskee gradientin aina yhdelle kerrokselle kerrallaan ja käyttää tätä gradienttia edellisen laskemiseen.

Oppimisparadigmat 

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 matalampiulotteiseen 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.

Neuroverkkojen historiaa
Takaisinkytketyt neuroverkot (RNN) perustuvat David Rumelhartin, Geoffrey Hintonin ja Ronald J. Williamsin julkaisuun Learning representations by back-propagating errors vuodelta 1986.

Hopfieldin verkko (aiemmin assosiatiivinen neuroverkko) on RRN:n erikoistapaus, jonka kehitti John Hopfield vuonna 1982.

Pitkä-lyhytkestomuistiverkon esittelivät Sepp Hochreiter ja Jürgen Schmidhuber 1997.
LSTM-verkot mullistivat puheentunnistuksen. käsialantunnistuksen, konekäännöksen ja kielimallinnuksen vuodesta 2007 eteenpäin.

Google Brain -tutkimusryhmä julkaisi 2017 transformerin, joka on korvannut RNN ja LSTM-mallit. Transformer helpottaa rinnakkaista koulutusta ja on tuottanut malleja kuten OpenAI:n GPT (Generative Pre-trained Transformer), joka on koulutettu laajoilla verkkoaineistoilla.

Katso myös 
 Koneoppiminen
 Tekoäly
 Syväoppiminen
 Itseorganisoituva kartta (SOM)
 Tukivektorikone
 Konnektionismi

Lähteet 

Haykin, Simon (1999). Neural networks - A comprehensive edition. 2.painos. Prentice Hall International. ISBN 0-13-908385-5.

Viitteet

Aiheesta muualla 

Neuroverkot