Keuntungan utama menggunakan minibatch sebagai lawan dari dataset lengkap kembali ke ide dasar keturunan gradien stokastik 1 .
Dalam keturunan gradien batch, Anda menghitung gradien di seluruh dataset, rata-rata atas sejumlah besar informasi yang berpotensi. Butuh banyak memori untuk melakukan itu. Tetapi cacat yang sebenarnya adalah batch lintasan gradien tanah Anda di tempat yang buruk (saddle point).
Di SGD murni, di sisi lain, Anda memperbarui parameter Anda dengan menambahkan (tanda minus) gradien yang dihitung pada satu instance dataset. Karena didasarkan pada satu titik data acak, ini sangat bising dan mungkin melenceng jauh dari gradien batch. Namun, kebisingan adalah persis apa yang Anda inginkan dalam optimasi non-cembung, karena membantu Anda melarikan diri dari titik pelana atau minimum lokal (Teorema 6 dalam [2]). Kerugiannya adalah itu sangat tidak efisien dan Anda perlu mengulang seluruh dataset berkali-kali untuk menemukan solusi yang baik.
Metodologi minibatch adalah kompromi yang menyuntikkan kebisingan yang cukup untuk setiap pembaruan gradien, sambil mencapai konvergensi cepat relatif.
1 Bottou, L. (2010). Pembelajaran mesin skala besar dengan penurunan gradien stokastik. Dalam Prosiding COMPSTAT'2010 (hlm. 177-186). Physica-Verlag HD.
[2] Ge, R., Huang, F., Jin, C., & Yuan, Y. (2015, Juni). Melarikan Diri Dari Poin Sadel - Gradien Stochastic Online untuk Dekomposisi Tensor. Dalam COLT (hlm. 797-842).
EDIT:
Saya baru saja melihat komentar ini di facebook Yann LeCun, yang memberikan perspektif baru tentang pertanyaan ini (maaf tidak tahu bagaimana menautkan ke fb.)
Pelatihan dengan minibatch besar tidak baik untuk kesehatan Anda. Lebih penting lagi, ini buruk untuk kesalahan pengujian Anda. Teman tidak membiarkan teman menggunakan minibatch yang lebih besar dari 32. Mari kita hadapi itu: satu - satunya orang telah beralih ke ukuran minibatch lebih besar dari satu sejak 2012 adalah karena GPU tidak efisien untuk ukuran batch lebih kecil dari 32. Itu alasan yang mengerikan. Itu hanya berarti perangkat keras kita payah.
Dia mengutip makalah ini yang baru saja diposting di arXiv beberapa hari yang lalu (Apr 2018), yang layak dibaca,
Dominic Masters, Carlo Luschi, Mengunjungi Kembali Pelatihan Batch Kecil untuk Deep Neural Networks , arXiv: 1804.07612v1
Dari abstrak,
Sementara penggunaan mini-batch besar meningkatkan paralelisme komputasi yang tersedia, pelatihan batch kecil telah terbukti memberikan peningkatan kinerja generalisasi ...
Kinerja terbaik telah diperoleh secara konsisten untuk ukuran mini-batch antara m = 2 dan m = 32, yang kontras dengan pekerjaan terbaru yang menganjurkan penggunaan ukuran mini-batch dalam ribuan.