Beim maschinellen Lernen ist ein Perzeptron ein überwachter Lernalgorithmus für binäre Klassifikatoren. Es wird auch oft als Perzeptron bezeichnet. Ein binärer Klassifikator ist eine Funktion, die entscheiden kann, ob eine Eingabe, dargestellt durch einen Zahlenvektor, zu einer bestimmten Klasse gehört. Dies ist eine Art linearer Klassifikator, d. h. ein Klassifizierungsalgorithmus, der seine Vorhersagen auf der Grundlage einer linearen Prädiktorfunktion trifft, die eine Reihe von Gewichtungen mit einem Merkmalsvektor kombiniert.
In den letzten Jahren haben künstliche neuronale Netze aufgrund von Fortschritten beim Deep Learning an Aufmerksamkeit gewonnen. Aber was ist ein künstliches neuronales Netz und woraus besteht es?
Das Perzeptron kennenlernen
In diesem Artikel werfen wir einen kurzen Blick auf künstliche neuronale Netze im Allgemeinen, dann auf ein einzelnes Neuron, und schließlich (das ist der Codierungsteil) nehmen wir die einfachste Version eines künstlichen Neuron, das Perzeptron, und klassifizieren Sie seine Punkte inFlugzeug.
Haben Sie sich jemals gefragt, warum es Aufgaben gibt, die für jeden Menschen so einfach, aber für Computer unglaublich schwierig sind? Artificial Neural Networks (kurz ANN) sind vom menschlichen Zentralnervensystem inspiriert. Wie ihr biologisches Gegenstück sind ANNs auf einfachen Signalverarbeitungselementen aufgebaut, die zu einem großen Gitter kombiniert werden.
Neuronale Netze müssen lernen
Im Gegensatz zu herkömmlichen Algorithmen können neuronale Netze nicht "programmiert" oder "abgestimmt" werden, um wie beabsichtigt zu funktionieren. Genau wie das menschliche Gehirn müssen sie lernen, die Aufgabe zu erfüllen. Grob gesagt gibt es drei Lernstrategien.
Der einfachste Weg kann verwendet werden, wenn es einen Testfall (groß genug) mit bekannten Ergebnissen gibt. Dann läuft das Training so ab: Verarbeitung eines Datensatzes. Vergleichen Sie das Ergebnis mit dem bekannten Ergebnis. Richten Sie das Netzwerk ein und versuchen Sie es erneut. Dies ist die Lernstrategie, die wir hier anwenden werden.
Unüberwachtes Lernen
Nützlich, wenn keine Testdaten verfügbar sind und wenn es möglich ist, eine Kostenfunktion aus dem gewünschten Verh alten abzuleiten. Die Kostenfunktion teilt dem neuronalen Netzwerk mit, wie weit es vom Ziel entfernt ist. Das Netzwerk kann dann seine Parameter im laufenden Betrieb anpassen und mit echten Daten arbeiten.
Verstärktes Lernen
Die "Zuckerbrot-und-Peitsche"-Methode. Kann verwendet werden, wenn das neuronale Netzwerk eine kontinuierliche Aktion generiert. Mit der Zeit lernt das Netzwerk, die richtigen Aktionen zu bevorzugen und die falschen zu vermeiden.
Okay, jetzt wissen wir etwas darüberNatur künstlicher neuronaler Netze, aber woraus genau bestehen sie? Was werden wir sehen, wenn wir den Deckel öffnen und hineinschauen?
Neuronen sind die Bausteine neuronaler Netze. Die Hauptkomponente eines künstlichen neuronalen Netzes ist ein künstliches Neuron. Sie sind nicht nur nach ihren biologischen Gegenstücken benannt, sondern auch dem Verh alten von Neuronen in unserem Gehirn nachempfunden.
Biologie vs. Technik
So wie ein biologisches Neuron Dendriten hat, um Signale zu empfangen, einen Zellkörper, um sie zu verarbeiten, und ein Axon, um Signale an andere Neuronen zu senden, hat ein künstliches Neuron mehrere Eingangskanäle, eine Verarbeitungsstufe und einen Ausgang, der dies kann verzweigen sich zu vielen anderen künstlichen Neuronen.
Können wir etwas Nützliches mit einem einzelnen Perzeptron machen? Es gibt eine Klasse von Problemen, die ein einzelnes Perzeptron lösen kann. Betrachten Sie den Eingabevektor als Punktkoordinaten. Für einen Vektor mit n Elementen lebt dieser Punkt im n-dimensionalen Raum. Um das Leben (und den Code unten) zu vereinfachen, nehmen wir an, es ist 2D. Wie ein Stück Papier.
Stellen Sie sich als Nächstes vor, wir zeichnen einige zufällige Punkte auf dieser Ebene und teilen sie in zwei Gruppen auf, indem wir eine gerade Linie über das Papier ziehen. Diese Linie teilt die Punkte in zwei Sätze, einen über und einen unter der Linie. Die beiden Mengen heißen dann linear separabel.
Ein Perzeptron, egal wie einfach es scheinen mag, ist in der Lage zu wissen, wo diese Linie ist, und wenn es sein Training beendet hat, kann es bestimmen, ob ein bestimmter Punkt über oder unter dieser Linie liegt.
GeschichteErfindungen
Der Algorithmus für diese Methode wurde 1957 am Cornell Aviation Laboratory von Frank Rosenblatt (oft nach ihm benannt) erfunden, finanziert vom US Office of Naval Research. Das Perceptron sollte eine Maschine und kein Programm sein, und obwohl seine erste Implementierung in Software für den IBM 704 erfolgte, wurde es später auf speziell angefertigter Hardware als "Mark 1 Perceptron" implementiert. Diese Maschine wurde für die Bilderkennung entwickelt: Sie hatte eine Anordnung von 400 Fotozellen, die zufällig mit Neuronen verbunden waren. Die Gewichte wurden in Potentiometern kodiert und die Gewichtsaktualisierung während des Trainings erfolgte durch Elektromotoren.
Bei einer Pressekonferenz der US Navy im Jahr 1958 machte Rosenblatt Aussagen über das Perzeptron, die eine hitzige Debatte in der jungen KI-Community auslösten; Auf der Grundlage von Rosenblatts Behauptungen berichtete die New York Times, dass das Perzeptron "der embryonale elektronische Computer ist, von dem die Marine erwartet, dass er in der Lage sein wird, zu gehen, zu sprechen, zu sehen, zu schreiben, sich selbst zu reproduzieren und sich seiner Existenz bewusst zu sein."
Weitere Entwicklungen
Obwohl das Perzeptron anfangs vielversprechend schien, wurde schnell bewiesen, dass Perzeptrons nicht darauf trainiert werden konnten, viele Klassen von Mustern zu erkennen. Dies führte viele Jahre zu einer Stagnation auf dem Forschungsgebiet mit Perzeptron-Neuronalen Netzen, bevor erkannt wurde, dass ein Feed-Forward-Neuronales Netz mit zwei oder mehr Schichten (auch genanntMultilayer-Perzeptron) hatte viel mehr Rechenleistung als Single-Layer-Perceptrons (auch Single-Layer-Perceptrons genannt). Ein einschichtiges Perzeptron kann nur linear trennbare Strukturen untersuchen. 1969 zeigte das berühmte Buch „Perceptrons“von Marvin Minsky und Seymour Papert, dass diese Klassen von Netzwerken die XOR-Funktion nicht lernen konnten. Dies gilt jedoch nicht für nichtlineare Klassifikationsfunktionen, die in einem einschichtigen Perzeptron verwendet werden können.
Die Verwendung solcher Funktionen erweitert die Fähigkeiten des Perzeptrons, einschließlich der Implementierung der XOR-Funktion. Es wird oft (fälschlicherweise) angenommen, dass sie auch davon ausgegangen sind, dass ein ähnliches Ergebnis für ein mehrschichtiges Perzeptron-Netzwerk gelten würde. Dies ist jedoch nicht der Fall, da sowohl Minsky als auch Papert bereits wussten, dass mehrschichtige Perzeptrons in der Lage sind, eine XOR-Funktion zu erzeugen. Drei Jahre später veröffentlichte Steven Grossberg eine Reihe von Artikeln, in denen Netzwerke vorgestellt wurden, die in der Lage sind, Differentialfunktionen, Kontrastverbesserungsfunktionen und XOR-Funktionen zu modellieren.
Werke wurden 1972 und 1973 veröffentlicht. Der oft übersehene Minsky/Papert-Text verursachte jedoch einen deutlichen Rückgang des Interesses und der Forschungsgelder mit dem neuronalen Netzwerk-Perzeptron. Weitere zehn Jahre vergingen, bis die Forschung zu neuronalen Netzen in den 1980er Jahren wiederbelebt wurde.
Funktionen
Der Perceptron-Kernel-Algorithmus wurde 1964 von Yzerman et al. eingeführt. Mori und Rostamizadeh (2013), die frühere Ergebnisse erweitern und neue Grenzen L1 angeben.
Perceptron ist ein vereinfachtes Modell eines biologischen Neurons. Während die Komplexität biologischer neuronaler Modelle oft erforderlich ist, um das neuronale Verh alten vollständig zu verstehen, zeigt die Forschung, dass ein Perzeptron-ähnliches lineares Modell einen Teil des Verh altens induzieren kann, das in echten Neuronen beobachtet wird.
Das Perceptron ist ein linearer Klassifikator, daher wird es niemals in einen Zustand mit korrekt klassifizierten Eingabevektoren gelangen, wenn die Trainingsmenge D nicht linear trennbar ist, d.h. wenn positive Beispiele nicht durch eine Hyperebene von negativen Beispielen getrennt werden können. In diesem Fall wird keine "ungefähre" Lösung den Standard-Lernalgorithmus Schritt für Schritt durchlaufen, sondern das Lernen wird vollständig fehlschlagen. Wenn die lineare Trennbarkeit des Trainingssatzes a priori nicht bekannt ist, sollte daher eine der folgenden Trainingsoptionen verwendet werden.
Pocket-Algorithmus
Der Ratchet-Pocket-Algorithmus löst das Perzeptron-Lernrobustheitsproblem, indem er die bisher beste gefundene Lösung "in der Tasche" behält. Der Taschenalgorithmus gibt dann die Lösung in der Tasche statt der letzten Lösung zurück. Es kann auch für nicht trennbare Datensätze verwendet werden, bei denen das Ziel darin besteht, ein Perzeptron mit wenigen Fehlklassifizierungen zu finden. Diese Lösungen sehen jedoch stochastisch aus und daher passt der Taschenalgorithmus nicht zu ihnen.allmählich im Laufe des Trainings, und es ist nicht garantiert, dass sie über eine bestimmte Anzahl von Trainingsschritten erkannt werden.
Maxover-Algorithmus
Maxovers Algorithmus ist "robust" in dem Sinne, dass er unabhängig von der Kenntnis der linearen Trennbarkeit des Datensatzes konvergiert. Im Falle einer linearen Aufteilung löst dies das Lernproblem, optional sogar mit optimaler Stabilität (maximaler Spielraum zwischen den Klassen). Bei nicht trennbaren Datensätzen wird eine Lösung mit einer geringen Anzahl von Fehlklassifizierungen zurückgegeben. In allen Fällen nähert sich der Algorithmus während des Lernprozesses schrittweise der Lösung, ohne sich an frühere Zustände zu erinnern und ohne zufällige Sprünge. Konvergenz liegt in der globalen Optimalität für gemeinsam genutzte Datensätze und der lokalen Optimalität für nicht trennbare Datensätze.
Voted Perceptron
Der Voted-Perceptron-Algorithmus ist eine Variante, die mehrere gewichtete Perceptrons verwendet. Der Algorithmus startet jedes Mal ein neues Perzeptron, wenn ein Beispiel falsch klassifiziert wird, und initialisiert den Gewichtsvektor mit den endgültigen Gewichten des letzten Perzeptrons. Jedem Perzeptron wird auch eine andere Gewichtung gegeben, je nachdem, wie viele Beispiele sie richtig klassifizieren, bevor sie eines falsch klassifizieren, und am Ende ist die Ausgabe eine gewichtete Abstimmung über das gesamte Perzeptron.
Bewerbung
Bei trennbaren Problemen kann das Perzeptrontraining auch darauf abzielen, die größte Trennungsgrenze zwischen Klassen zu finden. SogenanntEin optimales Stabilitätsperzeptron kann unter Verwendung von iterativen Trainings- und Optimierungsschemata wie dem Min-Over- oder AdaTron-Algorithmus bestimmt werden. AdaTron nutzt die Tatsache aus, dass das entsprechende quadratische Optimierungsproblem konvex ist. Das optimale Stabilitätsperzeptron ist zusammen mit dem Kernel-Trick die konzeptionelle Grundlage der Support Vector Machine.
Alternative
Eine andere Möglichkeit, nichtlineare Probleme ohne Verwendung mehrerer Schichten zu lösen, ist die Verwendung von Netzwerken höherer Ordnung (Sigma-Pi-Block). Bei dieser Art von Netzwerk wird jedes Element des Eingabevektors durch jede paarweise Kombination von multiplizierten Eingaben (zweiter Ordnung) erweitert. Dies kann auf ein Netzwerk n-ter Ordnung erweitert werden. Das Perceptron ist ein sehr flexibles Ding.
Denken Sie jedoch daran, dass der beste Klassifikator nicht unbedingt derjenige ist, der alle Trainingsdaten genau klassifiziert. Wenn wir die vorherige Einschränkung hatten, dass die Daten aus Gaußschen Verteilungen mit gleichen Varianten stammen, ist eine lineare Aufteilung im Eingaberaum optimal und eine nichtlineare Lösung wird außer Kraft gesetzt.
Andere lineare Klassifikationsalgorithmen umfassen Winnow, Support Vector und logistische Regression. Perceptron ist ein universeller Satz von Algorithmen.
Hauptbereich für überwachtes Lernen
Überwachtes Lernen ist eine maschinelle Lernaufgabe, die eine Funktion lernt, die Eingaben auf Ausgaben abbildetanhand von Beispielen von E/A-Paaren. Sie leiten ein Merkmal aus beschrifteten Trainingsdaten ab, die aus einer Reihe von Beispielen bestehen. Beim überwachten Lernen ist jedes Beispiel ein Paar, das aus einem Eingabeobjekt (normalerweise einem Vektor) und einem gewünschten Ausgabewert (auch Steuersignal genannt) besteht.
Der überwachte Lernalgorithmus analysiert die Trainingsdaten und erzeugt eine geschätzte Funktion, die verwendet werden kann, um neue Beispiele anzuzeigen. Das optimale Szenario würde es dem Algorithmus ermöglichen, Klassenbezeichnungen für unsichtbare Instanzen korrekt zu bestimmen. Dies erfordert, dass der Lernalgorithmus die Lerndaten auf "vernünftige" Weise auf unsichtbare Situationen verallgemeinert.
Die Parallelaufgabe in der Psychologie von Mensch und Tier wird oft als konzeptionelles Lernen bezeichnet.