Saya telah melihat kesimpulan serupa dari banyak diskusi, bahwa ketika ukuran minibatch semakin besar konvergensi SGD sebenarnya semakin sulit / buruk, misalnya tulisan ini dan jawaban ini . Saya juga pernah mendengar ada orang yang menggunakan trik seperti kecepatan belajar kecil atau ukuran batch pada tahap awal untuk mengatasi kesulitan ini dengan ukuran batch besar.
Namun tampaknya kontra-intuitif karena kehilangan rata-rata minibatch dapat dianggap sebagai perkiraan untuk kehilangan yang diharapkan atas distribusi data,
semakin besar ukuran batch, semakin akurat seharusnya. Mengapa dalam praktiknya tidak demikian?
Berikut adalah beberapa pemikiran saya (mungkin salah) yang mencoba menjelaskan.
Parameter model sangat bergantung satu sama lain, ketika bets menjadi terlalu besar itu akan mempengaruhi terlalu banyak parameter sekaligus, sehingga sulit bagi parameter untuk mencapai ketergantungan inheren yang stabil? (seperti masalah pergeseran kovariat internal yang disebutkan dalam kertas normalisasi bets )
Atau ketika hampir semua parameter bertanggung jawab dalam setiap iterasi mereka akan cenderung mempelajari pola implisit yang berlebihan sehingga mengurangi kapasitas model? (Maksud saya katakan untuk masalah klasifikasi digit beberapa pola harus bertanggung jawab untuk titik, beberapa untuk tepi, tetapi ketika ini terjadi setiap pola mencoba bertanggung jawab untuk semua bentuk).
Atau apakah karena ketika ukuran bets semakin dekat dengan skala set pelatihan, minibatch tidak lagi dapat dilihat sebagai iid dari distribusi data, karena akan ada kemungkinan besar untuk minibatch yang berkorelasi?
Pembaruan
Seperti yang ditunjukkan dalam jawaban Benoit Sanchez, salah satu alasan penting adalah bahwa minibatch besar membutuhkan lebih banyak perhitungan untuk menyelesaikan satu pembaruan, dan sebagian besar analisis menggunakan jumlah waktu pelatihan yang tetap untuk perbandingan.
Namun makalah ini (Wilson dan Martinez, 2003) menunjukkan bahwa ukuran bets yang lebih besar masih sedikit tidak menguntungkan bahkan mengingat jumlah zaman pelatihan yang cukup. Apakah itu umumnya terjadi?
Untuk menambah jawaban Curtis White (dan menambahkan beberapa referensi lagi):
Ya SGD berfungsi sebagai jenis regularisasi. Ini penting karena kalau tidak, sulit untuk menjelaskan mengapa DNN tidak selalu cocok, karena mereka bisa .
Alasannya, seperti yang saya mengerti, adalah bahwa SGD menyebabkan 'melompat-lompat' di ruang parameter, jadi selama pelatihan parameter tidak dapat tetap dalam minimum yang sempit, hanya di (atau dekat) yang lebih luas. Dan yang lebih luas ini tampaknya [1] menggeneralisasi lebih baik (alias, kurang overfitting).
Lebih banyak referensi:
"stochastic relaxation, or random diffusion"
mana stokastik melekat dalam SGD mengarah ke"maximiz[ation of] the conditional entropy of the layer"
.Keduanya mengatakan bahwa SGD sesuai dengan istilah regularisasi entropi.
Pasti bisa ada cara lain di mana ukuran batch mempengaruhi konvergensi; ini yang saya tahu.
[1] Contoh: "Perspektif Bayesian tentang Generalisasi dan Keturunan Gradien Stochastic", Smith, Le, 2018. Dari abstrak:
"We propose that the noise introduced by small mini-batches drives the parameters towards minima whose evidence is large."
[2] "Keturunan gradien stokastik melakukan inferensi variasional, konvergen untuk membatasi siklus untuk jaringan yang dalam", Chaudhari, Soatto 2017
[3] "Membuka kotak hitam Deep Neural Networks via Information" Schwartz-Ziv, Tishby, 2017
[4] "Memahami pembelajaran yang dalam membutuhkan memikirkan kembali generalisasi", C. Zhang dll. 2016
sumber
Ukuran bets yang terlalu besar dapat mencegah konvergensi setidaknya saat menggunakan SGD dan melatih MLP menggunakan Keras. Adapun mengapa, saya tidak 100% yakin apakah itu ada hubungannya dengan rata-rata gradien atau pembaruan yang lebih kecil memberikan kemungkinan lebih besar untuk lolos dari minimum lokal.
Lihat di sini .
sumber