1. 程式人生 > >epoch、batch size、literation關係

epoch、batch size、literation關係

轉自 http://www.dataguru.cn/article-12193-1.html

EPOCHS

當一個完整的資料集通過了神經網路一次並且返回了一次,這個過程稱為一個 epoch。

 

然而,當一個 epoch 對於計算機而言太龐大的時候,就需要把它分成多個小塊。

 

為什麼要使用多於一個 epoch?

我知道這剛開始聽起來會很奇怪,在神經網路中傳遞完整的資料集一次是不夠的,而且我們需要將完整的資料集在同樣的神經網路中傳遞多次。但是請記住,我們使用的是有限的資料集,並且我們使用一個迭代過程即梯度下降,優化學習過程和圖示。因此僅僅更新權重一次或者說使用一個 epoch 是不夠的。

 

 

隨著 epoch 數量增加,神經網路中的權重的更新次數也增加,曲線從欠擬合變得過擬合。

 

那麼,幾個 epoch 才是合適的呢?

不幸的是,這個問題並沒有正確的答案。對於不同的資料集,答案是不一樣的。但是資料的多樣性會影響合適的 epoch 的數量。比如,只有黑色的貓的資料集,以及有各種顏色的貓的資料集。

 

BATCH SIZE

一個 batch 中的樣本總數。記住:batch size 和 number of batches 是不同的。

 

BATCH 是什麼?

在不能將資料一次性通過神經網路的時候,就需要將資料集分成幾個 batch。

 

正如將這篇文章分成幾個部分,如介紹、梯度下降、Epoch、Batch size 和迭代,從而使文章更容易閱讀和理解。

 

迭代

理解迭代,只需要知道乘法表或者一個計算器就可以了。迭代是 batch 需要完成一個 epoch 的次數。記住:在一個 epoch 中,batch 數和迭代數是相等的。

 

比如對於一個有 2000 個訓練樣本的資料集。將 2000 個樣本分成大小為 500 的 batch,那麼完成一個 epoch 需要 4 個 iteration。