zoukankan      html  css  js  c++  java
  • 早停!? 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模式下,当检测值不再上升则停止训练。

  • 相关阅读:
    B. Xor of 3 题解(思维+构造)
    小 L 与 GCD 题解(数学 hard)
    F. Clear The Matrix 题解(状压dp)
    小顶堆与大顶堆的自定义cmp函数
    字符指针、字符数组
    python中创建dict对象
    中缀表达式转后缀表达式
    vue中keep-alive,include的缓存问题
    vue 冒号 :、@、# 是什么意思? v-bind v-on v-slot v-是指令
    vue 自定义指令 v-
  • 原文地址:https://www.cnblogs.com/cupleo/p/10239458.html
Copyright © 2011-2022 走看看