L1正则化、L2正则化的公式如下

min ⁡ w L 1 ( w ) = min ⁡ w f ( w ) + λ n ∑ i = 1 n ∣ w i ∣ min ⁡ w L 2 ( w ) = min ⁡ w f ( w ) + λ 2 n ∑ i = 1 n w i 2 \min_wL_1(w)=\min_w f(w)+\frac{\lambda}{n}\sum_{i=1}^n|w_i|\\ \min_wL_2(w)=\min_wf(w)+\frac{\lambda}{2n}\sum_{i=1}^nw_i^2 wmin​L1​(w)=wmin​f(w)+nλ​i=1∑n​∣wi​∣wmin​L2​(w)=wmin​f(w)+2nλ​i=1∑n​wi2​

从优化问题的视角来看

min ⁡ x L ( w ) < = > min ⁡ w f ( w ) s . t . ∑ i = 1 n ∣ w i ∣ < C \min_xL(w)<=> \min_w f(w)\\ s.t. \sum_{i=1}^n|w_i|<C xmin​L(w)<=>wmin​f(w)s.t.i=1∑n​∣wi​∣<C

L1正则的限制条件,在坐标轴上显示则是一个正方形,与坐标轴的交点分别是(0,C),(C,0),(0,-C),(-C,0)

L2正则的限制条件,在坐标轴上显示则是一个圆,与坐标轴的交点分别是(0,C),(C,0),(0,-C),(-C,0)

从梯度视角来看

∂ L 1 ( w ) ∂ w i = ∂ f ( w ) ∂ w i + λ n s i g n ( w i ) w i ′ = w i − η ∂ L 1 ( w ) ∂ w i w i ′ = w i − η ∂ f ( w ) ∂ w i − η λ n s i g n ( w i ) \frac{\partial L_1(w)}{\partial w_i}=\frac{\partial f(w)}{\partial w_i}+\frac{\lambda}{n}sign(w_i)\\ w_i^{'}=w_i - \eta \frac{\partial L_1(w)}{\partial w_i}\\ w_i^{'}=w_i - \eta \frac{\partial f(w)}{\partial w_i} - \eta \frac{\lambda}{n}sign(w_i) ∂wi​∂L1​(w)​=∂wi​∂f(w)​+nλ​sign(wi​)wi′​=wi​−η∂wi​∂L1​(w)​wi′​=wi​−η∂wi​∂f(w)​−ηnλ​sign(wi​)

∂ L 2 ( w ) ∂ w i = ∂ f ( w ) ∂ w i + λ n w i w i ′ = w i − η ∂ L 2 ( w ) ∂ w i w i ′ = w i − η ∂ f ( w ) ∂ w i − η λ n w i \frac{\partial L_2(w)}{\partial w_i}=\frac{\partial f(w)}{\partial w_i}+\frac{\lambda}{n}w_i\\ w_i^{'}=w_i - \eta \frac{\partial L_2(w)}{\partial w_i}\\ w_i^{'}=w_i - \eta \frac{\partial f(w)}{\partial w_i} - \eta \frac{\lambda}{n}w_i ∂wi​∂L2​(w)​=∂wi​∂f(w)​+nλ​wi​wi′​=wi​−η∂wi​∂L2​(w)​wi′​=wi​−η∂wi​∂f(w)​−ηnλ​wi​
从L1 η λ n s i g n ( w i ) \eta \frac{\lambda}{n}sign(w_i) ηnλ​sign(wi​)和L2 η λ n w i \eta \frac{\lambda}{n}w_i ηnλ​wi​来看,L1与L2不一样的地方在于L1会减 s i g n ( w i ) sign(w_i) sign(wi​)倍的 η λ n \eta \frac{\lambda}{n} ηnλ​.而L2会减 w i w_i wi​倍的 η λ n \eta\frac{\lambda}{n} ηnλ​。当w_i在 [ 1 , + ∞ ) [1,+\infty) [1,+∞)时,L2获得比L1更快的减小速率。当 w i w_i wi​在(0,1)时,L1比L2获得更快的减小速率。并且当 w i w_i wi​越小时,L1更容易减小接近于0.而L2更不容易变化,因此L1会获得更多的接近于0的w。即L1比L2更容易获得sparse的w。

从概率的视角来看

为f(w)加入正则化,相当于为f(w)的参数w加先验,那要求w满足某一分布。

L1正则化相当于为w加入Laplace分布的先验,L2正则化相当于为w加入Gaussian分布的先验

很明显可以观察出,在两边紫色部分, P G ( w ) < P L ( w ) P_G(w)<P_L(w) PG​(w)<PL​(w),说明Gauss分布中,值大的w更少,即 L 2 与 L 1 L_2与L_1 L2​与L1​相比,值大的w更少,因此L2比L1更smooth。

在中间红色线条区域 P L ( w ) < P G ( w ) P_L(w)<P_G(w) PL​(w)<PG​(w)。并且结合图来看,Gauss分布中,值很小的w和值为0的w概率接近。而laplace分布中,值很小的w概率小于值为0的w.这说明Laplace分布要求w更多为0.而高斯分布要求w小就行不一定要为0。因此L1比L2更Sparse.

问题,为什么L1正则先验分布时Laplace分布,L2正则先验分布时Gaussian分布。接下来从最大后验概率的角度进行推导和分析。在机器学习建模中,我们知道了x和y以后,需要对参数w进行建模。那么后验概率表达式如下:
M A P = l o g p ( y ∣ X ) = l o g P ( y ∣ X , w ) P ( w ) = l o g P ( y ∣ X , w ) + l o g P ( w ) MAP=log^{p(y|X)}=log^{P(y|X,w)P(w)}=log^{P(y|X,w)}+log^{P(w)} MAP=logp(y∣X)=logP(y∣X,w)P(w)=logP(y∣X,w)+logP(w)
可以看出后验概率函数为在似然函数的基础上增加了 l o g P ( w ) log^{P(w)} logP(w),P(w)的意义是对权重系数w的概率分布的先验假设,在收集到训练样本X,y后,则可根据w在X,y下的后验概率对w进行修正,从而做出对w的更好地估计。若假设w的先验概率分布为0均值的高斯分布,即 w ∼ N ( 0 , δ 2 ) w\sim N(0,\delta^2) w∼N(0,δ2)

则有
l o g P ( w ) = l o g ∏ j P ( w j ) = l o g ∏ j [ 1 2 π δ e − w j 2 2 δ 2 ] = ∑ j ( l o g [ 1 2 π δ e − w j 2 2 δ 2 ] ) = ∑ j ( l o g [ e − w j 2 2 δ 2 ] ) + j l o g 1 2 π δ 后 部 分 对 于 w 相 当 于 一 个 常 数 = ∑ j ( − w j 2 2 δ 2 ) + C = − 1 2 δ 2 ∑ j w j 2 + C log^{P(w)}=log^{\prod _j P(w_j)}=\\ log^{\prod_j[\frac{1}{\sqrt{2\pi}\delta}e^{-\frac{w_j^2}{2\delta^2}}]}\\ =\sum_j(log^{[\frac{1}{\sqrt{2\pi}\delta}e^{-\frac{w_j^2}{2\delta^2}}]})\\ =\sum_j(log^{[e^{-\frac{w_j^2}{2\delta^2}}]}) + j log^{\frac{1}{\sqrt{2\pi}\delta}} 后部分对于w相当于一个常数\\ =\sum_j(-\frac{w_j^2}{2\delta^2})+C\\ =-\frac{1}{2\delta^2}\sum_jw_j^2+C logP(w)=log∏j​P(wj​)=log∏j​[2π ​δ1​e−2δ2wj2​​]=j∑​(log[2π ​δ1​e−2δ2wj2​​])=j∑​(log[e−2δ2wj2​​])+jlog2π ​δ1​后部分对于w相当于一个常数=j∑​(−2δ2wj2​​)+C=−2δ21​j∑​wj2​+C
可以看出,在高斯分布下 l o g P ( w ) log^{P(w)} logP(w)的效果等价于在代价函数中增加L2正则项。

若假设w服从均值为0,参数为a的拉普拉斯分布,即
P ( w j ) = 1 2 a e − ∣ w j ∣ a P(w_j)=\frac{1}{2a}e^{-\frac{|w_j|}{a}} P(wj​)=2a1​e−a∣wj​∣​
则有
l o g P ( w ) = l o g ∏ j P ( w J ) = l o g ∏ j 1 2 a e − ∣ w j ∣ a = ∑ j ( l o g 1 2 a e − ∣ w j ∣ a ) = ∑ j ( l o g e − ∣ w j ∣ a ) + j l o g 1 2 a 后 者 对 于 w 相 当 于 常 数 = − 1 a ∑ j ∣ w j ∣ + C log^{P(w)}=\\ log^{\prod _j P(w_J)}=\\ log^{\prod _j \frac{1}{2a}e^{-\frac{\left| w_j \right|}{a}}}=\\ \sum_j(log^{\frac{1}{2a}e^{-\frac{\left| w_j \right|}{a}}})=\\ \sum_j(log^{e^{-\frac{\left| w_j \right|}{a}}}) + jlog^{\frac{1}{2a}} 后者对于w相当于常数=\\ -\frac{1}{a}\sum_j|w_j| + C logP(w)=log∏j​P(wJ​)=log∏j​2a1​e−a∣wj​∣​=j∑​(log2a1​e−a∣wj​∣​)=j∑​(loge−a∣wj​∣​)+jlog2a1​后者对于w相当于常数=−a1​j∑​∣wj​∣+C
可以看到,在拉普拉斯分布下 l o g P ( w ) log^{P(w)} logP(w)的效果等价在代价函数中增加L1正则。

L1正则化可通过假设权重w的先验分布为拉普拉斯分布,由最大后验概率估计导出。

L2正则化可通过假设权重w的先验分布为高斯分布,由最大后验概率估计导出。

参考1

参考2

L1正则化、L2正则化的多角度分析和概率角度的解释相关推荐

  1. 比较全面的L1和L2正则化的解释

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|机器学习算法那些事 前言 前段时间写了一篇文章<深入 ...

  2. L1、L2正则化详解

    正则化是一种回归的形式,它将系数估计(coefficient estimate)朝零的方向进行约束.调整或缩小.也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险. 一. ...

  3. L1、L2 正则化的一些原理

    L1/L2 正则化与高斯先验/对数先验的 MAP 贝叶斯推断的关系 1. MAP 贝叶斯推断 贝叶斯推断和极大似然的用处一样,都是求生成训练数据的参数 θ\thetaθ ,但是极大似然估计是基于频率派 ...

  4. 梯度下降、牛顿法凸优化、L1、L2正则化、softmax、Batchnorm、droupout、Targeted Dropout详解

    一.梯度下降 问题提出:虽然给定一个假设函数,我们能够根据cost function知道这个假设函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?因此我们引出了梯度下降:能够找出cost ...

  5. 【应用】【正则化】L1、L2正则化

    L1正则化的作用:特征选择从可用的特征子集中选择有意义的特征,化简机器学习问题.著名的LASSO(Least Absolute Shrinkage and Selection Operator)模型将 ...

  6. 【L1正则化与L2正则化详解及为什么L1和L2正则化可防止过拟合】

    一.为什么L1和L2正则化可防止过拟合? 线性模型常用来处理回归和分类任务,为了防止模型处于过拟合状态,需要用L1正则化和L2正则化降低模型的复杂度,很多线性回归模型正则化的文章会提到L1是通过稀疏参 ...

  7. 机器学习中的L1与L2正则化图解!

    今日锦囊 特征锦囊:今天一起搞懂机器学习里的L1与L2正则化 今天我们来讲讲一个理论知识,也是老生常谈的内容,在模型开发相关岗位中出场率较高的,那就是L1与L2正则化了,这个看似简单却十分重要的概念, ...

  8. R语言构建xgboost模型:使用xgboost构建广义线性模型(GLM):使用gblinear算法拟合线性模型并配置L1和L2正则化

    R语言构建xgboost模型:使用xgboost构建广义线性模型(GLM):使用gblinear算法拟合线性模型并配置L1和L2正则化 目录

  9. 【机器学习基础】一文搞懂机器学习里的L1与L2正则化

    文章来源于SAMshare,作者flora 特征锦囊:今天一起搞懂机器学习里的L1与L2正则化 今天我们来讲讲一个理论知识,也是老生常谈的内容,在模型开发相关岗位中出场率较高的,那就是L1与L2正则化 ...

最新文章

  1. python编写自动化脚本 与shell_脚本安装Discuz论坛(shell + Python 实现自动化安装)...
  2. spring中AnnotationUtils的设计
  3. php中文网数据库的搭建,【后端开发】php数据库中文乱码
  4. [linux]makefile使用
  5. 【模板】KMP算法、fail树
  6. System verilog随机系统函数$random使用方法
  7. 如何利用Google谷歌浏览器来查看GET或POST请求以及传递的数据
  8. 100_1小记ressons analysis
  9. stm32之I2C编程前期准备
  10. 黑金Xilinx FPGA学习笔记(一)verilogHDL扫盲文-(1)
  11. TCPDF微软雅黑字体
  12. Spark大数据系列教程持续更新
  13. 详解万向锁,欧拉旋转角,slam中万向锁的理解
  14. Altium designer--LM317/LM337封装图
  15. Bootstrap实战(第一弹:栅格实现5等分或8等分)
  16. HTML特效代码汇总
  17. adb操作提示Read-only file system问题
  18. 过来人:软件测试自学还是报班好?需要掌握哪些技能?
  19. 更改Mysql数据库密码
  20. 开源企业网盘选型(完善中)

热门文章

  1. Ubuntu系统无法使用vim命令
  2. 电脑损坏,电脑文件损坏无法开机怎么办
  3. MySQL ERROR 1064 (42000)
  4. NV21 to NV12(YUV420SP)
  5. CC3200使用MQTT协议连接Onenet平台实践
  6. 红队搬运工-github项目-第一期
  7. 【C进阶】qsort函数详解
  8. 2020ICPR-化妆演示攻击
  9. python -m详解
  10. mac下面用ffmpeg抓取桌面以及摄像头推流进行直播