美文网首页
神经网络减轻过度拟合的四种方法

神经网络减轻过度拟合的四种方法

作者: Stack1_e27c | 来源:发表于2019-11-30 19:49 被阅读0次
  • L1规范化
  • L2规范化
  • 弃权
  • 人为扩展训练样本

L1规范化

这个方法是在未规范化的代价函数上加上一个权重绝对值的和:
C=C_0+ \cfrac{\lambda}{n}\sum_{\omega}|\omega|
然后使用一个因子\cfrac{\lambda}{n}进行量化调整,其中\lambda>0可以称为规范化参数,n就是训练集合的大小。

规划化有时候也被称为权重衰减,它的主要功能就是为了在最小化原始代价函数与寻找小的权重之间找个折中,两部分之间相对的重要程度就由\lambda来控制,\lambda越小,就偏向于最小化原始代价函数,反之,就偏向于小的权重。

至于为什么规范化可以减轻过度拟合,粗略的讲,规范化有助于训练小的权重,大的权重容易将训练数据中的噪声过于放大,从而影响模型在测试数据上的泛化能力,小的权重则不会因为一个微小的变动导致结果的大幅度变化,而是由训练数据中最普遍易泛化的特征共同作用。这边主要讲解减轻过度拟合的方法,具体为什么规范化可以减轻过度拟合,在以后的博客中会专门写一篇文章解释。

L2规范化

L2规范化与L1规范化有些类似,这个方法是在未规范化的代价函数上加上所有权重平方的和:
C=C_0+\cfrac{\lambda}{2n}\sum_{\omega}\omega^2
虽然两种规范化有类似的地方,不过我们也需要理解一下L1规范化训练的网络和L2规范化训练的网络不同的行为,对L1规范化代价函数求偏导:
\cfrac{\partial C}{\partial \omega}=\cfrac{\partial C_0}{\partial \omega}+\cfrac{\lambda}{n}sgn(\omega)
其中sgn(\omega)就是\omega的正负号,即\omega是正数时为+1,而\omega是负数时为-1。
对L1规范化的网络进行更新的规则就是:
\omega \rightarrow \omega'=\omega-\cfrac{\eta \lambda}{n}sgn(\omega)-\eta\cfrac{\partial C_0}{\partial \omega}

对L2规范化代价函数求偏导:
\cfrac{\partial C}{\partial \omega}=\cfrac{\partial C_0}{\partial \omega}+\cfrac{\lambda}{n}\omega
对L2规范化的网络进行更新的规则就是:
\omega \rightarrow \omega'=\omega-\eta\cfrac{\partial C_0}{\partial \omega}-\cfrac{\eta \lambda}{n}\omega=(1-\cfrac{\eta \lambda}{n})\omega-\eta \cfrac{\partial C_0}{\partial \omega}

在两种情形下,规范化的效果就是缩小权重。两种规范化都惩罚大的权重,但权重缩小的方式不同。
在L1规范化中,权重通过一个常量\cfrac{\eta \lambda}{n}sgn(\omega)向0进行缩小,而L2规范化中,权重通过一个和\omega成比例的量进行缩小。所以,当一个特定的权重绝对值|\omega|很大时,L1规范化的权重缩小远比L2规范化要小得多。相反,房一个特定的权重绝对值|\omega|很小时,L1规范化的权重缩小远比L2规范化要大得多。

最终结果就是:L1规范化倾向于聚集网络的权重比较小的时候,而L2规范化则倾向于权重比较大时。

弃权

弃权是一种相当激进的技术,并不依赖于对代价函数的修改,而是改变了网络本身。假设我们尝试训练一个网络:

原始神经网络
特别的,假设我们有一个训练数据和对应的目标输出。通常我们会通过在网络中前向传播,然后进行反向传播来确定对梯度的贡献。使用弃权技术,我们会随机(临时)的删除一半的隐藏神经元,同时让输入层和输出层的神经元保持不变。在此之后,我们会得到最终如下所示的神经网络:
修改后的神经网络
虚圈表示删除的隐藏神经元。
我们在一个小批量的数据上前向传播,通过修改后的网络,然后反向传播结果,同样通过这个修改后的网络,对有关的权重和偏置进行更新。然后重置弃权的神经元,选择一个新的随机的隐藏神经元的子集进行删除,在其他的小批量数据上重复这个过程步骤,更新权重和偏置。
通过不断的重复,我们会学到一个权重和偏置的集合。由于这些权重和偏置是在一半的隐藏神经元被弃权的情形下学到的,为了补偿这个,我们将隐藏神经元的偏置以及出去的权重减半。
启发式的看,当我们弃权掉不同的神经元集合时,就好比在训练不同的神经网络。所以,弃权过程就如同大量不同网络的效果的平均。不同的网络会以不同的方式过度拟合,所以弃权的网络的效果会减轻过度拟合。

人为扩展训练数据

训练好的神经网络,增加训练数据是一个稳定有效的方式,因为更少的数据意味着我们的网络接触更少的信息变化。如果我们使用大量更多的训练数据,那么,我们可能会得到更好的性能,即使是用简单的网络。
获取更多的数据代价很大,在实践中常常是很难使用的。不过,还有一种方法能够获得近似的效果,那就是人为扩展训练数据。比如图像识别,对已有的图像进行旋转、转换、扭曲,还有一种特殊的为了模仿手部肌肉的随机抖动的图像扭曲方法。比如语音识别,可以通过增加噪声来扩展训练数据。
一般就是通过应用反应真实世界变化的操作来扩展训练数据。

相关文章

  • 神经网络减轻过度拟合的四种方法

    L1规范化 L2规范化 弃权 人为扩展训练样本 L1规范化 这个方法是在未规范化的代价函数上加上一个权重绝对值的和...

  • TensorFlow-拟合

    过拟合overfitting 过于的拟合 拟合的结果 欠拟合 拟合完美 过度拟合 过度拟合的解决方法 减少数据 平...

  • Regularizing your neural network

    Regularizing 如果怀疑神经网络过度拟合了数据,即存在高方差问题那么最先想到的方法可能就是正则化,另一个...

  • 神经网络的过度拟合

    有些开发者在训练神经网络模型的时候,会出现这样以下的情况: 模型在训练数据上的准确度非常的高,近乎100%的准确率...

  • 防止过拟合的基本方法

    过拟合是训练神经网络中常见的问题,本文讨论了产生过拟合的原因,如何发现过拟合,以及简单的解决方法。 发现过拟合问题...

  • 3.4正则化:解决过拟合问题

    解决过拟合问题 当有过多变量,同时只有非常少的训练集时,就会出现过度拟合的问题。解决过度拟合问题,有两种方法: 尽...

  • Tensorflow实现多层感知机

    在普通神经网络的基础上,加入隐藏层,减轻过拟合的Dropout,自适应学习速率的Adagrad,以及可以解决梯度你...

  • CH1 统计学习方法概论|1.5.1正则化《统计学习方法》-学习

    文章原创,最近更新:2018-06-11 1.线性回归的过拟合与欠拟合2.逻辑回归的过度拟合3.解决过拟合的方法4...

  • 用浅层神经网络拟合数据(1)

    用浅层神经网络拟合数据 神经网络擅长拟合功能。 实际上,有证据表明,相当简单的神经网络可以满足任何实际功能。例如,...

  • 正则化逻辑回归(Regularization)

    1. 过拟合的问题(The problem of overfitting) 正则化可以减轻过拟合问题。欠拟合(un...

网友评论

      本文标题:神经网络减轻过度拟合的四种方法

      本文链接:https://www.haomeiwen.com/subject/spgowctx.html