Batch Normalization
Posted futurehau
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Batch Normalization相关的知识,希望对你有一定的参考价值。
1.Covariate Shift
当训练集的样本分布和测试集的样本分布不一致的时候,训练集训练得到的模型 不好繁华至测试集,这就是Covariate Shift问题。
需要根据目标样本的分支和训练样本的分布 的比例( P(x)/Q(x) ) 对训练样本做一个矫正。参考1 2
2.BN
深度网络中,随着网络深度的加深,每一层的输入逐渐向非线性激活函数的两端移动,造成梯度消失现象,训练速度慢。
BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布。
但是拉回来之后,相当于每一层就是在线性变化,深度就没有用了,造成网络的表达能力下降。为了在表达能力和训练速度之前平衡,
BN对变换后的满足均值为0方差为1的x又进行了scale加上shift操作(y=scale*x+shift)。
参考3 非常详细的BN解释。
参考文献:
1.https://blog.csdn.net/coolluyu/article/details/20280795
2.https://blog.csdn.net/guoyuhaoaaa/article/details/80236500
3.https://www.cnblogs.com/guoyaohua/p/8724433.html
以上是关于Batch Normalization的主要内容,如果未能解决你的问题,请参考以下文章
"Batch,Batch,Batch":What does it really mean?
tensorflow:batch and shuffle_batch
极智AI | 讲解 TensorRT 显式batch 和 隐式batch