基礎知識指南

提前停止

早期停止是一種正規化技術,當保留的驗證資料的效能停止改善時,該技術會停止模型訓練。

閱讀時間約2分鐘最後更新

概述

It prevents wasted compute and overfitting in one simple rule.

深入探討

當你訓練神經網路時,訓練集誤差不斷下降,但在某個時刻,模型開始記住噪音而不是學習模式。驗證誤差遵循 U 形:它下降,達到最小值,然後隨著過度擬合的出現而攀升。提前停止在每個 epoch 後觀察驗證指標(損失、準確度、F1),並在一定數量的 epoch 內無法改進時停止,稱為耐心。至關重要的是,您保留最好時期的權重,而不是最後時期的權重。它是最便宜的正則化形式之一,因為它不需要額外的懲罰項,並且有效地限制了權重偏離其初始化的距離,其本質類似於 L2 正則化。

技術洞察

實作追蹤最佳驗證分數和計數器。每個時期,如果指標改善超過 min_delta 閾值,則保存檢查點並重置計數器;否則你就增加它。當計數器達到耐心極限時,訓練停止並恢復最佳檢查點。耐心以穩健性與總訓練時間的噪音驗證曲線為代價,並且通常與學習率和批量大小一起調整。

戰略影響

更明確的決策

它可以幫助您將清晰的技術聲明與行銷語言分開。

成本與預算

在花費金錢或時間之前,您可以提出更好的實施問題。

團隊與工作流程

具有共同理解的團隊可以做出更好的產品、政策和學習決策。

提前停止的未來

提前停止仍然是幾乎所有訓練流程中的預設設置,但其角色正在改變。透過在大規模語料庫上針對單一時期訓練非常大的模型,經典的基於時期的停止被對代幣預算和學習率計劃的監控所取代。預計與自動超參數搜尋、多指標標準和預算感知調度程序的更緊密整合,這些調度程序決定何時繼續訓練不再證明其計算和碳成本是合理的。

現實世界的實施

Keras EarlyStopping 回調,耐心 = 10 監視影像分類器上的 val_loss 和 Restore_best_weights = True

當驗證 AUC 平穩時停止梯度增強樹 (XGBoost Early_stopping_rounds) 以避免添加無用的樹

一旦驗證 F1 停止上升,就停止對 BERT 情緒模型進行微調,從而節省 GPU 時間

Kaggle 競爭對手使用驗證折疊提前停止並選擇日誌損失最低的檢查點

風險與防護欄

不同的團隊可能會以不同的方式使用相同術語,因此請儘早定義範圍。

基準測試可能看起來很強大,但實際效能卻參差不齊。

忽視數據品質和評估計劃通常會產生脆弱的結果。

實施路線圖

1

從您需要的結果的簡單語言定義開始。

2

在測試之前選擇一種成功指標和一種失敗條件。

3

使用代表性資料運行小型試點,而不是完善的演示集。

4

記錄早期停止在哪些方面有幫助以及哪些更簡單的方法更好。

不斷探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Early Stopping quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

開始測驗

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一步指南

人工智慧在地震預警的應用

常見問題

What is Early Stopping?

早期停止是一種正規化技術,當保留的驗證資料的效能停止改善時,該技術會停止模型訓練。它可以透過一個簡單的規則來防止計算浪費和過度擬合。

提前停車主要監控什麼訊號來決定何時停車?

提前停止會觀察持續的驗證指標,因為即使模型過度擬合,訓練損失也會持續下降。

「耐心」參數控制什麼?

耐心是指在訓練停止之前允許沒有改進的時期數,平滑吵雜的驗證曲線。

提早停止觸發後,您通常應該保持哪些重量?

您從具有最佳驗證分數的紀元(而不是最後一個紀元)恢復檢查點,後者可能已經過擬合。

為什麼早期停止被視為一種正規化形式?

提前停止可以使權重更接近其初始化,這具有與權重衰減相當的正則化效果。

“min_delta”閾值通常指定什麼?

min_delta 設定了重置耐心計數器所需的改進幅度,防止微小的波動看起來像是真正的進步。