Apakah ada aturan untuk memilih ukuran mini-batch?

21

Saat melatih jaringan saraf, satu hyperparameter adalah ukuran minibatch. Pilihan umum adalah 32, 64 dan 128 elemen per batch mini.

Apakah ada aturan / pedoman seberapa besar mini-batch seharusnya? Adakah publikasi yang menyelidiki efeknya terhadap pelatihan?

Martin Thoma
sumber
Selain pas di memori?
Ehsan M. Kermani
Iya nih. Misalnya, apakah ada publikasi dengan mengatakan "semakin besar ukuran bets, semakin baik" (asalkan sesuai dengan memori)?
Martin Thoma
@ EhsanM.Kermani Saya pikir itu penting. Saya membuat beberapa putaran pada CIFAR-100 dan saya mendapatkan hasil yang berbeda tergantung pada ukuran batch (dengan penghentian awal sehingga overfitting mudah-mudahan tidak menjadi masalah)
Martin Thoma
3
Komputasi yang lebih besar lebih cepat (efisien), konvergen yang lebih kecil lebih cepat, menggeneralisasi lebih baik; lih. Pelatihan Mini-batch yang efisien untuk Optimalisasi Stochastic dan studi RNN ini . Ada titik manis yang Anda temukan secara empiris untuk masalah Anda.
Emre
2
Makalah paling berwawasan ini oleh Blei et al baru saja keluar: Stochastic Gradient Descent sebagai Approximate Bayesian Inference
Emre

Jawaban:

22

Dalam Pelatihan On-Batch Besar untuk Pembelajaran Jauh: Kesenjangan Generalisasi dan Sharp Minima ada beberapa pernyataan simpang siur:

Telah diamati dalam prakteknya bahwa ketika menggunakan batch yang lebih besar ada penurunan dalam kualitas model, yang diukur dengan kemampuannya untuk menggeneralisasi [...]

metode batch besar cenderung menyatu dengan minimisasi yang tajam dari fungsi pelatihan dan pengujian — dan seperti diketahui, minima yang tajam menyebabkan generalisasi yang lebih buruk. n. Sebaliknya, metode batch kecil secara konsisten menyatu dengan minimizer rata, dan percobaan kami mendukung pandangan umum bahwa ini disebabkan oleh kebisingan bawaan dalam estimasi gradien.

Dari tesis master saya : Oleh karena itu pilihan ukuran mini-batch mempengaruhi:

  • Waktu pelatihan hingga konvergensi : Tampaknya ada titik manis. Jika ukuran bets sangat kecil (misalnya 8), kali ini naik. Jika ukuran bets sangat besar, itu juga lebih tinggi dari minimum.
  • Waktu pelatihan per zaman : Lebih besar menghitung lebih cepat (efisien)
  • Kualitas model yang dihasilkan : Semakin rendah semakin baik karena generalisasi yang lebih baik (?)

Penting untuk mencatat interaksi hyper-parameter : Ukuran batch dapat berinteraksi dengan hyper-parameter lainnya, terutama tingkat pembelajaran. Dalam beberapa percobaan interaksi ini mungkin mempersulit untuk mengisolasi efek ukuran bets sendirian pada kualitas model. Interaksi kuat lainnya adalah dengan penghentian awal untuk regularisasi.

Lihat juga

Martin Thoma
sumber
@NeilSlater Apakah Anda ingin menambahkan komentar Anda ke jawaban saya (sekarang komunitas wiki)?
Martin Thoma
Saya suka jawabannya secara umum. Selain itu saya akan sangat menghargai memiliki nomor tentang apa yang sangat kecil , besar dan mini-batch dalam contoh khusus.
Jadi, S
@SoS mini-batch hanyalah sebuah istilah. "Mini" tidak merujuk pada ukuran tertentu, tetapi itu hanya berarti bahwa ada lebih dari 1 contoh dan kurang dari total pelatihan yang ditetapkan. Saya menganggap "sangat kecil" sebagai <= 8 (Saya baru saja mengedit jawabannya). Saya juga mengukur peningkatan ekstrim (lebih dari 5x) dalam waktu pelatihan jam dinding untuk ini. Normal adalah sesuatu seperti 64 atau 128. Saya tidak terlalu yakin apa itu "besar"; Saya pikir ini mungkin tergantung pada perangkat kerasnya.
Martin Thoma
Jawaban ini mengajukan lebih banyak pertanyaan daripada jawaban itu. Di mana sweet spot ini (mungkin grafik akan membantu)? Bagaimana cara berinteraksi dengan tingkat belajar dan berhenti dini?
xjcl
Jawabannya tergantung pada jaringan dan dataset. Karenanya tidak masuk akal untuk memberikan angka tertentu dan karenanya grafik tidak akan membantu. Tentang interaksi dengan hyperparameter lain: Saya tidak tahu pasti. Cobalah dan publikasikan hasil Anda :-)
Martin Thoma