1. 梯度下降法的缺点
由于处理的数据有不同的量纲和量纲单位,导致不同维度的数据之间尺度差异很大,如下图(左)所示,目标函数的等高线是椭圆形的。这样在通过最小化目标函数寻找最优解的过程中,梯度下降法所走的路线是锯齿状的,需要经过的迭代次数过多,严重影响了算法的效率。
为了解决这个问题,可以对数据进行归一化,例如采用min-max标准化将输入数据范围统一到[0,1]之间:
x∗=x−minmax−min
处理后的结果如上图(右)所示,经过很少次数的迭代就可以达到目标函数的最低点,极大提高算法的执行效率。
2. 牛顿法
数据归一化是从数据预处理的角度解决梯度下降法迭代次数过多这个问题的,若从目标函数优化的角度去思考,可以用牛顿法替代梯度下降法,从而提高参数最优值的求解速度。
有n个变量的函数 J(θ) 的一阶导数为:
∂J∂θ=[∂J∂θ1,∂J∂θ2,...,∂J∂θn]
二阶导数(也称为Hessian矩阵)为:
目标函数 J(θ) 的包含二阶导数的泰勒展开式为: