close
Batch size: 批次大小,一次訓練使用的資料量
深度學習每一次參數的更新所需要損失函數並不是由一個{data:label}獲得的,而是由一組數據加權得到的,這一組數據的數量就是[batch size]。
batch的思想,至少有兩個作用,一是更好的處理非凸的損失函數,非凸的情況下, 全樣本就算工程上算的動, 也會卡在局部優上, 批表示了全樣本的部分抽樣實現, 相當於人為引入修正梯度上的采樣噪聲,使“一路不通找別路”更有可能搜索最優值;二是合理利用內存容量。
如果數據集較小,可以采用全數據集(Full batch learning)的形式
這樣有兩個顯然的好處:
1.由全數據集計算的梯度能夠更好的代表樣本總體,從而更準確的朝向極值所在的方向;
2.不同權重的梯度值差別很大,因此選取一個全局的學習率會比較困難(?)
batch size最大是樣本總數N,此時就是Full batch learning;
最小是1,即每次只訓練一個樣本,這就是在線學習(Online Learning)。
當我們分批學習時,每次使用過全部訓練數據完成一次Forword運算以及一次BP運算,成為完成了一次epoch。
Epoch: 一個資料集完整通過網路訓練
Iteration: Batch完成幾個epoch
文章標籤
全站熱搜