iPAS 備考專區 登入

iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用・114 年第二次・L23・第 31 題

驗證損失波動時怎麼用早期停止法?

原題

某能源公司利用歷史氣象與用電資料,開發長期電力需求預測模型,採用深度神經網路架構進行訓練。在訓練過程中,模型在訓練集上的損失值持續下降,但在驗證集上,損失在第 80 輪後開始波動,呈現週期性上升與下降。團隊懷疑模型受到季節性資料波動與隨機噪音影響,導致驗證損失難以穩定收斂。若要在此情境下合理運用早期停止法(Early Stopping)以確保模型具最佳泛化能力,下列哪一項策略最為適當?

白話

一家能源公司在訓練深度神經網路預測電力需求。訓練集損失一直下降,但驗證集損失在第 80 輪後開始忽上忽下,無法穩定。

問你:面對這種驗證損失波動的情況,使用早期停止法時哪個策略最合適?

一句話總結

驗證損失波動時,早期停止法的正確做法是:監控驗證集損失,設定耐心值(Patience),在連續多輪都沒有改善後才停止訓練,而不是看到一次波動就立刻停。

情境

先感受問題:電力需求有季節波動,損失曲線不會很平滑

「綠能科技」的工程師陳明正在訓練一個深度神經網路來預測明年每週的電力需求。他用過去 10 年的氣象和用電資料來訓練。

訓練進行到第 80 輪,他注意到一個問題:

訓練集損失:每輪都在下降,很穩定。

驗證集損失:第 80 輪後開始上下震盪,有時升有時降,找不到規律。

陳明懷疑是電力需求本身有季節性(夏天用冷氣、冬天用暖氣),加上資料本身有一些隨機噪音,讓驗證集損失看起來很不穩定。

他需要一個策略:既能讓模型在「真正不再進步」的時候停下來,又不會因為一次偶然的波動就提早放棄。

這就是早期停止法(Early Stopping)中「耐心值(Patience)」的用途。

舊方法

沒有耐心值的早停策略會踩哪些坑?

  1. 看到驗證損失微升就立刻停:第 82 輪驗證損失比 81 輪高了一點點,就停訓練。但 84 輪可能比 81 輪還低,這個「停」決策是過早的,白白放棄了後續改善空間。
  2. 靠訓練集損失決定停點:訓練集損失會一直下降(模型在死背訓練資料),用它決定停點等同於鼓勵過擬合,模型在驗證集上的泛化能力可能很差。
  3. 用測試集當早停依據:測試集的角色是「最後一次考試」,用它調整訓練決策等於把考試答案偷看了,最終評估分數就不再客觀。
  4. 把所有資料合併訓練至收斂:沒有獨立的驗證集,就根本不知道模型什麼時候開始過擬合,訓練可能會無止盡地進行直到訓練損失趨近零,模型完全過擬合。
  5. 耐心值設太小(如 Patience=1):只要連續 1 輪沒進步就停,在季節性資料上幾乎必然過早停止,因為驗證損失本來就會週期性波動。

新方法

設定耐心值:給模型「多幾輪機會」再判斷是否停止

陳明決定用帶耐心值的早期停止法。他設定 Patience = 15,表示:「如果連續 15 輪驗證損失都沒有改善,才停止訓練。」

實際運作:

第 80 輪:驗證損失 0.245(記錄為最佳值)

第 81 輪:0.252(比最佳差,計數 = 1)

第 82 輪:0.248(還是比最佳差,計數 = 2)

第 85 輪:0.241(比最佳好!計數重置 = 0,更新最佳值)

第 86-100 輪:持續波動,但只要有一輪更好就重置計數

第 101-115 輪:連續 15 輪都沒超過當前最佳值 → 停止,還原到最佳輪次的權重

這樣的設計讓模型能撐過短暫的損失波動,只在真正「長期停滯」時才停下來,同時存回最佳驗證損失對應的模型權重。

這就是選項 B 講的:監控驗證集損失並設定適度的耐心值(Patience),在連續多輪未改善後再停止訓練。

錯選項

為什麼其他選項是錯的

A根據訓練集損失最低點停止

字面在說什麼

訓練集損失最低點就是停止訓練的最佳時機。

為什麼不對

訓練集損失會一直下降,直到模型完全記住所有訓練樣本。如果照這個邏輯停,等同於讓模型一直訓練到過擬合為止。Early Stopping 的目的是找泛化能力最好的點,而泛化能力必須用驗證集衡量,不是訓練集。

誰會選錯

混淆「訓練集表現好」和「泛化能力好」的人。直覺上覺得訓練損失最低代表模型學得最好,沒意識到過擬合問題。

C改以測試集損失作為早停依據

字面在說什麼

用測試集損失來決定何時停止,可以讓最終評估更一致。

為什麼不對

測試集是「完全獨立」的最終評估資料,用它來調整訓練決策等於「看著考試卷回頭改作業」,導致測試集洩漏(data leakage),最終的評估分數就不再客觀可信。Early Stopping 的監控依據必須是驗證集。

誰會選錯

不清楚「驗證集」和「測試集」角色差異的人,以為這兩個集合可以互換使用。

D合併所有資料訓練至收斂

字面在說什麼

把訓練集、驗證集合在一起,讓模型用所有資料訓練到收斂,就不會有「評估波動」的問題。

為什麼不對

沒有獨立的驗證集,Early Stopping 就根本無法執行,因為沒有指標可監控。而且讓模型看到所有資料訓練到收斂,幾乎等同於讓它完全過擬合。這個做法完全捨棄了泛化評估的基礎。

誰會選錯

誤以為「資料越多越好」所以應該合併全部資料的人,沒有理解資料分割(train/val/test split)的目的。

變形題

同個考點下次怎麼變形

延伸

想再往下看,這 5 個

答案、題目或解析有問題?回報這題

出處:iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用 第 31 題

看官方原文 PDF

原題 © 經濟部產業發展署,AITerms.tw 僅作教學解析使用,本站解析以 CC BY-NC-SA 4.0 授權。