网上关于正则化的一些方法、以及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。
,当 层有比例为p的单元drop后, 大约会变为原来的p倍,为了保证l层的z期望不变,所以要在与dropout矩阵乘积后,要除以p,即扩大1/p倍。