Leaky ReLU
Leaky ReLU与ReLU十分类似,只不过在负数一侧并不完全抑制,而是给予一个小的导数。
2)层归一化也即batch normalization。主要希望解决的所谓”内部协变量漂移“(internal covariate shift)问题。对于实例集合,
Batch normalization的基本思想:深层神经网络在做非线性变换前的输入值在训练过程中,其分布逐渐发生偏移,之所以训练收敛慢,一般是整体分布逐渐往非线性激活函数的两端靠近,这导致了反向传播时浅层神经网络的梯度消失。而batch normalization就是通过一定的规范化手段,将每个隐层输入的分布强行拉回到均值为0方差为1的标准正态分布上去,这使得输入值落回到非线性激活函数”敏感“区域。这使得梯度变大,学习速度加快,大大提高收敛速度。
以sigmoid激活函数为例,说明batch normalization的作用。下图为均值为0,方差为1的标准正态分布:
这意味着,在1个标准差范围内,x有64%的概率落在[−1,1]范围内,x有95%的概率落在[−2,2]的范围内。
上图为sigmoid函数的导数,在[−2,2]的范围内,sigmoid函数的导数很大,而在两端饱和区,导数接近0。这也就意味着,经过batch normalization规范化后,输入值x有较大概率获得大的导数值,远离导数饱和区,从而使得梯度变大,学习速度加快,避免了梯度消失。
batch normalization的优势在于:1)大大提高训练速度,加快收敛过程;2)batch normalization是类似于dropout的正则化方法。