神经网络-overfitting(二)

来源:互联网 发布:linux日志设置 编辑:程序博客网 时间:2024/05/16 02:00

一、概况

(一)、范数

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

1.物理意义

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

2.数学定义

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

  • 非负性
    XRnw0X=0w=0
  • 齐次性
    XRnαRαw=|α|w
  • 三角不等式
    X,YRnX+YX+Y

3.范数分类

  • 向量范数
    向量X=(x1,x2,...,xn)TLP范数定义为:

    Xp=(i=1n|xi|p)1/p,1p+

    我们经常使用的是p=1,2,三种向量范数:
    X1=i=1n|xi|

    X2=i=1n|xi|2

    X=max1in|xi|

  • 矩阵范数
    对于方阵A,常用的矩阵范数有三种

    A1=max1jni=1n|aij|

    A=max1inj=1n|aij|

    A2=λ1(λ1ATA)

(二)、正则化

正则化2是为了解决过拟合问题而引入的一种策略,包括L1 regularization和L2 regularization。
假设损失函数为E(X,Y),权重矩阵为w,为了避免过拟合问题,将损失函数更正为:

E(X,Y)+αw

上式中的w表示L1范数或者L2范数,α是由交叉验证得到的经验参数。
上面的过程称为正则化。


二、L2 regularization

在神经网络训练中,经常使用的是L2正则化3。L2正则化以后的损失函数形式如下:

C=C0+λ2nww2

其中C0表示原始的损失函数,n表示训练样本的个数,λ称为regularization parameter
那么,偏导数变为:
Cw=C0w+λnw

Cb=C0b

由上式可知,正则化的引入只对权重w有影响,对偏置b没有影响。
设学习率为η,权重更新公式变为:
w=wηC0wηλnw=(1ηλn)wηC0w

b=bηC0b

由上式可以看到权重w的系数变为了1ηλn,这种|w|的减小称为weight decay
w为正,正则化使得w变小;w为负,正则化是得w变大。整体上会使得网络的权重w趋向于0。为什么趋近于0,会减弱过拟合呢?
直观上的解释是:当过拟合发生的时候,模型过度匹配训练数据,导致模型变得更为复杂,变化更为剧烈。而正则化可以对权重施加一种额外的约束,降低了模型的复杂性。
举个例子简单说明一下,假设模型为
y=w1x+w2x2+w3x3

模型的梯度可以表示为
|yx|=|w1|+2|w2||x|+3w3|x|2

过拟合意味着y随着x的变化更为剧烈,即上式变大。
而正则化的作用是减小|w1||w2|,会使得上式变小,故正则化可以减弱过拟合。


三、L1 regularization

在神经网络训练中,也可以使用L1正则化。L1正则化以后的损失函数形式如下:

C=C0+λnw|w|

同理,权重的更新公式可以表示如下:
w=wηC0wηλnsgn(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/ ↩
0 0
原创粉丝点击