神經網路 深度學習 專業術語解釋(Step, Batch Size, Iteration,Epoch)

studyer_domi發表於2020-12-03

1. 名詞解釋

Step: 訓練模型的步數

Batch Size(批尺寸): 計算梯度所需的樣本數量,太小會導致效率低下,無法收斂。太大會導致記憶體撐不住,Batch Size增大到一定程度後,其下降方向變化很小了,所以Batch Size是一個很重要的引數。

為什麼需要有 Batch_Size :

batchsize 的正確選擇是為了在記憶體效率和記憶體容量之間尋找最佳平衡。 

Epoch(回合):代表樣本集內所有的資料經過了一次訓練。  

每個 epoch 都會進行shuffle,對要輸入的資料進行重新排序,分成不同的batch。

Iteration(迭代):

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

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

變數含義
epoch一個epoch表示所有訓練樣本運算學習一遍
iteration/step表示每執行一個iteration/step,更新一次引數權重,即進行一次學習,每一次更新引數需要batch size個樣本進行運算學習,根據運算結果調整更新一次引數。
batch size1次迭代所使用的樣本量

其關係為:

舉例:
假設有20000個樣本,batch size 為200,epoch為1, 則

 

2. 換算關係

實際上,梯度下降的幾種方式的根本區別就在於上面公式中的 Batch Size不同。

*注:上表中 Mini-Batch 的 Batch 個數為 N / B + 1 是針對未整除的情況。整除則是 N / B。

3. 例子

CIFAR10 資料集有 50000 張訓練圖片,10000 張測試圖片。現在選擇 Batch Size = 256 對模型進行訓練。

每個 Epoch 要訓練的圖片數量: 50000

訓練集具有的 Batch 個數: 50000/256 = 195 +1 = 196

每個 Epoch 需要完成的 Batch 個數: 196

每個 Epoch 具有的 Iteration 個數: 196

每個 Epoch 中發生模型權重更新的次數: 196

訓練 10 代後,模型權重更新的次數: 196 * 10

不同代的訓練,其實用的是同一個訓練集的資料。第  代和第  代雖然用的都是訓練集的五萬張圖片,但是對模型的權重更新值卻是完全不同的。因為不同代的模型處於代價函式空間上的不同位置,模型的訓練代越靠後,越接近谷底,其代價越小。

相關文章