我们依然急需解决关于梯度爆炸和梯度消失的问题。因而有人提出了归一化层的概念,目前被广泛使用的,则是批归一化层——BatchNorm层(BN层)。
一、batchnorm
别被公式吓到了,只要认真对着公式把代码敲出来,就可以一劳永逸了。
BatchNorm的威力非常惊人。没有BatchNorm的生成式对抗网络,发生梯度爆炸和梯度消失是非常容易的事情。而BatchNorm的使用,极大地避免了这种窘境的发生。
同时,由于其输出与批量的选取有关,因此配合随机梯度下降,其正则化的作用也非常显著,直接取代了Dropout,成为实现ResNet所必须的层级结构。
二、pixelnorm
这是一个非常诡异的算法——对于通道数为的输入,将该层中每个像素对应的个输入值归一化。PixelNorm的算法原理大约是去除像素之间的独立性,但算法过程也非常令人费解,效果并不如BatchNorm。