早停!? earlystopping for keras
為了獲得性能良好的神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)定型過程中需要進行許多關(guān)于所用設(shè)置(超參數(shù))的決策。超參數(shù)之一是定型周期(epoch)的數(shù)量:亦即應(yīng)當完整遍歷數(shù)據(jù)集多少次(一次為一個epoch)?如果epoch數(shù)量太少,網(wǎng)絡(luò)有可能發(fā)生欠擬合(即對于定型數(shù)據(jù)的學(xué)習(xí)不夠充分);如果epoch數(shù)量太多,則有可能發(fā)生過擬合(即網(wǎng)絡(luò)對定型數(shù)據(jù)中的“噪聲”而非信號擬合)。
早停法旨在解決epoch數(shù)量需要手動設(shè)置的問題。它也可以被視為一種能夠避免網(wǎng)絡(luò)發(fā)生過擬合的正則化方法(與L1/L2權(quán)重衰減和丟棄法類似)。
目的還是解決過擬合!
早停法背后的原理其實不難理解:
- 將數(shù)據(jù)分為定型集和測試集
- 每個epoch結(jié)束后(或每N個epoch后):
- 用測試集評估網(wǎng)絡(luò)性能
- 如果網(wǎng)絡(luò)性能表現(xiàn)優(yōu)于此前最好的模型:保存當前這一epoch的網(wǎng)絡(luò)副本
- 將測試性能最優(yōu)的模型作為最終網(wǎng)絡(luò)模型
keras.callbacks.EarlyStopping(monitor='val_loss', patience=0, verbose=0, mode='auto')
?
當監(jiān)測值不再改善時,該回調(diào)函數(shù)將中止訓(xùn)練
參數(shù)
-
monitor:需要監(jiān)視的量
-
patience:當early stop被激活(如發(fā)現(xiàn)loss相比上一個epoch訓(xùn)練沒有下降),則經(jīng)過patience個epoch后停止訓(xùn)練。
-
verbose:信息展示模式
-
mode:‘a(chǎn)uto’,‘min’,‘max’之一,在min模式下,如果檢測值停止下降則中止訓(xùn)練。在max模式下,當檢測值不再上升則停止訓(xùn)練。
轉(zhuǎn)載于:https://www.cnblogs.com/cupleo/p/10239458.html
總結(jié)
以上是生活随笔為你收集整理的早停!? earlystopping for keras的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ.4199.[NOI2015]品
- 下一篇: Multidex(二)之Dex预加载优化