过拟合以及防止过拟合的方式

1、过拟合

       过拟合有回归过拟合和分类过拟合。
       回归过拟合:

       分类过拟合:

       过拟合虽然会提高训练集的准确率,但是会导致测试集的误差变大。因此,如何提高神经网络的泛化能力成为影响模型能力的最关键因素。

2、防止过拟合的方式

2.1 增大数据集
      数据挖掘领域流行着这样一句话,“有时候拥有更多的数据胜过一个好的模型”。一般来说更多的数据参与训练,训练得到的模型就越好。如果数据太少,而我们构建的神经网络又太复杂的话就比较容易产生过拟合的现象。

2.2 Early stopping(提前停止)
       在训练模型的时候,我们往往会设置一个比较大的迭代次数。 Early stopping便是一种提前结束训练的策略用来防止过拟合。
      一般的做法是记录到目前为止最好的validation accuracy,当连续10个Epoch没有达到最佳accuracy时,则可以认为accuracy不再提高了。此时便可以停止迭代了(Early Stopping)。

      然而在实际操作中,验证集上的错误率变化曲线并不一定是上图所示的平衡曲线,很可能是先升高再降低。因此,提前停止的具体停止标准需要根据实际任务上进行优化。

2.3 Dropout(丢弃法)
       当训练一个深层神经网络时,我们可以随机丢弃一部分神经元(同时丢弃其对应的连接边)来避免过拟合,这种方法称为丢弃法(Dropout Method) [Srivastava et al., 2014]。每次选择丢弃的神经元是随机的。最简单的方法是设置一个固定的概率 p p p。对每一个神经元都用一个概率 p p p来判定要不要保留。对于一个神经层 y = f ( W x + b ) y = f(Wx + b) y=f(Wx+b),我们可以引入一个丢弃函数 d ( ⋅ ) d(·) d() 使得 y = f ( W d ( x ) + b ) y = f(W d(x) + b) y=f(Wd(x)+b) 。丢弃函数 d ( ⋅ ) d(·) d()的定义为:(剩下的明天再写)

2.4   l 1 l_1 l1 l 2 l_2 l2 正则化
       正则化(Regularization)是一类通过限制模型复杂度,从而避免过拟合,提高泛化能力的方法,包括引入一些约束规则,增加先验、提前停止等。
       在传统的机器学习中,提高泛化能力的方法主要是限制模型复杂度,比如采用 l 1 l_1 l1 l 2 l_2 l2 正则化等方式。而在训练深层神经网络时,特别是在过度参数(OverParameterized)时, l 1 l_1 l1 l 2 l_2 l2 正则化的效果往往不如浅层机器学习模型中显著。因此训练深度学习模型时,往往还会使用其它的正则化方法,比如数据增强、提前停止、丢弃法、集成法等。
        l 1 l_1 l1 正则化:
C = C 0 + λ n ∑ ω ∣ ω ∣ C=C_0+\frac{\lambda}{n}\sum_\omega\vert\omega\vert C=C0+nλωω

        l 2 l_2 l2 正则化:
C = C 0 + λ 2 n ∑ ω ω 2 C=C_0+\frac{\lambda}{2n}\sum_\omega\omega^2 C=C0+2nλωω2
       其中, C 0 C_0 C0 代表原始的代价函数, n n n 代表样本的个数, λ \lambda λ 就是正则项系数,权衡正则项与 C 0 C_0 C0 项的比重。
        l 1 l_1 l1 正则化可以达到模型参数稀疏化的效果, l 2 l_2 l2 正则化可以使得模型的权值衰减,使模型参数值都接近于0。
        有关 l 1 l_1 l1 l 2 l_2 l2 范数问题请跳到这篇文章。范数

       上图为不同范数约束条件下的最优化问题示例,红线表示函数 l p = 1 l_p=1 lp=1 F F F 为函数 f ( θ ) f(\theta) f(θ) 的等高线(简单起见,这里用直线表示)。
       从图中可以看出, l 1 l_1 l1 范数的约束通常会使得最优解位于坐标轴上,而从使得最终的参数为稀疏性向量。此外, l 1 l_1 l1 范数在零点不可导,因此经常下式来近似:
l 1 ( θ ) = ∑ i θ i 2 + ϵ l_1(\theta)=\sum_i\sqrt{\theta_i^2+\epsilon} l1(θ)=iθi2+ϵ

       其中, ϵ \epsilon ϵ是一个非常小的常数。

参考文献:
《神经网络与深度学习》 邱锡鹏
AI-MOOC

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值