機器學習筆記(二)--Epoch和Batch和iteration

在機器學習中,這幾個概念是很重要也是較容易混淆的,百度上的資料個人覺得都沒這篇外文講得清楚。

 

原文:https://towardsdatascience.com/epoch-vs-iterations-vs-batch-size-4dfb9c7ce9c9

 

翻譯:

 

 

Epoch vs Batch Size vs Iterations

在這之前,敲代碼的時候你一定有想過這三個看起來非常相似的東西到底有什麼不同。要得到問題的答案,你需要有相關機器學習的知識如梯度下降,這樣理解起來會更快。

 

梯度下降

這是機器學習中一個利用迭代的優化算法取尋找最優解的方法。Gradient意思是斜率即函數的導數,Descent意思是

下降。迭代的解釋是:我們需要多次獲取結果使得最後得到的結果是最優結果(效果最好)。梯度下降有一個參數叫學習率。如上圖,初始的時候步子很大意味着學習率很大,隨着點向下走,學習率減小,步子也會減小。同時,成本函數也在減小,代表成本在減少。有時你可能聽到人們說損失函數減小或者損失減少,與成本是一樣的。

 

 

我們只有在當數據量非常大的時候才需要這三個屬於術語:batch epoch iterations,因爲這時我們不能將所有海量的數據一次性輸入計算機中。所以,爲了解決這個問題,我們需要將數據分割成多個小部分,逐個輸入計算機中,然後在每一次擬合數據的最後去更新神經網絡的權值。

 

 

Epochs--一個Epoch是整個數據集進入神經網絡向前向後傳播一次。

 

 

 

顯然,一個epoch也是十分巨大的,無法一次性向計算機輸入,所以要把它分割成多個小規模的batches。

 

爲什麼要使用多個Epoch?

我們清楚將數據集全部輸入網絡中處理一次可能是不夠的(欠擬合),還不能得出令人滿意的結果,所以就需要多次將全部數據輸入網絡處理。記住,我們使用的是有限的數據集,使用梯度下降法優化學習和流圖是一個可迭代的過程。如上圖,隨着增加epoch,權值更新次數更多,曲線從欠擬合“優化”到過擬合,說明增加epoch是對提高學習效果有效。

 

那麼最優的epoch是什麼?

很不幸,這個問題現在沒有確切答案。因爲不同數據集有自己的最優epoch,但是你可以說最優epoch與你如何分割數據集有關聯。

 

Batch Size--一次訓練所用的樣本數

注意:Batch size與Batch的數量是兩個不同的概念。

 

就像之前說的,不能一次輸入一個epoch,所以將數據集分成多個的batch。就像讀一篇長文章時,分成多個部分,如說明書,梯度下降,epoch,batch size,iterations,會讓你更好的理解整篇文章。

 

Iterations--完成一次epoch所需的batch數量

 

舉個例子:我們共有2000個訓練樣本,500個樣本分成一個batch(batch size=500),那麼他需要4個iterations完成一個epoch。

 

 

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