BatchNorm归一化网络激活函数,使他们的均值和标准差都为0,同时在训练时计算并更新数据的Mean和Var等参数。
Dropout通过在一个层中为神经元引入独立的随机门来构造独立的激活函数,允许神经元以概率p输出其值,否则输出0来停用它们。
Dropout在训练时采用,是为了减少神经元对部分上层神经元的依赖,类似将多个不同网络结构的模型集成起来,减少过拟合的风险。
在BatchNorm提出以后,就很少看到流行的深度学习模型同时采用BatchNorm和Dropout。
因为在训练时,BatchNorm和Dropout共同使用时会出现问题。
BatchNorm和Dropout单独使用都能减少过拟合并加速训练速度,但是如果二者一起使用的话并不会产生更好的效果,相反可能会得到比单独使用更差的效果。
Link:
https://zhuanlan.zhihu.com/p/199521441?utm_source=cn.wiz.note