這三個詞都是在深度網路訓練中常見的概念,也常常容易混淆。
Batch-size指的是單次輸入到神經網路訓練中的樣本數目。根據輸入樣本的大小的不同,可以分為單個隨機(stochastic)、小批次(mini-batch)和整批次(batch)。Batch-size會影響到模型訓練最佳化的效果和效率。
單個隨機,即每次只輸入一個樣本進行訓練。那麼在進行梯度的反向傳播中就會導致出現隨機的波動,無法朝著正確的方向收斂,最終收斂速度很慢。
整批次,即一次性將資料全部輸入到模型中訓練,這種方法雖然最佳化效果好,訓練時收斂的波動小,方向準確。但是如果資料量過於龐大,那麼就需要超大的記憶體來儲存資料,因此在工程中往往不可行,無法進行訓練。
小批次,即每次選取合適的樣本數進行訓練,在可訓練的前提下,儘量讓最佳化的效果達到最好。
因此,Batch-size 的選擇實際上是為了在記憶體效率和記憶體容量之間尋找最佳平衡點。
Iteration(迭代次數),每一次迭代都是一次權重更新。一次迭代包括將batch-size的資料輸入到網路中,經過前向運算得到損失函式,再根據反向傳播對權重進行更新。
Epoch指的是將將所有的資料訓練的次數。即訓練過程中每個資料將被“輪”著訓練了epochs次。
那麼就能得到如下公式(給定訓練樣本資料N):
一個epoch = iteration的數目 = N/(batch-size)
舉個例子就是,對於2000個訓練資料來說,設定batch-size=10。
那麼整個訓練就有200次iteration和1次epoch。
這三個詞都是在深度網路訓練中常見的概念,也常常容易混淆。
Batch-size指的是單次輸入到神經網路訓練中的樣本數目。根據輸入樣本的大小的不同,可以分為單個隨機(stochastic)、小批次(mini-batch)和整批次(batch)。Batch-size會影響到模型訓練最佳化的效果和效率。
單個隨機,即每次只輸入一個樣本進行訓練。那麼在進行梯度的反向傳播中就會導致出現隨機的波動,無法朝著正確的方向收斂,最終收斂速度很慢。
整批次,即一次性將資料全部輸入到模型中訓練,這種方法雖然最佳化效果好,訓練時收斂的波動小,方向準確。但是如果資料量過於龐大,那麼就需要超大的記憶體來儲存資料,因此在工程中往往不可行,無法進行訓練。
小批次,即每次選取合適的樣本數進行訓練,在可訓練的前提下,儘量讓最佳化的效果達到最好。
因此,Batch-size 的選擇實際上是為了在記憶體效率和記憶體容量之間尋找最佳平衡點。
Iteration(迭代次數),每一次迭代都是一次權重更新。一次迭代包括將batch-size的資料輸入到網路中,經過前向運算得到損失函式,再根據反向傳播對權重進行更新。
Epoch指的是將將所有的資料訓練的次數。即訓練過程中每個資料將被“輪”著訓練了epochs次。
那麼就能得到如下公式(給定訓練樣本資料N):
一個epoch = iteration的數目 = N/(batch-size)
舉個例子就是,對於2000個訓練資料來說,設定batch-size=10。
那麼整個訓練就有200次iteration和1次epoch。