Tällä kerralla ohjelmassa Kognitiivinen mallintaminen Neuraalimallinnus 19.2. Nelli Salminen nelli.salminen@helsinki.fi D433 vielä perseptronista ja backpropagationista kilpaileva oppiminen, Kohosen verkko oppimissääntöjen vertailua yleistä tiedonkäsittelystä neuroverkoissa verkkojen toteutuksesta käytännössä Kertausta: Perseptronin oppimissääntö Kohta 4. voisi olla myös tällainen 0. w = satunnaislukuja 1. y = Σ i w i * x i 2. y == haluttu tuloste? 3. jos y == haluttu tuloste, siirrytään kohtaan 1. 4. dw = ε * x, jos x on kohde, dw = -1 * ε * x, jos x ei ole kohde, w(t+1) = w(t)+dw, jatketaan kohdasta 1. alkuperäinen: dw = ε * x, jos x on kohde dw = -1 * ε * x, jos x ei ole kohde toinen vaihtoehto: dw = ε * (x-w), jos x on kohde dw = -1 * ε * (x-w), jos x ei ole kohde kolmas vaihtoehto: dw = ε * (t-y), jossa t on haluttu tuloste ja y saatu tuloste pysytään ensimmäisessä vaihtoehdossa yksinkertaisuuden vuoksi 1
Kertausta: Hebbiläinen/assosiatiivinen oppiminen otetaan yksi solu kerrallaan w on painokerroin Δw on muutos painokertoimessa a on neuronin aktivaatio ε on oppimisnopeus Δw jk = ε * a j * a k eli painokertoimien muutos on suhteessa neuronien aktiviteettiin jos neuroni ei ole aktiivinen painokertoimissa ei tapahdu muutoksia Kertausta: Backpropagation lasketaan virhe output-soluille kuljetetaan virhettä verkossa vastavirtaa kuten aktivaatiota kuljetetaan myötävirtaan Demo: monikerroksinen verkko opetetaan kaksikerroksinen verkko luokittelemaan käsinkirjoitettuja lukuja backpropagation-oppimissäännöllä jokainen input-solu vastaa yhtä pikseliä, jokainen outputsolu yhtä lukua kuvassa jälleen vain osa verkon soluista Demo: monikerroksinen verkko tulkitaan aktiivisin output-solu verkon vastaukseksi lasketaan oikeiden vastausten määrä joukolle syötteitä joita ei käytetty opetuksen aikana 2
Demo: monikerroksinen verkko piilokerros muodostaa inputista edustuksen joka on tehtävän kannalta hyvä joskus on vaikea löytää tulkintaa piilokerroksen edustukselle Verkkojen virheensietokyky piilokerroksen soluja voidaan poistaa ja verkko toimii edelleen kohtuullisen hyvin Kilpaileva oppiminen (competitive learning) yksikerroksinen verkko jossa useita outputneuroneita verkon output-neuronit kilpailevat mahdollisuudesta aktivoitua kun verkkoa opetetaan valitaan voittajaksi yksi tai useampia neuroneita, joiden aktiviteetti on suurin vain voittaja oppii, muiden painokertoimia pienennetään Kilpaileva oppiminen 0. annetaan painokertoimille satunnaiset alkuarvot 1. esitetään syöte 2. valitaan voittaja neuronien joukosta 3. muutetaan voittajan painokertoimia syötteen suuntaan (4. pienennetään muiden neuronien painokertoimia) 3
Kilpaileva oppiminen Demo: kilpaileva oppiminen 0. w = satunnaislukuja 1. y = Σi wi* xi 2. winner = neuroni jolla suurin y 3. dw = ε * (x-w), mutta vain voittajaneuronin painokertoimille, jatketaan kohdasta 1. opetetaan jälleen verkko jossa syöte on pikseleitä kuvista käsinkirjoitettuja numeroita verkolle ainoastaan esitetään kuvat, outputneuronit kilpailevat siitä mikä niistä saa oppia Demo: kilpaileva oppiminen Demo: kilpaileva oppiminen yhdeksän outputsolua, syötteinä ainoastaan nollia ja ykkösiä, kuvassa painokertoimet kaksi solua pääsee oppimaan, toinen nollista ja toinen ykkösistä yhdeksän outputsolua, syötteinä ainoastaan kakkosia ja kaseja ainoastaan yksi solu oppii, kakkonen ja kasi ovat samankaltaisia joten sama solu voittaa molempien kohdalla 4
Kilpaileva oppiminen oppimissääntö on itseorganisoituva, sille ei anneta tietoa virheistä tai halutuista tulosteista löytää syötteissä luonnostaan olevan luokittelun, jos sellaista ei ole itseorganisoituva verkko ei tee mitään järkevää Kilpaileva oppiminen itseorganisoituva oppiminen on hyvin herkkä syötteen rakenteelle jos kaikissa syötteistä on paljon yhteistä voi olla että yksi neuroni voittaa kaikilla syötteillä syötteen normalisointi voi olla ratkaisevaa Kilpaileva oppiminen biologinen realismi neuronien välinen kilpailu voidaan tulkita lateraaliseksi inhibitioksi oppimissääntö on lokaali eli painokertoimen muutos perustuu ainoastaan tietoon niiden neuronien aktiviteetista joiden välisestä yhteydestä on kyse oppiminen on itseorganisoituvaa, ei tarvita ulkopuolisia virhesignaaleja tai oikeita vastauksia kilpaileva oppiminen on siis varsin realistista Itseorganisoituvat kartat kun verkossa vierekkäiset solut aktivoituvat samantyyppisille syötteille sitä kutsutaan usein kartaksi Kohosen verkko on tällainen kartta 5
Kohosen verkon opetus 0. annetaan painokertoimille satunnaiset alkuarvot 1. esitetään syöte 2. valitaan voittaja neuronien joukosta 3. muutetaan voittajan ja sen lähimpien naapureiden painokertoimia syötteen suuntaan (4. pienennetään muiden neuronien painokertoimia) Kohosen verkon opetus 0. w = satunnaislukuja 1. y = Σ i w i * x i 2. winner = neuroni jolla suurin y 3. dw = m * ε * (x-w), m riippuu neuronin etäisyydestä voittajaan, mitä lähempänä sen suurempi m, jatketaan kohdasta 1. Vertaillaan oppimissääntöjä assosiatiivinen oppiminen: dw jk = ε * a j * a k perseptronin oppimissääntö: dw = ε * x, jos x tai dw = -1 * ε * x kilpaileva oppiminen: dw = ε * (x-w) kaikki muuttavat painokertoimia kohti syötettä Ohjattu vai itseohjautuva (supervised or self-organized) assosiatiivinen oppiminen on tähän astisissa tapauksissa ollut ohjattua, verkolle on annettu oikeat tulosteet, samalla säännöllä voidaan opettaa myös itseohjautuvaa perseptronin oppimissääntö ja backpropagation ovat ohjattuja, verkko saa tiedon tekemistään virheistä kilpaileva oppiminen on itseohjautuvaa 6
Vertaillaan oppimissääntöjä mitä tapahtuu eri oppimissäännöillä? Rinnakkaisten ja hajautettujen systeemien yleisiä ominaisuuksia rinnakkaisuus, tiedonkäsittelyä tapahtuu kaikkialla verkossa samanaikaisesti (eli kaikkien solujen aktiviteetti lasketaan samalla kertaa) hajautettu edustus, samaa tietoa edustaa useat eri neuronit, sama neuroni edustaa useita eri tietoja, (esim. kaikki piilokerroksen neuronit osallistuivat kaikkien numeroiden tunnistukseen backpropagation-verkossa) Yleisiä ominaisuuksia: virheensietokyky virheet syötteessä: syöte voi olla kohinaista tai muuten epätäydellistä ja silti se on tunnistettavissa (näin kävi esim. assosiatiivisessa verkossa) virheet verkossa itsessään: yhteyksiä tai neuroneita voi poistaa ja verkko toimii edelleen kohtuullisen hyvin (esim. backpropagation-verkko toimi vaikka soluja poistettiin) suoriutuminen kärsii riippuen virheen koosta, ei yhtäkkistä tai täydellistä epäonnistumista Yleisiä ominaisuuksia: muistista haku verkoista voi hakea informaatiota sisällöllä itsellään, ei tarvita esim. muistiosoitetta (kuten tietokoneessa) tai kohtaa aakkosjärjestyksessä (kuten sanakirjassa tai kirjastossa) content addressable memory tulee esille ensi kerran autoassosiatiivisissa verkoissa 7
Yleisiä ominaisuuksia: ehtojen täyttäminen ristiriitaisissa tilanteissa neuroverkot etsivät kompromissin, eivät esim. epäonnistu totaalisesti tai ole tuottamatta tulostetta tulee myös esiin ensi kerralla Yleisiä ominaisuuksia: muisti ja prosessointi muistia ja prosessointia ei ole erotettu toisistaan, kaikki on painokertoimissa (ja aktivaatiofunktioissa) esimerkkiverkoissa tieto syötteistä tallentui oppimisen yhteydessä painokertoimiin myös prosessointi perustuu painokertoimiin, niiden perusteella lasketaan neuronien aktiviteetti Neuroverkkojen ongelmia neuroverkoissa eri muistot häiritsevät toisiaan, voivat jopa hävittää toisensa ihmisen tiedonkäsittelyssä ei vastaavaa häirintää ole Neuroverkkojen ongelmia neuroverkoissa oppiminen vaatii useita toistoja ihminen voi oppia yhdestä kerrasta 8
Verkon opettaminen käytännössä syötemateriaali jaetaan kahteen osaan: opetus- ja testimateriaaliin opetusmateriaalilla verkko opetetaan testimateriaalilla arvioidaan jälkikäteen opetuksen onnistuneisuutta, opitun on tarkoitus yleistyä, eli verkon olisi tarkoitus toimia myös uusilla syötteillä Verkon opettaminen käytännössä ylioppiminen, verkko oppii opetusmateriaalin hyvin muttei yleisty muihin materiaaleihin, voi tapahtua erityisesti jos opetusmateriaalia on vähän voidaan estää lopettamalla opetus ajoissa tai rajoittamalla neuronien määrää verkossa voidaan välttää testaamalla verkkoa kesken opetuksen testimateriaalilla, opetus lopetetaan kun suoriutuminen ei enää parane testimateriaalille vaikka se opetusmateriaalille vielä paranisi Verkon opettaminen käytännössä opetusnopeus eli learning rate liian suurella nopeudella verkko lähestyy sopivaa tilaa epätasaisesti liian hitaalla nopeudella opetus kestää pitkään Verkon opettaminen käytännössä miten monta kerrosta ja solua? pienempi määrä saattaa joissain tilanteissa olla parempi, pakottaa verkon keskittymään syötteen suuriin linjoihin eikä tallentamaan yksityiskohtia useammalla kuin kolmella kerroksella ei saavuteta enää lisähyötyä (Kolmogorivin teoreema) 9
Verkon opettaminen käytännössä kuinka pitkään jatkaa opetusta? yleensä asetetaan virheelle yläraja, opetus lopetetaan kun tämä raja saavutetaan liian pitkästä opetuksesta voi olla haittaa, yleistyminen voi kärsiä Verkon opettaminen käytännössä syötemateriaalin normalisointi voi auttaa oppimista huomattavasti itseorganisoituvassa oppimisessa Verkon opettaminen käytännössä painokertoimien alkuarvoilla on usein myös merkitystä itseorganisoituvissa verkoissa alkuarvot voivat ratkaisevasti vaikuttaa lopputulokseen ohjatussa oppimisessa sopiva suuruusluokka ja hajonta auttaa nopeaan alkuun oppimisessa 10