BatchNorm作用*(加速收敛,提高泛化能力,即防止过拟合)

加速收敛,

因为神经网络本质上是学习数据的分布情况,而mini-batch每次都会有不同的分布,也就是说,每次训练的数据都有不同的分布,数据抖动很大,所以权重变化也会很大。而batch norm会将数据归一化,减少不同batch间数据的抖动情况,从而提高训练速度。


我在博客中专门解释过这个问题, 引用如下:

在dropout部分, 我们已经解释过, 之所以dropout可以抑制overfitting, 是因为在训练阶段, 我们引入了 随机性(随机cancel一些Neuron),减少网络的匹配度, 在测试阶段, 我们去除掉随机性, 并通过期望的方式marginalize随机影响。
在BatchNormalization中, 训练阶段, 我们随机选取了Batch进行Normalization, 并计算running mean等, 在测试阶段, 应用running_mean这些训练参数来进行整体Normalization, 本质上是 在Marginalize训练阶段的随机性。 因此, BatchNormalization也提供了 Regularization的作用, 实际应用中证明, NB在防止过拟合方面确实也有相当好的表现。

这里, 我们应该吸收到, 这一类抑制过拟合的方法有着统一的思想, 即:

在训练阶段引入随机性, 防止过度匹配; 在测试阶段通过求期望等方式在全局去除掉这种随机性, 从而获得确定而准确的结果。

这与 L1/L2等正则项通过直接对 训练参数添加某种惩罚的方法 区别明显。



作者:知乎用户
链接:https://www.zhihu.com/question/275788133/answer/392060881
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


Batch Normalization(以下称BN)的主要作用是加快网络的训练速度。

如果硬要说是防止过拟合,可以这样理解:

BN每次的mini-batch的数据都不一样,但是每次的mini-batch的数据都会对moving meanmoving variance产生作用,可以认为是引入了噪声,这就可以认为是进行了data augmentation,而data augmentation被认为是防止过拟合的一种方法。因此,可以认为用BN可以防止过拟合。

但是个人认为对防止过拟合基本没有多大用,还是用来加速网络收敛。



作者:小华仔
链接:https://www.zhihu.com/question/275788133/answer/384198714
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/bl128ve900/article/details/94592797
今日推荐