Perché ReLU viene utilizzato come funzione di attivazione?


19

Le funzioni di attivazione vengono utilizzate per introdurre non linearità nell'uscita lineare del tipo w * x + bin una rete neurale.

Che sono in grado di comprendere intuitivamente per le funzioni di attivazione come sigmoid.

Comprendo i vantaggi di ReLU, che sta evitando i neuroni morti durante la backpropagation. Tuttavia, non riesco a capire perché ReLU viene utilizzato come funzione di attivazione se il suo output è lineare?

L'intero punto di essere la funzione di attivazione non viene sconfitto se non introduce una non linearità?

Risposte:


19

In matematica una funzione viene considerato lineare quando il fucntion se per ogni ed nel dominio ha la seguente struttura: . Per definizione, ReLU è . Pertanto, se dividiamo il dominio da o la funzione è lineare. Tuttavia, è facile vedere che . Quindi per definizione ReLU non è lineare. f:UNBXyUNf(X)+f(y)=f(X+y)mun'X(0,X)(-,0][0,)f(-1)+f(1)f(0)

Tuttavia, ReLU è così vicino al lineare che questo spesso confonde le persone e si chiede come possa essere usato come un approssimatore universale. Nella mia esperienza, il modo migliore per pensarci è come fare le somme di Riemann. È possibile approssimare qualsiasi funzione continua con molti piccoli rettangoli. Le attivazioni ReLU possono produrre molti piccoli rettangoli. In pratica, in pratica, ReLU può creare forme piuttosto complicate e approssimare molti domini complicati.

Ho anche voglia di chiarire un altro punto. Come sottolineato da una risposta precedente, i neuroni non muoiono in Sigmoid, ma svaniscono. La ragione di ciò è perché al massimo la derivata della funzione sigmoide è .25. Quindi, dopo così tanti strati finisci per moltiplicare questi gradienti e il prodotto di numeri molto piccoli meno di 1 tende ad andare a zero molto rapidamente.

Quindi, se stai costruendo una rete di apprendimento profondo con molti livelli, le tue funzioni sigmoidi rimarranno sostanzialmente stagnanti piuttosto rapidamente e diventeranno più o meno inutili.

La chiave da asporto è la scomparsa viene dal moltiplicare i gradienti e non i gradienti stessi.


6

Comprendo i vantaggi di ReLU, che sta evitando i neuroni morti durante la backpropagation.

Questo non è del tutto vero. I neuroni non sono morti. Se usi attivazioni simili a sigmoidi, dopo alcune iterazioni il valore dei gradienti è saturo per la maggior parte dei neuroni. Il valore del gradiente sarà così piccolo e il processo di apprendimento avviene così lentamente. Si tratta di sfumature che stanno svanendo ed esplodendo che ha avuto funzioni di attivazione simili a sigmoidi. Al contrario, i neuroni morti possono verificarsi se si utilizza la ReLUnon linearità, che si chiama ReLU morente .

Non riesco a capire perché ReLU sia utilizzato come funzione di attivazione se il suo output è lineare

Sicuramente non è lineare. Come semplice definizione, la funzione lineare è una funzione che ha la stessa derivata per gli input nel suo dominio.

La funzione lineare è popolare in economia. È attraente perché è semplice e facile da gestire matematicamente. Ha molte applicazioni importanti. Le funzioni lineari sono quelle il cui grafico è una linea retta. Una funzione lineare ha la seguente forma:

y = f (x) = a + bx

Una funzione lineare ha una variabile indipendente e una variabile dipendente. La variabile indipendente è x e la variabile dipendente è y.

a è il termine costante o l'intercetta y. È il valore della variabile dipendente quando x = 0.

b è il coefficiente della variabile indipendente. È anche noto come pendenza e fornisce il tasso di variazione della variabile dipendente.

ReLUnon è lineare . La semplice risposta è che l' ReLUoutput non è una linea retta, si piega sull'asse x. Il punto più interessante è qual è la conseguenza di questa non linearità. In parole povere, le funzioni lineari consentono di sezionare il piano della feature usando una linea retta. Ma con la non linearità di ReLUs, è possibile creare curve di forma arbitraria sul piano della feature.

ReLUpuò avere uno svantaggio quale è il suo valore atteso. Non ci sono limiti per l'output di Relue il suo valore previsto non è zero. Tanhera più popolare che sigmoidperché il suo valore atteso è pari a zero e l'apprendimento in strati più profondi avviene più rapidamente. Sebbene ReLUnon abbia questo vantaggio, batch normalizationrisolve questo problema .

È inoltre possibile fare riferimento qui e qui per ulteriori informazioni.

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.