結論:
- batch size 一般爲2的冪次方,128爲分位線,向下(乘以0.5)或向上(乘以2)測試效果,若向下效果繼續,乘以0.5,直指結果不再變好,數值範圍一般在:2到512.有論文說最好的實驗表現都是在batch size處於2~32之間得到的
- 一階優化算法:sgd,adam等,一般Batch size比較小.二階優化算法:共軛梯度法,L-BFGS等需要二階導數,太小,對二階導數誤差累積太大,所以需要只比較大,可以幾千到兩萬
- batch size 初衷是爲了解決內存不夠問題,但是卻帶來了跳出局部最優的增益,因爲小批量數據對梯度帶來了噪音,相對於完成梯度來說,每步更新的梯度下降了,但是總體來說,卻避免了局部最優
- 大批量的batchsize 等價於小的學習率
- 小batch訓練的穩定性較差。小batch確實有這個缺點,而且對設置學習速率有更高的要求,否則可能引起惡性的震盪無法收斂。但是小batch的優點仍然是顯著的,DL書裏建議使用逐步增加的batch size來兼併兩者的優點。
參考文獻
深度學習的躍進來源於不同技術的組合:層、梯度更新方式、初始化方式、非線性、目標函數、正規項