Neuroverkon oppimissäännöt – Perceptron & Hebbin oppiminen

Tässä neuroverkon oppimissääntöjä käsittelevässä perusteellisessa opetusohjelmassa selitetään Hebbin oppimis- ja Perceptron-oppimisalgoritmi esimerkkien avulla:

Edellisessä opetusohjelmassamme puhuimme keinotekoisesta hermoverkosta, joka on arkkitehtuuri, joka koostuu suuresta määrästä toisiinsa kytkettyjä elementtejä, joita kutsutaan neuroneiksi.

Nämä neuronit käsittelevät vastaanotettua syötettä antaakseen halutun tuotoksen. Solmut eli neuronit ovat yhteydessä toisiinsa syötteiden, yhteyspainojen ja aktivointifunktioiden avulla.

Neuraaliverkon tärkein ominaisuus on sen kyky oppia. Neuroverkot harjoittelevat itseään tunnettujen esimerkkien avulla. Kun verkko on koulutettu, sitä voidaan käyttää ongelman tuntemattomien arvojen ratkaisemiseen.

=> Lue läpi Täydellinen koneoppimisen koulutussarja

Neuraaliverkko oppii erilaisten oppimismenetelmien avulla, jotka luokitellaan valvottuun tai valvomattomaan oppimiseen.

Valvotuissa oppimisalgoritmeissa verkko tuntee tavoitearvot. Se pyrkii pienentämään halutun tuotoksen (tavoite) ja todellisen tuotoksen välistä virhettä optimaalisen suorituskyvyn saavuttamiseksi. Valvomattomissa oppimisalgoritmeissa tavoitearvot eivät ole tiedossa ja verkko oppii itse tunnistamalla syötteessä olevat piilotetut kuviot muodostamalla klustereita jne.

Verkko koostuu kolmesta osasta eli syötteestä, piilotetusta kerroksesta ja lähtökerroksesta. Sisääntulokerros ja ulostulokerros on yksi, kun taas piilokerrosta ei välttämättä ole lainkaan tai verkossa voi olla yksi tai useampi piilokerros. Tämän rakenteen perusteella ANN luokitellaan yksikerroksisiin, monikerroksisiin, feed-forward- tai rekursiivisiin verkkoihin.

Tärkeitä ANN-terminologioita

Ennen kuin luokittelemme ANN:n erilaiset oppimissäännöt, ymmärtäkäämme joitakin ANN:iin liittyviä tärkeitä terminologioita.

#1) Painot: ANN:ssä jokainen neuroni on kytketty toisiin neuroneihin yhteyslinkkien kautta. Näillä yhteyksillä on paino. Paino sisältää tietoa neuronin tulosignaalista. Painoja ja tulosignaalia käytetään ulostulon saamiseksi. Painot voidaan merkitä matriisimuodossa, jota kutsutaan myös yhteysmatriisiksi.

Jokainen neuroni on kytketty jokaiseen seuraavan kerroksen neuroniin yhteyspainojen kautta. Jos siis solmuja on ”n” ja jokaisella solmulla on ”m” painoa, painomatriisi on:

W1 edustaa painovektoria alkaen solmusta 1. W11 edustaa painovektoria edellisen kerroksen 1. solmusta seuraavan kerroksen 1. solmuun. Vastaavasti wij edustaa painovektoria ”i:nnestä” käsittelyelementistä (neuronista) seuraavan kerroksen ”j:nteen” käsittelyelementtiin.

#2) Bias: Bias lisätään verkkoon lisäämällä syöttövektoriin syöttöelementti x (b) = 1. Biasilla on myös paino, jota merkitään w (b).

Biasilla on tärkeä rooli neuronin ulostulon laskennassa. Bias voi olla joko positiivinen tai negatiivinen. Positiivinen bias lisää nettotulon painoa, kun taas negatiivinen bias vähentää nettotuloa.

#3) Kynnysarvo: Aktivointifunktiossa käytetään kynnysarvoa. Verkkotuloa verrataan kynnysarvoon ulostulon saamiseksi. NN:ssä aktivointifunktio määritellään kynnysarvon perusteella ja tuloste lasketaan.

Kynnysarvo on:

#4) Oppimisnopeus: Sitä merkitään alpha ? Oppimisnopeus vaihtelee välillä 0-1. Sitä käytetään painojen säätämiseen NN:n oppimisprosessin aikana.

#5) Momenttikerroin: Se lisätään tulosten nopeampaa lähentymistä varten. Momenttikerroin lisätään painoon ja sitä käytetään yleensä backpropagation-verkoissa.

Comparison Of Neural Network Learning Rules

Learning Methods -> Gradientti laskeutuminen Hebbian kilpailullinen Stokastinen
Arkkitehtuurin tyyppi
||
Single Layer Feedforward ADALINE
Hopfield
Perceptron
Associative
Memory
Hopfield
Linearinen Vector
Quantization
Multilayer Feed Forward Cascade
Correlation
Multilayer Feed
Forward
Radial Bias
Function
Neokognitroni
Rekurrenssi Rekurrenssi Neuraalinen
Verkko
Kaksisuuntainen Automaattinen
Assosiatiivinen
Muisti
Aivojen- State- In-a- Box
Hopfield
Adaptive
Resonanssiteoria
Boltzmann
Machine
Cauchy
Machine

Alhaalla on esitetty ANN:n eri oppimistyyppien luokittelu.

Valvotun oppimisen algoritmien luokittelu

  1. Gradientti laskeutuminen
  2. Stokastinen

#1) Gradientti laskeutuminen oppiminen

Tässä oppimistyypissä virheen pienentäminen tapahtuu verkon painojen ja aktivointifunktion avulla. Aktivointifunktion tulee olla differentioituva.

Painojen säätö riippuu tässä oppimisessa virhegradientista E. Backpropagation-sääntö on esimerkki tämän tyyppisestä oppimisesta. Painojen säätö määritellään siis

#2) Stokastinen oppiminen

Tässä oppimisessa painoja säädetään todennäköisyysperusteisesti.

Valvomattoman oppimisen algoritmien luokittelu

  1. Hebbiläinen
  2. kilpailullinen

#1) Hebbiläinen oppiminen

Tämän oppimisen ehdotti Hebb vuonna 1949. Se perustuu painojen korrelatiiviseen säätämiseen. Tulo- ja lähtökuvapareihin liitetään painomatriisi W.

Painojen säätöä varten otetaan lähtötietojen transpositio.

#2) Kilpailullinen oppiminen

Se on voittaja vie kaiken -strategia. Tämäntyyppisessä oppimisessa, kun verkkoon lähetetään syötekuvio, kaikki kerroksen neuronit kilpailevat keskenään ja vain voittajaneuroneille tehdään painosäätöjä.

Mc Culloch-Pitts -neuroni

Tunnetaan myös nimellä M-P-neuroni, ja se on varhaisin neuroverkko, joka löydettiin vuonna 1943. Tässä mallissa neuronit on kytketty toisiinsa yhteyspainoilla, ja aktivointifunktiota käytetään binäärisenä. Kynnysarvon avulla määritetään, syttyykö neuroni vai ei.

M-P-neuronin toiminta on:

Hebbin oppimisalgoritmi

Hebb-verkon totesi Donald Hebb vuonna 1949. Hebbin säännön mukaan painojen havaitaan kasvavan suhteessa syötteen ja tuotoksen tuloon. Se tarkoittaa, että Hebb-verkossa, jos kaksi neuronia on kytketty toisiinsa, niin näihin neuroneihin liittyviä painoja voidaan kasvattaa synaptisen raon muutoksilla.

Tämä verkko soveltuu bipolaarisille tiedoille. Hebbiläistä oppimissääntöä sovelletaan yleensä logiikkaportteihin.

Painot päivitetään seuraavasti:

W (uusi) = w (vanha) + x*y

Hebbiläisen oppimissäännön harjoittelualgoritmi

Algoritmin harjoitteluvaiheet ovat seuraavat:

  • Aluksi painot asetetaan nollaan, i.eli w =0 kaikille tuloille i =1-n ja n on tuloneuronien kokonaismäärä.
  • Olkoon s ulostulo. Tulojen aktivointifunktio asetetaan yleensä identiteettifunktioksi.
  • Lähdön aktivointifunktio asetetaan myös muotoon y= t.
  • Painojen säätöjä ja harhaa säädetään:
  • Vaiheet 2-4 toistetaan jokaiselle sisääntulovektorille ja lähdölle.

Esimerkki Hebbin oppimissäännöstä

Toteutetaan looginen AND-funktio bipolaarisilla syötteillä käyttäen Hebbin oppimista

X1 ja X2 ovat syötteitä, b on bias, joka otetaan arvoksi 1, tavoitearvo on loogisen AND-operaation ulostulo syötteiden yli.

Syöttö Syöttö Bias Kohde
X1 X2 b y
1 1 1 1 1 1
1 -1 1 -1
-1 1 1 -1
-1 -1 1 -1

#1) Aluksi, painot asetetaan nollaan, ja myös bias asetetaan nollaksi.

W1=w2=b=0

#2) Ensimmäiseksi sisääntulovektoriksi otetaan = ja tavoitearvoksi 1.

Uudet painot ovat:

#3) Edellä mainitut painot ovat lopulliset uudet painot. Kun toinen sisääntulo annetaan, näistä tulee alkuperäiset painot.

#4) Otetaan toinen sisääntulo = . Tavoite on -1.

#5) Vastaavasti lasketaan muut sisääntulot ja painot.

Alla olevassa taulukossa näkyvät kaikki syötteet:

Hebb-verkko AND-funktiolle

Perceptron-oppimisalgoritmi

Perceptron-verkot ovat yksikerroksisia feed-forward-verkkoja. Niitä kutsutaan myös nimellä Single Perceptron Networks. Perceptron koostuu sisääntulokerroksesta, piilokerroksesta ja ulostulokerroksesta.

Sisääntulokerros on kytketty piilokerrokseen painoilla, jotka voivat olla inhiboivia tai eksitatiivisia tai nolla (-1, +1 tai 0). Aktivointifunktiona käytetään binääristä askellusfunktiota syöttökerrokselle ja piilokerrokselle.

Tulos on

Y= f (y)

Aktivointifunktio on:

Painojen päivitys tapahtuu piilokerroksen ja ulostulokerroksen välillä, jotta ne vastaisivat tavoitetulosta. Virhe lasketaan todellisen ulostulon ja halutun ulostulon perusteella.

Jos ulostulo vastaa tavoitetta, painojen päivitystä ei tapahdu. Painot asetetaan aluksi arvoon 0 tai 1 ja niitä säädetään peräkkäin, kunnes optimaalinen ratkaisu on löydetty.

Verkon painot voidaan aluksi asettaa mihin tahansa arvoon. Perceptronin oppiminen konvergoituu painovektoriin, joka antaa oikean ulostulon kaikille syötteille, ja tämä oppiminen tapahtuu äärellisessä määrässä vaiheita.

Perceptronin sääntöä voidaan käyttää sekä binääri- että bipolaarisille syötteille.

Oppimissääntö yhden ulostulon Perceptronille

#1) Olkoon ”n” koulutustulovektoria ja x (n) ja t (n) liittyvät tavoitearvoihin.

#2) Initialisoidaan painot ja bias. Asetetaan ne nollaan laskennan helpottamiseksi.

#3) Olkoon oppimisnopeus 1.

#4) Syöttökerroksella on identtinen aktivointifunktio, joten x (i)= s ( i).

#5) Verkon ulostulon laskeminen:

#6) Aktivointifunktiota sovelletaan verkon sisääntulon päälle ulostulon saamiseksi.

#7) Nyt verrataan ulostulon perusteella haluttua tavoitearvoa (t) ja todellista ulostuloa.

#8) Jatketaan iterointia, kunnes painoa ei muuteta. Lopeta, kun tämä ehto on saavutettu.

Learning Rule for Multiple Output Perceptron

#1) Olkoon ”n” koulutussyöttövektoria ja x (n) ja t (n) liittyvät tavoitearvoihin.

#2) Initialisoi painot ja bias. Asetetaan ne nollaan laskennan helpottamiseksi.

#3) Olkoon oppimisnopeus 1.

#4) Syöttökerroksessa on identtinen aktivointifunktio, joten x (i)= s ( i).

#5) Lasketaan jokaisen lähtövektorin ulostulon j= 1 – m verkon sisääntulo:

#6) Aktivointifunktiota sovelletaan verkon sisääntulon päälle ulostulon saamiseksi.

#7) Verrataan nyt ulostulon perusteella haluttua tavoitearvoa (t) ja todellista ulostuloa ja tehdään painojen säätöjä.

w on i:nnen sisääntulon ja j:nnen ulostuloneuronin välisten kytkentälinkkien painovektori ja t on ulostuloyksikön j tavoiteltu ulostulo.

#8) Jatketaan iteraatiota, kunnes painoa ei muuteta. Lopeta, kun tämä ehto on saavutettu.

Esimerkki Perceptron-oppimissäännöstä

AND-funktion toteuttaminen käyttäen Perceptron-verkkoa bipolaarisille sisääntuloille ja ulostuloille.

Sisääntulokuvio on x1, x2 ja bias b. Olkoon alkupainot 0 ja bias 0. Kynnysarvo asetetaan nollaan ja oppimisnopeus on 1.

AND-portti

.

X1 X2 Target
1 1 1
1 -1 -1
-1 1 -1
-1 -1 -1

#1) X1=1 , X2= 1 ja tavoitetuotos = 1
W1=w2=wb=0 ja x1=x2=b=1, t=1
Nettotulo= y =b + x1*w1+x2*w2 = 0+1*0 +1*0 =0

Koska kynnysarvo on nolla siis:

Täältä saamme, ulostulo = 0. Tarkistetaan nyt, onko ulostulo (y) = tavoite (t).

y = 0, mutta t= 1, mikä tarkoittaa, että nämä eivät ole samat, joten painojen päivitys tapahtuu.

Uudet painot ovat 1, 1 ja 1 sen jälkeen, kun ensimmäinen syöttövektori on esitetty.

#2) X1= 1 X2= -1 , b= 1 ja tavoite = -1, W1=1 ,W2=2, Wb=1
Nettotulos= y =b + x1*w1+x2*w2 = 1+1*1 + (-1)*1 =1
Nettotulos syötteelle= 1 on 1 alkaen:

Sen vuoksi tavoite = -1 ei taaskaan täsmää todellisen tuloksen =1 kanssa. Painojen päivitykset tapahtuvat.

Nyt uudet painot ovat w1 = 0 w2 =2 ja wb =0

Jatkamalla seuraavalla syötesarjalla saamme vastaavasti seuraavan taulukon:

EPOCHS on systeemille syötettyjen syötekuvioiden sykli, kunnes painojen muutosta ei enää tarvita ja iteraatio pysähtyy.

Widrow Hoff -oppimisalgoritmi

Tunnetaan myös nimellä Delta-sääntö, ja se noudattaa lineaarisen regression gradienttilaskusääntöä.

Se päivittää kytkentäpainot tavoite- ja lähtöarvon välisellä erotuksella. Se on pienimmän neliösumman oppimisalgoritmi, joka kuuluu valvottujen oppimisalgoritmien luokkaan.

Tätä sääntöä noudattavat ADALINE (Adaptive Linear Neural Networks) ja MADALINE. Toisin kuin Perceptron, Adaline-verkkojen iteraatiot eivät pysähdy, vaan se konvergoituu pienentämällä pienintä keskimääräistä neliövirhettä. MADALINE on verkko, joka koostuu useammasta kuin yhdestä ADALINEsta.

Delta-oppimissäännön motiivina on minimoida ulostulon ja tavoitevektorin välinen virhe.

Adaline-verkkojen painot päivitetään seuraavasti:

Vähin keskimääräinen neliövirhe = (t- yin)2, ADALINE konvergoituu, kun pienin keskimääräinen neliövirhe on saavutettu.

Loppupäätelmä

Tässä opetusohjelmassa olemme käsitelleet kahta algoritmia eli Hebbiläistä oppimissääntöä (Hebbian Learning Rule) ja Perceptron-oppimissääntöä. Hebbiläinen sääntö perustuu sääntöön, jonka mukaan painovektori kasvaa suhteessa syötteeseen ja oppimissignaaliin eli ulostuloon. Painoja kasvatetaan lisäämällä tulon ja lähdön tulo vanhaan painoon.

W (uusi) = w (vanha) +x*y

Hebbin sääntöjen sovellus piilee kuvioassosiaatio-, luokittelu- ja kategorisointiongelmissa.

Perceptronin oppimissääntöä voidaan soveltaa sekä yhden lähdön että usean lähdön luokkien verkkoon. Perceptron-verkon tavoitteena on luokitella syötekuvio tiettyyn jäsenluokkaan. Tuloneuronit ja lähtöneuroni ovat yhteydessä toisiinsa linkkien kautta, joilla on painot.

Painoja säädetään siten, että todellinen ulostulo vastaa tavoitearvoa. Oppimisnopeus asetetaan 0:sta 1:een, ja se määrittää painojen skaalautuvuuden.

Painot päivitetään seuraavasti:

Tämän oppimissäännön lisäksi koneoppimisalgoritmit oppivat monilla muillakin menetelmillä eli valvotusti, valvomattomasti ja vahvistamalla. Joitakin muita yleisiä ML-algoritmeja ovat Back Propagation, ART, Kohonen Self Organizing Maps, jne.

Toivomme, että nautit kaikista tämän koneoppimissarjan opetusohjelmista!!!

=> Visit Here For The Exclusive Machine Learning Series

Vastaa

Sähköpostiosoitettasi ei julkaista.