作者给出的批标准化的算法如下:
算法中的ε是一个常量,为了保证数值的稳定性
所以:
因为:
所以:
因为:
和
所以:
所以:
对于BN变换是可微分的,随着网络的训练,网络层可以持续学到输入的分布。
(这里方差采用的是无偏方差估计) 所以推断采用BN的方式为:
作者给出的完整算法:
反向传播求梯度:
因为:
BN网络的训练和推断
按照BN方法,输入数据x会经过变化得到BN(x),然后可以通过随机梯度下降进行训练,标准化是在mini-batch上所以是非常高效的。 但是对于推断我们希望输出只取决于输入,而对于输入只有一个实例数据,无法得到mini-batch的其他实例,就无法求对应的均值和方差了。 可以通过从所有训练实例中获得的统计量来**代替**mini-batch中m个训练实例获得统计量均值和方差 我们对每个mini-batch做标准化,可以对记住每个mini-batch的B,然后得到全局统计量
实验
最后给出的实验可以看出使用BN的方式训练精准度很高而且很稳定。