Beste Antwort
ReLU ist definiert als f (x) = max (0, x). Der Softplus ist sein Differentialersatz und ist definiert als f (x) = ln (1 + e ^ x).
Sowohl ReLU als auch Softplus sind weitgehend ähnlich, außer in der Nähe von 0, wo der Softplus verlockend glatt und differenzierbar ist. Es ist viel einfacher und effizienter, ReLU und seine Ableitung zu berechnen als für die Softplus-Funktion, deren Formulierung log (.) Und exp (.) Enthält. Interessanterweise ist die Ableitung der Softplus-Funktion die logistische Funktion: f „(x) = \ frac {1} {1 + e ^ {- x}}.
Berechnen Sie beim Deep Learning die Aktivierungsfunktion und seine Ableitung ist so häufig wie Addition und Subtraktion in der Arithmetik. Durch Umschalten auf ReLU sind die Vorwärts- und Rückwärtsdurchläufe viel schneller, während die nichtlineare Natur der Aktivierungsfunktion beibehalten wird, die erforderlich ist, damit tiefe neuronale Netze nützlich sind.
Antwort
Der springende Punkt einer Aktivierungsfunktion ist, nichtlinear zu sein.
Lassen Sie mich Erklären Sie, warum. Wenn Sie ein Netzwerk mit mehreren Schichten haben (so genanntes „tiefes“ gegen ein „flaches“ Netzwerk), kann Ihr Modell möglicherweise lernen, viel komplexere Beispiele zu erkennen oder zu handhaben. Während des Betriebs würde Ihr Netzwerk mehr Verbindungen verwenden zwischen Gewichten (und höchstwahrscheinlich mehr Gewichten). Wenn Sie die Berechnungen durchführen, bedeutet ein Großteil davon, dass Sie tatsächlich Zahlen multiplizieren und addieren, wie zum Beispiel:
y = f (W x + b).
wobei f (\ cdot) eine Aktivierungsfunktion ist.
Wenn Sie die Ebenen „kaskadieren“, wird die Ausgabe jeder Ebene zur Eingabe für die nächste. Für 2 Schichten zum Beispiel:
y = x\_2 = f (W\_2 x\_1 + b\_2) = f (W\_2 f (W\_1 x\_0 + b\_1) + b\_2).
Wenn jedoch f (\ cdot) war eine lineare Funktion f (x) = \ alpha x + \ beta, dann würde das gesamte Netzwerk zu einem einschichtigen Netzwerk „zusammenbrechen“, einfach weil es beliebig ist Die lineare Kombination linearer Funktionen ist selbst eine lineare Funktion.
Die obige Gleichung würde Folgendes ergeben:
x\_2 = \ alpha (W\_2 (\ alpha (W\_1 x\_0 + b\_1)) + \ beta) + b\_2) + \ beta = \ alpha ^ 2 W\_1 W\_2 x\_0 + \ alpha ^ 2 W\_1 W\_2 b\_1 + \ alpha ^ 2 W\_2 \ beta + \ alpha W\_2 b\_1 + \ beta = \ alpha „x\_0 + \ beta „.
Dies ist so, als ob Sie ein Single-Layer-Netzwerk mit leicht unterschiedlichen Gewichten hätten.
Jetzt führt ReLU die Nichtlinearität ein, was bedeutet, dass die obige Anweisung nicht mehr gilt. Der Optimierer muss sich also „mehr anstrengen“, um das Gewicht wirklich zu trainieren und alles zum Laufen zu bringen. Es gibt natürlich auch andere nichtlineare Funktionen (z. B. Sigmoid, Tanh usw.), aber der springende Punkt ist, dass sie nichtlinear sein müssen.
Schließlich basiert das gerade geschriebene Beispiel auf einem einfachen, dicht verbundenen Netzwerk, aber ich denke, es erstreckt sich auch auf andere Fälle.