zoukankan      html  css  js  c++  java
  • dropout 为何会有正则化作用

    在神经网络中经常会用到dropout,大多对于其解释就是dropout可以起到正则化的作用。

    一下是我总结的对于dropout的理解。花书上的解释主要还是从模型融合的角度来解释,末尾那一段从生物学角度的解释是在是看不明白。

     从模型融合的角度来解释dropout:

    Dropout提供了正则化一一大类模型的方法。Dropout可以被认为是集成大量的深层神经网络模型的

    Bagging方法。通常的Bagging方法是每个模型单独训练的,但是这对于大规模的神经网络来说是不现实的。一般神经网络模型的融合都只能集成5到10个模型。但是Dropout提供了一种廉价的bagging集成近似,能够训练和评估指数数量的神经网络。Dropout集成的是所有从基础网络除去非输出单元后形成的子网络。

    这种如果我们设置dropout的概率为0.5,那么有N个隐藏层沈神经元的网络,可以产生2的N次方个子网络。

    Dropout训练与Bagging训练不一样,Bagging的训练,每个模型都是独立的,各自有各自的参数。但是在Dropout的情况下,所有模型共享参数,其中每个模型集成父神经网络参数的不同子集。

    在单个步骤的训练中,我们一次训练一个子网络。

    bagging集成必须根据所有成员的累积投票做一个预测。在这种背景下,我们成这个过程为推断。

    Bagging是每个模型产生一个概率分布,然后做算术平均,得到最终的结果。

    我的理解是Dropout是通过最后一层,比如softmax来做融合。这部分花书上有推导。求模型的几何平均,而不是bagging的算术平均。

    Dropout另一个优点是适用的模型比较广泛,而且效果都不错。

    总而言之,Dropout是目前使用最广泛的隐式集成的方法。

    Dropout强大的另一个解释是,我们把施加到神经元链接上的Dropout看做是一个噪声掩码,通过施加噪声,增强了模型的泛化能力。

    Dropout的噪声引入是乘性的,这部分的优势,目前还不了解,等我再看看书吧

    受到生物学的启发,解释dropout:

    参考资料:

    《深度学习》第七章 

    https://blog.csdn.net/stdcoutzyx/article/details/49022443

  • 相关阅读:
    Eclipse + Gradle + TestNG environment setup troubleshooting
    石家庄市教育局人才市场
    js技巧小记
    转 Browserhacks – 史上最全 CSS & JS Hack 手册
    【聊聊并发】【转】
    【深入理解Java内存模型】【转】
    Awk基本入门[1] Awk Syntax and Basic Commands
    Sed基本入门[6] Sed MultiLine Commands and loops
    Awk基本入门[2] Awk Builtin Variables
    SuperMap IS.NET 如何发布数据库型工作空间
  • 原文地址:https://www.cnblogs.com/earendil/p/9267558.html
Copyright © 2011-2022 走看看