「Epoch」、「Batch size」、「Iteration」、「Learning rate」這些字眼,在人工智慧這領域很常見,訓練 AI 模型的過程,時常需要調整這些參數來影響模型的準確度。 Epoch 中文直翻的話是「時代」、「時期」的意思,但在神經網路訓練上,比較接近中文「期」的含意,指的是訓練模型過程裡,演算法完整使用過資料集每筆資料的狀態。 假設我們有一個資料集,有 1000 筆資料,把它們全丟進神經網路運算完,那就是完成了 1 個 Epoch 的訓練。 Batch size Batch 中文直翻的話意思是「批次」。 假設剛剛的 1000 筆資料,每筆數據量都很大,電腦因為記憶體不夠用所以無法一次跑 1000 筆。這時我們只好把 1000 筆資料分批送進神經網路,這裡分批的數量就是 Batch size,今天我一次放 500 筆資料進神經網路運算,那 Batch size 就等於 500。 Iteration Iteration 意思是「迭代」,我們將資料分批送進神經網路的時候,會透過迴圈來執行。 延續剛剛的例子,我們如果一次送 500 筆資料進神經網路,那就要跑 兩 次迴圈才算 1 個 Epoch,這時就稱訓練過程迭代了 兩 次。 Data set size = Iteration * Batch size (1 Epoch) 這時換個角度來說,如果開發者決定要用 Batch size = 100 的條件,來訓練 5 個 Epoch,那總共要迭代幾次? Iteration = (Data set size / Batch size)* Epoch 代入數字就是 1000 / 100 * 5 = 50,總共要迭代 50 次才能完成開發者的期望。