深度学习的实用层面-2

本文来源于网易云课堂

2 偏差与方差 Bias and variance

这里写图片描述
从图中可以看出,第一幅图拟合的不到位,也就是存在很多误分类的情况,这种情况称之为欠拟合,也就是高偏差,第三幅图从直觉上看属于拟合的过头了,这种叫做过拟合,也就是高方差。而中间的图感觉正合适。

在二维空间中,我们可以通过绘制数据,将方差和偏差可视化,但在高维数据中这种方法不可用。那么我们怎么衡量偏差和方差呢?我们看下面一个例子。
这里写图片描述
假如我们分类猫咪,我们假设有4种情况。
1. 训练集误差为1%,验证集误差为11%。
2. 训练集误差为15%,验证集误差为16%。
3. 训练集误差为15%,验证集误差为30%。
4. 训练集误差为0.5%,验证集误差为1%。

对于第一种情况,训练集误差很低,说明训练的很好,但验证集误差较高,这表明训练集可能训练的过头了,某种情况下,验证集并没有发挥交叉验证集的作用,也就是高方差;第二种情况,训练集误差较高,表明数据没有得到很好的训练,而验证集相对训练集来说是合理的,误差只多了1%,因为它甚至不能拟合数据集,这种为高偏差;第三种,训练集误差15%,相当高的偏差,但是验证集误差更是达到了30%,与测试集误差相差了15%,于是可以看到这种情况偏差很高并且方差也很高;第四种,可以看到,这是一种低偏差和低方差的情况。综上,通过判断训练集误差和验证集误差我们就可以判断算法是否具有高方差。

3 机器学习基础

下图给出机器学习的基本的方法(recipe)。
这里写图片描述
有两点需要注意。第一,高偏差和高方差是两种不同的情况,后续要尝试的方法也可能完全不同。Andrew Ng 一般会用训练集和验证集来诊断算法是否存在偏差或方差问题,然后根据结果选择尝试部分方法。明确算法存在哪种问题,高方差或者高偏差或者两者都有,有助于我们选出最有效的方法。第二,在深度学习的早期,关于所谓的偏差方程权衡(bias variance tradeoff)的讨论屡见不鲜,原因是我们能尝试的方法有很多,可以减少偏差增加方差或者减少方差增加偏差。因为在深度学习的早期我们没有工具可以做到只减少偏差或方差却不影响到另外一方。但是在当前的深度学习和大数据时代,只要持续训练一个更大的网络或者更大的数据,那么也并非只有这两种情况。只要正则适度,通常构建一个更大的网络便可以在不影响方差的同时减少偏差。而采用更多数据通常可以在不过多影响偏差的同时减少方差。现在我们有工具可以实现在减少一方的同时对另一方不产生影响。Andrew Ng认为这就是深度学习对监督式学习大有裨益的一个重要原因。最终我们会得到一个非常规则的网络。

4 正则化regularization

如果你怀疑神经网络过渡拟合了数据,即存在high variance,那么最先想到的方法可能是正则化。另一个解决高方差的方法就是准备更多的数据,这也是非常可靠的方法,但你可能无法时时准备足够多的训练数据或者获得数据的成本很高,但正则化通常有助于避免过度拟合。

L2正则化(L two)

J(W,b)=1mmi=1L(y^(i),y(i))+λ2mW22wRnx,bR J ( W , b ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) + λ 2 m ‖ W ‖ 2 2 , w ∈ R n x , b ∈ R
W22=nxj=1=WTW ‖ W ‖ 2 2 = ∑ j = 1 n x = W T W

λ λ 称为正则化参数, W22 ‖ W ‖ 2 2 是向量参数 W W 的欧几里德范数平方,该方法称为L2正则化,因为这里用了欧几里德法线(Euclidean normals),所以称其为L2.

  • 为什么只正则化参数W而不再加上参数b呢?因为W通常是一个高维参数矢量,已经可以表达高偏差问题。W可能含有很多参数,我们不可能拟合所有参数,而b只是单个数字。所以W几乎涵盖所以参数,而不是b。如果加了参数b,其实也没什么太大影响,因为b只是众多参数中的一个。
  • L2正则化是最常见的正则化类型,还有一个称为L1正则化。
    λmj=1nx|W|=λmW1
    如果用L1正则化,w最终会是稀疏(sparse)的,即里面有很多0.有人说这样会节省内存。但事实上,虽然有很多0,但实际上不会降低很多内存。Andrew Ng认为这不是L1正则化的目的,起码不是为了压缩模型。

    我们可以看到, λ λ 是另外一个需要调整的超参数,由于python中lambda是一个保留字,所以为了编码的方便,我们使用lambd作为 λ λ

    如何在神经网络中实现正则化呢?

    在损失函数中,我们额外加上正则化项 λ2mLl=1W22 λ 2 m ∑ l = 1 L ‖ W ‖ 2 2 ,有

    J(W[1],b[1]...W[l],b[l]))=1mmi=1L(y^(i),y(i))+λ2mLl=1W22 J ( W [ 1 ] , b [ 1 ] . . . W [ l ] , b [ l ] ) ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) + λ 2 m ∑ l = 1 L ‖ W ‖ 2 2
    W22=l1i=1li=1w2ij,W:(n[l1],n[l]) ‖ W ‖ 2 2 = ∑ i = 1 l − 1 ∑ i = 1 l w i j 2 , W : ( n [ l − 1 ] , n [ l ] )

    由于线性代数中某些特殊的原因,我们不称它为L2范数,而是按照惯例称为弗罗贝尼乌斯范数(Frobenius norm),用下标F来表示。
    也就是: W22 ‖ W ‖ 2 2 = W2F ‖ W ‖ F 2
    在反向传播的过程中,正则化项会起到权重衰减的作用。因此L2正则化被称为“权重衰减”,因为它就像一般的梯度下降,w被更新为少了 α α 乘以backprop输出的最初梯度值。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值