Cosa causa improvvisi cali degli errori di allenamento / test durante l'allenamento di una rete neurale?


18

Ho visto trame di errore di test / allenamento improvvisamente cadere a certe epoche alcune volte durante l'allenamento della rete neurale, e mi chiedo che cosa causi questi salti di prestazione:

Errore del test ResNet

Questa immagine è tratta da Kaiming He Github, ma trame simili appaiono in molti giornali.


Un documento correlato: Smith et al. 2018 Non decadere il tasso di apprendimento, aumentare le dimensioni del lotto, openreview.net/forum?id=B1Yy1BxCZ
amoeba

Risposte:


7

Hanno cambiato il tasso di apprendimento. Nota che il calo è esattamente a 30 e 60 epoche, ovviamente impostato manualmente da qualcuno.


Nella sezione 3.4, spiega che il tasso di apprendimento è diviso per 10 quando l'errore plateau
xiawi

2

Pensa al "panorama dell'ottimizzazione". Ad esempio, se avessi una rete con solo due pesi, potresti tracciare tutte le combinazioni di questi due pesi su una superficie, dove l'altezza in ciascun punto rappresenta la quantità di errore che la funzione di costo restituisce se la usi (x, y ) coordinati come i tuoi due pesi. Stai cercando di spostarti nel punto più basso su questa superficie per ottenere il livello più basso di errore.
Il problema a volte è che la superficie può diventare piuttosto folle, specialmente nelle reti con milioni di parametri anziché solo due. Puoi rimanere bloccato in punti di sella in cui i progressi vengono rallentati, e poi improvvisamente la fionda viene lanciata indietro in una collina.
Ecco un'animazione che aiuta a visualizzarlo. Come puoi vedere, gli algoritmi più semplici di discesa del gradiente si bloccano in queste posizioni molto più facilmente.
inserisci qui la descrizione dell'immagine

Potrebbero esserci anche altre cause per questo, ma questa è quella che senti più comunemente. Potrebbe essere possibile che una rete possa avere un gruppo di unità che ottengono attivazioni sature (o, nel caso di relu, un'unità che viene attivata solo da un numero molto piccolo di input di allenamento) e quando un'unità esce dalla saturazione essa scatena una reazione a catena che sposta il resto fuori dalla saturazione e i pesi improvvisamente ottengono un aumento del flusso gradiente? Non ho esaminato nulla del genere, ma sarei interessato se qualcuno avesse altri motivi da aggiungere.


1
-1. Questo non risponde alla domanda, o almeno non è chiaro come lo faccia e perché ciò che hai scritto sia rilevante. Perché diminuire il tasso di apprendimento ne ricaverebbe uno da un punto di sella?
ameba,

Non è nemmeno chiaro che l'animazione sia corretta, poiché SGD - per definizione - vede una diversa superficie di ottimizzazione ad ogni iterazione. In questo grafico, la superficie di ottimizzazione è fissa, quindi non mi è chiaro come sia possibile illustrare SGD qui comunque. Il "punto" SGD si comporta in modo più simile alla discesa del gradiente a batch completo, in cui la superficie di ottimizzazione è fissata sull'intero processo di allenamento.
Josh,
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.