点击上方“MLNLP”,选择加"星标"或“置顶”
重磅干货,第一时间送达
编辑:忆臻
https://www.zhihu.com/question/61751133
本文仅作为学术分享,如果侵权,会删文处理
神经网络Dropout层中为什么dropout后还需要进行rescale?
作者:PENGhttps://www.zhihu.com/question/61751133/answer/190722593
这被称为inverted dropout。当模型使用了dropout layer,训练的时候只有占比为 的隐藏层单元参与训练,那么在预测的时候,如果所有的隐藏层单元都需要参与进来,则得到的结果相比训练时平均要大
,为了避免这种情况,就需要测试的时候将输出结果乘以
使下一层的输入规模保持不变。
而利用inverted dropout,我们可以在训练的时候直接将dropout后留下的权重扩大 倍,这样就可以使结果的scale保持不变,而在预测的时候也不用做额外的操作了,更方便一些。
作者:春辉https://www.zhihu.com/question/61751133/answer/243909675
最高票的答案已经非常好了,为了冒泡再解释一下。
假设我们设置dropout probability为p, 那么该层大约有比例为p的单元会被drop掉,因为每个神经元是否drop就是一次伯努利实验,这层的dropout概率服从伯努利分布,而分布的期望就是np。
,当
层有比例为p的单元drop后,
大约会变为原来的p倍,为了保证
层的z期望不变,所以要在
与dropout矩阵乘积后,要除以p。
作者:李翔https://www.zhihu.com/question/61751133/answer/796032375
补充一些额外的点:dropout做rescale主要保证了神经元的期望均值与无dropout时一致,但未保证期望方差(标准差)一致。方差会产生一个与dropout系数p相关的偏移。所以dropout与bn联合使用可能会产生一定问题。详情参考understanding the disharmony of dropout and bn~
推荐阅读:
手把手教你PaddlePaddle 做词向量模型 SkipGram实战
如何评价Word2Vec作者提出的fastText算法?深度学习是否在文本分类等简单任务上没有优势?
从Word2Vec到Bert,聊聊词向量的前世今生(一)