文章目錄
- 1 Epoch
- 2 Batch Size
- 3 Iteration
- 4 示例
- 5 參考文獻
在神經網絡訓練中,有三個概念:Epoch、Batch Size、Iteration。下面對三者的概念與差別進行介紹。
1 Epoch
Epoch,一次完整訓練,即"一代訓練"。當一個完整的資料集通過了神經網絡一次并且傳回了一次,這個過程稱為一個Epoch。
需要将完整的資料集在同樣的神經網絡中傳遞多次,僅僅更新權重一次或者說使用一個Epoch是不夠的,選擇合适的Epoch的數量取決于資料的多樣性等因素。
在不能将資料一次性通過神經網絡的時候,就需要将資料集分成幾個Batch,見【2 Batch Size】一節。
2 Batch Size
Batch Size,批量大小,即一次訓練所選取的樣本數。由于在資料很龐大的時候,一次性将資料輸入計算機是不可能的,可以把資料分成小塊,一塊一塊的傳遞給計算機。在小樣本數的資料庫中,不使用Batch Size是可行的,而且效果也很好。但是一旦是大型的資料庫,一次性把所有資料輸進網絡,肯定會引起記憶體的爆炸。是以就提出Batch Size的概念。
3 Iteration
Iteration,算法是疊代的,意思是需要多次使用算法擷取結果,以得到最優化結果。疊代是将資料分塊後需要完成一個Epoch的次數,即完整的資料集通過了神經網絡一次并且傳回了一次所需的次數。
在一個Epoch中,Batch數和疊代數是相等的。Batch數是将資料被分成批次的數量,需要與批量大小即Batch Size區分開。
4 示例
比如對于一個有2000個訓練樣本的資料集,将2000個樣本分成大小為500的Batch。那麼:
- 完成一個Epoch需要4個Iteration。
- Batch數也為4。
- Batch Size為500。
5 參考文獻
1、神經網絡訓練中,傻傻分不清Epoch、Batch Size和疊代
2、神經網絡中Batch Size的了解
END