Leerregels voor neurale netwerken – Perceptron & Hebbian Learning

In deze diepgaande tutorial over leerregels voor neurale netwerken worden Hebbian Learning en Perceptron Learning Algorithm met voorbeelden uitgelegd:

In onze vorige tutorial hebben we gesproken over een kunstmatig neuraal netwerk dat een architectuur is van een groot aantal met elkaar verbonden elementen die neuronen worden genoemd.

Deze neuronen verwerken de ontvangen input om de gewenste output te geven. De knooppunten of neuronen zijn met elkaar verbonden door ingangen, verbindingsgewichten en activeringsfuncties.

Het belangrijkste kenmerk van een neuraal netwerk is zijn vermogen om te leren. De neurale netwerken trainen zichzelf met bekende voorbeelden. Zodra het netwerk wordt getraind, kan het worden gebruikt voor het oplossen van de onbekende waarden van het probleem.

=> Lees door de volledige Machine Learning Training Series

Het neurale netwerk leert door middel van verschillende leerschema’s die worden gecategoriseerd als begeleid of onbegeleid leren.

In begeleid leren algoritmen, de doelwaarden bekend zijn bij het netwerk. Het probeert de fout tussen de gewenste output (doel) en de werkelijke output te verminderen voor optimale prestaties. In unsupervised learning algoritmen zijn de doelwaarden onbekend en leert het netwerk zelf door de verborgen patronen in de input te identificeren door clusters te vormen, enz.

Een ANN bestaat uit 3 delen, nl. input-, verborgen laag-, en outputlaag. Er is een enkele inputlaag en outputlaag terwijl er geen verborgen laag of 1 of meer verborgen lagen in het netwerk aanwezig kunnen zijn. Gebaseerd op deze structuur wordt ANN geclassificeerd in een enkelvoudige laag, meerlagige, feed-forward, of recurrente netwerken.

Belangrijke ANN Terminologie

Voordat we de verschillende leerregels in ANN classificeren, laten we enkele belangrijke terminologieën met betrekking tot ANN begrijpen.

#1) Gewichten: In een ANN, is elk neuron verbonden met de andere neuronen door verbindingslinks. Deze links dragen een gewicht. Het gewicht heeft informatie over het ingangssignaal naar het neuron. De gewichten en het ingangssignaal worden gebruikt om een uitgangssignaal te verkrijgen. De gewichten kunnen worden weergegeven in een matrixvorm die ook wel Verbindingsmatrix wordt genoemd.

Elk neuron is via verbindingsgewichten verbonden met elk ander neuron van de volgende laag. Als er dus “n” knooppunten zijn en elk knooppunt “m” gewichten heeft, dan zal de gewichtsmatrix als volgt zijn:

W1 vertegenwoordigt de gewichtsvector vanaf knooppunt 1. W11 staat voor de gewichtsvector vanaf de eerste knoop van de voorgaande laag tot de eerste knoop van de volgende laag. Op dezelfde wijze staat wij voor de gewichtsvector van het “i-de” verwerkingselement (neuron) naar het “j-de” verwerkingselement van de volgende laag.

#2) Vooringenomenheid: De vooringenomenheid wordt aan het netwerk toegevoegd door een invoerelement x (b) = 1 aan de invoervector toe te voegen. De bias draagt ook een gewicht, aangeduid met w (b).

De bias speelt een belangrijke rol bij de berekening van de output van het neuron. De bias kan positief of negatief zijn. Een positieve bias verhoogt het netto ingangsgewicht, terwijl de negatieve bias de netto ingang vermindert.

#3) Drempelwaarde: Een drempelwaarde wordt gebruikt in de activeringsfunctie. De netto-input wordt vergeleken met de drempelwaarde om de output te krijgen. In NN wordt de activeringsfunctie gedefinieerd op basis van de drempelwaarde en wordt de uitvoer berekend.

De drempelwaarde is:

#4) Leersnelheid: Het wordt aangeduid met alpha ?. De leersnelheid varieert van 0 tot 1. Het wordt gebruikt voor gewichtsaanpassing tijdens het leerproces van NN.

#5) Momentumfactor: Deze wordt toegevoegd voor een snellere convergentie van de resultaten. De impulsfactor wordt aan het gewicht toegevoegd en wordt over het algemeen gebruikt in backpropagation-netwerken.

Vergelijking van leervoorschriften voor neurale netwerken

Leermethoden -> Gradient Descent Hebbian Competitive Stochastic
Type architectuur
||
Eénlaagse feedforward ADALINE
Hopfield
Perceptron
Associatieve
Memory
Hopfield
Lineaire Vector
Quantization
Multilayer Feed Forward Cascade
Correlatie
Multilayer Feed
Forward
Radial Bias
Functie
Neocognitron
Recurrent Recurrent Neural
Network
Bidirectional Auto
Associative
Memory
Brain- State- In-a- Box
Hopfield
Adaptieve
Resonantietheorie
Boltzmann
Machine
Cauchy
Machine

De classificatie van verschillende leertypes van ANN wordt hieronder weergegeven.

Classification Of Supervised Learning Algorithms

  1. Gradient Descent
  2. Stochastic

#1) Gradient Descent Learning

In dit type leren vindt de foutreductie plaats met behulp van de gewichten en de activeringsfunctie van het netwerk. De activeringsfunctie moet differentieerbaar zijn.

De aanpassing van de gewichten hangt af van de foutgradiënt E in dit leren. De backpropagatieregel is een voorbeeld van dit soort leren. De gewichtsaanpassing is dus gedefinieerd als

#2) Stochastisch leren

In dit leren worden de gewichten op probabilistische wijze aangepast.

Classificatie van niet-onderzochte leeralgoritmen

  1. Hebbian
  2. Competitive

#1) Hebbian Learning

Dit leren werd in 1949 door Hebb voorgesteld. Het is gebaseerd op correlatieve aanpassing van gewichten. De invoer- en uitvoerpatronenparen worden geassocieerd met een gewichtsmatrix, W.

De transpositie van de uitvoer wordt genomen voor de gewichtsaanpassing.

#2) Competitief leren

Het is een “winner takes all”-strategie. Bij dit type leren, wanneer een invoerpatroon naar het netwerk wordt gezonden, concurreren alle neuronen in de laag en alleen de winnende neuronen hebben gewichtsaanpassingen.

Mc Culloch-Pitts Neuron

Ook bekend als M-P Neuron, is dit het vroegste neurale netwerk dat werd ontdekt in 1943. In dit model zijn de neuronen verbonden door verbindingsgewichten, en wordt de activeringsfunctie binair gebruikt. De drempel wordt gebruikt om te bepalen of het neuron zal vuren of niet.

De functie van het M-P neuron is:

Hebbian Learning Algorithm

Hebb Network werd verklaard door Donald Hebb in 1949. Volgens de regel van Hebb blijken de gewichten proportioneel toe te nemen met het product van input en output. Dit betekent dat in een Hebb-netwerk als twee neuronen onderling verbonden zijn, de gewichten van deze neuronen kunnen worden verhoogd door veranderingen in de synaptische kloof.

Dit netwerk is geschikt voor bipolaire gegevens. De Hebbiaanse leerregel wordt in het algemeen toegepast op logische poorten.

De gewichten worden bijgewerkt als:

W (nieuw) = w (oud) + x*y

Training Algoritme Voor Hebbiaanse Leerregel

De trainingsstappen van het algoritme zijn als volgt:

  • In eerste instantie worden de gewichten op nul gezet, d.w.z.d.w.z. w =0 voor alle inputs i =1 tot n en n is het totale aantal inputneuronen.
  • Laat s de output zijn. De activeringsfunctie voor de ingangen wordt in het algemeen ingesteld als een identiteitsfunctie.
  • De activeringsfunctie voor de uitgang wordt eveneens ingesteld op y= t.
  • De gewichtsaanpassingen en de bias worden aangepast aan:
  • De stappen 2 tot en met 4 worden herhaald voor elke ingangsvector en uitgang.

Voorbeeld van Hebbian-leerregel

Laat ons logische AND-functie met bipolaire ingangen implementeren met behulp van Hebbian-leer

X1 en X2 zijn ingangen, b is de bias die op 1 wordt gesteld, de doelwaarde is de output van logische AND-bewerking over ingangen.

Input Bias Target
X1 X2 b y
1 1 1 1
1 -1 1 -1
-1 1 1 -1
-1 -1 1 -1

#1) Initieel, worden de gewichten op nul gezet en wordt de bias ook op nul gezet.

W1=w2=b=0

#2) De eerste ingangsvector wordt genomen als = en de doelwaarde is 1.

De nieuwe gewichten zullen zijn:

#3) De bovenstaande gewichten zijn de uiteindelijke nieuwe gewichten. Wanneer de tweede input wordt doorgegeven, worden dit de oorspronkelijke gewichten.

#4) Neem de tweede input = . Het doel is -1.

#5) Op dezelfde manier worden de andere inputs en gewichten berekend.

De onderstaande tabel toont alle invoer:

Hebb Net voor AND Functie

Perceptron Leeralgoritme

Perceptron Netwerken zijn eenlaags feed-forward netwerken. Ze worden ook wel Single Perceptron Networks genoemd. De Perceptron bestaat uit een inputlaag, een verborgen laag, en een outputlaag.

De inputlaag is met de verborgen laag verbonden door middel van gewichten die remmend of prikkelend of nul (-1, +1 of 0) kunnen zijn. De gebruikte activeringsfunctie is een binaire stapfunctie voor de inputlaag en de verborgen laag.

De output is

Y= f (y)

De activeringsfunctie is:

De gewichtsaanpassing vindt plaats tussen de verborgen laag en de outputlaag om overeen te komen met de beoogde output. De fout wordt berekend op basis van de werkelijke output en de gewenste output.

Als de output overeenkomt met het doel, vindt er geen gewichtsaanpassing plaats. De gewichten worden aanvankelijk op 0 of 1 gezet en achtereenvolgens aangepast tot een optimale oplossing is gevonden.

De gewichten in het netwerk kunnen aanvankelijk op willekeurige waarden worden ingesteld. Het Perceptron leren zal convergeren naar gewichtsvector die correcte output geeft voor alle input trainingspatronen en dit leren gebeurt in een eindig aantal stappen.

De Perceptron regel kan worden gebruikt voor zowel binaire als bipolaire inputs.

Leerregel voor Single Output Perceptron

#1) Stel er zijn “n” training input vectoren en x (n) en t (n) zijn geassocieerd met de doelwaarden.

#2) Initialiseer de gewichten en bias. Stel ze in op nul voor gemakkelijke berekening.

#3) Laat de leersnelheid 1 zijn.

#4) De ingangslaag heeft een identieke activeringsfunctie, dus x (i)= s ( i).

#5) De output van het netwerk berekenen:

#6) De activeringsfunctie wordt toegepast op de input van het netwerk om een output te verkrijgen.

#7) Vergelijk nu op basis van de uitvoer de gewenste doelwaarde (t) met de werkelijke uitvoer.

#8) Ga door met de iteratie totdat er geen gewichtsverandering meer optreedt. Stop zodra deze voorwaarde is bereikt.

Leerregel voor meervoudig uitvoerperceptron

#1) Laat er “n” trainingsingangsvectoren zijn en x (n) en t (n) zijn geassocieerd met de doelwaarden.

#2) Initialiseer de gewichten en de bias. Stel ze in op nul voor eenvoudige berekening.

#3) Laat de leersnelheid 1 zijn.

#4) De ingangslaag heeft een identieke activeringsfunctie, dus x (i)= s ( i).

#5) Om de uitvoer van elke uitgangsvector van j= 1 tot m te berekenen, is de netto-invoer:

#6) De activeringsfunctie wordt toegepast op de netto-invoer om een uitvoer te verkrijgen.

#7) Vergelijk nu op basis van de uitvoer de gewenste doelwaarde (t) met de werkelijke uitvoer en pas het gewicht aan.

w is de gewichtsvector van de verbindingsschakels tussen het i-de ingangs- en j-de uitgangsneuron en t is de doeluitvoer voor de uitgangseenheid j.

#8) Ga door met de iteratie totdat er geen gewichtsverandering meer optreedt. Stop zodra deze voorwaarde is bereikt.

Voorbeeld van de leerregel van het perceptron

Implementatie van de AND-functie met behulp van een perceptronnetwerk voor bipolaire in- en uitvoer.

Het invoerpatroon is x1, x2 en bias b. Stel de begingewichten in op 0 en de bias op 0. De drempelwaarde is ingesteld op nul en de leersnelheid is 1.

AND Gate

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

#1) X1=1 , X2= 1 en doeloutput = 1
W1=w2=wb=0 en x1=x2=b=1, t=1
Net input= y =b + x1*w1+x2*w2 = 0+1*0 +1*0 =0

Als drempelwaarde is nul dus:

Daaruit krijgen we, output = 0. Nu controleren of output (y) = doel (t).

y = 0 maar t= 1 wat betekent dat deze niet hetzelfde zijn, vandaar gewicht updating plaatsvindt.

De nieuwe gewichten zijn 1, 1, en 1 na de eerste input vector is gepresenteerd.

#2) X1= 1 X2= -1 , b= 1 en doel = -1, W1=1 ,W2=2, Wb=1
Netto invoer= y =b + x1*w1+x2*w2 = 1+1*1 + (-1)*1 =1
De netto uitvoer voor invoer= 1 zal 1 zijn vanaf:

Daarom komt doel = -1 weer niet overeen met de werkelijke uitvoer =1. De gewichten worden bijgewerkt.

Nu zijn de nieuwe gewichten w1 = 0 w2 =2 en wb =0

Door op dezelfde manier verder te gaan met de volgende reeks ingangen, krijgen we de volgende tabel:

De EPOCHS zijn de cyclus van invoerpatronen die aan het systeem worden toegevoerd totdat er geen gewichtsverandering meer nodig is en de iteratie stopt.

Widrow Hoff Learning Algorithm

Ook bekend als Delta Rule, het volgt gradient descent regel voor lineaire regressie.

Het werkt de verbinding gewichten met het verschil tussen het doel en de output waarde. Het is het kleinste kwadratisch gemiddelde leeralgoritme dat onder de categorie van de gesuperviseerde leeralgoritmen valt.

Deze regel wordt gevolgd door ADALINE (Adaptive Linear Neural Networks) en MADALINE. In tegenstelling tot Perceptron stoppen de iteraties van Adaline netwerken niet, maar convergeert het door de kleinste gemiddelde kwadratische fout te verminderen. MADALINE is een netwerk van meer dan één ADALINE.

Het motief van de delta-leerregel is het minimaliseren van de fout tussen de uitvoer en de doelvector.

De gewichten in ADALINE-netwerken worden bijgewerkt door:

Last mean square error = (t- yin)2, ADALINE convergeert wanneer de kleinste gemiddelde kwadratische fout is bereikt.

Conclusie

In deze tutorial hebben we de twee algoritmen besproken, te weten Hebbian Learning Rule en Perceptron Learning Rule. De Hebbian regel is gebaseerd op de regel dat de gewichtsvector proportioneel toeneemt met het ingangssignaal en het leersignaal, d.w.z. de uitgang. De gewichten worden verhoogd door het product van de input en output op te tellen bij het oude gewicht.

W (nieuw) = w (oud) +x*y

De toepassing van Hebb regels ligt in patroon associatie, classificatie en categorisatie problemen.

De Perceptron leerregel kan worden toegepast op zowel enkelvoudige output als meervoudige output klassen ‘netwerk. Het doel van het perceptronnetwerk is het invoerpatroon in een bepaalde klasse in te delen. De ingangsneuronen en de uitgangsneuronen zijn met elkaar verbonden via links met gewichten.

De gewichten worden aangepast om de werkelijke output met de doelwaarde in overeenstemming te brengen. De leersnelheid wordt ingesteld van 0 tot 1 en bepaalt de schaalbaarheid van de gewichten.

De gewichten worden bijgewerkt volgens:

Naast deze leerregels leren machine-leer-algoritmen door middel van vele andere methoden, d.w.z. Supervised, Unsupervised, Reinforcement. Enkele van de andere gemeenschappelijke ML-algoritmen zijn Back Propagation, ART, Kohonen Self Organizing Maps, etc.

We hopen dat je genoten hebt van alle tutorials uit deze Machine Learning Series!!

=> Bezoek hier voor de exclusieve Machine Learning Series

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.