超分辨率重構之SRCNN整理總結(五)

知識整理

深度學習中經常看到epoch、 iteration和batchsize三個的區別:

  • 【1】batchsize

    批大小。在深度學習中,一般採用SGD(隨機梯度下降法)訓練,即每次訓練在訓練集中取batchsize個樣本訓練;

  • 【2】iteration

    1個iteration等於使用batchsize個樣本訓練一次;

  • 【3】epoch

    (1)含義:一個完整的數據集通過了神經網絡一次並且返回了一次,這個過程稱爲一個 epoch。1個epoch等於使用訓練集中的全部樣本訓練一次;當一個 epoch 對於計算機而言太龐大的時候,就需要把它分成多個小塊。
    (2)隨着 epoch 數量增加,神經網絡中的權重的更新次數也增加,曲線從欠擬合變得過擬合。
    (3)那麼,幾個 epoch 纔是合適的呢?
    這個問題並沒有正確的答案。對於不同的數據集,答案是不一樣的。但是數據的多樣性會影響合適的 epoch 的數量。比如,只有黑色的貓的數據集,以及有各種顏色的貓的數據集。
    (4)爲什麼要使用多於一個 epoch?
    我知道這剛開始聽起來會很奇怪,在神經網絡中傳遞完整的數據集一次是不夠的,而且我們需要將完整的數據集在同樣的神經網絡中傳遞多次。但是請記住,我們使用的是有限的數據集,並且我們使用一個迭代過程即梯度下降,優化學習過程可能會overfitting、optimum、underfitting。因此僅僅更新權重一次或者說使用一個 epoch 是不夠的。

eg:訓練集有1000個樣本,batchsize=10,那麼:訓練完整個樣本集需要:100次iteration,1次epoch。

【相關知識】

應用機器學習算法時,通常採用梯度下降法來對採用的算法進行訓練。
常用的梯度下降法還具體包含有三種不同的形式:

  • 1. 批量梯度下降法BGD(Batch Gradient Descent)

    批量梯度下降法(Batch Gradient Descent,簡稱BGD)是梯度下降法最原始的形式,
它的具體思路是在更新每一參數時都使用所有的樣本來進行更新。
    優點:全局最優解;易於並行實現;
    缺點:當樣本數目很多時,訓練過程會很慢。

  • 2. 隨機梯度下降法SGD(Stochastic Gradient Descent)

  由於批量梯度下降法在更新每一個參數時,都需要所有的訓練樣本,
所以訓練過程會隨着樣本數量的加大而變得異常的緩慢。
隨機梯度下降法正是爲了解決批量梯度下降法這一弊端而提出的。

    隨機梯度下降是通過每個樣本來迭代更新一次,如果樣本量很大的情況(例如幾十萬),
那麼可能只用其中幾萬條或者幾千條的樣本,就已經將theta迭代到最優解了,
對比上面的批量梯度下降,迭代一次需要用到十幾萬訓練樣本,一次迭代不可能最優,
如果迭代10次的話就需要遍歷訓練樣本10次。但是,SGD伴隨的一個問題是噪音較BGD要多,
使得SGD並不是每次迭代都向着整體最優化方向。
    優點:訓練速度快;
    缺點:準確度下降,並不是全局最優;不易於並行實現。

  • 3. 小批量梯度下降法MBGD(Mini-batch Gradient Descent)

    有上述的兩種梯度下降法可以看出,其各自均有優缺點,那麼能不能在兩種方法的性能之間取得一個折衷呢?
即,算法的訓練過程比較快,而且也要保證最終參數訓練的準確率,而這正是小批量梯度下降法的初衷。
    MBGD在每次更新參數時使用b個樣本(b一般爲10)

【總結】

Batch gradient descent: Use all examples in each iteration;(迭代次數少)
Stochastic gradient descent: Use 1 example in each iteration;(迭代次數較多)
Mini-batch gradient descent: Use b examples in each iteration.

 


學習:[ML] 梯度下降法的三種形式BGD、SGD以及MBGD

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