Quali sono i vantaggi di ReLU rispetto alla funzione sigmoide nelle reti neurali profonde?


141

Lo stato dell'arte della non linearità consiste nell'utilizzare unità lineari rettificate (ReLU) invece della funzione sigmoide nella rete neurale profonda. Quali sono i vantaggi?

So che addestrare una rete quando si utilizza ReLU sarebbe più veloce ed è più ispirato al biologico, quali sono gli altri vantaggi? (Cioè, eventuali svantaggi dell'utilizzo di sigmoid)?


Avevo l'impressione che consentire la non linearità nella tua rete fosse un vantaggio. Ma non lo vedo in nessuna delle due risposte sotto ...
Monica Heddneck,

2
@MonicaHeddneck sia ReLU che sigmoid sono non lineari ...
Antoine,

Risposte:


130

Due ulteriori vantaggi principali delle ReLU sono la scarsità e una ridotta probabilità di sfumatura a scomparsa. Ma prima ricorda che la definizione di ReLU è dove .h=max(0,a)a=Wx+b

Uno dei maggiori vantaggi è la ridotta probabilità che il gradiente scompaia. Ciò si verifica quando . In questo regime il gradiente ha un valore costante. Al contrario, il gradiente dei sigmoidi diventa sempre più piccolo all'aumentare del valore assoluto di x. Il gradiente costante di ReLU si traduce in un apprendimento più rapido.a>0

L'altro vantaggio di ReLUs è la scarsità. La scarsità sorge quando . Più tali unità esistono in un livello, più sparsa è la rappresentazione risultante. D'altra parte, i sigmoidi hanno sempre la probabilità di generare un valore diverso da zero con conseguente rappresentazione densa. Le rappresentazioni sparse sembrano essere più vantaggiose delle rappresentazioni dense.a0


2
Quando dici il gradiente, intendi rispetto ai pesi o all'input x? @DaemonMaker
MAS

4
Rispetto ai pesi. Algoritmi di apprendimento basati sul gradiente che assumono sempre il gradiente rispetto ai parametri dello studente, ovvero pesi e distorsioni in una NN.
DaemonMaker

2
Cosa intendi con "rappresentazioni" "dense" e "sparse"? Le query su "reti neurali sparse di rappresentanza" di Google non sembrano fornire nulla di rilevante.
Ciao Angelo

6
"Le rappresentazioni sparse sembrano essere più vantaggiose delle rappresentazioni dense." Potresti fornire una fonte o una spiegazione?
Rohan Saxena,

1
Non capisco come questa risposta sia assolutamente corretta. La "ridotta probabilità che il gradiente scompaia" lascia a desiderare. ReLu è ZERO per sufficientemente piccolo . Durante l'apprendimento, i gradienti svaniranno per alcuni neuroni quando sei in questo regime. In effetti, è chiaramente inevitabile, perché altrimenti la tua rete sarà lineare. La normalizzazione in batch risolve questo problema principalmente. Questo non menziona nemmeno il motivo più importante: ReLu e i loro gradienti. sono estremamente veloci da calcolare, rispetto a un sigmoide. x
Alex R.

65

Vantaggio:

  • Sigmoid: attivazione senza far esplodere
  • Relu: non sfumatura sfumata
  • Relu: più efficiente dal punto di vista computazionale rispetto alle funzioni simili a Sigmoid poiché Relu deve solo selezionare max (0, ) e non eseguire costose operazioni esponenziali come in Sigmoidsx
  • Relu: in pratica, le reti con Relu tendono a mostrare migliori prestazioni di convergenza rispetto a sigmoid. ( Krizhevsky et al. )

Svantaggio:

  • Sigmoide: tende a svanire il gradiente (perché esiste un meccanismo per ridurlo come aumento " ", dove " " è l'input di una funzione sigmoide. Gradiente di sigmoide: . Quando " " diventa infinitamente grande, ).aaS(a)=S(a)(1S(a))aS(a)=S(a)(1S(a))=1×(11)=0

  • Relu: tende a far saltare l'attivazione (non esiste alcun meccanismo per limitare l'output del neurone, poiché " " è l'output stesso)a

  • Relu: Morire Relu problema - se troppe attivazioni scendono al di sotto dello zero, la maggior parte delle unità (neuroni) in rete con Relu produrrà semplicemente zero, in altre parole, morirà e quindi vietando l'apprendimento (questo può essere gestito, in una certa misura, usando invece Leaky-Relu.)

7
Potresti trovare utile usare la composizione matematica con Latex mettendo i simboli del dollaro attorno alle tue equazioni, ad esempio $x$produce . x
Silverfish

Relu: non sfumatura sfumata. Eh? per tutti . Relu(ax+b)=0x<b/a
Alex R.

40

Basta integrare le altre risposte:

Gradienti di fuga

Le altre risposte hanno ragionevolmente sottolineato che maggiore è l'input (in valore assoluto) minore è il gradiente della funzione sigmoide. Ma probabilmente un effetto ancora più importante è che la derivata della funzione sigmoide è SEMPRE più piccola di una . In realtà è al massimo 0,25!

Il lato negativo di questo è che se hai molti livelli, moltiplichi questi gradienti e il prodotto con molti valori inferiori a 1 va a zero molto rapidamente.

Poiché lo stato dell'arte di Deep Learning ha dimostrato che un maggior numero di livelli aiuta molto, quindi questo svantaggio della funzione Sigmoid è un killer di gioco. Semplicemente non puoi fare Deep Learning con Sigmoid.

D'altra parte, il gradiente della funzione ReLu è per o per . Ciò significa che puoi mettere tutti i livelli che vuoi, perché moltiplicare i gradienti non svanirà né esploderà.0a<01a>0


10
Questa è la risposta che stavo cercando. Quando le persone parlano di "gradienti in via di estinzione" non si può smettere di chiedersi "Il gradiente di ReLu è esattamente 0 per metà della sua portata. Non è questo 'evanescenza'". Il modo in cui descrivi il problema ricordandoci che i gradienti sono moltiplicati su molti livelli, porta molta chiarezza.
Boris Gorelik,

3
@ guilherme-de-lazari ha suggerito la correzione nell'ultima riga - il valore di relu è a per uno> 0 ma stai parlando di gradiente che è 1 per uno> 0
saurabh

4
Se questo fosse il motivo principale, allora non potremmo semplicemente ridimensionare il sigmoide su 1 / (1 + exp (-4x))? Quindi il derivato è al massimo 1 (o ridimensiona ancora di più, per darci opzioni sopra e sotto 1). Sospetto che ciò peggiorerebbe molto, perché il ridimensionamento riduce anche l'area in cui il derivato è distinguibile da 0. Ma non sono sicuro che questa risposta narra l'intera storia.
Peter,

5
Questa risposta è senza senso. La derivata di un sigmoide con parametro costante 1 è inferiore a 1. Ma più in generale è , che può avere una derivazione arbitrariamente grande (basta prendere per essere davvero grande, quindi il sigmoide passa rapidamente da 0 a 1). 1/(1+exp(ax))a
Alex R.

7
Inoltre PUOI fare l'apprendimento approfondito con i sigmoidi, devi solo normalizzare gli input, ad esempio tramite la normalizzazione batch. Questo centralizzerà i tuoi input per evitare di saturare il sigmoid. Nel documento originale sulla normalizzazione in lotti, la rete neurale di attivazione sigmoidea è quasi alla pari con ReLus: arxiv.org/pdf/1502.03167.pdf
Alex R.

7

Un vantaggio per ReLU diverso dall'evitare il problema dei gradienti di fuga è che ha un tempo di esecuzione molto più basso. max (0, a) viene eseguito molto più velocemente di qualsiasi funzione sigmoide (funzione logistica ad esempio = 1 / (1 + e ^ (- a)) che utilizza un esponente che è lento in termini di calcolo se fatto spesso). Questo è vero sia per la propagazione del feed forward che per quella posteriore poiché il gradiente di ReLU (se un <0, = 0 else = 1) è anche molto facile da calcolare rispetto al sigmoid (per curva logistica = e ^ a / ((1 + e ^ a) ^ 2)).

Sebbene ReLU abbia lo svantaggio di morire cellule che limita la capacità della rete. Per ovviare a questo, basta usare una variante di ReLU come ReLU che perde, ELU, ecc. Se si nota il problema sopra descritto.


1
+1. Questa è una delle uniche risposte corrette qui. Puoi anche utilizzare la normalizzazione batch per centralizzare gli input per contrastare i neuroni morti.
Alex R.

2

Un'ulteriore risposta da completare nel dibattito sulle prestazioni Sparse vs Dense .

Non pensare più a NN, pensa solo alle operazioni lineari di algebra e matrice, perché le propagazioni avanti e indietro sono una serie di operazioni di matrice.

Ora ricorda che esistono molti operatori ottimizzati da applicare alla matrice sparsa e quindi l'ottimizzazione di tali operazioni nella nostra rete potrebbe migliorare notevolmente le prestazioni dell'algoritmo.

Spero che possa aiutare alcuni di voi ragazzi ...


1

Il vantaggio principale è che la derivata di ReLu è 0 o 1, quindi la sua moltiplicazione non farà sì che pesi che sono più lontani dal risultato finale della funzione di perdita soffrano del problema del gradiente di fuga:

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.