美文网首页
dropout的理解

dropout的理解

作者: 云彩修建站站长 | 来源:发表于2019-10-28 14:54 被阅读0次

    在神经网络中,dropout是一种很常用的操作。

    1. 作用

    在训练的时候以一定的概率随机丢弃网络中的某些节点。

    2. 原理

    每个batch的训练都是在训练一个网络,结果就是很多网络的叠加,类似bagging

    3. 具体实现

    3.1 训练阶段

    1. 对于要dropout的tensor t,产生与t相同shape的01矩阵,这个01矩阵中1的个数是 t的节点个数 * keep_prob(01矩阵的产生服从二项分布),然后将X与这个01矩阵相乘。
    2. 对于步骤1产生的结果,除以keep_prob。

    ps. 二项分布:n次相互独立的伯努利分布,伯努利分布指的是(0-1)分布。

    3.2 预测阶段

    1. 不抛弃任何一个神经元。

    3.3 关于输出的期望

    3.1中的步骤2,会除以keep_prob,解释如下:

    1. 因为随机保留一些节点,如果一个节点原始输出的期望是x,那么经过节点随机保留之后,期望就是keep_prob*x
    2. 在预测阶段因为不做丢弃处理,所里预测的节点的输出期望是x,为了保证训练和预测输出的一致性,所以会对训练阶段的输出除以keep_prob。

    相关文章

      网友评论

          本文标题:dropout的理解

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