牛顿法与梯度下降法作用相同,都是求解函数用的,在机器学习问题中,就是求解损失函数,寻找最优参数。
1、从几何图像来看牛顿法
有一个待解函数 ,我们要求它的0点解x*,用牛顿法。
假设有一个点x0十分接近x*,在这个点对函数曲线做切线。如果x0点之下的曲线斜率保持不变,那么这条切线与的0点解(即切线与x轴的交点)就是曲线的零点解。实际上,斜率在变,这时我们又发现,x0点越接近0点解x*,切线的0点解就越接近x*,牛顿法就是同样不断的更新x0,找到更好的切线,再找到更接近的x0,这样的方式来寻找近似解的。
(1)、知道切线的斜率,可以写出方程:
(2)、将x0,f(x0)带入切线方程,解出k:
(3)、求切线方程的0点解:,可以得到
(4)、此时的得到的x*是切线的解,比x0更接近真正的0点解但不一定是,所以我们可以将x*置为x0,再次求解下一个更近似的x*,如此迭代下去,找到一个满意的近似解。
,
这里值得注意的是,机器学习的问题求得往往不是f(x)的0点解,而是f(x)的最值。
对于一个凸函数,f(x)的最值就是导函数为0的解,问题就从函数的0点解转化成了导函数的0点解问题,差不多,公式如下:
2、从泰勒公式到牛顿法
利用泰勒公式的性质求解近似0点解:
只取前两项,在x=x0点处,有
那么,当f(x)=0时,就有,这就得到了和上面一样的更新公式。
多元函数的牛顿法,首先理解多元函数的泰勒公式展开,除了二阶导叫做Hession矩阵,感觉都是一样的。