机器学习之keras EarlyStopping()函数详解

EarlyStopping()

1.函数简介

使用该函数的目的是为了防止过拟合,因为在我们训练模型的过程中,很有可能出现过拟合的情况。这个时候训练集表现很好,但是验证集表现就会下降。这时候我们需要提前结束训练,得到“最佳”(只能判断是在全局范围内最佳)的结果。
具体见早停法

2.参数详解

以下给出样例

EarlyStopping(monitor='val_loss', min_delta=0, patience=10, verbose=2, mode='auto', restore_best_weights=True)

对于参数的解释

monitor: 监控的变量,例如val_acc,val_loss。如果要保存最高的精度,则应将检查点设置为monitor =’val_acc’,它将自动以最高的精度保存.最低的损耗不一定与最高的精度相对应
min_delta: monitor的最小变化,如果绝对值小于min_delta,则可以看作对于结果没有improvement,默认为0。
patience: 没有改善的epoch数。比如例子中为10次内都没有改变。
verbose:日志显示

  1. verbose = 0 为不在标准输出流输出日志信息
  2. verbose = 1 为输出进度条记录
  3. verbose = 2 为每个epoch输出一行记录

mode: auto, min, max三者之一. 在最小模式下,当监控量停止下降时,培训将停止; 在最大模式下,当监控量停止增加时,它将停止; 在自动模式下,从监控数量的名称自动推断方向。
restore_best_weights: 若为True,将会取整个训练过程中最佳监控值的epoch训练结果作为最终模型权值,否则将以最后一次epoch的结果作为最终模型权值。

3.优缺点

虽然早停法简单易懂,也很好操作,但是也存在很大的缺陷。比如当模型剧烈波动的时候可能会停的太早,以至于不能得到想要的“好结果”。另外由于原理过于简单,对于复杂的问题往往统一用一种方式进行评判,也不能很好的得到恰当的结论。
除了使用早停法防止过拟合,还有一种方法为正则化方法,详见深入理解L1、L2正则化

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值