早停!? earlystopping for keras


  為了獲得性能良好的神經網絡,網絡定型過程中需要進行許多關於所用設置(超參數)的決策。超參數之一是定型周期(epoch)的數量:亦即應當完整遍歷數據集多少次(一次為一個epoch)?如果epoch數量太少,網絡有可能發生欠擬合(即對於定型數據的學習不夠充分);如果epoch數量太多,則有可能發生過擬合(即網絡對定型數據中的“噪聲”而非信號擬合)。

早停法旨在解決epoch數量需要手動設置的問題。它也可以被視為一種能夠避免網絡發生過擬合的正則化方法(與L1/L2權重衰減和丟棄法類似)。

目的還是解決過擬合!

早停法背后的原理其實不難理解:

  • 將數據分為定型集和測試集
  • 每個epoch結束后(或每N個epoch后):
    • 用測試集評估網絡性能
    • 如果網絡性能表現優於此前最好的模型:保存當前這一epoch的網絡副本
  • 將測試性能最優的模型作為最終網絡模型

keras.callbacks.EarlyStopping(monitor='val_loss', patience=0, verbose=0, mode='auto')

 

當監測值不再改善時,該回調函數將中止訓練

參數

  • monitor:需要監視的量

  • patience:當early stop被激活(如發現loss相比上一個epoch訓練沒有下降),則經過patience個epoch后停止訓練。

  • verbose:信息展示模式

  • mode:‘auto’,‘min’,‘max’之一,在min模式下,如果檢測值停止下降則中止訓練。在max模式下,當檢測值不再上升則停止訓練。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM