【深度学习基础】正则化


常用L1和L2正则化,随机失活(dropout)。

L0 & L1

L0范数:权值向量 w w w中非0的元素的个数。
L1范数(稀疏规则算子,Lasso Regularization):权值向量 w w w中各个元素绝对值之和,通常表示为 ∣ ∣ w ∣ ∣ 1 ||w||_1 w1
如果使用L0范数来规则化一个参数矩阵W,即意味着希望W的大部分元素都是0。L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。
三个问题:

1. 为什么L1范数导致稀疏解?(解答包括部分L2范数的内容)

公式解释:
假设只有一个参数 w w w,损失函数为 L ( w ) L(w) L(w),分别加上 L 1 L1 L1 L 2 L2 L2正则项:
J L 1 ( w ) = L ( w ) + λ ∗ ∣ w ∣ J_{L1}(w) = L(w) + \lambda * |w| JL1(w)=L(w)+λw
J L 2 ( w ) = L ( w ) + λ ∗ w 2 J_{L2}(w) = L(w) + \lambda * w^{2} JL2(w)=L(w)+λw2
假设 L ( w ) L(w) L(w)在0处的倒数为 d 0 d_0 d0,即
∂ L ( w ) ∂ w ∣ w = 0 = d 0 \frac{\partial L(w)}{\partial w} |_{w=0} = d_0 wL(w)w=0=d0
则可以推导使用 L 1 L1 L1正则和 L 2 L2 L2正则时的导数:
L 2 L2 L2正则项在0的导数:
∂ J L 2 ( w ) ∂ w ∣ w = 0 = d 0 + 2 ∗ λ ∗ w = 0 \frac{\partial J_{L2}(w)}{\partial w} |_{w=0} = d_0 + 2 * \lambda * w = 0 wJL2(w)w=0=d0+2λw=0
L 1 L1 L1正则项在0左右两边的导数:
∂ J L 1 ( w ) ∂ w ∣ w = 0 = d 0 − λ \frac{\partial J_{L1}(w)}{\partial w} |_{w=0} = d_0 - \lambda wJL1(w)w=0=d0λ
∂ J L 1 ( w ) ∂ w ∣ w = 0 = d 0 + λ \frac{\partial J_{L1}(w)}{\partial w} |_{w=0} = d_0 + \lambda wJL1(w)w=0=d0+λ
从上式可以看出,引入 L 1 L1 L1正则项的代价函数在等于0的位置有一个突变,在0处是一个极小值点。因此,优化时,可能优化到该极小值点上,即w=0.

2. 为什么L0和L1都可以实现稀疏,而选择L1?

两种优势:
L 0 L0 L0范数很难优化求解(NP问题);
L 1 L1 L1范数是 L 0 L0 L0范数的最优凸近似,而且 L 1 L1 L1 L 0 L0 L0更容易优化求解。
在这里插入图片描述

3. 如何选择 L 1 L1 L1范数的参数?

λ \lambda λ越大,越 F ( x ) F(x) F(x) x = 0 x=0 x=0时取得最小值。
理解:见上1的公式推导, L 1 L1 L1正则化在某些位置是不可导的,当 λ \lambda λ足够大时,使得 F ( x ) F(x) F(x) x = 0 x=0 x=0时取得最小值。
下图为 λ = 0.5 \lambda=0.5 λ=0.5 λ = 2 \lambda=2 λ=2的图像。
在这里插入图片描述

4. 参数稀疏化的好处

稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0。
(1) 特征选择
稀疏规则化有一个最大的好处在于能实现特征的自动选择。 L 1 L1 L1可以学习去掉没有 y y y信息的特征,也就是把这些特征对应的权重重置为0。
(2) 可解释性
模型更容易解释。

L2

L2范数(岭回归,Ridge Regression):权值向量 w w w中各个元素的平方和再求平方根(可以看到Ridge回归的 L 2 L2 L2正则项有平方符号),通常表示为 ∣ ∣ w ∣ ∣ 2 ||w||_2 w2
L 2 L2 L2正则化可以防止模型过拟合(overfitting),虽然 L 1 L1 L1在一定程度上也可以防止过拟合。
C = C 0 + λ 2 n ∑ w w 2 C = C_0 + \frac{\lambda}{2n} \sum_w w^2 C=C0+2nλww2

1. 为什么 L 2 L2 L2正则化可以获得值很小的参数?

∂ C ∂ w = ∂ C 0 ∂ w + λ n w \frac{\partial C}{\partial w} = \frac{\partial C_0}{\partial w} + \frac{\lambda}{n} w wC=wC0+nλw
∂ C ∂ b = ∂ C 0 ∂ b \frac{\partial C}{\partial b} = \frac{\partial C_0}{\partial b} bC=bC0
从上式可以看出 L 2 L2 L2正则项对 b b b的更新没有影响,只是对 w w w的更新有影响。
w = w − η ∂ C 0 ∂ w − η λ n w w = w - \eta \frac{\partial C_0}{\partial w} - \eta \frac{\lambda}{n} w w=wηwC0ηnλw
= ( 1 − η λ n ) ∗ w − η ∂ C 0 ∂ w = (1 - \eta \frac{\lambda}{n}) * w - \eta \frac{\partial C_0}{\partial w} =(1ηnλ)wηwC0
因为 ( 1 − η λ n ) &lt; 0 (1 - \eta \frac{\lambda}{n}) &lt; 0 (1ηnλ)<0,所以 w w w在减小。

2. 为什么 L 2 L2 L2正则化可以防止过拟合?

过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。
在这里插入图片描述
而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。

3. L 2 L2 L2参数的选择

λ \lambda λ越大, θ j \theta _j θj衰减得越快。

4. L 1 L1 L1 L 2 L2 L2正则有什么区别?

性质L1L2
鲁棒性
稳定性
解个数always 1个possibly 多个
特征选择没有built-in
计算高效性分析解导致计算高效非稀疏时计算

ps. 如果每层都是线性的,那么整个网络就是线性网络,即使是一个很深的网络,因为其具有线性激活函数的特征,最终我们只能计算线性函数。因此,该线性网络不适用与非常复杂的决策,以及过度拟合数据集的非线性决策边界。

总结

λ \lambda λ变大, W [ l ] W^{[l]} W[l]变小,此时忽略 b [ l ] b^{[l]} b[l]的影响, Z [ l ] Z^{[l]} Z[l]也会相对变小。下图 t a n h ( z ) tanh(z) tanh(z)的激活函数会相对呈现线性,整个神经网络会计算离线性函数近的值。
在这里插入图片描述

随机失活正则化(Dropout)

反向随机失活(inverted dropout)

keep-prob
每一层的keep-prob不同

keep-prob==1,保留所有

使用注意事项:
(1) 模型过拟合才可以使用,常用于CV

early stopping

正则化输入

步骤

  1. 零均值化
    μ = 1 m ∑ i = 1 m x ( i ) \mu = \frac{1}{m} \sum_{i=1}^{m} x^{(i)} μ=m1i=1mx(i)
    x : = x − μ x := x-\mu x:=xμ
    意思是移动训练集,知道完成0均值化。具体图像直观解释见下图。
    在这里插入图片描述
  2. 归一化方差
    σ 2 = 1 m ∑ i = 1 m [ x ( i ) ] 2 \sigma ^2 = \frac{1}{m} \sum_{i=1}^m [x^{(i)}]^2 σ2=m1i=1m[x(i)]2
    x / = σ 2 x /= \sigma ^2 x/=σ2

为什么要归一化输入?

假设x1为1,2…1000,x2为0,0.1…1,则未归一化的 J J J图像为下图,从不同方向下降时设定的学习率也不同。需要将学习率设定的很小,并且执行多次迭代。
在这里插入图片描述
而如果实现了归一化,归一化后的图像更加均匀,见下图。那么无论从什么地方开始,梯度下降法都能更直接快速的找到最小值。
在这里插入图片描述

参考:
3. 机器学习中的范数规则化之(一)L0、L1与L2范数
4. L1正则和L2正则的比较分析详解
5. 机器学习中正则化项L1和L2的直观理解
6. Differences between the L1-norm and the L2-norm (Least Absolute Deviations and Least Squares)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值