Batch normalization (BN)的操作就是首先计算mean和variance,然后归一化 对于一个(N,D)的batch,N是样本或者feature map个数,D是维度,对每一维计算mean和variance。

BN是放在激活函数之前,在没有采用BN之前,一般是,采用BN之后变成. BN算法如下: BN

本来通过学习得到的输出通过这种归一化操作,改变了网络学习到的特征分布,所以提出BN的作者又提出一个变换重构: ,,说明恢复了网络原来学习到的特征分布。

BN的优点:

  • 可以上来就用较大的学习速率,然后网络的学习速度能快10倍;
  • 降低对权重初始化的依赖性;
  • 降低对dropout的需求,有点L2-norm的作用。

问题:还是不太动BN,有人说设置那个变换重构,就是为了让网络自动学习,这两个参数,使其能够恢复原来的特征分布,但是为什么设置这个变换重构就能让网络学习到,呢?

看到知乎上有的人说BN的作用就是为了防止梯度弥散。

results matching ""

    No results matching ""