在机器学习以及深度学习中我们经常会看到正则化这一名词,下面就浅谈一下什么是正则化?以及正则化的意义所在?

一、什么是正则化?


正则化项 (又称惩罚项),惩罚的是模型的参数,其值恒为非负
λ是正则化系数,是一个超参数,调节惩罚的力度,越大则惩罚力度越大。

二、正则化的目的?


先上图:
上图从左到右依次为:欠拟合、理想状态、过拟合
欠拟合从字面意思来看就是欠缺拟合程度,这一般在复杂度很低的模型中出现。从数学上来看,一元一次函数为一条直线、一元二次函数为一个曲线,以此类推。那么参数越多,其越能拟合更复杂的特征,但是一味的增加模型的复杂度就会造成过拟合现象。一旦过拟合,模型的泛化能力以及鲁棒性将特别差。那么怎么结局过拟合现象呢?
在从数学方面分析来看,为了减小过拟合,要将一部分参数置为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正则化相关推荐

  1. 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 ...

  2. L1正则化和L2正则化(从解空间角度)

    文章目录 一.什么是过拟合? 二.为什么模型会过拟合? 三.如何防止模型过拟合? 四.L1正则和L2正则 4.1 L1.L2的区别 4.2 为什么正则化能够防止过拟合? 4.3 为什么L1正则具有稀疏 ...

  3. L1正则化与L2正则化

    1.1-范数,2-范数 1-范数: 2-范数:2-范数就是通常意义下的距离 2.L1和L2正则化 我们所说的正则化,就是在原来的loss function的基础上,加上了一些正则化项或者称为模型复杂度 ...

  4. L1正则化和L2正则化的直观解释

    正则化(Regularization) 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm,中文称作L1正则化和L2正则化,或者L1范数和L2 ...

  5. 【AI面试】L1 loss、L2 loss和Smooth L1 Loss,L1正则化和L2正则化

    损失函数是深度学习模型优化的一个灵魂基础,所以无论是很新的transform模型,还是比较早期的AlexNet,都不可避免的要涉及到损失函数的设计和应用. 所以,各种形形色色的损失函数(Loss)也就 ...

  6. keras添加L1正则化,L2正则化和Dropout正则化及其原理

    一.什么是正则化,用来干嘛的? 正则化(regularization),是指在线性代数理论中,不适定问题通常是由一组线性代数方程定义的,而且这组方程组通常来源于有着很大的条件数的不适定反问题.大条件数 ...

  7. 正则项的原理、梯度公式、L1正则化和L2正则化的区别、应用场景

    先对"L1正则化和L2正则化的区别.应用场景"给出结论,具体见后面的原理解释: L1正则化会产生更稀疏的解,因此基于L1正则化的学习方法相当于嵌入式的特征选择方法. L2正则化计算 ...

  8. 机器学习—正则化方法—L1正则化、L2正则化

    1.L1正则化(稀疏矩阵) 权值向量w中各个元素的绝对值之和: 2.L2正则化(权重衰减) 权值向量w中各个元素的平方和: 3.L1正则化 VS L2正则化 L1正则化可以产生稀疏权值矩阵,即产生一个 ...

  9. 对L1正则化和L2正则化的理解

    一. 奥卡姆剃刀(Occam's razor)原理: 在所有可能选择的模型中,我们应选择能够很好的解释数据,并且十分简单的模型.从贝叶斯的角度来看,正则项对应于模型的先验概率.可以假设复杂模型有较小的 ...

  10. L1正则化和L2正则化的区别

    文章目录 前言 一.L1和L2正则化是什么? 二.区别 三.其他问题 前言 在防止过拟合的方法中有L1正则化和L2正则化,那么这两者有什么区别呢? 一.L1和L2正则化是什么? L1和L2是正则化项, ...

最新文章

  1. 图的算法专题——最小生成树
  2. 拼多多java开发一面、二面合并面经
  3. Java 高级 --- 多线程快速入门
  4. OSChina 周四乱弹 ——我高考,媳妇还在读小学
  5. 性能突出的 Redis 是咋使用 epoll 的?
  6. python文本特征选择,机器学习--特征选择(Python实现)
  7. 利用反射做一个简易 Spring IOC 容器,模仿其装配功能
  8. wxPython:当密码账号输入正确,登录界面消失并显示主界面
  9. R 学习笔记《十二》 R语言初学者指南--格包
  10. 基于Vivado的程序下载
  11. 浏览器插件FeHelper的学习:gulp基础、使用gulp构建项目
  12. 人生时间计算器_真实年龄计算器app下载-抖音珍稀时间年龄计算器下载v1.5 安卓版-西西软件下载...
  13. 主机甲和主机乙之间使用后退N帧协议(GBN)传输数据,甲的发送窗口为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧......[数据传输率]错题总结
  14. C++ emplace_back
  15. 无法查找网络工作组计算机,无法查看工作组计算机怎么解决
  16. 华为v3鸿蒙系统_安卓系统:鸿蒙系统,正式再见
  17. sql中的日期比较(年,月,日)
  18. VUE 表格设置序号
  19. 微信小程序学习笔记(4)
  20. vcfab算法示例_用示例解释贪婪算法

热门文章

  1. indexDB本地存储
  2. 在app端手写签名并保存下来(以文件形式或者是base64编码)
  3. python做线性回归_利用 python 进行线性回归
  4. java程序员推荐轻薄笔记本,移动架构师成长路线
  5. 安全可信,用友U8 cloud荣获2022“信创云ERP”最具竞争力产品奖
  6. reduce方法 实现数组对象中 每三个属性相加 形成新数组
  7. Git 报错:Connection closed by remote host. fatal: Could not read from remote repository.
  8. IDEA多线程断点调试
  9. 小视频短视频短剧爽据API采集接口
  10. 手机+ip查询归属地