Memilih ukuran minibatch yang sesuai untuk stochastic gradient descent (SGD)

13

Apakah ada literatur yang meneliti pilihan ukuran minibatch saat melakukan stochastic gradient descent? Dalam pengalaman saya, ini tampaknya menjadi pilihan empiris, biasanya ditemukan melalui validasi silang atau menggunakan berbagai aturan praktis.

Apakah ide yang baik untuk secara perlahan meningkatkan ukuran minibatch saat kesalahan validasi berkurang? Apa efek ini pada kesalahan generalisasi? Apakah saya lebih baik menggunakan minibatch yang sangat kecil dan memperbarui model saya ratusan ribu kali? Apakah saya akan lebih baik dengan angka seimbang di suatu tempat antara sangat kecil, dan batch?
Haruskah saya mengukur ukuran minibatch saya dengan ukuran dataset, atau jumlah fitur yang diharapkan dalam dataset?

Saya jelas punya banyak pertanyaan tentang mengimplementasikan skema pembelajaran minibatch. Sayangnya, sebagian besar makalah yang saya baca tidak benar-benar menentukan bagaimana mereka memilih hyperparameter ini. Saya telah mendapatkan beberapa keberhasilan dari penulis seperti Yann LeCun, terutama dari Trik koleksi makalah Perdagangan. Namun, saya masih belum melihat pertanyaan-pertanyaan ini ditangani sepenuhnya. Adakah yang punya rekomendasi untuk makalah, atau saran mengenai kriteria apa yang bisa saya gunakan untuk menentukan ukuran minibatch yang baik ketika mencoba mempelajari fitur?

Jason_L_Bens
sumber
Sepertinya saya tidak mendapatkan banyak hits pada topik ini. Apakah ada situs pertukaran tumpukan yang lebih baik untuk menanyakan pembelajaran mesin atau pertanyaan pembelajaran mendalam seperti ini?
Jason_L_Bens

Jawaban:

6

Teori untuk efektivitas SGD dikerjakan pada pembaruan contoh tunggal (yaitu minibatch ukuran 1), jadi menggunakan minibatch yang lebih besar tidak secara teoritis diperlukan. Ini memiliki dua keunggulan praktis:

Pertama , jika perhitungan dapat di-vektor-kan, Anda mungkin bisa menghitung gradien untuk minibatch kecil> 1 hampir sama cepatnya, yang mengarah ke peningkatan kecepatan yang signifikan dalam pelatihan.

Dalam hal ini, ukuran minibatch yang optimal adalah fungsi dari perangkat keras tertentu dan implementasi yang Anda kerjakan, jadi Anda mungkin lebih baik bereksperimen untuk menemukan sweet spot.

Dua , menghitung gradien pada ukuran minibatch> 1 akan menghasilkan gradien yang lebih akurat dan langkah-langkah yang lebih optimal. Tetapi manfaat ini akan tiba dan turun dengan cepat setelah ukuran minibatch ditingkatkan melebihi 1, sehingga Anda dapat fokus terutama pada tujuan pertama.

David Kelley
sumber