数据挖掘-介绍二阶梯度下降方法
二阶梯度下降方法简介
在之前的文章中介绍各类的一阶梯度下降方法,同时还介绍了各种优化或者加速的方法,可以帮助更快更好地收敛到最优点。但从本质上来说,那些方法都是一阶的方法,即利用了损失函数的一阶导数的信息进行迭代,没有对于二阶导数的信息进行使用。本文主要介绍常见的二阶梯度下降方法,比如牛顿法、拟牛顿法等,在一般情况下,二阶梯度下降方法不经常使用,虽然它的下降速度比一阶梯度下降要更快;但是它的缺点也非常明显,就是二阶梯度计算的速度非常消耗资源,并且受到异常值的影响较大,很容易造成震荡等问题。
其实牛顿法就是一种快速求解函数h(x)=0的方法,它的思路是利用当前点位x0的泰勒展开的前几项来近似逼近,通过不停地做函数的切线去逼近和收敛到最终求解点的附近。即思路如下图,通过计算Pk点的切线,从而得到Xk+1这个点,并且按照这个思路继续进行迭代。
根据上述图片的公式,我们可以推断得出牛顿法的递推公式,显然可以根据直线公式y=kx+b,其中斜率就是当前函数在x0的斜率,也就是f’(x0),并且经过点(x0,f(x0)),代入方程后即可得到直线方程,同时另直线方程y=0,即得到下面的方程表达式,将x0设为xn,x设为xn+1就是最终的迭代表达式。