搜尋意圖: 如果你在找「Epoch 是什麼」或「和 Batch、Iteration 差在哪」,先記住:Epoch 是模型完整看完一次整份訓練資料。
TL;DR: Epoch 指模型把整個訓練集跑完一輪。若資料會切成多個 batch 才餵進模型,那一個 epoch 會包含多次 iteration。
實用情境: 適合用在理解 loss curve、early stopping 與「多訓練幾輪到底有沒有幫助」,也是 iPAS 常見的訓練流程題。
下一步: 先把 epoch / batch / iteration 的粒度分清楚,再回頭看 learning rate、early stopping,訓練流程就不容易混。
你練習考題時,會不會想知道自己把整份講義看完幾次才算夠? 你可以把訓練輪次想成,模型把整個訓練資料集完整看過一遍的次數。 它其實就是模型完成一次全資料掃描的單位,跟批次大小、迭代次數和學習率一起影響訓練效果。
你可以把它想成一個把抽象概念拉回日常判斷的提示,先知道它解決什麼問題,再看技術細節。
容易混淆
Epoch vs Iteration Epoch 是把整份資料看完一次,Iteration 是處理一個批次的更新步驟。
Epoch vs Batch Size Batch size 是一次餵多少資料,Epoch 是整份資料被看過幾輪。
Epoch vs Step Step 常常和 iteration 類似,指一次參數更新,不是完整看完資料集。
最關鍵的區別: Epoch 看「整體看了幾輪」,Iteration 和 Step 看「中間更新了幾次」。
記住這句就好
一輪是全資料看完一次,不是只跑一個批次。
實際案例
案例一:影像分類訓練 你把貓狗照片訓練 20 個 epoch,前幾輪準確率快速上升,後面開始變慢,這很正常。
案例二:早停法判斷 訓練到第 15 個 epoch 時,訓練集還在變好,但驗證集開始下滑,這通常是過擬合的訊號,應該考慮早停。
算法與應用
Epoch 數不是越大越好。太少,模型還沒學夠,容易欠擬合。太多,模型可能把訓練資料背太熟,開始過擬合。實務上常搭配驗證集、早停法和學習率調整,一起決定要訓練幾輪。
情境判斷
Q1(直覺題): 如果你把 10 萬筆資料切成 100 個批次,模型把這 100 個批次都跑完一次,這算幾個 Epoch?
→ 1 個 Epoch,因為整份資料已經完整看過一輪。
Q2(判斷題): 訓練集越跑越好,驗證集卻先升後降,這時候還要一直增加 Epoch 嗎?
→ 通常不要。這種情況多半是過擬合,應該考慮早停、正則化或調整資料與模型設定。
常見問題
如果模型在幾個 Epoch 後就達到很高的準確率,還需要繼續訓練嗎?
不一定,要看驗證集表現。如果驗證集還在變好,可以繼續;如果驗證集開始變差,就沒必要硬撐。
如何選擇合適的 Epoch 數量?
最穩的做法是看驗證損失和驗證準確率,搭配早停法,不要只靠經驗亂猜。
訓練輪次和世代(Generation)有什麼關係?
沒有直接關係。Epoch 是訓練資料被掃過的次數,Generation 通常是生成模型輸出內容時用的詞,意思不同。