GAN代码实战
batch normalization
1、BN算法,一般用在全连接或卷积神经网络中。可以增强整个神经网络的识别准确率以及增强模型训练过程中的收敛能力
2、对于两套权重参数,例如(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值会非常大,使得整个网络的无法计算,这种现象就叫做梯度爆炸。产生这种现象的原因就是因为网络的内部协变量转移,即正向传播时的不同层的参数会将反向传播计算时所参照的样本分布改变。
3、引入BN层的作用在于要最大限度的保证每次正向传播都输出在同一分布上,这样反向计算时参照的数据样本分布就会和正向计算时的数据分布一样了。保证了分布的统一,对权重的调整才会更有意义。
conv2d_transpose