Warum konvergiert der Perceptron Lernalgorithmus nicht?

8

Ich habe den Perceptron-Lernalgorithmus in Python wie folgt implementiert. Selbst bei 500.000 Iterationen wird es immer noch nicht konvergieren.

Ich habe eine Trainingsdatenmatrix X mit dem Zielvektor Y und einen zu optimierenden Gewichtsvektor w.

Meine Aktualisierungsregel lautet:

%Vor%

Ist das falsch? Oder warum konvergiert es nicht selbst nach 500.000 Iterationen?

    
manbearpig 03.10.2013, 01:20
quelle

1 Antwort

13

Perceptrons von Minsky und Papert (in) bewiesen 1969 eindrucksvoll, dass der Perzeptron-Lernalgorithmus nicht garantiert ist konvergiert für Datensätze, die nicht linear trennbar sind.

Wenn Sie sicher sind, dass Ihr Dataset linear trennbar ist, können Sie versuchen, jedem Ihrer Datenvektoren einen Bias hinzuzufügen, wie in der folgenden Frage beschrieben: Perzeptron-Lernalgorithmus konvergiert nicht zu 0 - das Hinzufügen einer Verzerrung kann helfen, Entscheidungsgrenzen zu modellieren, die nicht durch den Ursprung gehen.

Wenn Sie alternativ eine Variante des Perceptron-Lernalgorithmus verwenden möchten, die garantiert mit einer bestimmten Breite konvergiert, können Sie selbst für Datensätze, die nicht linear trennbar sind, einen Blick auf die Verstärktes Perzeptron - PDF . Das gemittelte Perzeptron ist eine Annäherung an das gewählte Perzeptron, das (so weit ich weiß) in einer schönen Abhandlung von Freund und Schapire eingeführt wurde. " Large Margin Classification unter Verwendung des Perceptron-Algorithmus "- PDF .

Mit einem gemittelten Perzeptron erstellen Sie nach jeder Präsentation eines Trainingsbeispiels während des Trainings eine Kopie des Parametervektors. Der letzte Klassifikator verwendet den Mittelwert aller Parametervektoren.

    
lmjohns3 03.10.2013, 03:06
quelle