BatchNormal原理详解(相关参数解释)

简单来说BN原理就是,在训练深层神经网络的过程中, 由于输入层的参数在不停的变化, 因此, 导致了当前层的分布在不停的变化, 这就导致了在训练的过程中, 要求 learning rate 要设置的非常小(就像是游戏中的通过表演去传递一个消息,每一层可能都表演的不一样,到最后就完全变形了,所以需要一点一点的学,学习率不能设置太大), 另外, 对参数的初始化的要求也很高. 作者把这种现象称为 internal convariate shift. Batch Normalization 的提出就是为了解决这个问题的. BN 在每一个 training mini-batch 中对每一个 feature 进行 normalize. 通过这种方法, 使得网络可以使用较大的 learning rate(这就极大的加快了训练速度)。除此之外,BN 具有一定的 regularization 作用。

(个人感觉BN主要解决的是 internal convariate shift问题,但是对于“不同的batch可能有不同的分布”问题的改善原理可能就是它的正则化作用产生的效果)

下面的文章中详细阐述了BN的原理,以及其中的一些参数起到的是什么作用。

参考文章:https://blog.csdn.net/wzy_zju/article/details/81262453

关于其中参数的详细解释参照下面文章(包含滑动平均的讲解):

https://www.cnblogs.com/wuliyttaotao/p/9479958.html

你可能感兴趣的:(机器学习)