batch normalizationvue
一、BN算法,通常用在全链接或卷积神经网络中。能够加强整个神经网络的识别准确率以及加强模型训练过程当中的收敛能力
二、对于两套权重参数,例如(w1:0.01,w2:10000,w3:0.01)和(w1:1,w2:1,w3:1),他们对应的(Z=x w1 w2 w3)的表达式Z值都是相同的。可是这个时候分别对这两套参数作训练,更新后的权重参数就变成了(w1:100.01,w2:10000.0001,w3:100.01)(w1:2,w2:2,w3:2) ,而后进行第二次正向计算,Z1=1 2 2 2=8, Z2=1 100.01 10000.0001 * 100.01=100000000,如此可见,这两个更新后的权重值引起的网络输出变化剧烈程度,Z2与Z1相比是很是剧烈的,这个时候计算出来的loss值会很是大,使得整个网络的没法计算,这种现象就叫作梯度爆炸。产生这种现象的缘由就是由于网络的内部协变量转移,即正向传播时的不一样层的参数会将反向传播计算时所参照的样本分布改变。
三、引入BN层的做用在于要最大限度的保证每次正向传播都输出在同一分布上,这样反向计算时参照的数据样本分布就会和正向计算时的数据分布同样了。保证了分布的统一,对权重的调整才会更有意义。算法
conv2d_transposemarkdown