2017-02-04 3 views
1

:)ReLU-Derivat in Backpropagation

Ich bin über Backpropagation in einem neuronalen Netzwerk, das ReLU verwendet. In einem früheren Projekt von mir, ich habe es in einem Netzwerk, das Sigmoid Aktivierungsfunktion verwendet, aber jetzt bin ich ein wenig verwirrt, da ReLU hat keine Ableitung.

Hier ist ein image über wie Gewicht5 zum Gesamtfehler beiträgt. In diesem Beispiel out/net = a * (1 - a), wenn ich Sigmoid-Funktion verwende.

Was soll ich anstelle von "a * (1 - a)" schreiben, damit die Backpropagation funktioniert?

Danke.

+0

Hängt vom tatsächlichen ReLU-Ausdruck ab. Es gibt mehrere ReLUs, die verwendet werden können. Dennoch ist es nur die Ableitung der ReLU-Funktion in Bezug auf ihr Argument. Und Sie können dies entweder von Hand oder unter Verwendung von z.B. Wolfram Alpha. Oder google es einfach. – zegkljan

Antwort

2

da ReLU keine Ableitung hat.

Nein, ReLU hat Derivate. Ich nahm an, dass Sie die ReLU-Funktion f(x)=max(0,x) verwenden. Es bedeutet, wenn x<=0 dann f(x)=0, sonst f(x)=x. Im ersten Fall, wenn x<0 so ergibt die Ableitung von f (x) in Bezug auf x Ergebnis f'(x)=0. Im zweiten Fall ist es klar, f'(x)=1 zu berechnen.

+0

Ich hatte das Gefühl, dass das die Lösung sein wird, aber ich war mir nicht sicher, besonders über 'f '(x) = 0'. Danke für die Antwort :) –

+3

Ich möchte nur sagen, dass das OP korrekt ist, von einem rein mathematischen Standpunkt aus, dass "ReLU hat keine Ableitung". Dies ist wegen eines Punktes in seiner Domäne wahr, der die Ableitung undefiniert macht. Das ist leicht zu sehen, wenn wir nur die Funktion visualisieren. Aber wir nehmen einfach eine Konvention an (d. H. Dass die Ableitung 0 bei x = 0 ist) und tun so, als ob die Funktion differenzierbar ist, aber das ist nicht genau richtig. – Bridgeburners

Verwandte Themen