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

 


arrow
arrow

    低階ㄇㄋ 發表在 痞客邦 留言(0) 人氣()