1.9 归一化输入(Normalizing inputs)

在训练神经网络时,标准化输入可以提高训练的速度

μ=1mi=1mX(i)\mu=\frac1m\sum_{i=1}^mX^{(i)}
σ2=1mi=1m(X(i))2\sigma^2=\frac1m\sum_{i=1}^m(X^{(i)})^2
X:=Xμσ2X:=\frac{X-\mu}{\sigma^2}

由于训练集进行了标准化处理,测试集或在实际应用时,应该使用同样的μ\muσ2\sigma^2对其进行标准化处理。保证训练集和测试集的标准化操作一致

对输入进行标准化操作,是为了让所有输入归一化在同样的尺度上,方便进行梯度下降算法时能够更快更准确地找到全局最优解。假如输入特征是二维的,且x1x_1的范围是[1,1000],x2x_2的范围是[0,1]。如果不进行标准化处理,x1x_1x2x_2之间分布极不平衡,训练得到的w1w_1w2w_2也会在数量级上差别很大。这样导致的结果是costfunction与wwbb的关系可能是一个非常细长的椭圆形碗。对其进行梯度下降算法时,由于w1w_1w2w_2数值差异很大,只能选择很小的学习因子α\alpha,来避免J发生振荡。一旦α\alpha较大,必然发生振荡,JJ不再单调下降。如果进行了标准化操作,x1x_1x2x_2分布均匀,w1w_1w2w_2数值差别不大,得到的cost function与wwbb的关系是类似圆形碗。对其进行梯度下降算法时,α\alpha可以选择相对大一些,且JJ一般不会发生振荡,保证了JJ是单调下降

如果输入特征之间的范围比较接近,不进行标准化操作没有太大影响

Last updated