1.先看普通情况
归一化的作用
毫无疑问,这个是能加速训练的
并且能避免受到量纲的影响
2.单层神经网络中
图片上面的是单一网络
肯定ok的
那么,对于深层网络如何呢?
我们看第三层网络的参数w[3]、b[3]
能否通过归一化a[2]呢来加速第三层的训练速度
实际上可能是在激活函数之前归一化更多,也就是
归一化z[2]
因此以这个为例,介绍BN的算法
3.BN的实现
对于图片左端而言
对于某一层的输入Z[L](这是一个向量)
有m个样本(批次归一化)
先将每个Z[i]都转为(0,1)标准分布后
再通过参数 γ \gamma γ、 β \beta β来将均值和方差转化为任意设定的值(因为你肯定不希望所有的均值和方差都为0、1,那还训练个毛线啊,对吧),这两个参数是可以通过训练来学习的
图片右边的,则是说,当 γ \gamma γ、 β \beta β取特殊值时,Z tilde的值能和输入Z一致。
4.添加到网络中
大概了解一下原理就行了
没必要深究