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.
Antworten:
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.
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.
quelle
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.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:
Dies gilt perfekt für zwei Klassen, man kann jedoch auch ein Neuron (anstelle von zwei) verwenden, vorausgesetzt, seine Ausgabe erfüllt:
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".
quelle