天天看點

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

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 size 1次疊代所使用的樣本量

其關系為:

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

舉例:

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

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

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

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

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

繼續閱讀