分享

正则化到底是怎么消除过拟合的?这次终于有人讲明白了

 taotao_2016 2019-10-28

正则化到底是怎么消除过拟合的?这次终于有人讲明白了

1、过拟合怎么产生的?

模型训练之初,你压根不知道哪些特征会有用,于是你找了很多特征,以此来尽可能精确地去拟合训练数据。

这样的结果往往就是,你用上了一些其实不重要的特征,虽然加上这些特征,会在训练集中表现很好,甚至拿到满分,但是我们的目标并不是让模型在训练集上取得满分,而是在正儿八经的测试集,这种大考中,取得优秀的表现。

十有八九,我们第一次训练出来的模型,会出现过拟合,也就是说,在测试集表现的没有在训练集上好,甚至差不少。

这是为什么?

分析发现,我们在模型中使用的某些特征,本身就不具备普适性。但你通过训练集,还是学习到它了,因为你的模型,想法设法地拟合了所有的样本点,自然而然地就会出来很多特征参数,如下图,第三幅图的模型复杂程度远大于第一幅。

正则化到底是怎么消除过拟合的?这次终于有人讲明白了

图片来源于网络

在这种不具备普遍性的情况下学习到它,自然会影响你测试集的效果,自然就做不出泛化能力强的模型,就产生了过拟合。

当然了,并不是只要参数一多就会过拟合,还要看你的样本量。

2 、消除过拟合的通俗理解

先不用管L1, L2正则到底是干啥的,它们之间有何区别等这样的问题。

按照逻辑,遇到过拟合这个问题,直接解决过拟合就行。

我们不妨先想想,如果想消除几个原来模型中的特征,你会怎么去做?比如我们学到了一个模型:

y = tanh(w1x1 + w2x2 + w3x3 + w4x4)

如果想变弱或消除特征x3, 其实很简单的。直接添加一项 -w3*常数就会达到效果,对吗?yeah, 这样不就变弱特征x3的作用了吗。

其实还是不难理解的。

3 、相比L2,L1正则更可能使模型变稀疏?

关于这个问题的回答,近日,我查阅到了几篇讲的比较好的博客,非常通俗地解释了这个问题。

https://blog.csdn.net/weixin_39750084/article/details/83661413

https://www.zhihu.com/question/37096933

L1就是对模型中每个特征取绝对值,L2取平方。

首先,为解释问题做铺垫。

假如,我们的模型Loss函数与某个特征w 的关系如下:

正则化到底是怎么消除过拟合的?这次终于有人讲明白了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多