Batch Normalization的作用

来源:互联网 发布:洛阳青峰网络 编辑:程序博客网 时间:2024/06/05 17:53

结合资料,对于Batch Normalization有了一些自己的理解。

1.BN可以解决梯度消失的问题。

假设激活函数为sigmoid.
al=sigmoid(hl)=sigmoid(al1wl)
因为在反向传播中:
gw=galalhlhlw=galalhlhlal1al1hl1hl1w=...
如果hl非常大,根据sigmoid图像的特点,在两边值的导数几乎为0,只有中间y轴附近值导数值比较大。所以,经过若干次链式求导,最终gw接近为0,这就是梯度消失。
如果经过了Batch Normalization,可以使得每一层的h的均值为0,标准差为1,也就是数据集中在y轴附近,这样就使得梯度比较大,解决了梯度消失的问题。

2.BN可以解决每一层数据不稳定的问题。

在网络中有很多层,每一层的数据都要经过权重计算,如果权重大部分大于1的话,最后的数据可能非常大,如1.1100。如果权重大部分小于1的话,最后的数据可能非常小,如0.9100。BN也可以解决这个问题。

原创粉丝点击