基础算法 --- > 正则化

L1, L2正则化

贝叶斯先验分布

最大似然估计

如果有数据集(X, Y),并且Y是有白噪音(就是测量的Y与真实的 Y r e a l Y_{real} Yreal有均值为0的高斯分布误差),目的是新产生的X来得到Y,线性模型表示有:
f ( X ) = ∑ i ( x i θ i ) + ϵ = X θ T + ϵ f(X) = \sum_i(x_i\theta_i) + \epsilon= X\theta^T + \epsilon f(X)=i(xiθi)+ϵ=XθT+ϵ
其中 X = ( x 1 , x 2 , . . . , X n ) , ϵ X=(x_1,x_2,...,X_n),\epsilon X=(x1,x2,...,Xn)ϵ是白噪音,即 ϵ ∼ N ( 0 , δ 2 ) \epsilon \sim N(0, \delta^2) ϵN(0,δ2)。对于一数据集 ( X i , Y i ) (X_i, Y_i) (Xi,Yi)来说,由 X i X_i Xi得到 Y i Y_i Yi的概率是 Y i ∼ N ( f ( X i , δ 2 ) ) Y_i\sim N(f(X_i, \delta^2)) YiN(f(Xi,δ2)):
P ( Y i ∣ X i , θ ) = 1 δ 2 π e x p ( − ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 2 δ 2 ) P(Y_i|X_i, \theta)=\frac{1}{\delta \sqrt{2\pi}}exp(-\frac{||f(X_i)-Y_i||^2}{2\delta^2}) P(YiXi,θ)=δ2π 1exp(2δ2f(Xi)Yi2)
对所有的数据,如果他们独立同分布有:
P ( Y ∣ X , θ ) = Π i 1 δ 2 π e x p ( − ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 2 δ 2 ) P(Y|X, \theta)=\Pi_i\frac{1}{\delta \sqrt{2\pi}}exp(-\frac{||f(X_i)-Y_i||^2}{2\delta^2}) P(YX,θ)=Πiδ2π 1exp(2δ2f(Xi)Yi2)
前加log求解,得到
θ ∗ = a r g   m a x θ ( ln ⁡ P ( Y ∣ X , θ ) ) a r g   m a x θ ( − 1 2 δ 2 ∑ i ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 + ∑ i l n ( δ 2 π ) ) = a r g   m a x θ ( ∑ i ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 ) \begin{aligned} \theta^* = & arg\ max_{\theta} (\ln P(Y|X, \theta) )\\ & arg\ max_{\theta}(-\frac{1}{2\delta^2}\sum_i||f(X_i)-Y_i||^2 + \sum_i ln(\delta \sqrt{2\pi}))\\ = & arg\ max_{\theta}(\sum_i||f(X_i)-Y_i||^2) \end{aligned} θ==arg maxθ(lnP(YX,θ))arg maxθ(2δ21if(Xi)Yi2+iln(δ2π ))arg maxθ(if(Xi)Yi2)

上述即最小二乘法

Laplace 分布
Laplace概率密度函数分布为:
f ( x ∣ μ , b ) = 1 2 b e x p ( − ∣ x − μ ∣ b ) f(x|\mu,b)=\frac{1}{2b}exp(-\frac{|x-\mu|}{b}) f(xμ,b)=2b1exp(bxμ)
分布的图像:

可以看到该分布主要集中在 μ \mu μ附件,而且b越小,数据的分布越集中

Laplace先验导出L1正则化

对于前述的最大似然估计,我们实事上假设了 θ \theta θ是均匀分布的,也就是 P ( θ ) = C o n s t a n t P(\theta)=Constant P(θ)=Constant

L1 相当于设置了一个 Laplacean先验分布,然后最大化后验概率:
Laplace先验为:
P ( θ i ) = λ 2 e x p ( − λ ∣ θ i ∣ ) P(\theta_i) = \frac{\lambda}{2}exp(-\lambda|\theta_i|) P(θi)=2λexp(λθi)
代入上式子有
θ ∗ = a r g   m a x θ ( ln ⁡ P ( Y ∣ X , θ ) P ( θ ) ) a r g   m a x θ ( − 1 2 δ 2 ∑ i ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 + ∑ i l n ( δ 2 π ) + ∑ i l n ( P ( θ i ) ) ) = a r g   m a x θ ( ∑ i ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 + λ ∑ i ∣ θ i ∣ ) \begin{aligned} \theta^* = & arg\ max_{\theta} (\ln P(Y|X, \theta)P(\theta) )\\ & arg\ max_{\theta}(-\frac{1}{2\delta^2}\sum_i||f(X_i)-Y_i||^2 + \sum_i ln(\delta \sqrt{2\pi}) + \sum_i ln(P(\theta_i)))\\ = & arg\ max_{\theta}(\sum_i||f(X_i)-Y_i||^2 + \lambda \sum_i|\theta_i|) \end{aligned} θ==arg maxθ(lnP(YX,θ)P(θ))arg maxθ(2δ21if(Xi)Yi2+iln(δ2π )+iln(P(θi)))arg maxθ(if(Xi)Yi2+λiθi)

可以由Laplace先验分布知, λ 越 大 \lambda 越大 λ,说明先验分布中参数越集中在0附近。

Gauss先验导出L2正则化

参数 θ \theta θ的分布式符合高斯分布:
P ( θ i ) = λ π e x p ( − λ ∣ ∣ θ i ∣ ∣ 2 ) P(\theta_i) = \frac{\lambda}{\sqrt \pi}exp(-\lambda||\theta_i||^2) P(θi)=π λexp(λθi2)

θ ∗ = a r g   m a x θ ( ln ⁡ P ( Y ∣ X , θ ) P ( θ ) ) = a r g   m a x θ ( ∑ i ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 + λ ∑ i ∣ ∣ θ i ∣ ∣ 2 ) \begin{aligned} \theta^* = & arg\ max_{\theta} (\ln P(Y|X, \theta)P(\theta) )\\ =& arg\ max_{\theta} (\sum_i||f(X_i)-Y_i||^2 + \lambda \sum_i ||\theta_i||^2) \end{aligned} θ==arg maxθ(lnP(YX,θ)P(θ))arg maxθ(if(Xi)Yi2+λiθi2)

总结

  1. 为什么引入正则化?
    主要解决过拟合问题

  2. 为什么L1引入稀疏性

    • L1正则化先验分布Laplace分布,数据集中在0处,引入稀疏性
    • L2正则化先验Gauss分布,数据集中在0附近,得到的解更加平滑。
  3. 为什么降低过拟合
    正则化是一种结构风险最小化的策略。
    通过在原式和正则项中做一个trade-off。能够让模型更加简单,降低模型复杂度,得到更小的泛化误差,降低过拟合。
    L2 :使得模型的解偏向于范数较小的 W,通过限制 W 范数的大小实现了对模型空间的限制,从而在一定程度上避免了 overfitting 。不过 ridge regression 并不具有产生稀疏解的能力,得到的系数仍然需要数据中的所有特征才能计算预测结果,从计算量上来说并没有得到改观。
    L1 :它的优良性质是能产生稀疏性,导致 W 中许多项变成零。 稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性”。

结构风险最小化

图1 上面中的蓝色轮廓线是没有正则化损失函数的等高线,中心的蓝色点为最优解,左图、右图分别为L2、L1正则化给出的限制。

可以看到在正则化的限制之下,L2正则化给出的最优解w∗是使解更加靠近原点,也就是说L2正则化能降低参数范数的总和。L1正则化给出的最优解w∗是使解更加靠近某些轴,而其它的轴则为0,所以L1正则化能使得到的参数稀疏化。

  • 之所以L1是一个正方形,而L2是一个圆,因为对于二维来说:L2: ∣ w 1 ∣ 2 + ∣ w 2 ∣ 2 = 定 值 |w_1|^2 + |w_2|^2 = 定值 w12+w22=,L2: ∣ w 1 ∣ + ∣ w 2 ∣ = 定 值 |w_1|+ |w_2| =定值 w1+w2=
  • 当L正则化(L1和L2的圆和正方形)不变时,看出经验函数和L正则化交于一点时,经验函数尽可能的小,同样,当经验函数不变时,L正则化尽可能小,也时交于一点时总结构风险函数小

解析解

我们的目标函数为:
J ( w ; X , y ) = L e m p ( w ; X , y ) + α ∥ w ∥ 1       − − − ( 1 ) J(w; X, y) = L_{emp}(w; X, y) + \alpha\|w\|_1 \ \ \ \ \ ---(1) J(w;X,y)=Lemp(w;X,y)+αw1     (1)
要想使得上式取得最小值 w ∗ w^* w,对其求导
∇ w J ( w ; X , y ) = ∇ w L e m p ( w ; X , y ) + α ⋅ s i g n ( w )       − − − ( 2 ) \nabla_w J(w; X, y) = \nabla_w L_{emp}(w; X, y) + \alpha \cdot sign(w) \ \ \ \ \ ---(2) wJ(w;X,y)=wLemp(w;X,y)+αsign(w)     (2)
α = 0 \alpha=0 α=0时,假设我们已得到目标解 w ∗ w^* w,泰勒展示展开,其 ▽ J ( w ∗ ) = 0 \triangledown J(w^*)=0 J(w)=0
J ( w ; X , y ) = J ( w ∗ ; X , y ) + 1 2 ( w − w ∗ ) H ( w − w ∗ )       − − − ( 3 ) J(w; X, y) = J(w^*; X, y) + \frac{1}{2}(w - w^*)H(w-w^*) \ \ \ \ \ ---(3) J(w;X,y)=J(w;X,y)+21(ww)H(ww)     (3)

其中H是关于w的Hessian矩阵,为了得到更直观的解,我们简化H,假设H为对角矩阵 H = d i a g ( [ H 1 , 1 , H 2 , 2 . . . H n , n ] ) H = diag([H_{1,1},H_{2,2}...H_{n,n}]) H=diag([H1,1,H2,2...Hn,n]),将其代入到公式(1)中,有:
J ( w ; X , y ) = J ( w ∗ ; X , y ) + ∑ i [ 1 2 H i , i ( w i − w i ∗ ) 2 + α i ∣ w i ∣ ]       − − − ( 4 ) J(w;X,y)=J(w^*;X,y)+\sum_i\left[\frac{1}{2}H_{i,i}(w_i-w_i^*)^2 + \alpha_i|w_i| \right] \ \ \ \ \ ---(4) J(w;X,y)=J(w;X,y)+i[21Hi,i(wiwi)2+αiwi]     (4)
上式看出,w 各个方向的导数是不相关的,所以可以分别独立求导并使之为0,可得:
H i , i ( w i − w i ∗ ) + α ⋅ s i g n ( w i ) = 0 ⇒ w i = w i ∗ − α H i , i s i g n ( w i ∗ ) = s i g n ( w i ∗ ) ∣ w i ∗ ∣ − α H i , i s i g n ( w i ∗ ) = s i g n ( w i ∗ ) ( ∣ w i ∗ ∣ − α H i , i ) \begin{aligned} H_{i,i}(w_i-w_i^*)+& \alpha \cdot sign(w_i)=0 \\ \Rightarrow w_i = & w_i^* - \frac{\alpha}{H_{i,i}}sign(w_i^*) \\ = & sign(w_i^*)|w_i^*| - \frac{\alpha}{H_{i,i}}sign(w_i^*)\\ = & sign(w_i^*)(|w_i^*| - \frac{\alpha}{H_{i,i}}) \\ \end{aligned} Hi,i(wiwi)+wi===αsign(wi)=0wiHi,iαsign(wi)sign(wi)wiHi,iαsign(wi)sign(wi)(wiHi,iα)
对于上式,其实我们最终得到的求解:

  • 必定有 ∣ w i ∣ < ∣ w ∗ ∣ |w_i| < |w^*| wi<w,因为只有这样,才能是 α ∣ w i ∣ \alpha |w_i| αwi更小。
  • 而且 s i g n ( w i ) = s i g n ( w i ∗ ) 或 w i = 0 sign(w_i) = sign(w^*_i)或w_i=0 sign(wi)=sign(wi)wi=0,只有这样,在 α ∣ w i ∣ \alpha|w_i| αwi不变时,才能使得式(4)最小。

因此,我们得到最终的解
w i = s i g n ( w i ∗ ) max ⁡ { ∣ w i ∗ ∣ − α H i , i , 0 } w_i = sign(w^*_i) \max\left\{ |w_i^*| - \frac{\alpha}{H_{i,i}},0 \right\} wi=sign(wi)max{wiHi,iα,0}

由此解可知:

  • ∣ w i ∗ ∣ ≤ α H i , i |w_i^*| \leq \frac{\alpha}{H_{i,i}} wiHi,iα,那么正则化后的最优解 w i = 0 w_i=0 wi=0,说明这个方向 L e m p ( w ; X , y ) L_{emp}(w; X, y) Lemp(w;X,y)被正则话抵消了,即引入了稀疏性。
  • ∣ w i ∗ ∣ > α H i , i |w_i^*| > \frac{\alpha}{H_{i,i}} wi>Hi,iα,正则化不会最优解推向 w i = 0 w_i=0 wi=0,而是在这方向向原点移动了 α H i , i \frac{\alpha}{H_{i,i}} Hi,iα的距离

总结

dropout

dropout主要是解决在深度学习中过拟合的问题,一般的神经网络很容易出现过拟合,有一种方法即通过模型组合,训练多个模型,但这样会非常耗时,Hinton提出的Dropout很好地解决了这个问题。
基本步骤是在每一次的迭代中,随机删除一部分节点,只训练剩下的节点。每次迭代都会随机删除,每次迭代删除的节点也都不一样,相当于每次迭代训练的都是不一样的网络,通过这样的方式降低节点之间的关联性以及模型的复杂度,从而达到正则化的效果。预测上这点上有点类似 bagging,但比 bagging 来的简单。

即:

使用dropout需要设置一个超参数 keep_prob, 作用是每层节点随机保留的比例

  • 经过交叉验证,隐含节点dropout率等于0.5的时候效果最好,原因是0.5的时候dropout随机生成的网络结构最多。
  • dropout也可以被用作一种添加噪声的方法,直接对input进行操作。输入层设为更接近1的数。使得输入变化不会太大(0.8)

训练过程注意:

  • 只有训练时dropout,预测时所有节点使用
  • 数据量小的时候,dropout效果不好,数据量大了,dropout效果好
  • 对参数w的训练进行球形限制(max-normalization),对dropout的训练非常有用。
  • 球形半径c是一个需要调整的参数。可以使用验证集进行参数调优
  • dropout自己虽然也很牛,但是dropout、max-normalization、large decaying learning rates and high momentum组合起来效果更好,比如max-norm regularization就可以防止大的learning rate导致的参数blow up。
  • 使用pretraining方法也可以帮助dropout训练参数,在使用dropout时,要将所有参数都乘以1/p。

缺点:
dropout的缺点就在于训练时间是没有dropout网络的2-3倍。

earlystopping

提前终止可能是最简单的正则化方式,他适用于模型的表达能力很强的时候。这种情况下,一般训练误差会随着训练次数的增多逐渐下降,而测试误差则会先下降而后再次上升。为了避免过拟合训练集,一个很好的解决方案是 提前停止,当它在验证集上的性能开始下降时就中断训练。

batch normalization

可以让大型的卷积神经网络训练速度加快很多倍,同时收敛后分类的准确率也可以大幅度提高。BN在训练某层时,会对每一个mini-batch数据进行标准化处理,减少了内部神经元分布的改变。

数据增强

复制现有数据并加随机噪声,重采样等,在图像领域我们可以进行不同角度旋转,平移变换,随机裁剪,中心裁剪,模糊等。

常用的数据增强方法有:

  • 旋转 | 反射变换(Rotation/reflection): 随机旋转图像一定角度; 改变图像内容的朝向;
  • 翻转变换(flip): 沿着水平或者垂直方向翻转图像;
  • 缩放变换(zoom): 按照一定的比例放大或者缩小图像;
  • 平移变换(shift): 在图像平面上对图像以一定方式进行平移;
  • 可以采用随机或人为定义的方式指定平移范围和平移步长, 沿水平或竖直方向进行平移. 改变图像内容的位置;
  • 尺度变换(scale): 对图像按照指定的尺度因子, 进行放大或缩小; 或者参照SIFT特征提取思想, > - 利用指定的尺度因子对图像滤波构造尺度空间. 改变图像内容的大小或模糊程度;
  • 对比度变换(contrast): 在图像的HSV颜色空间,改变饱和度S和V亮度分量,保持色调H不变. 对每个像素的S和V分量进行指数运算(指数因子在0.25到4之间), 增加光照变化;
  • 噪声扰动(noise): 对图像的每个像素RGB进行随机扰动, 常用的噪声模式是椒盐噪声和高斯噪声;
  • 颜色变化:在图像通道上添加随机扰动。
  • 输入图像随机选择一块区域涂黑,参考《Random Erasing Data Augmentation》。

权值共享

权值共享最常见的就是在卷积神经网络中,权值共享的目的旨在减小模型中的参数,同时还能较少计算量。在循环神经网络中也用到了权值共享。
 具体来说,就是整个图片使用同一个卷积核内的参数,比较一个331的卷积核,这个核中9个参数被整张图共享,并不会因图像位置不同而改变核内的参数。

增加噪声

添加噪声的途径有很多,可以在输入数据上添加,增大数据的多样性,可以在权值上添加噪声,这种方法类似于L2正则

对抗学习

通过对输入增加扰动,来增加模型的抗攻击型和泛化能力。参见NLP — >对抗学习:从FGM, PGD到FreeLB

模型组合

训练多个模型,然后将各个模型融合

ref:

L1正则化及其推导
机器学习中的正则化(Regularization)
深度学习中Dropout的作用和原理
深度学习100问之神经网络中解决过拟合的几种方法
l1 相比于 l2 为什么容易获得稀疏解?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值