天天看點

訓練資料量中關于batch_size,iteration和epoch的概念

batch_size

機器學習使用訓練資料進行學習,針對訓練資料計算損失函數的值,找出使該值盡可能小的參數。但當訓練資料量非常大,這種情況下以全部資料為對象計算損失函數是不現實的。是以,我們從全部資料中選出一部分,作為全部資料的“近似”。神經網絡的學習也是從訓練資料中選出一批資料(稱為 mini-batch,小批量),然後對每個mini-batch進行學習。比如,從60000個訓練資料中随機選取100個資料,用這100個資料進行學習,這種學習方式成為 mini-batch 學習。

用mini-batch的方法定義batch_size,把資料分成小批量,每小批的大小batch_size=100

iteration

疊代,即訓練學習循環一遍(尋找最優參數(權重和偏置))。比如 iteration=30000,循環一遍即執行了30000次疊代。當 batch_size=100,可以說執行完一遍 iteration,即執行了30000次 batch_size

epoch

epoch 是一個機關。一個 epoch表示學習中所有訓練資料均被使用過一次時的更新次數。比如,對于1000個訓練資料,用大小為100個資料的mini-batch(batch_size=100)進行學習時,重複随機梯度下降法100次,所有的訓練資料就都被“看過”了。此時,10次就是一個 epoch。(即:周遊一次所有資料,就稱為一個 epoch)

執行個體

訓練資料量:60000
mini-batch方法:batch_size = 100
疊代次數:iteration = 30000
平均每個epoch的重複次數:60000 / 100 = 600
當疊代進行到600次時,即視為完成了一個epoch
30000 / 600 = 50
           

從這個執行個體可以看出,執行完一遍 iteration,完成了50個 epoch

————————————————