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

2020 年 1 月 16 日 计算机视觉life

点击上方“计算机视觉life”,选择“星标”

快速获得最新干货





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 的关系如下:
 

图片来源于网络


如果施加 L1,则新的函数为:Loss()+C|w|,要想消除这个特征的作用,只需要令 w = 0,使它取得极小值即可。

 

且可以证明:添加L1正则后 ,只要满足:

系数 C 大于原函数在 0 点处的导数的绝对值,

w = 0 就会变成一个极小值点。

 

证明过程如下,如上图所示,要想在0点处取得极小值,根据高数基本知识:


1) w小于0时,d(Loss)/d(w)  - C 小于0

2) 且,w大于0时,d(Loss)/d(w) + C 大于0

 

上面两个式子同时满足,可以简写为:| d(Loss)/d(w) | < C, 得证。

 


图片来源于网络

 如果施加 L2,  则新的函数为:Loss()+Cw^2 ,求导可得:d(Loss)/d(w)  + 2Cw,要想在w = 0点处取得极小值,必须得满足:


d(Loss)/d(w)  = 0


言外之意,如果原函数在0点处的导数不为 0,那么施加 L2 正则后导数依然不为 0,也就不会在0点处取得极小值。

 

这种概率很明显小于L1正则在0点处取得极小值的概率值,由此可得,L1更容易使得原来的特征变弱或消除,换句话说就是更容易变稀疏。


讲完了,读者朋友们,你们看明白了吗?

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


投稿也欢迎联系:simiter@126.com

长按关注计算机视觉life


推荐阅读

原来CNN是这样提取图像特征的。。。

有哪些靠谱的deep learning网络调参经验?

深度学习中最常见GAN模型应用与解读

CNN系列模型发展简史(附代码,已全部跑通)

盘点卷积神经网络中十大变革操作:变形卷积核、可分离卷积。。。

深度学习,怎么知道你的训练数据真的够了?

重磅!MobileNetV3 来了!

最佳机器/深度学习课程 Top 5 ,吴恩达占了俩

机器学习必学十大算法

YOLO简史

这可能是「多模态机器学习」最通俗易懂的介绍

算力限制场景下的目标检测实战浅谈

开源 | 用深度学习让你的照片变得美丽

面试时让你手推公式不在害怕 | 线性回归

面试时让你手推公式不在害怕 | 梯度下降

深度学习在计算机视觉各项任务中的应用

干货 | 深入理解深度学习中的激活函数

何恺明组又出神作!最新论文提出全景分割新方法

Android手机移植TensorFlow,实现物体识别、行人检测、图像风格迁移

没有人工标注,如何实现互联网图像中的像素级语义识别?

详解如何将TensorFlow训练的模型移植到安卓手机

有趣又有料:任意操控静态图片中人的眼球

深度学习+几何结构:1+1>2?

机器学习工程师第一年的 12 点体会

万字长文总结机器学习的模型评估与调参,附代码下载

如何配置一台深度学习工作站?


最新AI干货,我在看  

登录查看更多
0

相关内容

过拟合,在AI领域多指机器学习得到模型太过复杂,导致在训练集上表现很好,然而在测试集上却不尽人意。过拟合(over-fitting)也称为过学习,它的直观表现是算法在训练集上表现好,但在测试集上表现不好,泛化性能差。过拟合是在模型参数拟合过程中由于训练数据包含抽样误差,在训练时复杂的模型将抽样误差也进行了拟合导致的。
【MIT-ICML2020】图神经网络的泛化与表示的局限
专知会员服务
42+阅读 · 2020年6月23日
因果图,Causal Graphs,52页ppt
专知会员服务
246+阅读 · 2020年4月19日
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
麻省理工学院MIT-ICLR2020《神经网络能推断出什么?》
专知会员服务
50+阅读 · 2020年2月19日
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
激活函数还是有一点意思的!
计算机视觉战队
12+阅读 · 2019年6月28日
面试时让你手推公式不在害怕 | 梯度下降
计算机视觉life
14+阅读 · 2019年3月27日
深度学习面试100题(第71-75题)
七月在线实验室
5+阅读 · 2018年8月2日
从零开始深度学习:dropout与正则化
数萃大数据
7+阅读 · 2018年7月22日
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
面试整理:关于代价函数,正则化
数据挖掘入门与实战
8+阅读 · 2018年3月29日
谈谈过拟合
数萃大数据
5+阅读 · 2018年2月24日
教你简单解决过拟合问题(附公式)
数据派THU
5+阅读 · 2018年2月13日
BAT机器学习面试1000题系列(第51~55题)
七月在线实验室
10+阅读 · 2017年10月8日
干货 | 深度学习之损失函数与激活函数的选择
机器学习算法与Python学习
15+阅读 · 2017年9月18日
Arxiv
6+阅读 · 2019年3月19日
Arxiv
3+阅读 · 2019年3月15日
W-net: Bridged U-net for 2D Medical Image Segmentation
Arxiv
19+阅读 · 2018年7月12日
Arxiv
9+阅读 · 2018年5月24日
Arxiv
27+阅读 · 2017年12月6日
VIP会员
相关资讯
激活函数还是有一点意思的!
计算机视觉战队
12+阅读 · 2019年6月28日
面试时让你手推公式不在害怕 | 梯度下降
计算机视觉life
14+阅读 · 2019年3月27日
深度学习面试100题(第71-75题)
七月在线实验室
5+阅读 · 2018年8月2日
从零开始深度学习:dropout与正则化
数萃大数据
7+阅读 · 2018年7月22日
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
面试整理:关于代价函数,正则化
数据挖掘入门与实战
8+阅读 · 2018年3月29日
谈谈过拟合
数萃大数据
5+阅读 · 2018年2月24日
教你简单解决过拟合问题(附公式)
数据派THU
5+阅读 · 2018年2月13日
BAT机器学习面试1000题系列(第51~55题)
七月在线实验室
10+阅读 · 2017年10月8日
干货 | 深度学习之损失函数与激活函数的选择
机器学习算法与Python学习
15+阅读 · 2017年9月18日
Top
微信扫码咨询专知VIP会员