L1, L2正则化
贝叶斯先验分布
最大似然估计
如果有数据集(X, Y),并且Y是有白噪音(就是测量的Y与真实的Y r e a l Y_{real} Y r e a l 有均值为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 ∑ ( x i θ i ) + ϵ = X θ T + ϵ
其中X = ( x 1 , x 2 , . . . , X n ) , ϵ X=(x_1,x_2,...,X_n),\epsilon X = ( x 1 , x 2 , . . . , X n ) , ϵ 是白噪音,即ϵ ∼ N ( 0 , δ 2 ) \epsilon \sim N(0, \delta^2) ϵ ∼ N ( 0 , δ 2 ) 。对于一数据集( X i , Y i ) (X_i, Y_i) ( X i , Y i ) 来说,由X i X_i X i 得到Y i Y_i Y i 的概率是Y i ∼ N ( f ( X i , δ 2 ) ) Y_i\sim N(f(X_i, \delta^2)) Y i ∼ N ( f ( X i , δ 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 ( Y i ∣ X i , θ ) = δ 2 π 1 e x p ( − 2 δ 2 ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 )
对所有的数据,如果他们独立同分布有: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 ( Y ∣ X , θ ) = Π i δ 2 π 1 e x p ( − 2 δ 2 ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 )
前加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} θ ∗ = = a r g m a x θ ( ln P ( Y ∣ X , θ ) ) a r g m a x θ ( − 2 δ 2 1 i ∑ ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 + i ∑ l n ( δ 2 π ) ) a r g m a x θ ( i ∑ ∣ ∣ f ( X i ) − Y i ∣ ∣ 2 )
上述即最小二乘法
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 ) = 2 b 1 e x p ( − b ∣ x − μ ∣ )
分布的图像:
可以看到该分布主要集中在μ \mu μ 附件,而且b越小,数据的分布越集中
Laplace先验导出L1正则化
对于前述的最大似然估计,我们实事上假设了θ \theta θ 是均匀分布的,也就是P ( θ ) = C o n s t a n t P(\theta)=Constant P ( θ ) = C o n s t a n t
L1 相当于设置了一个 Laplacean先验分布,然后最大化后验概率:
Laplace先验为:P ( θ i ) = λ 2 e x p ( − λ ∣ θ i ∣ ) P(\theta_i) = \frac{\lambda}{2}exp(-\lambda|\theta_i|) P ( θ i ) = 2 λ e x p ( − λ ∣ θ 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} θ ∗ = = a r g m a x θ ( ln P ( Y ∣ X , θ ) P ( θ ) ) a r g m a x θ ( − 2 δ 2 1 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 ∣ )
可以由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 ) = π λ e x p ( − λ ∣ ∣ θ i ∣ ∣ 2 )
θ ∗ = 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} θ ∗ = = 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 )
总结
为什么引入正则化?
主要解决过拟合问题
为什么L1引入稀疏性
L1正则化先验分布Laplace分布,数据集中在0处,引入稀疏性
L2正则化先验Gauss分布,数据集中在0附近,得到的解更加平滑。
为什么降低过拟合
正则化是一种结构风险最小化的策略。
通过在原式和正则项中做一个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 = 定值 ∣ w 1 ∣ 2 + ∣ w 2 ∣ 2 = 定 值 ,L2: ∣ w 1 ∣ + ∣ w 2 ∣ = 定 值 |w_1|+ |w_2| =定值 ∣ w 1 ∣ + ∣ w 2 ∣ = 定 值
当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 ) = L e m p ( w ; X , y ) + α ∥ w ∥ 1 − − − ( 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) ∇ w J ( w ; X , y ) = ∇ w L e m p ( w ; X , y ) + α ⋅ s i g n ( 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 ) + 2 1 ( w − w ∗ ) H ( w − w ∗ ) − − − ( 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 = d i a g ( [ H 1 , 1 , H 2 , 2 . . . H n , 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 ∑ [ 2 1 H i , i ( w i − w i ∗ ) 2 + α i ∣ w i ∣ ] − − − ( 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} H i , i ( w i − w i ∗ ) + ⇒ w i = = = α ⋅ s i g n ( w i ) = 0 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 α )
对于上式,其实我们最终得到的求解:
必定有∣ w i ∣ < ∣ w ∗ ∣ |w_i| < |w^*| ∣ w i ∣ < ∣ w ∗ ∣ ,因为只有这样,才能是α ∣ w i ∣ \alpha |w_i| α ∣ w i ∣ 更小。
而且s i g n ( w i ) = s i g n ( w i ∗ ) 或 w i = 0 sign(w_i) = sign(w^*_i)或w_i=0 s i g n ( w i ) = s i g n ( w i ∗ ) 或 w i = 0 ,只有这样,在α ∣ w i ∣ \alpha|w_i| α ∣ w i ∣ 不变时,才能使得式(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\} w i = s i g n ( w i ∗ ) max { ∣ w i ∗ ∣ − H i , i α , 0 }
由此解可知:
若∣ w i ∗ ∣ ≤ α H i , i |w_i^*| \leq \frac{\alpha}{H_{i,i}} ∣ w i ∗ ∣ ≤ H i , i α ,那么正则化后的最优解w i = 0 w_i=0 w i = 0 ,说明这个方向L e m p ( w ; X , y ) L_{emp}(w; X, y) L e m p ( w ; X , y ) 被正则话抵消了,即引入了稀疏性。
若∣ w i ∗ ∣ > α H i , i |w_i^*| > \frac{\alpha}{H_{i,i}} ∣ w i ∗ ∣ > H i , i α ,正则化不会最优解推向w i = 0 w_i=0 w i = 0 ,而是在这方向向原点移动了α H i , i \frac{\alpha}{H_{i,i}} H i , 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》。
权值共享
权值共享最常见的就是在卷积神经网络中,权值共享的目的旨在减小模型中的参数,同时还能较少计算量。在循环神经网络中也用到了权值共享。
具体来说,就是整个图片使用同一个卷积核内的参数,比较一个33 1的卷积核,这个核中9个参数被整张图共享,并不会因图像位置不同而改变核内的参数。
增加噪声
添加噪声的途径有很多,可以在输入数据上添加,增大数据的多样性,可以在权值上添加噪声,这种方法类似于L2正则
对抗学习
通过对输入增加扰动,来增加模型的抗攻击型和泛化能力。参见NLP — >对抗学习:从FGM, PGD到FreeLB
模型组合
训练多个模型,然后将各个模型融合
ref:
L1正则化及其推导 机器学习中的正则化(Regularization) 深度学习中Dropout的作用和原理 深度学习100问之神经网络中解决过拟合的几种方法