过拟合是什么?如何解决过拟合?l1、l2怎么解决过拟合
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衰减的越快(参数更新公式)
- 什么是网站死链?如何查询网站死链?网站死链怎么解决?
- sqlserver 必须声明标量变量 "@id" 什么原因,如何解决 存储过程 带参数
- AJAX解决什么问题?如何使用AJAX?AJAX有什么问题需要注意?项目中哪里用到了AJAX?
- 电线的粗细与电流的大小怎么算?电流的大小与电器的功率有什么关系? 如何根据电流的大小选择铜质电线的粗细
- 玩3D游戏头晕怎么办?为什么会头晕?如何解决?
- 10024---Java高并发,如何解决,什么方式解决
- 网页出现503 service unavailable是什么意思?怎么解决?
- 求职笔记-操作系统-什么是临界区?如何解决冲突?
- Unity游戏引擎游戏开发时遇到内存泄漏问题怎么办? 自研发的Unity游戏老是卡顿、闪退,有什么办法解决吗?
- Java高并发,如何解决,什么方式解决
- 什么是跨域?怎么解决跨域问题?
- tif格式文件用什么打开(如何打开怎么打开) tif是什么格式文件 ...
- Java高并发,如何解决,什么方式解决
- 跨域问题,什么是跨域,怎么解决?
- jQuery$命名冲突怎么办如何解决
- 数码相机存储卡数据怎么恢复,如何解决数码相机内存卡数据恢复
- 转载:Java高并发,如何解决,什么方式解决
- 什么是SQL注入,如何解决SQL注入
- 什么是Java OOM?如何分析及解决oom问题?
- 什么是推特?怎么上推特E9加速器如何在国内上twitter