过拟合是什么?如何解决过拟合?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衰减的越快(参数更新公式)
过拟合是什么?如何解决过拟合?l1、l2怎么解决过拟合的更多相关文章
- 防止过拟合:L1/L2正则化
正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合).其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在tr ...
- linux上搭建ftp、vsftp, 解决访问ftp超时连接, 解决用户指定访问其根目录,解决ftp主动连接、被动连接的问题
linux上搭建ftp 重要 解决如何搭建ftp 解决用户指定访问其根目录 解决访问ftp超时连接 解决ftp主动连接.被动连接的问题 1.安装ftp ...
- L1正则化可以解决过拟合问题(稀疏解)
损失函数最小,也就是求极值点,也就是损失函数导数为0.上面也说了,如果d0+λ和d0-λ为异号的时候刚好为极值点,损失函数导数为0(w为0是条件).而对于L2正则化,在w=0时并不一定是极值点而是d0 ...
- java中文乱码解决之道(八)-----解决URL中文乱码问题
我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不 ...
- SVN svnserve.conf: Option expected 的解决方法 以及 Authorization failed 的解决方法
① 在 CentOS 6.5 上安装配置了 SVN,在本地 Checkout 的时候报错: 显示:/www/svnroot/webfile/conf/svnserve.conf:12: Option ...
- blocked because of many connection errors; unblock with 'mysqladmin flush-hosts;MySQL在远程访问时非常慢的解决方法;MySql链接慢的解决方法
一:服务器异常:Host 'xx.xxx.xx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin ...
- 题目1437:To Fill or Not to Fill:贪心算法解决加油站选择问题(未解决)
//贪心算法解决加油站选择问题 //# include<iostream> # include<stdio.h> using namespace std; # include& ...
- android动画特效之解决解决移动后闪烁现象,解决输入法弹出后位置回复原状,解决两个动画叠加
以下代码实现的效果是: BoundOpenView从居中移动到顶部,移动完后,BoundSendView从隐藏变为显示,并从顶部移动BoundOpenView下方20dp处,同时透明度慢慢增加. pr ...
- MAC 系统升级10.10以后PHP验证码错误的解决办法。[ 一行代码轻松解决! ]
MAC 升级到10.10 以后PHP版本为5.5,初步判定是由于FreeType 字体库的原因,导致GD库有些问题,总之就是验证码出不来.很多大牛给出的办法是重新编译PHP,这对于手头有项目的人来说可 ...
随机推荐
- 枚举类型与字符串ConvertEnumToString
枚举类型与字符串添加字典互转ConvertEnumToString using UnityEngine; using System.Collections; using UnityEngine.UI; ...
- select简单示例,有注释
全部都在代码中: import select import socket import queue """ 简单的select 实现echo server 个人理解: s ...
- (转)同步异步,阻塞非阻塞 和nginx的IO模型
同步异步,阻塞非阻塞 和nginx的IO模型 原文:https://www.cnblogs.com/wxl-dede/p/5134636.html 同步与异步 同步和异步关注的是消息通信机制 (sy ...
- NSTimer循环引用的问题
前言: 记得之前看过一个面试题问:ARC环境下的dealloc方法有什么用?问题解答是:代理指针置空,停止定时器timer,注销通知,释放掉实例变量.看着没什么问题,而且网上一收也是大概这样的答案.今 ...
- Windows 那些坑
Windows Qt搭建 安装Qt 选择MinGW或者MSVC(建议VC), qt自动检测编译器, 基本上不用配置 去掉UWP(Windows通用平台开始, 不同于传统的exe, 它可以运行在所有的W ...
- Codeforce 609 C—— Load Balancing ——————【想法题】
C. Load Balancing time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- egret打包android + android微信登录--小结
公司用egret做了款游戏,需要打android包,做安卓端的微信登录,于是乎开始了第一安卓上的打包,正的是一脸懵 首先遇到的问题有如下: 1. egret打安卓包时经常运行不起来, 主要是gradl ...
- js数据类型检测小结
在js中,有四种用于检测数据类型的方式,分别是: typeof 用来检测数据类型的运算符 instanceof 检测一个实例是否属于某个类 constructor 构造函数 Object.protot ...
- Java 枚举 获取前后元素,下一个元素
https://blog.csdn.net/jiangshanwe/article/details/79119219
- 2018-12-20 第二章Java 预习作业
一.什么是变量?如何使用变量? 答:变量是在程序运行中其值可以改变的量,它是Java程序的一个基本存储单元. 变量的语法格式如下: [访问修饰符]变量类型 变量名[=初始值]: 二.java中基本数据 ...