神经网络-overfitting(二)

一、概况

(一)、范数

由于正则化的定义需要使用到**范数(norm)**的概念,这里简单介绍一下范数的概念1

1.物理意义

范数是对函数、向量和矩阵定义的一种度量形式,可以用来测量两个函数、向量或者矩阵之间的距离。

2.数学定义

想要成为范数,需要满足一下三个性质:

  • 非负性
    ∀ X ∈ R n , 有 ∥ w ∥ ≥ 0 , 当 且 仅 当 X = 0 时 , ∥ w ∥ = 0 \forall X\in R^n,有\lVert w \rVert\geq0,当且仅当X=0时,\lVert w \rVert=0 XRnw0X=0w=0
  • 齐次性
    ∀ X ∈ R n , α ∈ R , 有 ∥ α w ∥ = ∣ α ∣ ∥ w ∥ \forall X\in R^n,\alpha\in R,有\lVert \alpha w \rVert=|\alpha|\lVert w \rVert XRnαRαw=αw
  • 三角不等式
    ∀ X , Y ∈ R n , 有 ∥ X + Y ∥ ≤ ∥ X ∥ + ∥ Y ∥ \forall X,Y\in R^n,有\lVert X+Y \rVert \leq \lVert X \rVert+\lVert Y \rVert X,YRnX+YX+Y
3.范数分类
  • 向量范数
    向量 X = ( x 1 , x 2 , . . . , x n ) T X=(x_1,x_2,...,x_n)^T X=(x1,x2,...,xn)T L P L_P LP范数定义为:
    ∥ X ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 / p , 1 ≤ p ≤ + ∞ \lVert X \rVert_p=(\sum_{i=1}^n|x_i|^p)^{1/p}, 1\leq p\leq+\infty Xp=(i=1nxip)1/p,1p+
    我们经常使用的是 p = 1 , 2 , ∞ p=1,2,\infty p=1,2,三种向量范数:
    ∥ X ∥ 1 = ∑ i = 1 n ∣ x i ∣ \lVert X \rVert_1=\sum_{i=1}^{n}|x_i| X1=i=1nxi
    ∥ X ∥ 2 = ∑ i = 1 n ∣ x i ∣ 2 \lVert X \rVert_2=\sqrt{\sum_{i=1}^{n}|x_i|^2} X2=i=1nxi2
    ∥ X ∥ ∞ = max ⁡ 1 ≤ i ≤ n ∣ x i ∣ \lVert X \rVert_{\infty}=\max_{1\leq i\leq n}{|x_i|} X=1inmaxxi

  • 矩阵范数
    对于方阵 A A A,常用的矩阵范数有三种
    ∥ A ∥ 1 = max ⁡ 1 ≤ j ≤ n ∑ i = 1 n ∣ a i j ∣ \lVert A \rVert_1=\max_{1\leq j\leq n}{\sum_{i=1}^{n}|a_{ij}|} A1=1jnmaxi=1naij
    ∥ A ∥ ∞ = max ⁡ 1 ≤ i ≤ n ∑ j = 1 n ∣ a i j ∣ \lVert A \rVert_{\infty}=\max_{1\leq i\leq n}{\sum_{j=1}^{n}|a_{ij}|} A=1inmaxj=1naij
    ∥ A ∥ 2 = λ 1 ( λ 1 是 A T A 的 最 大 特 征 值 ) \lVert A \rVert_2=\sqrt{\lambda_1}(\lambda_1是A^TA的最大特征值) A2=λ1 (λ1ATA)

(二)、正则化

正则化2是为了解决过拟合问题而引入的一种策略,包括L1 regularization和L2 regularization。
假设损失函数为 E ( X , Y ) E(X,Y) E(X,Y),权重矩阵为 w w w,为了避免过拟合问题,将损失函数更正为:
E ( X , Y ) + α ∥ w ∥ E(X,Y)+\alpha \lVert w \rVert E(X,Y)+αw
上式中的 ∥ w ∥ \lVert w \rVert w表示L1范数或者L2范数, α \alpha α是由交叉验证得到的经验参数。
上面的过程称为正则化。


二、L2 regularization

在神经网络训练中,经常使用的是L2正则化3。L2正则化以后的损失函数形式如下:
C = C 0 + λ 2 n ∑ w w 2 C=C_0+\frac{\lambda}{2n}\sum_ww^2 C=C0+2nλww2
其中 C 0 C_0 C0表示原始的损失函数, n n n表示训练样本的个数, λ \lambda λ称为regularization parameter
那么,偏导数变为:
∂ 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
由上式可知,正则化的引入只对权重w有影响,对偏置b没有影响。
设学习率为 η \eta η,权重更新公式变为:
w = w − η ∂ C 0 ∂ w − η λ n w = ( 1 − η λ n ) w − η ∂ C 0 ∂ w w=w-\eta\frac{\partial C_0}{\partial w}-\frac{\eta \lambda}{n}w=(1-\frac{\eta \lambda}{n})w-\eta\frac{\partial C_0}{\partial w} w=wηwC0nηλw=(1nηλ)wηwC0
b = b − η ∂ C 0 ∂ b b=b-\eta\frac{\partial C_0}{\partial b} b=bηbC0
由上式可以看到权重w的系数变为了 1 − η λ n 1-\frac{\eta \lambda}{n} 1nηλ,这种 ∣ w ∣ |w| w的减小称为weight decay
w为正,正则化使得w变小;w为负,正则化是得w变大。整体上会使得网络的权重w趋向于0。为什么趋近于0,会减弱过拟合呢?
直观上的解释是:当过拟合发生的时候,模型过度匹配训练数据,导致模型变得更为复杂,变化更为剧烈。而正则化可以对权重施加一种额外的约束,降低了模型的复杂性。
举个例子简单说明一下,假设模型为
y = w 1 x + w 2 x 2 + w 3 x 3 y=w_1x+w_2x^2+w_3x^3 y=w1x+w2x2+w3x3
模型的梯度可以表示为
∣ ∂ y ∂ x ∣ = ∣ w 1 ∣ + 2 ∗ ∣ w 2 ∣ ∗ ∣ x ∣ + 3 ∗ w 3 ∗ ∣ x ∣ 2 |\frac{\partial y}{\partial x}|=|w_1|+2*|w_2|*|x|+3*w_3*|x|^2 xy=w1+2w2x+3w3x2
过拟合意味着y随着x的变化更为剧烈,即上式变大。
而正则化的作用是减小 ∣ w 1 ∣ |w_1| w1 ∣ w 2 ∣ |w_2| w2,会使得上式变小,故正则化可以减弱过拟合。


三、L1 regularization

在神经网络训练中,也可以使用L1正则化。L1正则化以后的损失函数形式如下:
C = C 0 + λ n ∑ w ∣ w ∣ C=C_0+\frac{\lambda}{n}\sum_w|w| C=C0+nλww
同理,权重的更新公式可以表示如下:
w = w − η ∂ C 0 ∂ w − η λ n s g n ( w ) w=w-\eta\frac{\partial C_0}{\partial w}-\frac{\eta \lambda}{n}sgn(w) w=wηwC0nηλsgn(w)
和L2类似,L1的作用也是减小权重的绝对值,使得权重趋近于0。


四、L1和L2比较

(一)、速度

根据以上讨论,当|w|很大的时候,L2的权重衰减速度更快,当|w|很小的时候,L2的速度更慢。

(二)、稀疏性

模型中为0的参数越多,稀疏性约高。一方面,稀疏性可以带来计算上的方便;另一方面,稀疏性越高,模型越容易解释(因为输出只和部分参数有关)。
根据4,L1相比于L2具有更好的稀疏特性。

后面的技术分享转移到微信公众号上面更新了,【欢迎扫码关注交流】

在这里插入图片描述


  1. 《数值计算方法和算法》 张韵华 奚梅成等 ↩︎

  2. https://en.wikipedia.org/wiki/Regularization_(mathematics) ↩︎

  3. http://neuralnetworksanddeeplearning.com/chap3.html#overfitting_and_regularization ↩︎

  4. http://freemind.pluskid.org/machine-learning/sparsity-and-some-basics-of-l1-regularization/ ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值