L1正则化和L2正则化
在机器学习以及深度学习中我们经常会看到正则化这一名词,下面就浅谈一下什么是正则化?以及正则化的意义所在?
一、什么是正则化?
正则化项 (又称惩罚项),惩罚的是模型的参数,其值恒为非负
λ是正则化系数,是一个超参数,调节惩罚的力度,越大则惩罚力度越大。
二、正则化的目的?
先上图:
上图从左到右依次为:欠拟合、理想状态、过拟合
欠拟合从字面意思来看就是欠缺拟合程度,这一般在复杂度很低的模型中出现。从数学上来看,一元一次函数为一条直线、一元二次函数为一个曲线,以此类推。那么参数越多,其越能拟合更复杂的特征,但是一味的增加模型的复杂度就会造成过拟合现象。一旦过拟合,模型的泛化能力以及鲁棒性将特别差。那么怎么结局过拟合现象呢?
在从数学方面分析来看,为了减小过拟合,要将一部分参数置为0,最直观的方法就是限制参数的个数,因此可以通过正则化来解决,即减小模型参数大小或参数数量,缓解过拟合。
在神经网络中,激活函数(以sigmoid为例)如下图
如果我们的正则化系数(lambda)无穷大,则权重w就会趋近于0。权重变小,激活函数输出z变小。z变小,就到了激活函数的线性区域,从而降低了模型的非线性化程度。
三、L1和L2正则化
(一)L1正则化
L1正则化,又称Lasso Regression,是指权值向量w中各个元素的绝对值之和。比如 向量A=[1,-1,3], 那么A的L1范数为 |1|+|-1|+|3|。
L1正则化可以让一部分特征的系数缩小到0,所以L1适用于特征之间有关联的情况可以产生稀疏权值矩阵(很多权重为0,则一些特征被过滤掉),即产生一个稀疏模型,可以用于特征选择。L1也可以防止过拟合。
那么L1为什么会产生一个稀疏权值矩阵呢?
L1正则化是权值的 绝对值之和,所以L1是带有绝对值符号的函数,因此是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。当我们在原始损失函数后添加L1正则化项时,相当于对损失函数做了一个约束。
此时我们的任务变成在约束下求出取最小值的解。考虑二维的情况,即只有两个权值和 ,此时对于梯度下降法,求解函数的过程可以画出等值线,同时L1正则化的函数也可以在二维平面上画出来。如下图:
(1)、从优化问题来看
上面的图不是很清楚,补充如下:
图中蓝色圆圈线是Loss中前半部分待优化项的等高线,就是说在同一条线上其取值相同,且越靠近中心其值越小。
黄色菱形区域是L1正则项限制。带有正则化的loss函数的最优解要在黄色菱形区域和蓝色圆圈线之间折中,也就是说最优解出现在图中优化项等高线与正则化区域相交处。从图中可以看出,当待优化项的等高线逐渐向正则项限制区域扩散时,L1正则化的交点大多在坐标轴上,则很多特征维度上其参数w为0,因此会产生稀疏解;而正则化前面的系数,可以控制图形的大小。越小,约束项的图形越大(上图中的黄色方框);越大,约束项的图形就越小,可以小到黑色方框只超出原点范围一点点,这是最优点的值中的可以取到很小的值。
(二)、L2正则化
L2正则化是指权值向量中各个元素的平方和然后再求平方根,对参数进行二次约束,参数w变小,但不为零,不会形成稀疏解 。它会使优化求解稳定快速,使权重平滑。所以L2适用于特征之间没有关联的情况。
考虑二维的情况,即只有两个权值和 ,此时对于梯度下降法,求解函数的过程可以画出等值线,同时L1正则化的函数也可以在二维平面上画出来。如下图:
图中蓝色一圈一圈的线是Loss中前半部分待优化项的等高线,就是说在同一条线上其取值相同,且越靠近中心其值越小。图中黄色圆形区域是L2正则项限制。带有正则化的loss函数的最优解要在loss函数和正则项之间折中,也就是说最优解出现在图中优化项等高线与正则化区域相交处。从图中可以看出,当待优化项的等高线逐渐向正则项限制区域扩散时L2正则化的交点大多在非坐标轴上,二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此与相交时使得或等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。
四、两种正则化的不同
(一)、从梯度方面来看
上图分别为(左侧)L1、(右侧)L2正则化的反向传播函数
相对于L1:比原始的更新规则多出了η∗λ∗sgn(w)/nη * λ * sgn(w)/nη∗λ∗sgn(w)/n这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大——因此它的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合。
相对于L2:在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−ηλ/n1−ηλ/n1−ηλ/n ,因为η、λ、n都是正的,所以 1−ηλ/n1−ηλ/n1−ηλ/n小于1,它的效果是减小w,这也就是权重衰减(weight decay)的由来。当然考虑到后面的导数项,w最终的值可能增大也可能减小。更小的权值w,从某种意义上说,表示模型的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀),而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。
综合以上两个式子:当www处于[1,+∞][1, +\infty][1,+∞]时,L2比L1获得更大的减小速率,而当www处于(0,1)(0,1)(0,1)时,L1比L2获得更快的减小速率,并且当w越小,L1更容易接近到0,而L2更不容易变化。下图反应的更为形象一些。
(二)、概率方面来看
L1正则化和L2正则化相关推荐
- L1正则化、L2正则化的多角度分析和概率角度的解释
L1正则化.L2正则化的公式如下 min w L 1 ( w ) = min w f ( w ) + λ n ∑ i = 1 n ∣ w i ∣ min w L 2 ( w ) = min ...
- L1正则化和L2正则化(从解空间角度)
文章目录 一.什么是过拟合? 二.为什么模型会过拟合? 三.如何防止模型过拟合? 四.L1正则和L2正则 4.1 L1.L2的区别 4.2 为什么正则化能够防止过拟合? 4.3 为什么L1正则具有稀疏 ...
- L1正则化与L2正则化
1.1-范数,2-范数 1-范数: 2-范数:2-范数就是通常意义下的距离 2.L1和L2正则化 我们所说的正则化,就是在原来的loss function的基础上,加上了一些正则化项或者称为模型复杂度 ...
- L1正则化和L2正则化的直观解释
正则化(Regularization) 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm,中文称作L1正则化和L2正则化,或者L1范数和L2 ...
- 【AI面试】L1 loss、L2 loss和Smooth L1 Loss,L1正则化和L2正则化
损失函数是深度学习模型优化的一个灵魂基础,所以无论是很新的transform模型,还是比较早期的AlexNet,都不可避免的要涉及到损失函数的设计和应用. 所以,各种形形色色的损失函数(Loss)也就 ...
- keras添加L1正则化,L2正则化和Dropout正则化及其原理
一.什么是正则化,用来干嘛的? 正则化(regularization),是指在线性代数理论中,不适定问题通常是由一组线性代数方程定义的,而且这组方程组通常来源于有着很大的条件数的不适定反问题.大条件数 ...
- 正则项的原理、梯度公式、L1正则化和L2正则化的区别、应用场景
先对"L1正则化和L2正则化的区别.应用场景"给出结论,具体见后面的原理解释: L1正则化会产生更稀疏的解,因此基于L1正则化的学习方法相当于嵌入式的特征选择方法. L2正则化计算 ...
- 机器学习—正则化方法—L1正则化、L2正则化
1.L1正则化(稀疏矩阵) 权值向量w中各个元素的绝对值之和: 2.L2正则化(权重衰减) 权值向量w中各个元素的平方和: 3.L1正则化 VS L2正则化 L1正则化可以产生稀疏权值矩阵,即产生一个 ...
- 对L1正则化和L2正则化的理解
一. 奥卡姆剃刀(Occam's razor)原理: 在所有可能选择的模型中,我们应选择能够很好的解释数据,并且十分简单的模型.从贝叶斯的角度来看,正则项对应于模型的先验概率.可以假设复杂模型有较小的 ...
- L1正则化和L2正则化的区别
文章目录 前言 一.L1和L2正则化是什么? 二.区别 三.其他问题 前言 在防止过拟合的方法中有L1正则化和L2正则化,那么这两者有什么区别呢? 一.L1和L2正则化是什么? L1和L2是正则化项, ...
最新文章
- 图的算法专题——最小生成树
- 拼多多java开发一面、二面合并面经
- Java 高级 --- 多线程快速入门
- OSChina 周四乱弹 ——我高考,媳妇还在读小学
- 性能突出的 Redis 是咋使用 epoll 的?
- python文本特征选择,机器学习--特征选择(Python实现)
- 利用反射做一个简易 Spring IOC 容器,模仿其装配功能
- wxPython:当密码账号输入正确,登录界面消失并显示主界面
- R 学习笔记《十二》 R语言初学者指南--格包
- 基于Vivado的程序下载
- 浏览器插件FeHelper的学习:gulp基础、使用gulp构建项目
- 人生时间计算器_真实年龄计算器app下载-抖音珍稀时间年龄计算器下载v1.5 安卓版-西西软件下载...
- 主机甲和主机乙之间使用后退N帧协议(GBN)传输数据,甲的发送窗口为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧......[数据传输率]错题总结
- C++ emplace_back
- 无法查找网络工作组计算机,无法查看工作组计算机怎么解决
- 华为v3鸿蒙系统_安卓系统:鸿蒙系统,正式再见
- sql中的日期比较(年,月,日)
- VUE 表格设置序号
- 微信小程序学习笔记(4)
- vcfab算法示例_用示例解释贪婪算法
热门文章
- indexDB本地存储
- 在app端手写签名并保存下来(以文件形式或者是base64编码)
- python做线性回归_利用 python 进行线性回归
- java程序员推荐轻薄笔记本,移动架构师成长路线
- 安全可信,用友U8 cloud荣获2022“信创云ERP”最具竞争力产品奖
- reduce方法 实现数组对象中 每三个属性相加 形成新数组
- Git 报错:Connection closed by remote host. fatal: Could not read from remote repository.
- IDEA多线程断点调试
- 小视频短视频短剧爽据API采集接口
- 手机+ip查询归属地