Was sind die Vorteile von ReLU gegenüber der Sigmoidfunktion in tiefen neuronalen Netzen?


141

Der Stand der Technik der Nichtlinearität ist die Verwendung von gleichgerichteten Lineareinheiten (ReLU) anstelle der Sigmoidfunktion in einem tiefen neuronalen Netzwerk. Was sind die Vorteile?

Ich weiß, dass das Trainieren eines Netzwerks bei Verwendung von ReLU schneller wäre, und es ist biologisch inspirierter. Was sind die anderen Vorteile? (Das heißt, irgendwelche Nachteile der Verwendung von Sigmoid)?


Ich hatte den Eindruck, dass die Nichtlinearität in Ihrem Netzwerk von Vorteil ist. Aber ich sehe das in keiner der folgenden Antworten ...
Monica Heddneck

2
@MonicaHeddneck beide ReLU und Sigmoid sind nichtlinear ...
Antoine

Antworten:


130

a = W x + bh=max(0,a)a=Wx+b

Ein Hauptvorteil ist die verringerte Wahrscheinlichkeit, dass der Gradient verschwindet. Dies entsteht, wenn . In diesem Bereich hat der Gradient einen konstanten Wert. Im Gegensatz dazu wird der Gradient von Sigmoiden mit zunehmendem Absolutwert von x immer kleiner. Der konstante Gradient der ReLUs führt zu einem schnelleren Lernen.a>0

Der andere Vorteil von ReLUs ist die Sparsamkeit. Sparsity entsteht, wenn . Je mehr solche Einheiten in einer Ebene vorhanden sind, desto spärlicher ist die resultierende Darstellung. Sigmoide hingegen erzeugen wahrscheinlich immer einen Wert ungleich Null, was zu dichten Darstellungen führt. Sparse Repräsentationen scheinen vorteilhafter zu sein als dichte Repräsentationen.a0


2
Wenn Sie die Steigung sagen, meinen Sie in Bezug auf Gewichte oder die Eingabe x? @DaemonMaker
MAS

4
In Bezug auf die Gewichte. Gradientenbasierte Lernalgorithmen nehmen immer den Gradienten in Bezug auf die Parameter des Lernenden, dh die Gewichte und Vorspannungen in einer NN.
DaemonMaker

2
Was meinst du mit "dichten" und "spärlichen" "Darstellungen"? Eine Abfrage bei Google "Neuronale Netze mit geringer Repräsentation" scheint nicht relevant zu sein.
Hi-Angel

6
"Spärliche Darstellungen scheinen vorteilhafter zu sein als dichte Darstellungen." Können Sie eine Quelle oder eine Erklärung angeben?
Rohan Saxena

1
Ich verstehe nicht, wie diese Antwort überhaupt richtig ist. Die "verringerte Wahrscheinlichkeit des Verschwindens des Gradienten" lässt zu wünschen übrig. Die ReLu ist NULL für ausreichend kleines . Während des Lernens verschwinden die Gradienten für bestimmte Neuronen, wenn Sie sich in diesem Regime befinden. In der Tat ist es eindeutig unvermeidlich, da Ihr Netzwerk sonst linear sein wird. Die Batch-Normalisierung löst dies meistens. Dabei wird nicht einmal der wichtigste Grund genannt: ReLus und ihre Farbverläufe. sind im Vergleich zu Sigmoid extrem schnell zu berechnen. x
Alex R.

65

Vorteil:

  • Sigmoid: Aktivierung nicht in die Luft jagen
  • Relu: Gradient verschwindet nicht
  • Relu: Besser recheneffizient als Sigmoid-ähnliche Funktionen, da Relu nur das Maximum (0, ) auswählen und keine teuren Exponentialoperationen wie in Sigmoids ausführen mussx
  • Relu: In der Praxis zeigen Netzwerke mit Relu tendenziell eine bessere Konvergenzleistung als Sigmoid. ( Krizhevsky et al. )

Nachteil:

  • Sigmoid: Neigt dazu, den Gradienten zu verschwinden (weil es einen Mechanismus gibt, um den Gradienten als " " -Zunahme zu verringern , wobei " " die Eingabe einer Sigmoid-Funktion ist. Sigmoid-Gradient: . Wenn " " unendlich groß wird, ist ).a S ' ( a ) = S ( a ) ( 1 - S ( a ) ) a S ' ( a ) = S ( a ) ( 1 - S ( a ) ) = 1 × ( 1 - 1 ) = 0aaS(a)=S(a)(1S(a))aS(a)=S(a)(1S(a))=1×(11)=0

  • Relu: neigen dazu, die Aktivierung in die Luft zu jagen (es gibt keinen Mechanismus, der die Ausgabe des Neurons einschränkt, da " " selbst die Ausgabe ist)a

  • Relu: Sterbendes Relu-Problem - Wenn zu viele Aktivierungen unter Null fallen, geben die meisten Einheiten (Neuronen) im Netzwerk mit Relu einfach Null aus, dh sie sterben und verhindern so das Lernen. stattdessen Leaky-Relu verwenden.)

7
Es kann hilfreich sein, den mathematischen Satz mit Latex zu verwenden, indem Sie Ihre Gleichungen mit Dollarzeichen versehen, z . B.$x$ erzeugen . x
Silverfish

Relu: Gradient verschwindet nicht. Huh? für alle . x < - b / aRelu(ax+b)=0x<b/a
Alex R.

40

Ergänzen Sie einfach die anderen Antworten:

Verschwindende Farbverläufe

Die anderen Antworten weisen zu Recht darauf hin, dass der Gradient der Sigmoidfunktion umso kleiner ist, je größer die Eingabe (in absoluten Werten) ist. Ein wahrscheinlich noch wichtigerer Effekt ist jedoch, dass die Ableitung der Sigmoidfunktion IMMER kleiner als eins ist . In der Tat ist es höchstens 0,25!

Die Kehrseite davon ist, dass Sie bei vielen Ebenen diese Verläufe multiplizieren und das Produkt vieler kleiner als 1 Werte sehr schnell auf Null geht.

Da der Stand der Technik für Deep Learning gezeigt hat, dass mehr Ebenen viel bewirken, ist dieser Nachteil der Sigmoid-Funktion ein Spielekiller. Deep Learning ist mit Sigmoid einfach nicht möglich.

Andererseits ist der Gradient der ReLu-Funktion entweder für oder für . Das bedeutet, dass Sie so viele Ebenen einfügen können, wie Sie möchten, da das Multiplizieren der Farbverläufe weder verschwindet noch explodiert.a < 0 1 a > 00a<01a>0


10
Dies ist die Antwort, nach der ich gesucht habe. Wenn von "verschwindenen Verläufen" die Rede ist, wundert man sich immer wieder: "ReLus Verlauf ist genau 0 für die Hälfte seiner Reichweite. Ist das nicht" verschwinden "?" Die Art und Weise, wie Sie das Problem beschreiben, indem Sie uns daran erinnern, dass Farbverläufe über viele Ebenen multipliziert werden, bringt viel Klarheit.
Boris Gorelik

3
@ guilherme-de-lazari schlug eine Korrektur in der letzten Zeile vor - Wert von relu ist a für a> 0, aber Sie sprechen von einem Gradienten von 1 für a> 0
saurabh

4
Wenn dies der Hauptgrund wäre, könnten wir dann das Sigma nicht einfach auf 1 / (1 + exp (-4x)) skalieren? Dann ist das Derivat höchstens 1 (oder skalieren Sie noch mehr, um Optionen über und unter 1 zu erhalten). Ich vermute, dass dies viel schlechter abschneiden würde, da durch die Neuskalierung auch der Bereich verringert wird, in dem das Derivat von 0 unterschieden werden kann. Aber ich bin nicht sicher, ob diese Antwort die ganze Geschichte erzählt.
Peter

5
Diese Antwort ist Unsinn. Die Ableitung eines Sigmoid mit konstantem Parameter 1 ist kleiner als 1. Im Allgemeinen ist es jedoch , das eine willkürlich große Ableitung haben kann (nimm einfach , um wirklich groß zu sein, also das Sigmoid) geht schnell von 0 auf 1). a1/(1+exp(ax))a
Alex R.

7
Außerdem KÖNNEN Sie mit Sigmoids tiefgreifendes Lernen durchführen. Sie müssen lediglich die Eingaben normalisieren, z. B. über die Stapel-Normalisierung. Dadurch werden Ihre Eingaben zentralisiert, um eine Sättigung des Sigmoid zu vermeiden. In der Originalarbeit zur Batch-Normalisierung ist das neuronale Netz für die Sigmoid-Aktivierung nahezu identisch mit ReLus: arxiv.org/pdf/1502.03167.pdf
Alex R.,

7

Ein anderer Vorteil von ReLU als das Vermeiden des Problems des Verschwindens von Verläufen ist, dass es eine viel geringere Laufzeit hat. max (0, a) läuft viel schneller als jede Sigmoid-Funktion (logistische Funktion zum Beispiel = 1 / (1 + e ^ (- a)), die einen Exponenten verwendet, der bei häufiger Ausführung nur langsam berechnet wird). Dies gilt sowohl für die Vorwärts- als auch für die Rückwärtsausbreitung, da der Gradient von ReLU (wenn a <0, = 0, sonst = 1) im Vergleich zu Sigmoid (für logistische Kurve = e ^ a / ((1 + e)) ebenfalls sehr einfach zu berechnen ist ^ a) ^ 2)).

Obwohl ReLU den Nachteil hat, dass Zellen absterben, was die Kapazität des Netzwerks einschränkt. Um dies zu überwinden, verwenden Sie einfach eine Variante von ReLU, wie z. B. undichte ReLU, ELU usw., wenn Sie das oben beschriebene Problem bemerken.


1
+1. Dies ist eine der einzig richtigen Antworten. Sie können die Batch-Normalisierung auch verwenden, um Eingaben zu zentralisieren und toten Neuronen entgegenzuwirken.
Alex R.

2

Eine zusätzliche Antwort auf die Debatte über die Leistung von Sparse vs Dense .

Denken Sie nicht mehr an NN, sondern nur an lineare Algebra und Matrixoperationen, da Vorwärts- und Rückwärtspropagationen eine Reihe von Matrixoperationen sind.

Denken Sie jetzt daran, dass es viele optimierte Operatoren gibt, die auf eine dünne Matrix angewendet werden können, und dass die Optimierung dieser Operationen in unserem Netzwerk die Leistung des Algorithmus erheblich verbessern kann.

Ich hoffe, das könnte einigen von euch helfen ...


1

Der Hauptvorteil besteht darin, dass die Ableitung von ReLu entweder 0 oder 1 ist, sodass bei Multiplikation mit ReLu keine Gewichte auftreten, die weiter vom Endergebnis der Verlustfunktion entfernt sind.

Bildbeschreibung hier eingeben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.