訓練神經(jīng)網(wǎng)絡(luò)中的Epoch和Iteration

神經(jīng)網(wǎng)絡(luò)的訓練中我們常常能遇到EpochIteration這兩個不同的詞。

兩個詞都表示“輪次”的意思,顯然這兩個“輪次”的含義并不相同。

在解釋這兩個詞的不同之前,我們先引入三種梯度下降策略:
1.Batch Grandient Descent(BGD,批梯度下降)
2.Stochastic Gradient Descent(SGD,隨機梯度下降)
3.Mini-Batch Gradient Descent(MBGD,小批量梯度下降)

BGD:每次迭代的時候用所有的樣本來參與參數(shù)的更新。這種方法需要同時把所有的樣本都加載進內(nèi)存進行計算,這樣無疑會導致內(nèi)存的負載過大。

SGD:每次迭代使用一個樣本來對參數(shù)進行更新。這種方法雖然速度快,但單個樣本的損失往往不能代表總體樣本的損失情況,而且單個樣本的損失往往容易受到噪聲的影響,所以這種方法往往難以收斂。

MBGD:是對上面兩種策略的折中,相當于每次迭代使用 batch_size 個樣本來對參數(shù)進行更新。若是batch_size選擇合適,則每次迭代的損失既能表征總體的損失的情況,也能降低內(nèi)存的負載壓力,提升內(nèi)存的利用率,也提升網(wǎng)絡(luò)訓練的速度。

BatchSize:一次訓練所選取的樣本數(shù)。

下面來比較IterationEpoch的不同:

Iteration:使用一個batch_size數(shù)量的樣本訓練一次。一個Iteration,參數(shù)更新一次。

Epoch:所有的樣本都訓練一次,即(total / batch_size)個Iteration的訓練。一個Epoch,參數(shù)更新了(total / batch_size)次

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容