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

Spring batch学习 持久化表结构详解

极智AI | 讲解 TensorRT 显式batch 和 隐式batch

(Spring Batch)为啥表'batch_job_instance'已经存在?

epoch,iteration,batch,batch_size