【问题标题】:Dropout rate guidance for hidden layers in a convolution neural network卷积神经网络中隐藏层的辍学率指导
【发布时间】:2018-06-02 05:09:43
【问题描述】:

我目前正在构建一个卷积神经网络来玩 2048 游戏。它有卷积层和 6 个隐藏层。所有在线指南都提到了大约 50% 的辍学率。我即将开始训练,但我担心 6 层中的每一层都有 50% 的 dropout 有点矫枉过正,会导致拟合不足。

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

【问题讨论】:

    标签: machine-learning neural-network conv-neural-network convolution recurrent-neural-network


    【解决方案1】:

    首先,请记住,dropout 是一种对抗过度拟合并提高神经网络泛化能力的技术。所以好的出发点是专注于训练表现,一旦你清楚地看到它就处理过拟合。例如,在某些机器学习领域,例如强化学习,学习的主要问题可能是缺乏及时的奖励,并且状态空间太大以至于泛化没有问题。

    这是一个非常近似的图片在实践中过度拟合的样子:

    顺便说一句,dropout 并不是唯一的技术,最新的卷积神经网络倾向于使用批量和权重归一化而不是 dropout。

    无论如何,假设过度拟合确实是一个问题,并且您想专门应用 dropout。尽管建议将 dropout=0.5 作为默认值是很常见的,但此建议遵循了 Hinton 等人的 original Dropout paper 的建议,当时该建议专注于全连接或密集层。该建议还隐含地假设研究会进行超参数调整以找到最佳 dropout 值。

    对于卷积层,我认为你是对的:dropout=0.5 似乎太严重了,研究也同意。例如,参见 Park 和 Kwak 的 "Analysis on the Dropout Effect in Convolutional Neural Networks" 论文:他们发现更低级别的 dropout=0.1dropout=0.2 效果更好。在我自己的研究中,我对超参数调整进行贝叶斯优化(参见this question),它通常选择从网络的第一个卷积层开始逐渐增加丢弃概率。这是有道理的,因为过滤器的数量也会增加,共同适应的机会也会增加。因此,架构通常如下所示:

    • CONV-1:filter=3x3size=320.0-0.1 之间的辍学
    • CONV-2:filter=3x3size=640.1-0.25 之间的辍学
    • ...

    这确实适用于分类任务,但是,它肯定不是通用架构,您绝对应该针对您的问题交叉验证和优化超参数。您可以通过简单的随机搜索或贝叶斯优化来做到这一点。如果你选择贝叶斯优化,有很好的库,比如this one

    【讨论】:

    • 非常感谢您提供详细的反馈 - 我非常感谢。我也非常感谢这些参考资料!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多