Neuronales Netzwerk: Verwenden Sie für die binäre Klassifizierung 1 oder 2 Ausgangsneuronen?


26

Angenommen, ich möchte eine binäre Klassifizierung durchführen (etwas gehört zu Klasse A oder Klasse B). Es gibt einige Möglichkeiten, dies in der Ausgabeschicht eines neuronalen Netzwerks zu tun:

  • Verwenden Sie 1 Ausgangsknoten. Ausgang 0 (<0,5) gilt als Klasse A und 1 (> = 0,5) gilt als Klasse B (bei Sigmoid)

  • Verwenden Sie 2 Ausgabeknoten. Die Eingabe gehört zu der Klasse des Knotens mit dem höchsten Wert / der höchsten Wahrscheinlichkeit (argmax).

Gibt es Papiere, die dies (auch) diskutieren? Nach welchen bestimmten Schlüsselwörtern muss gesucht werden?

Diese Frage wurde bereits zuvor auf dieser Site gestellt. Siehe z. B. diesen Link ohne echte Antworten. Ich muss eine Auswahl treffen (Masterarbeit), damit ich einen Einblick in die Vor- / Nachteile / Einschränkungen jeder Lösung bekomme.


Ich denke, das OP der verknüpften Frage hat einen guten Punkt, der einzige Unterschied ist, dass Wahl 2 eine größere Anzahl von Parametern hat, flexibler ist, aber anfälliger für Überanpassung.
Dontloo

1
In der Udacity ML Nanodegree habe ich gelernt, dass es besser ist, einen Ausgabeknoten zu verwenden, wenn sich das Ergebnis gegenseitig ausschließt, nur weil das Netzwerk weniger Fehler aufweist, die es machen kann. Ich denke, es gibt keine Profis, die in diesem Fall 2 Ausgangsknoten verwenden, aber ich habe keine wissenschaftlichen Beweise dafür
CodingYourLife

Antworten:


25

Im zweiten Fall schreiben Sie wahrscheinlich über die Softmax-Aktivierungsfunktion. Wenn das stimmt, dann ist das Sigmoid nur ein Sonderfall der Softmax-Funktion. Das ist leicht zu zeigen.

y=11+ex=11+1ex=1ex+1ex=ex1+ex=exe0+ex

Wie Sie sehen können, ist Sigmoid dasselbe wie Softmax. Sie können sich vorstellen, dass Sie zwei Ausgänge haben, aber einer von ihnen hat alle Gewichte gleich Null und daher ist sein Ausgang immer gleich Null.

Die bessere Wahl für die binäre Klassifizierung ist die Verwendung einer Ausgabeeinheit mit Sigmoid anstelle von Softmax mit zwei Ausgabeeinheiten, da diese schneller aktualisiert wird.


Wenn Sie sagen, dass einer von ihnen alle Gewichte Null hat, hat das Modell während des Trainings nicht einmal einen der Klassen berücksichtigt? Können wir diesen Binärklassifikator in der Praxis tatsächlich mit nur einer Klasse von Trainingsdaten trainieren?
Deadcode

x>0x<0x0

1
Beachten Sie, dass es degenerierte Lösungen der Form gibt exp(x+alpha) / (exp(alpha) + exp(x+alpha))- tatsächlich eine unendliche Anzahl von ihnen -, die alle dasselbe Klassifizierungsergebnis liefern wie die mit Gewichten alle 0. Die Gewichte werden wahrscheinlich nicht alle Null sein, sondern werden stattdessen als degeneriert trainiert mit der Lösung, die alle 0 Gewichte hat. Vermeiden Sie die (sinnlosen und verschwenderischen) entarteten Lösungen, indem Sie nur ein Ausgangsneuron verwenden, wie es scheint.
Dan Nissenbaum

2

Algorithmen für maschinelles Lernen wie Klassifikatoren modellieren hier die Eingabedaten statistisch, indem sie die Wahrscheinlichkeiten der Eingabe bestimmen, die zu verschiedenen Kategorien gehören. Für eine beliebige Anzahl von Klassen wird normalerweise eine Softmax-Ebene an das Modell angehängt, damit die Ausgaben konstruktionsbedingt probabilistische Eigenschaften haben:

y=softmax(a)1ieai×[ea1,ea2,...,ean]

0yi1 for all i
y1+y2+...+yn=1

a

Dies gilt perfekt für zwei Klassen, man kann jedoch auch ein Neuron (anstelle von zwei) verwenden, vorausgesetzt, seine Ausgabe erfüllt:

0y1 for all inputs.
ay

sigmoid(a)σ(a)11+ea

nützliche mathematische Eigenschaften (Differenzierung, Begrenzung zwischen 0 und 1 usw.), Recheneffizienz und die richtige Steigung, so dass die Aktualisierung der Netzwerkgewichte zu Optimierungszwecken eine kleine, aber messbare Änderung der Ausgabe zur Folge hätte.

Fazit

Ich bin nicht sicher , ob @ itdxer Argumentation , dass zeigt softmax und sigmoid gleichwertig ist , wenn gültig, aber er ist recht Wahl 1 Neuron im Gegensatz zu 2 - Neuronen für binäre Klassifizierer , da weniger Parameter und Berechnung benötigt werden. Ich bin auch dafür kritisiert worden, zwei Neuronen für einen binären Klassifikator zu verwenden, da "es überflüssig ist".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.