3.4 归一化网络的激活函数( Normalizing activations in a network)
在神经网络中,第层隐藏层的输入就是第层隐藏层的输出。对进行标准化处理,从原理上来说可以提高和的训练速度和准确度。这种对各隐藏层的标准化处理就是Batch Normalization。一般是对进行标准化处理而不是
Batch Normalization对第层隐藏层的输入做如下标准化处理,忽略上标:
m是单个mini-batch包含样本个数,ε是为了防止分母为零,可取值。使得该隐藏层的所有输入均值为0,方差为1
大部分情况下并不希望所有的均值都为0,方差都为1,也不太合理。通常需要对进行进一步处理:
和是learnable parameters,可以通过梯度下降等算法求得。和是让的均值和方差为任意值,只需调整其值。如:
则,即identity function。设置和为不同的值,可以得到任意的均值和方差
通过Batch Normalization,对隐藏层的各个进行标准化处理,得到,替代
输入的标准化处理Normalizing inputs和隐藏层的标准化处理Batch Normalization是有区别的。Normalizing inputs使所有输入的均值为0,方差为1。而Batch Normalization可使各隐藏层输入的均值和方差为任意值。从激活函数的角度来说,如果各隐藏层的输入均值在靠近0的区域即处于激活函数的线性区域,这样不利于训练好的非线性神经网络,得到的模型效果也不会太好
Previous3.3 超参数训练的实践: Pandas VS Caviar(Hyperparameters tuning in practice: Pandas vs. Caviar)Next3.5 将 Batch Norm 拟合进神经网络(Fitting Batch Norm into a neural network)
Last updated