卷积神经网络中隐藏层的丢失率指导

use*_*383 5 machine-learning convolution neural-network conv-neural-network recurrent-neural-network

我目前正在构建一个卷积神经网络来玩2048游戏。它具有卷积层,然后有6个隐藏层。在线所有指南均提到〜50%的辍学率。我将要开始训练,但担心6层中的每层50%的辍学率有些过大,并且会导致拟合不足。

我将非常感谢对此的一些指导。你们推荐什么作为辍学的起点?我也很想了解您为什么推荐您的工作。

Max*_*xim 8

首先,请记住,辍学是一种对抗过度合并改善神经网络泛化的技术。因此,一个好的出发点是着重于训练性能,并在您清楚地看到过拟合后进行处理。例如,在某些机器学习领域(例如强化学习)中,学习的主要问题可能是缺乏及时的奖励,并且状态空间过大,泛化没有问题。

这是一张非常近似的图片,在实践中过拟合看起来像:

过度拟合图

顺便说一句,辍学并不是唯一的技术,最新的卷积神经网络往往更喜欢批处理和权重标准化而不是辍学。

无论如何,假设过度拟合确实是一个问题,并且您想专门应用辍学。尽管通常建议dropout=0.5采用默认设置,但该建议遵循Hinton等人的原始Dropout论文中的建议,当时该论文侧重于完全连接的层或密集层。该建议还隐含地假设研究进行了超参数调整以找到最佳的压差值。

对于卷积层,我认为您是对的:dropout=0.5似乎过于严格,研究对此表示赞同。例如,请参阅Park和Kwak撰写的“卷积神经网络中的丢包效应分析”:他们发现水平低得多,dropout=0.1并且dropout=0.2工作得更好。在我自己的研究中,我对超参数调整进行了贝叶斯优化(请参阅此问题),它经常选择从网络的第一个卷积层开始逐渐降低丢弃概率。这是有道理的,因为过滤器的数量也增加了,因此共同适应的机会也增加了。结果,该体系结构通常如下所示:

  • CONV-1: ,filter=3x3size=32滤除之间0.0-0.1
  • CONV-2: ,filter=3x3size=64滤除之间0.1-0.25
  • ...

这对于分类任务确实表现良好,但是,它肯定不是通用体系结构,因此您绝对应该针对问题交叉验证和优化超参数。您可以通过简单的随机搜索或贝叶斯优化来实现。如果您选择贝叶斯优化,那么会有很好的库,例如this