闲话深度神经网络中的正则化方法之一:Dropout

网上关于正则化的一些方法、以及Dorpout原理解释有很多,大家有感兴趣的可以百度。

本文主要聊下inverted dropout。

想看英文解释的可以查看《Regularization of Neural Networks using DropConnect》

所谓inverted dropout,当模型使用了dropout layer,训练的时候只有占比为 p的隐藏层单元参与训练,那么在预测的时候,如果所有的隐藏层单元都需要参与进来,则得到的结果相比训练时平均要大1/p,为了避免这种情况,就需要测试的时候将输出结果乘以p 使下一层的输入规模保持不变。而利用inverted dropout,我们可以在训练的时候直接将dropout后留下的权重扩大1/p倍,这样就可以使结果的scale保持不变,而在预测的时候也不用做额外的操作了,更方便一些。

数学分析:

假设我们设置dropout probability为p, 那么该层大约有比例为p的单元会被drop掉,因为每个神经元是否drop就是一次伯努利实验,这层的dropout概率服从伯努利分布,而分布的期望就是np。

z^{l}=w^{l}a^{l-1}+b^{l} ,当 l-1 层有比例为p的单元drop后,a^{l-1}  大约会变为原来的p倍,为了保证l层的z期望不变,所以要在a^{l-1}与dropout矩阵乘积后,要除以p,即扩大1/p倍。

猜你喜欢

转载自blog.csdn.net/junjie20082008/article/details/88051139