小常识27:Batch Normalization 的原理与作用

xiaoxiao2021-03-01  14

小常识27:Batch Normalization 的原理与作用

(阿里达摩一面基础题——机器学习2019届内推)

1、Batch Normalization的本质思想

BN的基本思想其实相当直观:因为深层神经网络在做非线性变换前的激活输入值(Y=Wx+Bx是输入)随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值WU+B是大的负值或正值),所以这导致后向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

2、训练阶段如何做BatchNorm?(在Mini-Batch SGD下做BN怎么做?)

假设对于一个深层神经网络来说,其中两层结构如下:

3、BatchNorm的作用与好处

1极大提升了训练速度与收敛速度,还能增加分类效果。

2、防止过拟合。一种解释是这是类似于Dropout的一种防止过拟合的正则化表达方式,所以不用Dropout也能达到相当的效果。

3、简化调参。对于初始化要求没那么高,而且可以使用大的学习率等。

 

转载请注明原文地址: https://www.6miu.com/read-4200271.html

最新回复(0)