2024年1月12日学习总结

发布时间:2024年01月13日

学习目标

  • 完成集中学习的readme
  • 完成联邦学习的代码编写
  • 边学习边总结

学习内容

Introduction to Early Stopping

1、Overfitting

过拟合是所有机器学习,深度学习中可能出现的一个比较严重的问题。具体表现就是:你的模型在训练集上处理的效果非常好,但是在测试集上的表现就非常的差😰
以二元分类问题举例:
在这里插入图片描述
可以看出第一个模型可能采用的是简单的线性分类,效果不理想。第二个和第三个都能够正确的分类。但是为什么说第三个模型是过拟合呢?因为此时第三个模型虽然很精确地区分了所有的训练数据,但是他是通过记住训练数据的微小波动来得到这样一个“完美”的训练准确率的,但是此时这个模型只学到了当前训练数据集的特征,没有学到数据的整体特征,他不能成功的表达除了训练数据以外的其他数据,don’t generalize(概括)

2、relation of overfitting with model parameters

根据人的工作年限预测工资的例子(回归):
现在有三个模型,对应的回归曲线:
在这里插入图片描述

  • 第一个模型只用两个参数就能很好的看出年限和工资的关系了(线性增长)
  • 第二个模型有三个参数,它很好地解释了数据,并考虑了二次项
  • 第三个模型有四个参数,它就是过度拟合,尽管它经过了所有的训练点,但是不能很好的反应数据的趋势,预测能力严重不足。
    这说明了参数越多越容易过拟合,神经网络的参数是非常多的,所以神经网络就是过拟合的重灾区

3、Regularization(正则化)

(1)when do we use regularization?

当我们猜测模型是过拟合状态时就要使用正则化,过拟合状态的显著特点就是验证集具有不好的性能,验证集是模型没有“看到过”的数据,所以如果模型值学到了训练集数据的知识,那么在验证集上将具有很差的性能。所以在训练的过程中我们要不断的检测验证集的指标,如果发现验证集没有显著提升的话,这就是一个警报,告诉我们模型正在过拟合,我们就需要采取regularization techniques

(2)easy stopping

一般解决overfitting问题的策略就是Regularization,easy stopping是其中的一个方法。
这个想法很简单,模型在训练的过程中通过不断的tune(调整)parameters,试图在training data上追踪loss function。我们现在再训练的同时保存一个validation data,同时记录在validation data上的loss function的值,当为我们发现validation set的loss没有提升的话,我们就不要运行完所有的epochs,直接stop。这种基于验证集性能的提前停止策略称为easy stopping。
在这里插入图片描述
从图中可以看出

  • 随着epochs的增加,训练集的准确率是在一直增加的,很有可能就进入过拟合状态
  • 验证集在epoch=8~10左右就饱和了,说明模型可以在此时就停止训练了,easy stopping不仅可以防止过度拟合,而且需要相当少的Epoch来训练。
(3) L1/L2 Regularization

正则化方法是在原目标(代价)函数 中添加惩罚项,对复杂度高的模型进行“惩罚”,通过对权重系数进行缩减
通常我们的损失函数是: l o s s = f ( p r e d s , y ) loss = f(preds,y) loss=f(preds,y),其中 y y y是目标输出, p r e d s preds preds是预测值
线性回归问题的预测值可以表示为: p r e d s = W X + b preds=WX+b preds=WX+b
L1/L2 regularization就是在这个损失函数的基础上加上一个惩罚项(penalty term) Ω ( W ) \Omega(W) Ω(W),可理解为模型“规模”的某种度量,参数 α \alpha α控制控制正则化强弱
l o s s = f ( p r e d s , y , W ) + α Ω ( W ) L 1 : Ω ( W ) = ∣ ∣ W ∣ ∣ 1 = ∑ i ∣ W i ∣ L 2 : Ω ( W ) = ∣ ∣ W ∣ ∣ 2 = ∑ i W i 2 loss = f(preds,y,W)+\alpha \Omega(W)\\ L1:\Omega(W)=||W||_1=\sum_i |W_i|\\ L2:\Omega(W)=||W||_2=\sum_i W_i^2\\ loss=f(preds,y,W)+αΩ(W)L1:Ω(W)=∣∣W1?=i?Wi?L2:Ω(W)=∣∣W2?=i?Wi2?
L1正则化使一些系数为零,这意味着模型将忽略这些特征。忽略最不重要的特征有助于强调模型的基本特征。
L2正则化技术试图保持模型的权重接近于零,但不是零,这意味着每个特征对输出的影响应该很小,而模型的精度应该尽可能高。

easy stopping的一些参数

  • monitor:需要被监视的量。默认就是validatin loss
  • min_delta:监视的量的最小的提升量。
  • patience:如果训练已经有patience个epochs没有提升了,那么训练停止
  • mode:one of {“auto”,“min”,“max”}这是一个最大化问题还是最小化问题,我们最大化精确度,最小化损失。
  • restore_best_weights:是否使用最优的模型权重或者最后一个epoch时的模型权重
文章来源:https://blog.csdn.net/qq_43403653/article/details/135490257
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。