尺度不变性
首先讲一下尺度不变性这一概念:如果一个机器学习算法在缩放全部或部分特征后不影响学习和预测,就称该算法具有尺度不变性。
神经网络具有尺度不变性,因为网络可以通过参数的调整能适应不同的尺度的特征。
数据归一化
我们看一下数据归一化,如图(a)未归一化的数据的等高线,由于数据尺度上的不同,造成大多数梯度的方向并不是最优的搜索方向。如果我们把数据归一化成相同的尺度如图(b),那么大部分梯度的方向近似于最优搜索的方向,这样在梯度下降求解时,训练效率大大提高。
归一化方法
1、最小最大归一化
2、标准化(Z值归一化)
3、白化
白化的一个主要实现方式是使用主成分分析(Principal Component Analysis,PCA)方法去除掉各个成分之间的相关性。
逐层归一化
逐层归一化将传统机器学习中的数据归一化方法应用到深度神经网络中,对神经网络中隐层的输入进行归一化,从而使网络更容易训练。
几种常用逐层归一化方法:批量归一化、层归一化、权重归一化、局部相应归一化
批量归一化比较常见,先对批量归一化进行总结。
批量归一化
批量归一化一般使用标准化归一化(Z值归一化)
E和var是整个数据集上的期望和方差,可用当前小批量样本集的均值和放差近似估计。
ϵ是为了保持数指稳定性而设置的非常小的常数。
对z(l)标准归一化会使其取值几种到0附近,如果使用sigmoid函数时,这个取值区间恰好接近线性变换的区间,肩托了神经网络的限制,所以通过附加缩放γ和平移β变换改变取值区间。
总结:批量归一化优点
1、提高优化效率
2、具有一定正则化的作用