batch_size對模型訓練結果的影響

深度學習用mini-batch進行反向傳播時,先將mini-batch中每個instance得到的loss平均化後再反向求梯度。

即:每次反向傳播的梯度是對mini-batch中每個instance的梯度平均之後的結果。

所以batchsize的大小決定了相鄰迭代之間的梯度平滑程度,也決定了每個epoch的時間。

  1. 當batchsize太小時,相鄰mini-batch間的差異太大,會造成相鄰兩次迭代的梯度震盪比較嚴重,不利於網絡模型收斂;
  2. 當batchsize越大時,相鄰mini-batch中的差異越小,雖然梯度震盪會比較小,但是在一定程度有利於模型的收斂;
  3. 但是當batchsize極端大時,相鄰mini-batch中的差異過小,兩個相鄰的mini-batch的梯度就沒有區別了,整個訓練就按照一個方向一直走,容易陷入到局部最優。

 

batchsize對於訓練時間的影響:

反向的過程取決於模型的複雜度,與batchsize的大小關係不大,而正向則同時取決於模型的複雜度和batch size的大小。

完成每個epoch的時間取決於:

1、load數據的時間

2、每個epoch的iter數量。

因此對於每個epoch,不管是純計算時間還是全部時間,大體上還是大batch能夠更節約時間一點,但隨着batch增大,iter次數減小,完成每個epoch的時間更取決於加載數據所需的時間,此時也不見得大batch能帶來多少的速度增益了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章