Il vantaggio principale dell'uso del minibatch rispetto all'insieme di dati completo risale all'idea fondamentale della discesa gradiente stocastica 1 .
Nella discesa del gradiente batch, si calcola il gradiente sull'intero set di dati, calcolando la media su potenzialmente una grande quantità di informazioni. Ci vuole molta memoria per farlo. Ma il vero handicap è la traiettoria del gradiente batch che ti porta in una brutta posizione (punto di sella).
In SGD puro, d'altra parte, aggiorni i tuoi parametri aggiungendo (segno meno) il gradiente calcolato su una singola istanza del set di dati. Poiché si basa su un punto dati casuale, è molto rumoroso e potrebbe andare in una direzione lontana dal gradiente batch. Tuttavia, il rumore è esattamente quello che vuoi nell'ottimizzazione non convessa, perché ti aiuta a fuggire dai punti della sella o dai minimi locali (Teorema 6 in [2]). Lo svantaggio è che è terribilmente inefficiente e per trovare una buona soluzione è necessario ricorrere più volte all'intero set di dati.
La metodologia minibatch è un compromesso che inietta abbastanza rumore per ogni aggiornamento del gradiente, ottenendo al contempo una convergenza relativamente rapida.
1 Bottou, L. (2010). Apprendimento automatico su larga scala con discesa gradiente stocastica. In Atti del COMPSTAT'2010 (pagg. 177-186). Physica-Verlag HD.
[2] Ge, R., Huang, F., Jin, C., & Yuan, Y. (2015, giugno). Sfuggire ai punti di sella-Gradiente stocastico online per la decomposizione del tensore. In COLT (pagg. 797-842).
MODIFICARE :
Ho appena visto questo commento sul facebook di Yann LeCun, che offre una nuova prospettiva su questa domanda (scusate non so come collegarmi a fb.)
L'allenamento con minibatch di grandi dimensioni fa male alla salute. Ancora più importante, fa male al tuo errore di test. Gli amici non consentono agli amici di utilizzare minibatch di dimensioni superiori a 32. Ammettiamolo: le uniche persone sono passate a dimensioni di minibatch più grandi di una dal 2012 perché le GPU sono inefficienti per lotti di dimensioni inferiori a 32. Questo è un motivo terribile. Significa solo che il nostro hardware fa schifo.
Ha citato questo articolo che è stato appena pubblicato su arXiv pochi giorni fa (aprile 2018), che vale la pena leggere,
Dominic Masters, Carlo Luschi, Rivisitazione di piccoli lotti di addestramento per reti neurali profonde , arXiv: 1804.07612v1
Dall'astratto,
Mentre l'uso di grandi mini-lotti aumenta il parallelismo computazionale disponibile, è stato dimostrato che l'addestramento in piccoli lotti offre prestazioni di generalizzazione migliorate ...
Le migliori prestazioni sono state costantemente ottenute per dimensioni di mini lotti tra m = 2 e m = 32, il che contrasta con i recenti lavori a favore dell'uso di dimensioni di mini lotti a migliaia.