牛顿法
牛顿法常用来逼近函数的零点。在回归和分类问题中,经常需要计算损失函数的最小值或似然函数的最大值,众所周知,在极值点处导数为零,因此我们可以将求极值的问题转化为求导数零点的问题,然后用牛顿法求解。相比之前我们介绍过的梯度下降法,牛顿法具有较快的收敛速度,在作业中我们将会证明在满足一定条件下,牛顿法可仅计算一步即可得到极值,但牛顿法也有自己的缺点,即较大的计算量(需要计算二次导数),具体的算法我们将在下面的介绍中逐渐给出。
牛顿法的逼近过程如下
图中的曲线表示我们要求其零点的函数,由于计算上的限制我们可能无法直接用代数的方法求出其零点,但我们可以从几何上进行逼近,只要达到我们预先设定的精确度即可认为找到了零点。其做法为:
1.选择一个初始状态
2.在该点处画出函数的切线,并与x轴交于一点,由于切线是一个线性的函数,我们可以很容易算出其与x轴交点的横坐标,如中间的图所示
3.过第二步产生的交点做x轴的垂线,与函数交于一点
4.过第三步的交点做切线,重复2、3步,如右图所示
可以看出,经过上述过程,切线与x轴的交点将不断逼近零点,但永远不会超过零点,只要我们迭代次数过多,便可达到我们需要的精确度。并且可以看出,牛顿法是以指数速度进行逼近的,远远快于之前介绍的梯度下降法。
假设我们求函数f(θ)的零点,则牛顿法可以表示为
由于我们希望得到似然函数的极点,因此可将其导数作为我们求零点的函数f(θ),转换后公式如下
可以看出,牛顿法不仅需要计算似然函数的一阶导数,还要