过拟合问题

真实的应用中想要的并不是让模型尽量模拟训练数据的行为,而是希望通过训练出来的模型对未知的数据给出判断。
模型在训练数据上的表现并不一定代表了它在未知数据上的表现。过拟合问题就是可以导致这个差距的一个很重要因素。

什么是过拟合

所谓过拟合,指的是当一个模型过为复杂之后,它可以很好地“记忆”每一个训练数据中随机噪音的部分而忘记了要去“学习”训练数据中通用的趋势。举一个极端的例子,如果一个模型中的参数比训练数据的总数还多,那么只要训练数据不冲突,这个模型完全可以记住所有训练数据的结果从而使得损失函数为0。可以直观地想象一个包含n 个变量和n 个等式的方程组,当方程不冲突时,这个方程组是可以通过数学的方法来求解的。然而,过度拟合训练数据中的随机噪音虽然可以得到非常小的损失函数,但是对于未知数据可能无法做出可靠的判断。

  • 总的来说,过拟合就是学习学的太猛了,哪一个学生来说,在学校学习考试门门100分, 但是到了社会上缺乏适应能力,这就是过拟合,俗话说学傻了。

避免过拟合的方法

正则化

正则化的思想就是在损失函数中加入刻画模型复杂程度的指标。
假设用于刻画模型在训练数据上表现的损失函数为J (θ ),那么在优化时不是直接优化J (θ ),而是优化J (θ ) +λ R(w)。其中R(w)刻画的是模型的复杂程度,而λ 表示模型复杂损失在总损失中的比例。注意这里θ 表示的是一个神经网络中所有的参数,它包括边上的权重w 和偏置项b。一般来说模型复杂度只由权重w 决定。
L1正则
在这里插入图片描述

L2 正则
在这里插入图片描述

L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓惩罚是指对损失函数中的某些参数做一些限制。

无论是哪一种正则化方式,基本的思想都是希望通过限制权重的大小,使得模型不能任意拟合训练数据中的随机噪音。但这两种正则化的方法也有很大的区别。首先,L1 正则化会让参数变得更稀疏,而L2 正则化不会。

所谓参数变得更稀疏是指会有更多的参数变为0,这样可以达到类似特征选取的功能。之所以L2 正则化不会让参数变得稀疏的原因是当参数很小时,比如0.001,这个参数的平方基本上就可以忽略了,于是模型不会进一步将这个参数调整为0。其次,L1 正则化的计算公式不可导,而L2 正则化公式可导。因为在优化时需要计算损失函数的偏导数,所以对含有L2 正则化损失函数的优化要更加简洁。优化带L1 正则化的损失函数要更加复杂,而且优化方法也有很多种。

在实践中,也可以将L1正则化和L2 正则化同时使用:
在这里插入图片描述

参考资料

https://www.jianshu.com/p/c9bb6f89cfcc
https://www.cnblogs.com/zingp/p/10375691.html

声明
本博客是个人学习时的一些笔记摘录和感想,不保证是为原创,内容汇集了网上相关资料和书记内容,在这之中也必有疏漏未加标注者,如有侵权请与博主联系。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值