Deep Learning读书笔记(六):Improving neural networks by preventing co-adaptation of feature detectors

        我怎么觉得我这神烦的心情能够造就我博客的更新速度能比原来有显著的提高呢。最近还是要去多健健身,多打打球,也许能恢复的快一点。

        本来是打算这一系列都讨论下图像处理的,但是在上一篇博客中也提到了这个问题,所以还是在这之中先插一小段,讨论下现在很流行的一个trick。

        本篇博客所要讨论的问题就是如何减少模型过拟合问题的出现?现在使用的很普遍的方法就是dropout方法,该方法可以被利用在任何使用到深度模型的问题中去,而且通常能够取得比较不错的效果。这是因为这种方法能够有效的减少复杂的互适应现象的发生。那么为什么会有过拟合现象的发生呢?试想,如果数据的输入与输出之间的关系比较复杂,但网络又能够有足够多的神经元来对这种关系进行建模,那么必定会导致要对权重有很多的设定才能够进行较为完美的建模,特别的如果训练数据又较为有限,过拟合现象将更为明显。其具体体现就是,模型能够在训练集上有较低的错误率,但在测试集上的表现则不尽如人意。

        现在我们就来具体讨论下dropout方法。其实,其思想还是比较简单的,每一个隐藏层单元都以0.5的概率从原来的网络中被去除掉,这样一来一个隐藏层单元就不能够依赖于其他的隐藏层单元了。其实,一个有效地降低验证集上错误率的方法是,训练很多个网络,然后对这些网络的结果取平均值。但是这样的方法在训练和测试上都需要耗费大量的时间。随机的dropout方法就是一个能够在合理的时间内训练出大量的不同网络的方法。但是呢,这些网络却共享着相同的权值,它们仅仅是结构不同而已。

        对于使用了dropout方法的网络,仍然可以使用随机梯度下降法对网络进行训练。但是,我们需要对目标函数进行一定的修改。我们不再将L2范数设置为一个惩罚项,而是为其设置一个上限。这样的好处就是不用管权值的增量有多么大,就可以以一个较大的学习率作为开始,也可以搜索到更大的权值空间。

        其实,我们可以不仅仅将dropout方法使用在训练过程中,同样也可以应用在预训练的过程中。这样的话,我们需要使用较小的学习率,而且不会对权值进行任何的限制。

        对于dropout概率的选择,文章中也有提到,就是只要使用了该方法,而不论概率值取多少,都能够对模型有或多或少的提升。但一般都会选择0.5这个值。而且,如果能够在所有隐藏层中都使用dropout方法,这要比只在某一层中使用的效果要好。如果在输入层也使用dropout方法,同样也能够起到作用,但dropout概率不能超过0.5。试想,如果我们能为每一层隐层设定适合该隐层的dropout概率,那么模型的性能提升应该会更加明显。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值