Kapitel 2 : Perzeptron
Das Perzeptron, oft auch als McCulloch-Pitts-Neuron bekannt, ist eine Technik zum überwachten Lernen von binären Klassifikatoren, die im Bereich des maschinellen Lernens verwendet wird. Eine Funktion, die als binärer Klassifikator bezeichnet wird, ist eine Funktion, die bestimmen kann, ob eine Eingabe, die oft in Form eines Vektors von Zahlen vorliegt, zu einer bestimmten Kategorie gehört oder nicht. Es handelt sich um eine Form des linearen Klassifikators, bei dem es sich um eine Klassifizierungstechnik handelt, die ihre Vorhersagen auf der Grundlage einer linearen Prädiktorfunktion generiert, indem sie einen Satz von Gewichten mit dem Merkmalsvektor kombiniert. Bei dieser Art von linearem Klassifikator wird der Merkmalsvektor mit den Gewichtungen kombiniert.
Warren McCulloch und Walter Pitts kamen im Jahr 1943 auf die Idee für das Perzeptron.
Das Perzeptron war als Maschine und nicht als Computerprogramm konzipiert; Nichtsdestotrotz erfolgte die erste Implementierung in Software für die IBM 704 und später in speziell angefertigter Hardware, die als "Mark 1 Perzeptron" bekannt ist. Dieses Gerät wurde speziell für die Bildidentifikation entwickelt; Es bestand aus einem Array von 400 Fotozellen, die zufällig mit den "Neuronen" verbunden waren. Zur Speicherung der Gewichtsdaten wurden Potentiometer verwendet, und Elektromotoren waren für die Gewichtsanpassung als Teil des Lernprozesses verantwortlich.
Es zeigte sich sofort, dass man Perzeptronen nicht beibringen konnte, viele verschiedene Arten von Mustern zu erkennen, obwohl man zunächst annahm, dass das Perzeptron ein gewisses Potenzial hat. Dies führte dazu, dass das Feld der Forschung an neuronalen Netzen für einige Jahre zum Stillstand kam, bevor erkannt wurde, dass neuronale Netze, die aus zwei oder mehr Schichten bestehen (auch als mehrschichtige Perzeptrone bezeichnet), eine größere Rechenleistung haben als Perzeptrone, die aus einer einzigen Schicht (auch einschichtiges Perzeptron genannt) bestehen.
Die einzige Art von Mustern, die von einschichtigen Perzeptronen gelernt werden können, sind solche, die linear getrennt werden können. Ein Klassifizierungsauftrag, der eine Funktion zur schrittweisen Aktivierung verwendet, führt zu einem einzelnen Knoten mit einer einzigen Linie, die die Datenpunkte trennt, aus denen die Muster bestehen. Wenn es mehr Knoten gibt, besteht die Möglichkeit, mehr Trennlinien zu erzeugen. Diese Linien müssen jedoch in irgendeiner Weise zusammengeführt werden, um kompliziertere Klassifikationen zu ermöglichen. Das Hinzufügen einer zweiten Schicht von Perzeptronen oder einfach linearen Knoten ist alles, was erforderlich ist, um eine Vielzahl von Problemen zu lösen, die ansonsten untrennbar miteinander verbunden sind.
Im Jahr 1969 veröffentlichten Marvin Minsky und Seymour Papert ein bekanntes Buch mit dem Titel "Perceptrons", in dem sie zeigten, dass es für diese Art von Netzwerken unmöglich ist, eine XOR-Funktion zu lernen. Es ist ein weit verbreiteter Irrglaube, aber einer, der nicht ganz korrekt ist, dass sie auch die Hypothese aufstellten, dass ein ähnliches Ergebnis mit einem mehrschichtigen Perzeptron-Netzwerk erreicht werden würde. Dies ist jedoch nicht der Fall, da Minsky und Papert bereits vor der Veröffentlichung dieser Aussage wussten, dass mehrschichtige Perzeptrone die Fähigkeit haben, eine XOR-Funktion zu erzeugen. (Weitere Informationen finden Sie auf der Seite über Perzeptrons (Buch) auf dieser Website.) Trotzdem war der Essay von Minsky und Papert, der oft falsch zitiert wird, für einen dramatischen Rückgang des Interesses an und der Finanzierung der Forschung an neuronalen Netzen verantwortlich. Eine neue Welle des Interesses an der Erforschung neuronaler Netze entstand erst in den 1980er Jahren, als ein weiteres Jahrzehnt vergangen war. Dieses Buch wurde erstmals 1987 veröffentlicht, jedoch 1987 als "Perceptrons - Expanded Edition" neu aufgelegt, in dem mehrere Ungenauigkeiten in der Erstauflage hervorgehoben und behoben wurden.
Laut einem im Jahr 2022 veröffentlichten Artikel war das Mark 1 Perceptron "Teil einer zuvor geheimen vierjährigen NPIC [des US-amerikanischen National Photographic Interpretation Center] von 1963 bis 1966, um diesen Algorithmus zu einem nützlichen Werkzeug für Fotointerpreten zu entwickeln". Diese Informationen stammen aus den Jahren 1963 bis 1966.
Im Kontext der Gegenwart ist das Perzeptron ein Algorithmus zum Erlernen eines binären Klassifikators, der als Schwellenwertfunktion bezeichnet wird: eine Funktion, die ihre Eingabe (einen reellwertigen Vektor) auf einen Ausgabewert (einen einzelnen Binärwert) abbildet:
wobei ein Vektor von reellwertigen Gewichten ist, das Punktprodukt ist , wobei m sich auf die Gesamtzahl der Datenpunkte bezieht, die in das Perzeptron gesendet werden, Die Verzerrung wird durch b bezeichnet.
Die Bias verschiebt die Entscheidungsgrenze vom Ursprung weg und wird von keinem der Eingabewerte beeinflusst.
Der Wert von (0 oder 1) wird verwendet, um entweder als positive oder negative Instanz zu klassifizieren, falls wir es mit einem Problem der binären Klassifizierung zu tun haben.
Wenn b einen negativen Wert hat, dann muss die gewichtete Kombination von Eingaben einen positiven Wert größer als erzeugen , um das Klassifikator-Neuron über den 0-Schwellenwert zu drücken.
Räumlich verschiebt die Bias die Position der Entscheidungsgrenze, während sie deren Richtung nicht beeinflusst.
Für den Fall, dass das Lernset nicht linear getrennt werden kann, ist der Lernvorgang des Perzeptrons nicht beendet.
Das Lernen kann nie so weit kommen, dass alle Vektoren angemessen kategorisiert sind, wenn die Vektoren nicht linear voneinander getrennt werden können.
Das Boolesche Exklusiv-oder-Problem ist vielleicht die bekannteste Illustration für die Unfähigkeit des Perzeptrons, Probleme mit Vektoren zu lösen, die nicht linear in separate Komponenten zerlegt werden können.
In der Referenz werden die Lösungsräume und Entscheidungsgrenzen für alle binären Funktionen und Lernverhaltensweisen untersucht.
Ein Perzeptron ist ein künstliches Neuron, das die Heaviside-Schrittfunktion als Aktivierungsfunktion nutzt. Es wird im Zusammenhang mit neuronalen Netzen verwendet. Um es von einem mehrschichtigen Perzeptron zu unterscheiden, was eigentlich eine falsche Bezeichnung für ein komplexeres neuronales Netzwerk ist, wird die Perzeptron-Methode manchmal als einschichtiges Perzeptron bezeichnet. Dies liegt daran, dass mehrschichtige Perzeptrone mehr als eine Schicht umfassen. Das Single-Layer-Perzeptron ist das einfachste neuronale Feedforward-Netzwerk und kann verwendet werden, um Daten linear zu klassifizieren.
Ein Beispiel für einen Lernalgorithmus für ein einschichtiges Perzeptron ist unten zu sehen. In mehrschichtigen Perzeptronen, in denen es eine verborgene Schicht geben kann, sind komplexere Methoden, wie z. B. Backpropagation, erforderlich. Wenn die Aktivierungsfunktion oder der zugrundeliegende Prozess, den das Perzeptron modelliert, nichtlinear ist, können alternative Lernalgorithmen wie die Delta-Regel verwendet werden, solange die Aktivierungsfunktion differenzierbar ist. Wenn die Aktivierungsfunktion beispielsweise nicht linear ist, kann das Perzeptron den Prozess modellieren. Dennoch wird auch bei mehrschichtigen Perzeptronen mit nichtlinearen Aktivierungsfunktionen der Lernprozess, der in den folgenden Schritten beschrieben wird, oft erfolgreich sein.
Jedes Ausgangsneuron in einem künstlichen neuronalen Netzwerk agiert unabhängig von allen anderen; Daher kann das Erlernen jeder Ausgabe isoliert behandelt werden, wenn mehrere Perzeptrone zu einem einzigen Netzwerk zusammengeführt werden.
Wir definieren zunächst einige Variablen:
Die Lernrate des Perzeptrons wird mit dem Buchstaben r bezeichnet. Die Lernrate reicht von 0 bis 1. Die Schwankungen im Gewicht werden deutlicher, wenn die Werte größer sind.
bezeichnet die Ausgabe des Perzeptrons für einen Eingabevektor .
ist der Trainingssatz von Stichproben, wobei Folgendes gilt:
ist der -dimensionale Eingabevektor.
ist der gewünschte Ausgangswert des Perzeptrons für diesen Eingang.
Die Werte der Merkmale werden wie folgt dargestellt, wie von uns dargestellt:
ist der Wert des th-Merkmals des th-Trainingseingabevektors .
.
Um einen Hinweis auf die Gewichte zu geben:
ist der th-Wert im Gewichtungsvektor, der mit dem Wert des th-Eingabe-Features multipliziert wird.
Denn das ist effektiv eine Verzerrung, die wir anstelle der Bias-Konstante verwenden .
Um die Zeitabhängigkeit von zu zeigen , verwenden wir:
ist das Gewicht zum Zeitpunkt .
Führen Sie eine Initialisierung der Gewichtungen durch. Es ist möglich, Gewichtungen mit der Zahl 0 oder mit einem winzigen Zufallswert zu initialisieren. Im folgenden Beispiel wird die Zahl 0 verwendet.
Führen Sie für jede einzelne Instanz j in der D-Menge, die als unser Training dient, die folgenden Schritte über die Eingabe und die gewünschte Ausgabe durch :
Bestimmen Sie die genaue Produktionsmenge:
Bringen Sie die Gewichte auf den neuesten Stand:
, für alle Funktionen , ist die Lernrate.
Bei der Untersuchung außerhalb eines Computers kann der zweite Schritt wiederholt werden, bis der Iterationsfehler kleiner als ein benutzerdefinierter Fehlerschwellenwert ist oder ein vereinbarter Schwellenwert für die Anzahl der Iterationen erreicht wurde, wobei s wiederum die Größe des Stichprobensatzes ist.
In Schritt 2b überarbeitet der Algorithmus die Gewichtungen, wenn eine neue Trainingsstichprobe gefunden...