博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
过拟合是什么?如何解决过拟合?l1、l2怎么解决过拟合
阅读量:5977 次
发布时间:2019-06-20

本文共 1244 字,大约阅读时间需要 4 分钟。

1. 过拟合是什么?

 https://www.zhihu.com/question/264909622    那个英文回答就是说h1、h2属于同一个集合,实际情况是h2比h1错误率低,你用h1来训练,用h2来测试,但h1的准确率比h2却高

    个人理解:网络过分学习了训练集的特征,把不是这个训练集本质的特征也学习进去了,导致模型不能在测试集正确识别(记得统计学习方法里面有一个配图,一条曲线过分学习特征)。或者说,训练集的准确率很高,但测试集的准确率很低。在training data上的error渐渐减小,可是在验证集上的error却反而渐渐增大。

    自己在工程中遇到过,27w次的loss比21w次低,但测试集27w的准确率比21w次低。

 

2. 解决办法?1.数据增强

      2.更简单的模型,参数更少 

      3.early stopping。提前终止网络学习,自己之前做的27w迭代期比21w迭代期的在测试集上ap值更低,可以把21w的作为最终的训练结果。

      4.l1、l2正则(往往说的weight decay其实也就是这个,在loss上加l1、l2.我自己写的weight decay的总结http://www.cnblogs.com/ymjyqsx/p/9160852.html)

      5.增加噪声

      6.dropout

      7.

3. L1、L2怎么解决过拟合?

https://blog.csdn.net/jinping_shi/article/details/52433975

    1. l1正则是所有权重绝对值之和,l2正则化是所有权重的平方和再开平方根。

  2. l1可以产生稀疏模型,用于特征选择(为什么会产生稀疏模型,用2维平面loss函数的等值线和正则的线进行图解,l1正则有更多凸点,这些凸点与等值线相交的概率比其他点更大,这些凸点的坐标是一个为0,另一个不为0,也就进行了特征选取。为什么l2不容易产生稀疏模型,因为l2是在二维上是一个圆形,l2的凸点与等值线的相交的概率要比其他点小)。l2可以获得值很小的参数(推参数更新的公式)。

  3. 拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响(可以用y = ax + b来当理解,如果a的切斜角很大,那x的值变动很小,但y的值会相对于x的值变动大);但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。

   4. l1中λ越大,x越小,也就是参数越小(你可以拿y = ax这个函数做类比,a越大,x就算取更小的值都能取到原来大小的值)。λ越大,越容易在0点取到最小值。l2中λ越大,w衰减的越快(参数更新公式)

 

 

 

你可能感兴趣的文章
HBase 笔记3
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
通过IP判断登录地址
查看>>
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
Beta冲刺——day6
查看>>
在一个程序中调用另一个程序并且传输数据到选择屏幕执行这个程序
查看>>
代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
查看>>
关于在VS2005中编写DLL遇到 C4251 警告的解决办法
查看>>
提高信息安全意识对网络勒索病毒说不
查看>>
我的友情链接
查看>>
IDE---Python IDE之Eric5在window下的安装
查看>>
Mybatis调用Oracle中的存储过程和function
查看>>
基本安装lnmp环境
查看>>
yum源资料汇总
查看>>
7、MTC与MTV,http请求介绍
查看>>
logstash消费阿里云kafka消息
查看>>