neural network learning rules perceptron hebbian learning
Deze diepgaande tutorial over leerregels voor neurale netwerken legt het Hebbian Learning en Perceptron Learning Algorithm uit met voorbeelden:
In onze vorige tutorial hebben we het gehad over Kunstmatig neuraal netwerk wat een architectuur is van een groot aantal onderling verbonden elementen die neuronen worden genoemd.
Deze neuronen verwerken de ontvangen input om de gewenste output te geven. De knooppunten of neuronen zijn verbonden door ingangen, verbindingsgewichten en activeringsfuncties.
Het belangrijkste kenmerk van een neuraal netwerk is het vermogen om te leren. De neurale netwerken trainen zichzelf met bekende voorbeelden. Als het netwerk eenmaal getraind is, kan het worden gebruikt om de onbekende waarden van het probleem op te lossen.
Lees de complete serie Machine Learning-trainingen door
Het neurale netwerk leert door middel van verschillende leerschema's die worden gecategoriseerd als onder toezicht of niet onder toezicht.
Bij algoritmen voor begeleid leren zijn de streefwaarden bekend bij het netwerk. Het probeert de fout tussen de gewenste output (doel) en de werkelijke output te verminderen voor optimale prestaties. Bij leeralgoritmen zonder toezicht zijn de doelwaarden onbekend en leert het netwerk uit zichzelf door de verborgen patronen in de invoer te identificeren door clusters te vormen, enz.
Een ANN bestaat uit 3 delen, d.w.z. invoer, verborgen laag en uitvoerlaag. Er is een enkele invoerlaag en een uitvoerlaag, terwijl er mogelijk geen verborgen laag of 1 of meer verborgen lagen in het netwerk aanwezig kunnen zijn. Op basis van deze structuur wordt de ANN geclassificeerd in een enkellaags, meerlagig, feed-forward of recurrent netwerk.
Wat je leert:
- Belangrijke ANN-terminologie
- Vergelijking van leerregels voor neurale netwerken
- Gevolgtrekking
Belangrijke ANN-terminologie
Voordat we de verschillende leerregels in ANN classificeren, moeten we eerst enkele belangrijke terminologieën met betrekking tot ANN begrijpen.
# 1) Gewichten: In een ANN is elk neuron via verbindingsverbindingen met de andere neuronen verbonden. Deze schakels dragen een gewicht. Het gewicht heeft informatie over het ingangssignaal naar het neuron. De gewichten en het ingangssignaal worden gebruikt om een uitvoer te krijgen. De gewichten kunnen worden weergegeven in een matrixvorm die ook wel een verbindingsmatrix wordt genoemd.
hoe je een ip gratis kunt ddos
Elk neuron is door middel van verbindingsgewichten verbonden met elk ander neuron van de volgende laag. Als er dus 'n' knooppunten zijn en elk knooppunt heeft 'm' -gewichten, dan is de gewichtsmatrix:
W1 vertegenwoordigt de gewichtsvector vanaf knooppunt 1. W11 vertegenwoordigt de gewichtsvector vanaf de 1stknooppunt van de voorgaande laag naar de 1stknooppunt van de volgende laag. Op dezelfde manier vertegenwoordigt wij de gewichtsvector van het 'ith' verwerkingselement (neuron) naar het 'j-de' verwerkingselement van de volgende laag.
# 2) Vooringenomenheid : De bias wordt aan het netwerk toegevoegd door een invoerelement x (b) = 1 toe te voegen aan de invoervector. De bias heeft ook een gewicht dat wordt aangeduid met w (b).
De bias speelt een belangrijke rol bij het berekenen van de output van het neuron. De bias kan zowel positief als negatief zijn. Een positieve bias verhoogt het netto inputgewicht terwijl de negatieve bias de netto input vermindert.
# 3) Drempel: In de activeringsfunctie wordt een drempelwaarde gebruikt. De netto-input wordt vergeleken met de drempel om de output te krijgen. In NN wordt de activeringsfunctie gedefinieerd op basis van de drempelwaarde en wordt de output berekend.
De drempelwaarde is:
# 4) Leersnelheid : Het wordt aangeduid met alpha?. Het leertempo varieert van 0 tot 1. Het wordt gebruikt voor gewichtsaanpassing tijdens het leerproces van NN.
# 5) Momentumfactor : Het is toegevoegd voor een snellere convergentie van resultaten. De momentumfactor wordt bij het gewicht opgeteld en wordt doorgaans gebruikt in backpropagatienetwerken.
Vergelijking van leerregels voor neurale netwerken
Leermethoden -> | Gradient Afdaling | Hebbian | Competitief | Stochastisch | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
EPOCH 2 | |||||||||||
Type architectuur | |||||||||||
Single Layer Feedforward | ADALINE Hopfield Perceptron | Associatief Geheugen Hopfield | Lineaire Vector Kwantisering | ||||||||
Multilayer Feed Forward | Cascade Correlatie Meerlagig voer Vooruit Radiale bias Functie | Neocognitron | |||||||||
Terugkerend | Terugkerende neurale Netwerk | Bidirectioneel Auto Associatief Geheugen Brain-State-In-a-Box Hopfield | Aangepaste Resonantietheorie | Boltzmann Machine Cauchy Machine |
De classificatie van verschillende leertypes van ANN wordt hieronder weergegeven.
Classificatie van algoritmen voor begeleid leren
- Gradient Afdaling
- Stochastisch
# 1) Gradient Descent Learning
Bij dit type leren vindt de foutreductie plaats met behulp van gewichten en de activeringsfunctie van het netwerk. De activeringsfunctie moet differentieerbaar zijn.
De afstelling van gewichten hangt af van de foutgradiënt E in deze learning. De regel voor backpropagation is een voorbeeld van dit soort leren. De gewichtsaanpassing wordt dus gedefinieerd als
# 2) Stochastisch leren
Bij dit leren worden de gewichten op een probabilistische manier aangepast.
Classificatie van onbewaakte leeralgoritmen
- Hebbian
- Competitief
# 1) Hebbisch leren
Dit leren werd in 1949 door Hebb voorgesteld. Het is gebaseerd op correlatieve aanpassing van gewichten. De paren van invoer- en uitvoerpatronen zijn geassocieerd met een gewichtsmatrix, W.
De transponering van de uitvoer wordt gebruikt voor gewichtsaanpassing.
# 2) Competitief leren
Het is een winnaar die alle strategie neemt. Bij dit type leren, wanneer een invoerpatroon naar het netwerk wordt gestuurd, concurreren alle neuronen in de laag en alleen de winnende neuronen hebben gewichtsaanpassingen.
Mc Culloch-Pitts Neuron
Ook bekend als M-P Neuron, dit is het vroegste neurale netwerk dat werd ontdekt in 1943. In dit model zijn de neuronen verbonden door verbindingsgewichten en wordt de activeringsfunctie gebruikt in binair. De drempel wordt gebruikt om te bepalen of het neuron zal vuren of niet.
De functie van het MP-neuron is:
Hebbian leeralgoritme
Hebb Network werd verklaard door Donald Hebb in 1949. Volgens de regel van Hebb blijken de gewichten evenredig toe te nemen met het product van input en output. Het betekent dat in een Hebb-netwerk, als twee neuronen met elkaar zijn verbonden, de gewichten die aan deze neuronen zijn gekoppeld, kunnen worden verhoogd door veranderingen in de synaptische opening.
Dit netwerk is geschikt voor bipolaire data. De leerregel van Hebbian wordt over het algemeen toegepast op logische poorten.
De gewichten worden bijgewerkt als:
W (nieuw) = w (oud) + x * y
Trainingsalgoritme voor de leerregel van Hebbian
De trainingsstappen van het algoritme zijn als volgt:
- Aanvankelijk worden de gewichten op nul gezet, d.w.z. w = 0 voor alle ingangen i = 1 tot n en n is het totale aantal ingangsneuronen.
- Laten we de output zijn. De activeringsfunctie voor ingangen wordt over het algemeen ingesteld als een identiteitsfunctie.
- De activeringsfunctie voor uitvoer is ook ingesteld op y = t.
- De gewichtsaanpassingen en bias worden aangepast aan:
- De stappen 2 t / m 4 worden herhaald voor elke invoervector en uitvoer.
Voorbeeld van Hebbian Learning Rule
Laten we de logische EN-functie implementeren met bipolaire ingangen met Hebbian Learning
X1 en X2 zijn inputs, b is de bias genomen als 1, de doelwaarde is de output van logische EN operatie over inputs.
Invoer | Invoer | Vooroordeel | Doelwit |
---|---|---|---|
X1 | X2 | b | Y |
1 | 1 | 1 | 1 |
1 | -1 | 1 | -1 |
-1 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 |
# 1) In eerste instantie worden de gewichten op nul gezet en wordt bias ook op nul gezet.
W1 = w2 = b = 0
#twee) De eerste invoervector wordt genomen als [x1 x2 b] = [1 1 1] en de doelwaarde is 1.
De nieuwe gewichten zijn:
# 3) De bovenstaande gewichten zijn de laatste nieuwe gewichten. Wanneer de tweede invoer wordt doorgegeven, worden dit de begingewichten.
# 4) Neem de tweede invoer = [1 -1 1]. Het doel is -1.
# 5) Op dezelfde manier worden de andere inputs en gewichten berekend.
De onderstaande tabel toont alle invoer:
Ingangen | Vooroordeel | Doeluitvoer | Gewichtsveranderingen | Vooringenomenheid verandert | Nieuwe gewichten | ||||
---|---|---|---|---|---|---|---|---|---|
X1 | X2 | b | Y | ? w1 | ? w2 | ? b | W1 | W2 | b |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | -1 | 1 | -1 | -1 | 1 | -1 | 0 | twee | 0 |
-1 | 1 | 1 | -1 | 1 | -1 | -1 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 | 1 | 1 | -1 | twee | twee | -twee |
Hebb Net voor AND-functie
Perceptron-leeralgoritme
Perceptron Networks zijn enkellaagse feed-forward netwerken. Dit worden ook wel Single Perceptron Networks genoemd. De Perceptron bestaat uit een invoerlaag, een verborgen laag en een uitvoerlaag.
De invoerlaag is verbonden met de verborgen laag door middel van gewichten die remmend of opwindend of nul (-1, +1 of 0) kunnen zijn. De gebruikte activeringsfunctie is een binaire stapfunctie voor de invoerlaag en de verborgen laag.
De output is
Y = f (y)
De activeringsfunctie is:
De gewichtsupdate vindt plaats tussen de verborgen laag en de uitvoerlaag om overeen te komen met de doeluitvoer. De fout wordt berekend op basis van de werkelijke output en de gewenste output.
Als de uitvoer overeenkomt met het doel, vindt er geen gewichtsupdate plaats. De gewichten worden aanvankelijk op 0 of 1 ingesteld en achtereenvolgens aangepast tot een optimale oplossing is gevonden.
De gewichten in het netwerk kunnen aanvankelijk op willekeurige waarden worden ingesteld. Het leren van Perceptron zal convergeren naar een gewichtsvector die de juiste output geeft voor alle ingevoerde trainingspatronen en dit leren gebeurt in een eindig aantal stappen.
De Perceptron-regel kan worden gebruikt voor zowel binaire als bipolaire ingangen.
Leerregel voor Perceptron met één uitgang
# 1) Laat er 'n' trainingsinvoervectoren zijn en x (n) en t (n) zijn geassocieerd met de doelwaarden.
#twee) Initialiseer de gewichten en bias. Zet ze op nul voor eenvoudige berekening.
# 3) Laat het leertempo 1 zijn.
# 4) De invoerlaag heeft een identiteitsactiveringsfunctie, dus x (i) = s (i).
# 5) Om de output van het netwerk te berekenen:
# 6) De activeringsfunctie wordt toegepast over de netto-invoer om een uitvoer te verkrijgen.
# 7) Vergelijk nu op basis van de output de gewenste doelwaarde (t) en de daadwerkelijke output.
# 8) Ga door met de iteratie totdat er geen gewichtsverandering is. Stop zodra deze voorwaarde is bereikt.
Leerregel voor Perceptron met meerdere uitgangen
# 1) Laat er 'n' trainingsinvoervectoren zijn en x (n) en t (n) zijn geassocieerd met de doelwaarden.
#twee) Initialiseer de gewichten en bias. Zet ze op nul voor eenvoudige berekening.
# 3) Laat het leertempo 1 zijn.
# 4) De invoerlaag heeft een identiteitsactiveringsfunctie, dus x (i) = s (i).
# 5) Om de uitvoer van elke uitvoervector van j = 1 tot m te berekenen, is de netto invoer:
# 6) De activeringsfunctie wordt toegepast over de netto-invoer om een uitvoer te verkrijgen.
# 7) Vergelijk nu op basis van de output de gewenste doelwaarde (t) en de werkelijke output en voer gewichtsaanpassingen uit.
w is de gewichtsvector van de verbindingskoppelingen tussen ih input en jde outputneuron en t is de doeloutput voor de outputeenheid j.
# 8) Ga door met de iteratie totdat er geen gewichtsverandering is. Stop zodra deze voorwaarde is bereikt.
Voorbeeld van de leerregel van Perceptron
Implementatie van EN-functie met behulp van een Perceptron-netwerk voor bipolaire invoer en uitvoer.
Het invoerpatroon is x1, x2 en bias b. Stel dat de begingewichten 0 zijn en de bias 0. De drempel wordt op nul gesteld en het leertempo is 1.
EN Gate
X1 | X2 | Doelwit |
---|---|---|
1 | 1 | 1 |
1 | -1 | -1 |
-1 | 1 | -1 |
-1 | -1 | -1 |
# 1) X1 = 1, X2 = 1 en doeluitvoer = 1
W1 = w2 = wb = 0 en x1 = x2 = b = 1, t = 1
Netto-invoer = y = b + x1 * w1 + x2 * w2 = 0 + 1 * 0 + 1 * 0 = 0
Omdat de drempelwaarde nul is:
de beste youtube naar mp3-converter online
Vanaf hier krijgen we output = 0. Controleer nu of output (y) = target (t).
y = 0 maar t = 1 wat betekent dat deze niet hetzelfde zijn, daarom vindt er een gewichtsupdate plaats.
De nieuwe gewichten zijn 1, 1 en 1 nadat de eerste invoervector is gepresenteerd.
#twee) 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 output voor input = 1 is 1 van:
Dus nogmaals, target = -1 komt niet overeen met de werkelijke output = 1. Gewichtsupdates vinden plaats.
Nu zijn nieuwe gewichten w1 = 0, w2 = 2 en wb = 0
Evenzo krijgen we, door verder te gaan met de volgende set invoer, de volgende tabel:
Invoer | Vooroordeel | Doelwit | Netto-invoer | Berekende output | Gewichtsveranderingen | Nieuwe gewichten | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
X1 | X2 | b | t | yin | Y | ? w1 | ? w2 | ? b | W1 | W2 | wb |
EPOCH 1 | |||||||||||
1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | -1 | 1 | -1 | 1 | 1 | -1 | 1 | -1 | 0 | twee | 0 |
-1 | 1 | 1 | -1 | twee | 1 | 1 | -1 | -1 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 | -3 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | -1 |
1 | -1 | 1 | -1 | -1 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
-1 | 1 | 1 | -1 | -1 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 | -3 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
De EPOCHS zijn de cyclus van invoerpatronen die aan het systeem worden toegevoerd totdat er geen gewichtsverandering nodig is en de iteratie stopt.
Widrow Hoff-leeralgoritme
Ook gekend als Delta-regel volgt de regel voor gradiëntafname voor lineaire regressie.
Het werkt de verbindingsgewichten bij met het verschil tussen het doel en de outputwaarde. Het is het kleinste-gemiddelde-kwadraat-leeralgoritme dat onder de categorie van het supervised learning-algoritme 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 kwadratenfout te verminderen. MADALINE is een netwerk van meer dan één ADALINE.
Het motief van de deltaleerregel is om de fout tussen de output en de doelvector te minimaliseren.
De gewichten in ADALINE-netwerken worden bijgewerkt door:
Kleinste gemiddelde kwadratische fout = (t- yintwee, ADALINE convergeert wanneer de kleinste gemiddelde kwadratische fout wordt bereikt.
Gevolgtrekking
In deze tutorial hebben we de twee algoritmen besproken, namelijk Hebbian Learning Rule en Perceptron Learning Rule. De Hebbische regel is gebaseerd op de regel dat de gewichtsvector proportioneel toeneemt met het input- en leersignaal, d.w.z. de output. De gewichten worden verhoogd door het product van de input en output bij het oude gewicht op te tellen.
W (nieuw) = w (oud) + x * y
De toepassing van Hebb-regels ligt in problemen met patroonassociatie, classificatie en categorisering.
De leerregel van Perceptron kan worden toegepast op zowel het netwerk met enkele output als op het netwerk van meerdere outputklassen. Het doel van het perceptron-netwerk is om het invoerpatroon in een bepaalde lidklasse te classificeren. De invoerneuronen en het uitvoerneuron zijn verbonden door middel van koppelingen met gewichten.
De gewichten worden aangepast om de werkelijke output af te stemmen op de doelwaarde. Het leertempo wordt ingesteld van 0 tot 1 en bepaalt de schaalbaarheid van gewichten.
De gewichten zijn bijgewerkt volgens:
Afgezien van deze leerregels, leren machine learning-algoritmen via vele andere methoden, d.w.z. supervised, unsupervised, reinforcement. Enkele van de andere veelgebruikte ML-algoritmen zijn Back Propagation, ART, Kohonen Self Organizing Maps, enz.
We hopen dat je genoten hebt van alle tutorials uit deze Machine Learning-serie !!
Bezoek hier voor de exclusieve Machine Learning-serie
Aanbevolen literatuur
- Een complete gids voor kunstmatig neuraal netwerk bij machinaal leren
- Typen machinaal leren: begeleid versus onbewaakt leren
- Datamining versus machine learning versus kunstmatige intelligentie versus diep leren
- Netwerkbeveiligingstests en de beste hulpprogramma's voor netwerkbeveiliging
- 11 populairste softwaretools voor machine learning in 2021
- Zelfstudie voor machine learning: inleiding tot ML en de toepassingen ervan
- 15 beste netwerkscanhulpmiddelen (netwerk- en IP-scanner) van 2021
- Top 30 netwerktesttools (diagnostische hulpprogramma's voor netwerkprestaties)