[深度学习-2.3] 正则化减少过拟合

在开发一个分类器的时候如果出现了过拟合问题(高方差),其中一个有效的方法是增加更多的训练数据,但很多情况下无法获取到更多的数据,这时候就应该考虑另一个很有效的方法——正则化

正则化的原理

  以Logistic回归分类器为例。使用单神经元和Logistic回归构建的分类器,损失函数(即需要优化的目标函数)为 (1) min ⁡ J ( w , b ) = 1 m ∑ i = 1 m L ( y ( i ) , y ^ ( i ) ) \min J(w, b)=\frac{1}{m} \sum_{i=1}^{m} L\left(y^{(i)}, \hat{y}^{(i)}\right)\tag{1} minJ(w,b)=m1i=1mL(y(i),y^(i))(1)

w w w b b b 是逻辑回归的参数,对于Logistic回归来说, w ∈ R n x w \in R^{n_x} wRnx n x n_x nx 表示特征向量的维数, b b b 为实数。正则化就是给上面这样的损失函数加上正则化项,一般来说这个正则化项是 w w w 的加权值。如果使用L2正则化,损失函数会变成下面这样
(2) min ⁡ J ( w , b ) = 1 m ∑ i = 1 m L ( y ( i ) , y ^ ( i ) ) + λ 2 m ∥ w ∥ 2 2 \min J(w, b)=\frac{1}{m} \sum_{i=1}^{m} L\left(y^{(i)}, \hat{y}^{(i)}\right)+\frac{\lambda}{2m}\|w\|_{2}^{2} \tag{2} minJ(w,b)=m1i=1mL(y(i),y^(i))+2mλw22(2)

相比式(1)来说多了 λ 2 m ∥ w ∥ 2 2 \frac{\lambda}{2 m}\|w\|_{2}^{2} 2mλw22一项,即L2正则化项。其中 λ \lambda λ 是正则化参数(是一个超参数), m m m 表示样本数量, ∥ w ∥ 2 2 \|w\|_{2}^{2} w22 w w w 二范数的平方:
(3) ∥ w ∥ 2 2 = ∑ j = 1 n x w j 2 = w T w \|w\|_{2}^{2}=\sum_{j=1}^{n_x} w_j^{2}=w^Tw \tag{3} w22=j=1nxwj2=wTw(3)

L2正则化是最常使用的,此外还有L1正则化,在原损失函数后面加上L1正则化项 λ m ∥ w ∥ 1 \frac{\lambda}{m}\|w\|_{1} mλw1 ∥ w ∥ 1 \|w\|_{1} w1 表示 w w w 的一范数:
(4) ∥ w ∥ 1 = ∑ j = 1 n x ∣ w j ∣ \|w\|_{1}= \sum_{j=1}^{n_x} |w_j| \tag{4} w1=j=1nxwj(4)
  上面是以简单的Logistic为例,权重参数 w w w 是一个向量,接下来将其推广到深层神经网络。对于深层神经网络来说,损失函数的参数包含了 W [ 1 ] \bold{W}^{[1]} W[1] W [ L ] \bold{W}^{[L]} W[L] L L L为网络层数,并且对于任意一层 l l l 来说, W [ l ] \bold{W}^{[l]} W[l] 往往是一个二维矩阵而不是前面的向量形式。此时,加上正则化项后的损失函数为: (5) min ⁡ J = 1 m ∑ i = 1 m L ( y ( i ) , y ^ ( i ) ) + λ 2 m ∑ l = 1 L ∥ W [ l ] ∥ 2 \min J=\frac{1}{m} \sum_{i=1}^{m} L\left(y^{(i)}, \hat{y}^{(i)}\right)+\frac{\lambda}{2 m} \sum_{l=1}^{L}\|\bold{W}^{[l]}\|^{2} \tag{5} minJ=m1i=1mL(y(i),y^(i))+2mλl=1LW[l]2(5)

其中矩阵范数 ∥ W [ l ] ∥ 2 \|\bold{W}^{[l]}\|^{2} W[l]2 表示矩阵中所有元素的平方求和。注意到 W [ l ] \bold{W}^{[l]} W[l] 是一个 n [ l ] × n [ l − 1 ] n^{[l]}\times n^{[l-1]} n[l]×n[l1] 的二维矩阵,因此
(6) ∥ W [ l ] ∥ 2 = ∑ i = 1 n [ l ] ∑ i = 1 n [ l − 1 ] ( w i j ) 2 \|\bold{W}^{[l]}\|^{2}= \sum_{i=1}^{n^{[l]}}\sum_{i=1}^{n^{[l-1]}}(w_{ij})^2 \tag{6} W[l]2=i=1n[l]i=1n[l1](wij)2(6)

注意,在加入正则化项之后,损失函数的梯度相应的也多了一项,对于 l l l 层来说,用 d W [ l ] d\bold{W}^{[l]} dW[l]表示没有正则化项的梯度,可以很容易地推导出则加入正则化之后,梯度变为
(7) d W [ l ] ′ = d W [ l ] + λ m W [ l ] d\bold{W}^{[l]'}=d\bold{W}^{[l]}+\frac{\lambda}{m}\bold{W}^{[l]} \tag{7} dW[l]=dW[l]+mλW[l](7)

为什么正则化可以减少过拟合

  从直观上来理解,一个深度网络模型出现过拟合的原因是大量的隐藏神经元能够将输入特征向量的大量特征都考虑到,甚至一些数据噪声考虑在内。加入正则化后,由于正则项的存在,导致在优化损失函数的时候会将正则项的值也朝着小的方向优化,这样的结果就是神经网络中有部分连接的值会变得很小(跟 λ \lambda λ有关),这样网络的结构得到了优化,某些特征的影响会变小。简化后的神经网络更不容易出现过拟合的情况。但是 λ \lambda λ 很大的时候,当很多权重值都变得很小,此时网络会变得欠拟合,得到高偏差的结果,因此 λ \lambda λ 需要通过验证集来帮助配置。
  从数学原理上理解贝叶斯减少过拟合可以参考这一篇文章,我觉得解释的很清楚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值