归一化:
将某个特征的值映射到[0,1]之间,消除量纲对最终结果的影响,使不同的特征具有可比性,使得原本可能分布相差较大的特征对模型有相同权重的影响,提升模型的收敛速度,深度学习中数据归一化可以防止模型梯度爆炸。
标准化:
将原值减去均值后除以标准差,使得得到的特征满足均值为0,标准差为1的正态分布,使得原本可能分布相差较大的特征对模型有相同权重的影响。举个例子,在KNN中,需要计算待分类点与所有实例点的距离。假设每个实例(instance)由n个features构成。如果选用的距离度量为欧式距离,数据预先没有经过归一化,那些绝对值大的features在欧式距离计算的时候起了决定性作用。
从经验上说,标准化后,让不同维度之间的特征在数值上有一定比较性,得出的参数值的大小可以反应出不同特征对样本label的贡献度,可以大大提高分类器的准确性。
具体应该选择归一化还是标准化呢?
- 在计算距离中发挥相同的作用,应该选择标准化,标准化更适合现代嘈杂大数据场景。
- 如果想保留原始数据中由标准差所反映的潜在权重关系,或数据不符合正态分布时,选 择归一化。
零均值化:
将每个像素的值减去训练集上所有像素值的平均值,比如已计算得所有像素点的平均值为128,所以减去128后,现在的像素值域即为[-128,127],即满足均值为零。
可以避免“Z型更新”的情况,这样可以加快神经网络的收敛速度。。