Ich studiere und versuche, Faltungs-Neuronale Netze zu implementieren, aber ich nehme an, diese Frage gilt für mehrschichtige Perzeptrone im Allgemeinen.
Die Ausgangsneuronen in meinem Netzwerk stellen die Aktivierung jeder Klasse dar: Das aktivste Neuron entspricht der vorhergesagten Klasse für eine bestimmte Eingabe. Um die Cross-Entropie-Kosten für das Training zu berücksichtigen, füge ich am Ende des Netzwerks eine Softmax-Schicht hinzu, sodass der Aktivierungswert jedes Neurons als Wahrscheinlichkeitswert interpretiert wird.
Meine Frage ist: Sollten die Neuronen in der Ausgabeschicht eine nichtlineare Funktion auf die Eingabe anwenden? Meine Intuition ist, dass es nicht notwendig ist:
- Wenn die Eingabe in das te Ausgangsneuron das Punktprodukt zwischen einem Vektor (der aus der vorherigen Schicht stammt) und den Gewichten für dieses Neuron ist,
- und wenn ich eine monotone nichtlineare Funktion wie das Sigmoid oder die ReLU verwende
- dann entspricht der größere Aktivierungsausgang immer noch dem größten , so dass unter diesem Gesichtspunkt die nichtlineare Funktion die Vorhersage nicht ändern würde.
Stimmt etwas mit dieser Interpretation nicht? Gibt es einige Trainingsfaktoren, die ich übersehen habe und die die Nichtlinearität der Ausgabe erforderlich machen?
Und wenn ich recht habe, würde sich etwas ändern, wenn ich anstelle der Sigmoid-Funktion die ReLU -Funktion verwende, die nicht streng monoton ist?
BEARBEITEN
In Bezug auf Karels Antwort, deren Antwort im Grunde "es kommt darauf an" war, hier eine detailliertere Beschreibung meines Netzwerks und Zweifel:
Angenommen, ich habe N versteckte Schichten und meine Ausgabeschicht ist nur eine Softmax-Schicht über einer Reihe von Neuronen, die Klassen darstellen (meine erwartete Ausgabe ist also die Wahrscheinlichkeit, dass die Eingabedaten zu jeder Klasse gehören). Angenommen, die ersten N-1-Schichten haben nichtlineare Neuronen. Was ist der Unterschied zwischen der Verwendung nichtlinearer und linearer Neuronen in der N-ten verborgenen Schicht?
Antworten:
Sie sollten für die letzte Ebene vor der Softmax-Klassifizierung keine Nichtlinearität verwenden. Die ReLU-Nichtlinearität (die jetzt fast ausschließlich verwendet wird) wirft in diesem Fall einfach Informationen weg, ohne zusätzlichen Nutzen hinzuzufügen. Sie können sich die Caffe-Implementierung des bekannten AlexNet ansehen, um zu erfahren, was in der Praxis gemacht wird.
quelle
Möglicherweise möchten Sie einen negativen Wert an die Softmax-Funktion senden, um anzuzeigen, dass ein Ereignis eine geringe Wahrscheinlichkeit hat. Wenn Sie die Eingabewerte an ein Relu übergeben, leitet das Netzwerk keinen Gradienten durch die Einheiten, bei denen die Eingabe in das Relu negativ ist. Während sich die Ausdruckskraft des Softmax nicht ändert, wird es das Lernen wahrscheinlich viel schwieriger machen.
quelle
Die Antwort lautet nicht Ja oder Nein. Dies hängt stark von Ihren Erwartungen an Ihr Netzwerk ab. Ich gehe davon aus, dass Sie einen guten Klassifikator haben möchten, der möglicherweise auf eine Vielzahl von Problemen anwendbar ist. Daher kann die Nichtlinearität hilfreich sein, um nicht triviale Klassen zu erfassen. Die Nichtlinearität kann entweder in der letzten Schicht vor der Soft-Max-Schicht oder in der vorhergehenden Schicht enthalten sein.
quelle