4

Ich habe ein minimales Beispiel für ein neuronales Netzwerk mit einem Back-Propagation-Trainer, der es auf dem IRIS-Datensatz testet. Ich begann mit 7 versteckten Knoten und es funktionierte gut.Warum bekomme ich eine gute Genauigkeit mit IRIS-Datensätzen mit einem einzigen versteckten Knoten?

Ich habe die Anzahl der Knoten in der versteckten Ebene auf 1 reduziert (in der Erwartung, dass sie fehlschlägt), war aber überrascht, dass die Genauigkeit gestiegen ist.

Ich habe das Experiment in azure ml eingerichtet, nur um zu bestätigen, dass es nicht mein Code war. Gleiches gilt für 98,3333% Genauigkeit mit einem einzelnen versteckten Knoten.

Kann mir jemand erklären, was hier passiert?

Antwort

4

Erstens ist es gut bekannt, dass eine Vielzahl von Klassifikationsmodellen unglaublich gute Ergebnisse auf Iris liefern (Iris ist sehr vorhersehbar); siehe zum Beispiel here.

Zweitens können wir beobachten, dass es im Iris-Datensatz relativ wenige Merkmale gibt. Wenn Sie sich die dataset description ansehen, können Sie außerdem sehen, dass zwei der Merkmale sehr stark mit den Klassenergebnissen korrelieren.

Diese Korrelationswerte sind lineare Korrelationen mit nur einem Merkmal, was darauf hindeutet, dass man am ehesten ein lineares Modell anwenden und gute Ergebnisse beobachten kann. Neuronale Netze sind hochgradig nichtlinear; Sie werden immer komplexer und erfassen immer größere nichtlineare Merkmalskombinationen, wenn die Anzahl der versteckten Knoten und versteckten Schichten erhöht wird. Wenn man diese Tatsachen berücksichtigt, dass (a) es nur wenige Merkmale gibt, mit denen zu beginnen ist und (b) dass es hohe lineare Korrelationen mit der Klasse gibt, würden alle auf eine weniger komplexe lineare Funktion als das geeignete Vorhersagemodell zeigen - Wenn Sie einen einzelnen versteckten Knoten verwenden, verwenden Sie fast ein lineares Modell.

Es kann auch festgestellt werden, dass in Abwesenheit einer versteckten Schicht (d. H. Nur Eingangs- und Ausgangsknoten) und wenn die logistische Übertragungsfunktion verwendet wird, dies einer logistischen Regression entspricht.

+1

nur aus Gründen der Korrektheit - Sie können logistische Regression durch Matrixinversion nicht lösen. Sie verwechseln lineare Regression (lösbar auf diese Weise) und logistische (nicht lösbar) – lejlot

+0

@lejlot Sie sind richtig; mein Fehler. Ich habe meine Antwort so geändert, dass sie Ihren Kommentar widerspiegelt. – DMML

0

Hinzufügen Nur um DMlash des sehr gute Antwort:

If Petal.Width = (0.0976,0.791] then Species = setosa 
If Petal.Width = (0.791,1.63] then Species = versicolor 
If Petal.Width = (1.63,2.5]  then Species = virginica 

Im allgemeinen neuronalen: Die Menge Iris-Daten kann auch mit einer sehr hohen Genauigkeit (96%) unter Verwendung von nur drei einfachen Regeln auf nur ein Attribut vorhergesagt werden Netzwerke sind Black Boxes, in denen man nie wirklich weiß, was sie lernen, aber in diesem Fall sollte Back-Engineering einfach sein. Es ist denkbar, dass es etwas Ähnliches gelernt hat.

+0

TBH gibt es nicht viele Black-Box in einem Netzwerk mit einem einzigen versteckten Knoten. Im Training wird der volle Fehler durch diesen einzelnen Knoten rückpropagiert. – MSalters

+0

@MSalters: Guter Punkt, ich habe meine Antwort entsprechend bearbeitet. – vonjd