Kognitiivinen mallintaminen Neuraalimallinnus 24.11. Nelli Salminen nelli.salminen@tkk.fi
Tällä kerralla ohjelmassa 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ö 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.
Kohta 4. voisi olla myös tällainen 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
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 output- solu 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
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)
Kilpaileva oppiminen 0. w = satunnaislukuja 1. y = Σ i w i * x i 2. winner = neuroni jolla suurin y 3. dw = ε * (x-w), mutta vain voittajaneuronin painokertoimille, jatketaan kohdasta 1.
Demo: kilpaileva oppiminen 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 yhdeksän outputsolua, syötteinä ainoastaan nollia ja ykkösiä, kuvassa painokertoimet kaksi solua pääsee oppimaan, toinen nollista ja toinen ykkösistä
Demo: kilpaileva oppiminen yhdeksän outputsolua, syötteinä ainoastaan kakkosia ja kaseja ainoastaan yksi solu oppii, kakkonen ja kasi ovat samankaltaisia joten sama solu voittaa molempien kohdalla
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
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 wi* xi 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.
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
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
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
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)
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