归一化

为什么需要归一化?

如果我们判断一个人的身体健康状况,有两个指标,一个是身高另一个是体重,假如身高1.6米,体重120斤,y=3*1.6+2*120,如果身高变为1.9对结果的影响是增加了0.9,但是如果体重变成130,对结果的影响就是增加30,显然身高1.9米看起来变化更大,但是他对结果的影响较小,这就是因为这两个指标不在同一个数量级上,因此我们需要归一化使他们对结果的影响相同,这是一个比较通俗的理解。

对于神经网络,如果特征值不在同一个范围,代价函数看起来狭长而且很窄,我们就只能将学习率降到很小,就需要使用多次迭代才能找到最小值。如果对特征值进行归一化,代价函数看起来就更加的对称,能够更直接的找到最小值,我们可以使用较大的步长(学习率),迭代次数相对较小,更容易优化,因此我们需要对数据进行归一化,使他们的均值为0,方差为1。

归一化步骤

1.零均值化 2.归一化方差

 无论是训练集还是测试集,我们都需要用相同的均值和方差对数据进行转换。

归一化的方法

线性函数归一化:对数据进行等比列的缩放,将他们都缩放到0到1的范围内。

 零均值归一化:将数据集转换成均值为0,方差为1

原文地址:https://www.cnblogs.com/zhang12345/p/15548675.html