Ritaglio gradiente durante l'allenamento di reti neurali profonde


10

Quando si vorrebbe eseguire il clipping gradiente durante l'allenamento di un RNN o CNN? Sono particolarmente interessato a quest'ultimo. Quale sarebbe un buon valore iniziale per il clipping? (ovviamente può essere sintonizzato)

Risposte:


4

Si desidera eseguire il ritaglio gradiente quando si riscontra il problema di sfumature sfumate o esplosione di sfumature. Tuttavia, per entrambi gli scenari, esistono soluzioni migliori:

  • Il gradiente di esplosione si verifica quando il gradiente diventa troppo grande e si ottiene un overflow numerico. Questo può essere facilmente risolto inizializzando i pesi della rete su valori più piccoli. Se questo non funziona, è probabile che ci sia un bug nel codice.

  • Il gradiente di fuga si verifica quando l'ottimizzazione si blocca in un punto di sella, il gradiente diventa troppo piccolo per consentire all'ottimizzazione di progredire. Questo può essere risolto usando la discesa gradiente con momentum o prop RMS o entrambi (noto anche come ottimizzatore Adam).

I valori iniziali per il limite superiore del ritaglio gradiente sarebbero qualcosa di più piccolo del numero più grande che la variabile può assumere. Per il limite inferiore, direi che è specifico del problema, ma forse inizia con qualcosa come 1e-10.


1
Non sono sicuro che il contesto di questa risposta debba escludere gli RNN, ma in caso contrario, entrambe le soluzioni proposte non sono migliori del ritaglio gradiente, specialmente nel caso degli RNN.
Alex R.

Mi dispiace stavo pensando di più nel contesto delle CNN, sentiti libero di modificare
Miguel,
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.