La normalizzazione batch significa che i sigmoidi funzionano meglio delle ReLU?


9

La normalizzazione in lotti e le ReLU sono entrambe soluzioni al problema del gradiente in via di estinzione. Se stiamo usando la normalizzazione in lotti, dovremmo quindi usare i sigmoidi? O ci sono caratteristiche delle ReLU che le rendono utili anche quando si utilizza batchnorm?

Suppongo che la normalizzazione effettuata in batchnorm invierà zero attivazioni negative. Ciò significa che batchnorm risolve il problema "dead ReLU"?

Ma la natura continua dell'abbronzatura e della logistica rimangono interessanti. Se sto usando batchnorm, tanh funzionerà meglio di ReLU?

Sono sicuro che la risposta dipende . Quindi, cosa ha funzionato nella tua esperienza e quali sono le caratteristiche salienti della tua applicazione?


Anche se il documento suggerisce di utilizzare BatchNorm prima dell'attivazione, è stato riscontrato in pratica che si ottengono soluzioni migliori se BN viene applicato dopo. Se non trascuro qualcosa che dovrebbe significare, che in quest'ultimo caso, BN non ha alcun effetto sull'attivazione. Ma, naturalmente, è una domanda aperta, se BN funzionerebbe meglio se applicato prima e con un'altra attivazione rispetto a ReLU. Secondo me no. Perché ReLU ha ancora altri vantaggi, come una derivazione più semplice. Ma sono anche curioso. Forse qualcuno ha fatto esperienze in questo campo.
oezguensi,

Risposte:


1

Vedi, il concetto di base alla base della normalizzazione in lotti è che (estratto da un articolo Medium) -

Normalizziamo il nostro livello di input regolando e ridimensionando le attivazioni. Ad esempio, quando abbiamo funzionalità da 0 a 1 e alcune da 1 a 1000, dovremmo normalizzarle per accelerare l'apprendimento. Se il livello di input ne sta beneficiando, perché non fare la stessa cosa anche per i valori nei livelli nascosti, che cambiano continuamente e ottenere 10 o più miglioramenti nella velocità di allenamento.

Leggi l'articolo qui.

Questo è il motivo per cui usiamo la normalizzazione in lotti. Ora arrivando alla tua domanda, vedi come l'output di sigmoid è vincoli tra 0 e 1, e che qual è il motto della normalizzazione batch. Se usiamo la normalizzazione di Bach con l'attivazione di sigmoid, allora sarà vincolata tra sigmoid (0) e sigmoid (1), cioè tra 0,5 e 0,73 ~ . Ma se utilizziamo ReLU con la normalizzazione in batch, l'output verrà distribuito su 0 a 1, il che è la cosa buona per noi, infine, vogliamo che l'output sia il più vario possibile. Quindi penso che ReLU sarà la scelta migliore tra le altre attivazioni.frun'c1/(1+1/e)


0

madman ha risposto correttamente alla tua domanda sulla normalizzazione batch e lasciami rispondere alla tua seconda parte secondo cui le funzioni continue possono sembrare interessanti ma relu è meglio di tutte e questa affermazione non è dalla mia parte MR. Hinton lo citò "eravamo persone stupide che usavano il sigmoide come una funzione di attivazione e ci sono voluti 30 anni perché si rendesse conto che senza capire la sua forma non lascerà mai andare il vostro neurone nello stato di apprendimento, è sempre saturo, quindi è derivato e ha chiamato se stesso e tutte le altre persone sbalordite ". Quindi scegliere una funzione di attivazione semplicemente perché è continua e non sta guardando come influenzerà il tuo neurone"

Nota: se stai studiando reti neurali, ti consiglio di pensare alle reti neurali come funzioni composte grandi e profonde in modo da capire cosa funziona e perché funziona è necessario capire come una rete neurale crea una varietà di dati in una dimensione superiore "che rappresenta "quei dati in cui la bontà del molteplice dipende dalla scelta delle funzioni e da come una funzione trasforma le altre funzioni in uscita quando le vengono date come input.

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.