1. 程式人生 > >Batch Size設定過大時,對神經網路效能的影響情況

Batch Size設定過大時,對神經網路效能的影響情況

之前的一片博文寫了Batch Size的作用和應該如何設定比較合適,同時還有Batch Size大小,與學習率 l r 、訓練次數 e p

o c h 之間的關係。裡面提及Batch Size越大,梯度的方向越準確。

上述的說法是沒錯的,梯度方向準確,最後網路收斂情況好,但是收斂情況好並不意味網路的效能就好,網路收斂好意味著對訓練資料作出了較好的擬合,但是並不意味著就會對測試資料作出很好的擬合。這存在的一個“泛化”的問題。

ON LARGE-BATCH TRAINING FOR DEEP LEARNING:GENERALIZATION GAP AND SHARP MINIMA 論文發現了使用large-batch訓練得到的網路具有較差的泛化能力。使用large-batch的情況下容易收斂成“sharp minimizers”,使其的泛化能力差。而相對使用“small-batch”訓練的最終會收斂到“flat minimizers”,這是因為在“small-batch”中在梯度計算中固有噪聲的存在,使得網路的最終收斂成“flat minimizers”
論文中提及了使用“large-batch”造成泛化能力差的原因可能是網路直接收斂到初始值附近。同時,論文嘗試提出幾種方法,如資料增強,“conservative training”和“robust optimization”,但好像也沒什麼效果。另一種補救方法包括使用動態抽樣,在這種情況下,隨著迭代的進行,批大小逐漸增大。