归一化,需要两个步骤:
1,零均值(zero-mean);
假设一个训练集有m个样本,每个样本有两个特征{x1,x2};
则对于m个样本的特征值x1, 其均值为:
每个样本的特征值x1依次减去特征值x1的平均值u1, 完成x1的零均值化即:
特征值x2的零均值化,也同样执行。
2,归一化方差(normalization)。
归一化方差的目的是让所有特征值的方差都等于1,同样,
则对于m个样本的特征值x1, 其方差为:
每个样本的特征值x1依次除以特征值x1的标准差, 完成x1的归一化方差,即:
特征值x2的归一化方差,也同样执行。
归一化后的特征值方差为:
注意:Andrew Ng的课程里面,除以的是方差;经过推导,我个人认为应该除以标准差。
输入归一化的好处:
特征归一化后,代价函数看起来更对称,相对于非对称的代价函数,使用梯度下降法的时候,学习率可以设的更大,则步长更大,可以更快的找到最小值。
Andrew Ng建议:训练前,对特征值做归一化处理,不管是否能够提高训练速度