深度学习总结(九)——正则化

深度学习总结(九)——正则化_第1张图片


1. 正则化简介

以逻辑斯蒂回归为例,介绍正则化。
原来的成本函数(cost function):

minw,bJ(w,b)=minw,b1mi=1mL(y^(i),y(i))

其中: wRnx,bR
加入正则化项得:
J(w,b)=1mi=1mL(y^(i),y(i))+λ2m||w||22

其中:
||w||22=j=1nxw2j=wTw

上式中的正则化是L2正则化。
正则化是一种非常实用的减少方差的方法,正则化时会出现偏差方差权衡问题,偏差可能略有增加。如果网络足够大,增幅通常不会太高。人们通常会用交叉验证集的方式来选择正则化参数:λ。

注意:损失函数指的是单个样本的误差,成本函数指的是所有训练样本的误差。

2. 为什么正则化项没有b

因为w往往是一个高维向量,包含了绝大多数参数,已经可以表达高方差问题。而b只是单个数字,加了也没有太大影响。

3. L1正则化使得模型变得稀疏,是否有利于模型压缩

实际上L1正则化虽然使得模型变得稀疏,但是却没有降低太多存储内存(因为参数的个数没有变,只是值变为了0)。所以L1正则化的主要目的不是为了模型压缩。

4. 为什么L2正则化被称为weight decay

首先我们来看成本函数,其包含w[1],b[1]到w[L],b[L]所有参数,L是神经网络所含的层数。其定义如下:

J(w[1],b[1],...,w[L],b[L])=1mi=1mL(y^(i),y(i))+λ2ml=1L||w[l]||2

其中:
||w[l]||2=i=1n[l1]j=1n[l](w[l]ij)2

w:(n[l1],n[l])

n[l]表示第l层单元的数量,这个式子求的是w[l]矩阵中所有元素的平方和。
在加上正则化前,w[l]用反向传播算法更新参数的公式为:
w[l]:=w[l]αdw[l]=w[l]αJw[l]
但是加上正则化之后,公式变为:
w[l]:=w[l]αdw[l]=w[l]α(Jw[l]+λmw[l])=(1αλm)w[l]αdw[l]

因为 1αλm 小于1,所以L2正则化相当于让权重矩阵变小,即权重衰减(weight decay)。

5. 为什么说L1正则化是假设参数满足拉普拉斯分布、而L2正则化是满足高斯分布

首先我们对参数w引入协方差为α、均值为0的高斯先验。则根据极大后验概率,求得成本函数为:

L(w)=p(y|X;w)p(w)=i=1mp(y(i)|x(i);θ)p(w)=i=1m12πδexp((y(i)wTx(i))22δ2)j=1n12παexp((w(j))22α)=i=1m12πδexp((y(i)wTx(i))22δ2)12παexp(wTw2α)

取对数:
l(w)=logL(w)=mlog12πδ+nlog12πα1δ212i=1m(y(i)wTx(i))21α12wTwwMAPGuassian=argminw(1δ212i=1m(y(i)wTx(i))2+1α12wTw)

等价于:
JR(w)=1n||ywTX||2+λ||w||2

显然这就是L2正则化的形式,L1正则化同理可以推得。

6. 正则化是如何防止过拟合的

深度学习总结(九)——正则化_第2张图片

根据上图所示,当λ增大时,w[l]变小,z[l]也会变小。这时z就会落入激活函数的线性区,这时整个网络就会接近一个线性模型。分类面的就会相对简单,就不容易出现右下角的那种过拟合的现象。

你可能感兴趣的:(深度学习)