Come verificare la presenza di neuroni relu morti


10

Contesto: durante l'adattamento delle reti neurali all'attivazione di relu, ho scoperto che a volte la previsione diventa quasi costante. Credo che ciò sia dovuto alla morte dei neuroni relu durante l'allenamento, come indicato qui. ( Qual è il problema "morire ReLU" nelle reti neurali? )

Domanda: Quello che spero di fare è implementare un controllo nel codice stesso per verificare se i neuroni sono morti. Successivamente, il codice potrebbe rimontare la rete se necessario.

Come tale, qual è una buona citeria per verificare la presenza di neuroni morti? Attualmente sto pensando di verificare la bassa varianza nella previsione come citeria.

Se aiuta, sto usando keras.


Aggiungi un riepilogo per i pregiudizi in tensorboard: tensorflow.org/get_started/summaries_and_tensorboard
Emre

Risposte:


6

Un ReLU morto significa praticamente che il suo valore dell'argomento è negativo in modo tale che il gradiente rimanga a 0; non importa come lo alleni da quel momento in poi. Puoi semplicemente dare un'occhiata al gradiente durante l'allenamento per vedere se un ReLU è morto o no.

In pratica potresti voler semplicemente usare ReLU che perdono, cioè invece di f (x) = max (0, x) imposti f (x) = x se x> 0 e f (x) = 0,01x se x <= 0 In questo modo permetti sempre un piccolo gradiente diverso da zero e l'unità non dovrebbe più rimanere completamente bloccata nell'allenamento.


1

Un neurone morto è un neurone che non si aggiorna durante l'allenamento, ad es. 0 gradiente.

Keras consente l' estrazione del gradiente direttamente per una determinata riga di dati. (Un altro bell'esempio)

Oppure puoi estrarre i pesi dei neuroni e calcolare tu stesso il gradiente
(es. Per relu, argomento negativo per relu -> 0 gradiente).

Sfortunatamente, il gradiente è specifico del punto dati. Solo se il gradiente è 0 per ogni riga di dati di allenamento, puoi essere sicuro che il neurone non si aggiornerà per tutti i minibatch durante un'epoca di allenamento.

La perdita può essere una strategia utile poiché non esiste alcun valore per la perdita che ha un gradiente uguale a 0.

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.