如果输入的样本每个维度的范围不一样,这样在梯度下降的时候就需要寻找较小的学习率,花费更多的时间找到损失最小的点。这时候就需要对输入特征值进行归一化,可以加快模型的训练效率。
(1)零均值化:将数据移动到0附近。
(2)归一化方差:不同特征的范围不一样,因此方差也不一样,归一化方差可以将不同特征的方差均匀分布,从而提高训练效率。
如下图所示,左图是未使用归一化特征值时对训练集使用梯度下降法的搜索路径,右图是使用归一化特征值时对训练集使用梯度下降法的搜索路径。
未使用归一化特征值时,数据的特征分布狭长(范围差别大),因此在梯度下降法时,选择较大的学习率就会走很多弯路,导致模型迟迟不能收敛,于是只能选择较小的学习率,模型训练效率慢。使用了归一化特征值时,数据分布均匀,可以选择更大的学习率,因此模型可以加快收敛。
实际上,如果输入向量的各维度范围相似,比如x(1)的范围在[-1,1],x(2)的范围在[0,1],这时候用不用归一化特征值效果都差不多。如果输入向量的各维度范围差别很大,比如x(1)的范围在[1,1000],x(2)的范围在[0,1],这时候使用归一化特征值就能对模型的训练效率改善很多。