Paket 'neuralnet' in R, rektifizierte lineare Einheit (ReLU) Aktivierungsfunktion?

8

Ich versuche, andere Aktivierungsfunktionen als die vorimplementierten "logistic" und "tanh" im R-Paket-Neuralnetz zu verwenden. Genauer gesagt würde ich gerne rektifizierte lineare Einheiten (ReLU) f (x) = max {x, 0} verwenden. Bitte sehen Sie meinen Code unten.

Ich glaube, dass ich benutzerdefinierte Funktionen verwenden kann, wenn sie beispielsweise ()

definiert sind %Vor%

Aber wenn ich max (x, 0) anstelle von x * 2 setze, dann sagt mir R, dass 'max nicht in der Derivatentabelle ist' und dasselbe für '& gt;' Operator. Daher suche ich nach einer vernünftigen Problemumgehung, da ich denke, dass die numerische Integration von max in diesem Fall kein Problem wäre.

%Vor%

Irgendwelche Ideen? Ich bin etwas verwirrt, da ich nicht glaube, dass das neuralnet -Paket eine analytische Differenzierung vornehmen würde.

    
AJGronevelt 30.12.2015, 16:02
quelle

2 Antworten

11

Die Interna des Pakets neuralnet versuchen, jede bereitgestellte Funktion nach act.fct zu differenzieren. Sie können den Quellcode hier sehen.

In Zeile 211 finden Sie den folgenden Codeblock:

%Vor%

Die Funktion differentiate ist eine komplexere Verwendung der Funktion deriv , die Sie auch im obigen Quellcode sehen können. Daher ist es derzeit nicht möglich, max(0,x) für act.fct bereitzustellen. Es würde eine Ausnahme im Code erfordern, um die ReLU zu erkennen, und weiß die Ableitung. Es wäre eine großartige Übung, um den Quellcode zu erhalten, fügen Sie dies hinzu und senden Sie es an die Betreuer zu erweitern (aber das kann ein bisschen viel sein).

In Bezug auf eine sinnvolle Problemumgehung könnten Sie jedoch softplus verwenden ist eine glatte Annäherung der ReLU. Ihre benutzerdefinierte Funktion würde folgendermaßen aussehen:

%Vor%

Sie können diese Approximation auch in R anzeigen:

%Vor%

    
cdeterman 30.12.2015, 16:29
quelle
3

Sie können die max-Funktion mit einer differenzierbaren Funktion approximieren, zB:

%Vor%

Die Variable k bestimmt die Genauigkeit der Approximation.

Weitere Näherungen können aus Gleichungen im Abschnitt "Analytische Approximationen" abgeleitet werden: Ссылка

    
yrjo 30.12.2015 16:29
quelle