写点什么

【AI】浅谈使用正则化防止过拟合(上)

作者:sidiot
  • 2023-06-25
    浙江
  • 本文字数:1825 字

    阅读完需:约 6 分钟

前言


对于机器学习问题,我们最常遇到的一个问题便是过拟合。在对已知的数据集合进行学习的时候,我们选择适应度最好的模型最为最终的结果。虽然我们选择的模型能够很好的解释训练数据集合,但却不一定能够很好的解释测试数据或者其他数据,也就是说这个模型过于精细的刻画了训练数据,对于测试数据或者其他新的数据泛化能力不强。


因此,我们需要通过正则化的方法来防止过拟合,接下来跟博主一起来了解一下吧。


本篇将重点介绍什么是欠拟合与过拟合,是什么原因造成的,该如何解决?


什么是欠拟合与过拟合


先来看一组图片,这三张图片是线性回归模型,拟合的函数和训练集的关系


  1. 第一张图片拟合的函数和训练集误差较大,我们称这种情况为 欠拟合;

  2. 第二张图片拟合的函数和训练集误差较小,我们称这种情况为 合适拟合;

  3. 第三张图片拟合的函数完美的匹配训练集数据,我们称这种情况为 过拟合;



总结得出:


  • 过拟合 (overfitting):为训练集而非测试集提供准确的结果,存在较高的方差;

  • 欠拟合 (underfitting):提供的训练集和测试集结果都不太准确,存在较高的偏差;


如下图所示:


假设红色的靶心区域是学习算法完美的正确预测值,蓝色点为训练数据集所训练出的模型对样本的预测值,当我们从靶心逐渐往外移动时,预测效果逐渐变差。


从上面的图片中很容易可以看到,左边一列的蓝色点比较集中,右边一列的蓝色点比较分散,它们描述的是方差的两种情况。比较集中的属于方差比较小,比较分散的属于方差比较大的情况。


我们再从蓝色点与红色靶心区域的位置关系来看,靠近红色靶心的属于偏差较小的情况,远离靶心的属于偏差较大的情况。



通俗地讲,过拟合就是应试能力很强,实际应用能力很差,擅长背诵知识,却不懂得灵活利用知识;而欠拟合就是啥啥都不行;


如何解决欠拟合问题


欠拟合问题,根本的原因是特征维度过少,导致拟合的函数无法满足训练集,误差较大。


欠拟合基本上都会发生在训练刚开始的时候,经过不断训练之后欠拟合应该不怎么考虑了。但是如果真的还是存在的话,可以 增加网络复杂度 或者在模型中 增加特征,这些都是很好解决欠拟合的方法。


如何解决过拟合问题


过拟合问题,根本的原因则是特征维度过多,导致拟合的函数完美的经过训练集,但是对新数据的预测结果则较差。


具体来说造成原因的话,有以下几种:


  1. 训练数据集样本单一,样本不足。如果训练样本只有负样本,然后拿生成的模型去预测正样本,这肯定预测不准,所以训练样本要尽可能的全面,覆盖所有的数据类型。

  2. 训练数据中噪声干扰过大。噪声指训练数据中的干扰数据。过多的干扰会导致记录了很多噪声特征,忽略了真实输入和输出之间的关系。

  3. 模型过于复杂。 模型太复杂,已经能够 “死记硬背” 记下了训练数据的信息,但是遇到没有见过的数据的时候不能够变通,泛化能力太差。我们希望模型对不同的模型都有稳定的输出。模型太复杂是过拟合的重要因素


要想解决过拟合问题,就要显著减少测试误差而不过度增加训练误差,从而提高模型的泛化能力。我们可以使用正则化(Regularization)方法。那什么是正则化呢?正则化是指修改学习算法,使其降低泛化误差而非训练误差


常用的正则化方法根据具体的使用策略不同可分为:


(1) 直接提供正则化约束的参数正则化方法,如 L1/L2 正则化;

(2) 通过工程上的技巧来实现更低泛化误差的方法,如提前终止 (Early stopping) 和 Dropout;

(3) 不直接提供约束的隐式正则化方法,如数据增强等。


那接下来讲讲什么是正则化;


正则化


让我们先回顾一下上述过拟合的例子:



从图中可以看出,解决这个过拟合问题可以通过消除特征 的影响, 我们称为对参数的惩罚, 也就是使得参数 接近于 0。


最简单的方法是对损失函数进行改造,例如:



这样在求解最小化损失函数的时候使得参数 接近于 0。


番外:这块如果不懂的话,可以看看博主之前写的文章:【AI】浅谈梯度下降算法(理论篇),里面有详细的算法推导过程;


正则化其实就是通过对参数 的惩罚来影响整个模型,在损失函数上加上正则项达到目的;


正则化 具体将在下一篇 【AI】浅谈使用正则化防止过拟合(下) 中进行介绍;


后记


以上就是 浅谈使用正则化防止过拟合(上) 的全部内容了,介绍了什么是欠拟合与过拟合,是什么原因造成的,该如何解决,通过图文结合,细致地讲述了要点,希望大家有所收获!

发布于: 刚刚阅读数: 2
用户头像

sidiot

关注

还未添加个人签名 2023-06-04 加入

还未添加个人简介

评论

发布
暂无评论
【AI】浅谈使用正则化防止过拟合(上)_人工智能_sidiot_InfoQ写作社区