Ci sono delle regole per scegliere la dimensione di un mini-batch?


21

Durante l'allenamento delle reti neurali, un iperparametro ha le dimensioni di un mini-batch. Le scelte comuni sono 32, 64 e 128 elementi per mini batch.

Ci sono regole / linee guida su quanto dovrebbe essere grande un mini-batch? Qualche pubblicazione che indaga l'effetto sulla formazione?


Altro che adattamento in memoria?
Ehsan M. Kermani,

Sì. Ad esempio, c'è qualche pubblicazione con dice "maggiore è la dimensione del batch, meglio" (purché si adatti alla memoria)?
Martin Thoma,

@ EhsanM.Kermani Penso che sia importante. Ho fatto un paio di prove su CIFAR-100 e ho ottenuto risultati diversi a seconda della dimensione del lotto (con l'arresto anticipato in modo che il sovradimensionamento si spera non sia un problema)
Martin Thoma,

3
Più grande calcola più velocemente (è efficiente), più piccoli converge più velocemente, generalizza meglio; cf. Formazione efficiente in mini lotti per l'ottimizzazione stocastica e questo studio RNN . C'è un punto debole che trovi empiricamente per il tuo problema.
Emre,

2
Questo articolo molto penetrante di Blei et al è appena uscito: Discesa a gradiente stocastico come inferenza bayesiana approssimativa
Emre,

Risposte:


22

In On Large-batch training for Deep Learning: Generalization Gap e Sharp Minima ci sono un paio di affermazioni interessanti:

In pratica è stato osservato che quando si utilizza un batch più grande si verifica un deterioramento della qualità del modello, misurato dalla sua capacità di generalizzare [...]

i metodi di grandi lotti tendono a convergere in netti minimizzatori delle funzioni di addestramento e test e, come è noto, minimi netti portano a una generalizzazione più scarsa. n. Al contrario, i metodi di piccoli lotti convergono costantemente in minimizzatori piatti e i nostri esperimenti supportano una visione diffusa secondo cui ciò è dovuto al rumore intrinseco nella stima del gradiente.

Dalla mia tesi di master : da qui la scelta delle influenze sulla dimensione del mini-batch:

  • Tempo di allenamento fino alla convergenza : sembra esserci un punto debole. Se la dimensione del lotto è molto piccola (ad es. 8), questa volta aumenta. Se la dimensione del lotto è enorme, è anche superiore al minimo.
  • Tempo di allenamento per epoca : il calcolo più grande è più veloce (è efficiente)
  • Qualità del modello risultante : minore è il migliore a causa di una migliore generalizzazione (?)

È importante notare le interazioni di iperparametri: le dimensioni del lotto possono interagire con altri iperparametri, in particolare il tasso di apprendimento. In alcuni esperimenti questa interazione può rendere difficile isolare l'effetto della dimensione del lotto da solo sulla qualità del modello. Un'altra forte interazione è l'interruzione anticipata per la regolarizzazione.

Guarda anche


@NeilSlater Vuoi aggiungere il tuo commento alla mia risposta (ora wiki della community)?
Martin Thoma,

Mi piace la risposta come generale. Inoltre apprezzerei avere un numero su cosa sono molto piccoli , enormi e mini-batch in un esempio specifico.
Quindi,

Il mini-batch di @SoS è solo un termine. Il "mini" non si riferisce a una dimensione specifica, ma significa solo che c'è più di 1 esempio e inferiore al set di allenamento totale. Considero "molto piccolo" essere <= 8 (ho appena modificato la risposta). Ho anche misurato un aumento estremo (oltre 5 volte) del tempo di allenamento dell'orologio da parete. Normale è qualcosa come 64 o 128. Non sono troppo sicuro di cosa sia "enorme"; Penso che questo potrebbe dipendere dall'hardware.
Martin Thoma,

Questa risposta pone più domande che risposte. Dov'è questo punto debole (forse un grafico sarebbe d'aiuto)? In che modo interagisce con il tasso di apprendimento e l'interruzione anticipata?
xjcl

La risposta dipende dalla rete e dal set di dati. Quindi non ha senso fornire numeri specifici e quindi un grafico non sarebbe d'aiuto. Informazioni sulle interazioni con altri iperparametri: non lo so per certo. Provalo e pubblica i tuoi risultati :-)
Martin Thoma il
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.