Lernregeln für neuronale Netze – Perceptron & Hebbian Learning

Dieser ausführliche Lehrgang über Lernregeln für neuronale Netze erklärt den Hebbian Learning und Perceptron Learning Algorithmus mit Beispielen:

In unserem vorherigen Lehrgang haben wir über künstliche neuronale Netze gesprochen, die aus einer großen Anzahl miteinander verbundener Elemente bestehen, die Neuronen genannt werden.

Diese Neuronen verarbeiten die empfangene Eingabe, um die gewünschte Ausgabe zu liefern. Die Knoten oder Neuronen sind durch Eingaben, Verbindungsgewichte und Aktivierungsfunktionen miteinander verbunden.

Das Hauptmerkmal eines neuronalen Netzes ist seine Fähigkeit zu lernen. Die neuronalen Netze trainieren sich selbst mit bekannten Beispielen. Sobald das Netz trainiert ist, kann es für die Lösung der unbekannten Werte des Problems verwendet werden.

=> Lesen Sie die vollständige Schulungsreihe zum maschinellen Lernen

Das neuronale Netz lernt durch verschiedene Lernverfahren, die als überwachtes oder unbeaufsichtigtes Lernen kategorisiert werden.

Bei überwachten Lernalgorithmen sind dem Netz die Zielwerte bekannt. Es versucht, den Fehler zwischen der gewünschten Ausgabe (Ziel) und der tatsächlichen Ausgabe für eine optimale Leistung zu reduzieren. Bei unüberwachten Lernalgorithmen sind die Zielwerte nicht bekannt, und das Netz lernt von selbst, indem es die verborgenen Muster in der Eingabe durch Bildung von Clustern usw. identifiziert.

Ein ANN besteht aus drei Teilen, nämlich der Eingabe-, der verborgenen Schicht und der Ausgabeschicht. Es gibt eine einzige Eingabeschicht und eine einzige Ausgabeschicht, während es keine versteckte Schicht oder eine oder mehrere versteckte Schichten im Netz geben kann. Auf der Grundlage dieser Struktur wird das ANN in einschichtige, mehrschichtige, Feed-Forward- oder rekurrente Netze eingeteilt.

Wichtige ANN-Terminologie

Bevor wir die verschiedenen Lernregeln in ANN klassifizieren, wollen wir einige wichtige Terminologien im Zusammenhang mit ANN verstehen.

#1) Gewichte: In einem ANN ist jedes Neuron mit den anderen Neuronen durch Verbindungsglieder verbunden. Diese Verbindungen tragen ein Gewicht. Das Gewicht enthält Informationen über das Eingangssignal des Neurons. Die Gewichte und das Eingangssignal werden verwendet, um eine Ausgabe zu erhalten. Die Gewichte können in Form einer Matrix dargestellt werden, die auch als Verbindungsmatrix bezeichnet wird.

Jedes Neuron ist mit jedem anderen Neuron der nächsten Schicht über Verbindungsgewichte verbunden. Wenn es also „n“ Knoten gibt und jeder Knoten „m“ Gewichte hat, dann lautet die Gewichtsmatrix:

W1 stellt den Gewichtsvektor ab Knoten 1 dar. W11 stellt den Gewichtsvektor vom 1. Knoten der vorhergehenden Schicht zum 1. Knoten der nächsten Schicht dar. In ähnlicher Weise stellt wij den Gewichtsvektor vom „i-ten“ Verarbeitungselement (Neuron) zum „j-ten“ Verarbeitungselement der nächsten Schicht dar.

#2) Bias: Der Bias wird dem Netz hinzugefügt, indem ein Eingangselement x (b) = 1 zum Eingangsvektor hinzugefügt wird. Der Bias trägt auch ein Gewicht, das mit w (b) bezeichnet wird.

Der Bias spielt eine wichtige Rolle bei der Berechnung der Ausgabe des Neurons. Der Bias kann entweder positiv oder negativ sein. Ein positiver Bias erhöht das Netto-Eingangsgewicht, während der negative Bias den Netto-Eingang reduziert.

#3) Schwellenwert: In der Aktivierungsfunktion wird ein Schwellenwert verwendet. Der Netzeingang wird mit dem Schwellenwert verglichen, um den Ausgang zu erhalten. Im NN wird die Aktivierungsfunktion auf der Grundlage des Schwellenwerts definiert und die Ausgabe wird berechnet.

Der Schwellenwert ist:

#4) Lernrate: Sie wird mit alpha ? bezeichnet. Die Lernrate reicht von 0 bis 1. Sie wird zur Anpassung der Gewichte während des Lernprozesses des NN verwendet.

#5) Momentum Factor: Er wird für eine schnellere Konvergenz der Ergebnisse hinzugefügt. Der Momentum-Faktor wird zum Gewicht addiert und wird im Allgemeinen in Backpropagation-Netzen verwendet.

Vergleich der Lernregeln neuronaler Netze

Lernmethoden -> Gradient Descent Hebbian Kompetitiv Stochastisch
Art der Architektur
||
Einschichtiges Feedforward ADALINE
Hopfield
Perceptron
Assoziativ
Speicher
Hopfield
Linear Vektor
Quantisierung
Multilayer Feed Forward Kaskade
Korrelation
Multilayer Feed
Forward
Radial Bias
Funktion
Neocognitron
Recurrent Recurrent Neural
Network
Bidirektional Auto
Associative
Memory
Brain- State- In-a- Box
Hopfield
Adaptive
Resonanztheorie
Boltzmann
Maschine
Cauchy
Maschine

Die Klassifizierung der verschiedenen Lerntypen von ANN ist unten dargestellt.

Klassifizierung von Algorithmen des überwachten Lernens

  1. Gradient Descent
  2. Stochastisch

#1) Gradient Descent Learning

Bei dieser Art des Lernens erfolgt die Fehlerreduktion mit Hilfe der Gewichte und der Aktivierungsfunktion des Netzes. Die Aktivierungsfunktion sollte differenzierbar sein.

Die Anpassung der Gewichte richtet sich bei diesem Lernen nach dem Fehlergradienten E. Die Backpropagation-Regel ist ein Beispiel für diese Art des Lernens. Somit ist die Anpassung der Gewichte definiert als

#2) Stochastisches Lernen

Bei diesem Lernen werden die Gewichte auf probabilistische Weise angepasst.

Klassifizierung von Algorithmen des unüberwachten Lernens

  1. Hebbian
  2. Competitive

#1) Hebbian Learning

Dieses Lernen wurde 1949 von Hebb vorgeschlagen. Es basiert auf der korrelativen Anpassung der Gewichte. Die Eingabe- und Ausgabemusterpaare sind mit einer Gewichtsmatrix W verbunden.

Die Transponierung der Ausgabe wird für die Gewichtsanpassung verwendet.

#2) Konkurrenzlernen

Es handelt sich um eine „winner takes all“-Strategie. Bei dieser Art des Lernens konkurrieren alle Neuronen in der Schicht miteinander, wenn ein Eingabemuster an das Netz gesendet wird, und nur die siegreichen Neuronen erhalten Gewichtsanpassungen.

Mc Culloch-Pitts Neuron

Auch bekannt als M-P Neuron, ist dies das älteste neuronale Netz, das 1943 entdeckt wurde. In diesem Modell sind die Neuronen durch Verbindungsgewichte verbunden, und die Aktivierungsfunktion wird binär verwendet. Der Schwellenwert wird verwendet, um zu bestimmen, ob das Neuron feuert oder nicht.

Die Funktion des M-P-Neurons ist:

Hebbianischer Lernalgorithmus

Das Hebb-Netzwerk wurde von Donald Hebb im Jahr 1949 erklärt. Nach der Hebb’schen Regel nehmen die Gewichte proportional zum Produkt aus Input und Output zu. Das bedeutet, dass in einem Hebb’schen Netzwerk, wenn zwei Neuronen miteinander verbunden sind, die mit diesen Neuronen verbundenen Gewichte durch Änderungen des synaptischen Abstands erhöht werden können.

Dieses Netzwerk eignet sich für bipolare Daten. Die Hebbsche Lernregel wird im Allgemeinen auf Logikgatter angewandt.

Die Gewichte werden wie folgt aktualisiert:

W (neu) = w (alt) + x*y

Trainingsalgorithmus für die Hebbsche Lernregel

Die Trainingsschritte des Algorithmus sind wie folgt:

  • Anfänglich werden die Gewichte auf Null gesetzt, d. h.d. h. w =0 für alle Eingänge i =1 bis n und n ist die Gesamtzahl der Eingangsneuronen.
  • Lassen Sie s die Ausgabe sein. Die Aktivierungsfunktion für die Eingänge wird im Allgemeinen als Identitätsfunktion gesetzt.
  • Die Aktivierungsfunktion für den Ausgang wird ebenfalls auf y= t gesetzt.
  • Die Gewichtsanpassungen und der Bias werden wie folgt angepasst:
  • Die Schritte 2 bis 4 werden für jeden Eingangsvektor und Ausgang wiederholt.

Beispiel für Hebbian Learning Rule

Lassen Sie uns eine logische UND-Funktion mit bipolaren Eingängen unter Verwendung von Hebbian Learning implementieren

X1 und X2 sind Eingänge, b ist die Vorspannung, die als 1 angenommen wird, der Zielwert ist der Ausgang der logischen UND-Operation über die Eingänge.

Eingang Eingang Vorspannung Ziel
X1 X2 b y
1 1 1 1
1 -1 1 -1
-1 1 1 -1
-1 -1 1 -1

#1) Zu Beginn, werden die Gewichte auf Null gesetzt und die Vorspannung wird ebenfalls auf Null gesetzt.

W1=w2=b=0

#2) Der erste Eingangsvektor wird als = genommen und der Zielwert ist 1.

Die neuen Gewichte sind:

#3) Die oben genannten Gewichte sind die endgültigen neuen Gewichte. Wenn die zweite Eingabe übergeben wird, werden diese zu den anfänglichen Gewichten.

#4) Nehmen Sie die zweite Eingabe = . Das Ziel ist -1.

#5) Auf ähnliche Weise werden die anderen Eingaben und Gewichte berechnet.

Die folgende Tabelle zeigt alle Eingaben:

Hebb-Netz für UND-Funktion

Perceptron-Lernalgorithmus

Perceptron-Netze sind einschichtige Feed-forward-Netze. Sie werden auch als Single-Perceptron-Netze bezeichnet. Das Perceptron besteht aus einer Eingabeschicht, einer versteckten Schicht und einer Ausgabeschicht.

Die Eingabeschicht ist mit der versteckten Schicht durch Gewichte verbunden, die hemmend oder erregend oder Null (-1, +1 oder 0) sein können. Die verwendete Aktivierungsfunktion ist eine binäre Schrittfunktion für die Eingabeschicht und die verborgene Schicht.

Die Ausgabe ist

Y= f (y)

Die Aktivierungsfunktion ist:

Die Aktualisierung der Gewichte findet zwischen der verborgenen Schicht und der Ausgabeschicht statt, um die Zielausgabe zu erreichen. Der Fehler wird auf der Grundlage der tatsächlichen Ausgabe und der gewünschten Ausgabe berechnet.

Wenn die Ausgabe mit dem Ziel übereinstimmt, findet keine Aktualisierung der Gewichte statt. Die Gewichte werden anfangs auf 0 oder 1 gesetzt und sukzessive angepasst, bis eine optimale Lösung gefunden ist.

Die Gewichte im Netz können anfangs auf beliebige Werte gesetzt werden. Das Perceptron-Lernen wird zu einem Gewichtsvektor konvergieren, der für alle Eingabetrainingsmuster eine korrekte Ausgabe liefert, und dieses Lernen geschieht in einer endlichen Anzahl von Schritten.

Die Perceptron-Regel kann sowohl für binäre als auch für bipolare Eingaben verwendet werden.

Lernregel für Single Output Perceptron

#1) Es gebe „n“ Trainings-Eingangsvektoren und x (n) und t (n) seien mit den Zielwerten verbunden.

#2) Initialisiere die Gewichte und den Bias. Setzen Sie sie zur einfachen Berechnung auf Null.

#3) Lassen Sie die Lernrate 1 sein.

#4) Die Eingabeschicht hat eine Identitätsaktivierungsfunktion, so dass x (i)= s ( i).

#5) Um die Ausgabe des Netzes zu berechnen:

#6) Die Aktivierungsfunktion wird auf die Netzeingabe angewendet, um eine Ausgabe zu erhalten.

#7) Vergleichen Sie nun auf der Grundlage des Outputs den gewünschten Zielwert (t) und den tatsächlichen Output.

#8) Setzen Sie die Iteration fort, bis sich keine Gewichtsänderung mehr ergibt. Stoppen Sie, sobald diese Bedingung erreicht ist.

Lernregel für Perceptron mit mehreren Ausgängen

#1) Lassen Sie „n“ Trainings-Eingangsvektoren zu und x (n) und t (n) sind mit den Zielwerten verbunden.

#2) Initialisieren Sie die Gewichte und den Bias. Setzen Sie sie zur einfachen Berechnung auf Null.

#3) Lassen Sie die Lernrate 1 sein.

#4) Die Eingabeschicht hat eine Identitätsaktivierungsfunktion, so dass x (i)= s ( i).

#5) Um die Ausgabe jedes Ausgabevektors von j= 1 bis m zu berechnen, ist die Netzeingabe:

#6) Die Aktivierungsfunktion wird auf die Netzeingabe angewendet, um eine Ausgabe zu erhalten.

#7) Vergleichen Sie nun auf der Grundlage des Outputs den gewünschten Zielwert (t) und den tatsächlichen Output und nehmen Sie Gewichtsanpassungen vor.

w ist der Gewichtsvektor der Verbindungsglieder zwischen dem i-ten Input- und dem j-ten Output-Neuron und t ist der Ziel-Output für die Output-Einheit j.

#8) Fahren Sie mit der Iteration fort, bis es keine Gewichtsänderung mehr gibt. Stoppen Sie, sobald diese Bedingung erreicht ist.

Beispiel für eine Perceptron-Lernregel

Implementierung einer UND-Funktion unter Verwendung eines Perceptron-Netzwerks für bipolare Eingänge und Ausgänge.

Das Eingabemuster ist x1, x2 und der Bias b. Lassen Sie die anfänglichen Gewichte 0 und den Bias 0 sein. Der Schwellenwert ist auf 0 gesetzt und die Lernrate ist 1.

AND Gate

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

#1) X1=1 , X2= 1 und Zielausgabe = 1
W1=w2=wb=0 und x1=x2=b=1, t=1
Netzeingabe= y =b + x1*w1+x2*w2 = 0+1*0 +1*0 =0

Da der Schwellenwert also Null ist:

Hieraus ergibt sich, dass der Ausgang = 0 ist. Prüfen Sie nun, ob Ausgang (y) = Ziel (t) ist.

y = 0, aber t= 1, was bedeutet, dass diese nicht gleich sind, daher findet eine Gewichtsaktualisierung statt.

Die neuen Gewichte sind 1, 1 und 1, nachdem der erste Eingangsvektor präsentiert wurde.

#2) X1= 1 X2= -1 , b= 1 und Ziel = -1, W1=1 ,W2=2, Wb=1
Netzeingabe= y =b + x1*w1+x2*w2 = 1+1*1 + (-1)*1 =1
Der Netto-Output für Eingabe= 1 wird 1 aus:

Daher stimmt wiederum Ziel = -1 nicht mit dem tatsächlichen Output =1 überein. Die Gewichte werden aktualisiert.

Die neuen Gewichte sind nun w1 = 0 w2 =2 und wb =0

Wenn wir mit dem nächsten Satz von Eingaben fortfahren, erhalten wir die folgende Tabelle:

Die EPOCHS sind der Zyklus von Eingabemustern, die dem System zugeführt werden, bis keine Gewichtsänderung mehr erforderlich ist und die Iteration aufhört.

Widrow-Hoff-Lernalgorithmus

Auch bekannt als Delta-Regel, folgt er der Gradientenabstiegsregel für lineare Regression.

Er aktualisiert die Verbindungsgewichte mit der Differenz zwischen dem Ziel- und dem Ausgangswert. Es ist der Lernalgorithmus mit dem kleinsten mittleren Quadrat, der in die Kategorie der überwachten Lernalgorithmen fällt.

Diese Regel wird von ADALINE (Adaptive Linear Neural Networks) und MADALINE befolgt. Im Gegensatz zu Perceptron hören die Iterationen von Adaline-Netzen nicht auf, sondern es konvergiert durch Verringerung des kleinsten mittleren quadratischen Fehlers. MADALINE ist ein Netz aus mehreren ADALINE.

Das Motiv der Delta-Lernregel ist es, den Fehler zwischen dem Ausgangs- und dem Zielvektor zu minimieren.

Die Gewichte in ADALINE-Netzen werden aktualisiert durch:

Kleinster mittlerer quadratischer Fehler = (t- yin)2, ADALINE konvergiert, wenn der kleinste mittlere quadratische Fehler erreicht ist.

Abschluss

In diesem Tutorium haben wir die beiden Algorithmen, d.h. Hebbian Learning Rule und Perceptron Learning Rule, besprochen. Die Hebbsche Regel basiert auf der Regel, dass der Gewichtsvektor proportional zum Input und zum Lernsignal, d.h. dem Output, ansteigt. Die Gewichte werden erhöht, indem das Produkt aus Input und Output zum alten Gewicht addiert wird.

W (neu) = w (alt) +x*y

Die Anwendung der Hebb-Regeln liegt in der Musterassoziation, Klassifizierung und Kategorisierungsproblemen.

Die Perceptron-Lernregel kann sowohl auf ein Netzwerk mit einem Ausgang als auch auf ein Netzwerk mit mehreren Ausgangsklassen angewendet werden. Das Ziel des Perceptron-Netzes ist es, das Eingabemuster in eine bestimmte Mitgliedsklasse zu klassifizieren. Die Eingangsneuronen und die Ausgangsneuronen sind durch Verbindungen mit Gewichten verbunden.

Die Gewichte werden so angepasst, dass die tatsächliche Ausgabe mit dem Zielwert übereinstimmt. Die Lernrate wird von 0 bis 1 festgelegt und bestimmt die Skalierbarkeit der Gewichte.

Die Gewichte werden aktualisiert gemäß:

Abgesehen von diesen Lernregeln lernen maschinelle Lernalgorithmen durch viele andere Methoden, d.h. überwacht, unbeaufsichtigt, Verstärkung. Einige der anderen gängigen ML-Algorithmen sind Back Propagation, ART, Kohonen Self Organizing Maps, etc.

Wir hoffen, dass Ihnen alle Tutorials aus dieser Machine Learning Serie gefallen haben!!!

=> Besuchen Sie hier die exklusive Machine Learning Serie

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.