一元牛顿,多元牛顿,拟牛顿

在理解牛顿法的问题时,我们首先要知道泰勒公式
一元牛顿,多元牛顿,拟牛顿
这个公式主要是来描述当前点的邻域的一个近似值。

其次我们还需要知道Hessian Matrix
一元牛顿,多元牛顿,拟牛顿

该矩阵的重要性最容易在2D cas中可视化
一元牛顿,多元牛顿,拟牛顿

在二阶泰勒展开式中使用Hessian。 Hessian出现在二阶泰勒展开式中:
一元牛顿,多元牛顿,拟牛顿

牛顿法是一种迭代方法,用于近似求解方程式的解(寻找根)。 如果f 是一个二次函数,牛顿的方法可以直接找到函数的最小值。

一元牛顿

由于幂次的增加,泰勒指数慢慢逼近f(x)
一元牛顿,多元牛顿,拟牛顿
我们想要找到Δx,这样(x_p +Δx)就是方程的最小解,同时(x_p +Δx)也是一个静止解。
那么我们就需要知道f‘(x) 什么时候到等于0. 我们可以来通过化简二次泰勒方程来得到:
一元牛顿,多元牛顿,拟牛顿
让我们的初始估计和评估点的导数f为x_0。 然后新的估算值变为:
一元牛顿,多元牛顿,拟牛顿
x_1 变成了我们新的预测值。然后我们就可以找到下一个预测x2:
一元牛顿,多元牛顿,拟牛顿
给定初始迭代点x0,反复用上面的公式进行迭代,直到达到导数为0的点或者达到最大迭代次数。

多元牛顿

多元牛顿法的寻找最小值的方式和一元牛顿法比较相似。回想一下,我们用一元牛顿法招方程最小值的时候,是在找root of the function g=f’ 拓展到牛顿迭代,让我们得到了:
一元牛顿,多元牛顿,拟牛顿
对于许多变量的函数,迭代非常相似,只是梯度和Hessian分别代替了f’和f’’。 另外,我们必须注意矩阵代数和标量代数之间的重要区别。

在多元牛顿法中,围绕点x_t取二阶泰勒展开式:
一元牛顿,多元牛顿,拟牛顿
我们想找到一个点,在该点上,右侧的二次形式被最小化。假设H(x_t)是正定的,那么唯一的最小时就是x = xt − H(x _t)^−1∇f(x_t). 二次方程:一元牛顿,多元牛顿,拟牛顿
的梯度就会变成:
一元牛顿,多元牛顿,拟牛顿
只要H是可逆的,则在x = -H^-1 b 时其值为0。b为我们的梯度向量。

在实践中,步长通常与行搜索结合以防止发散。 因此,多元牛顿的方法可以总结为:
一元牛顿,多元牛顿,拟牛顿

拟牛顿

尽管牛顿法在二次方收敛于根附近,但它需要反转Hessian,即标准技术的O(n^ 3) 。 结果,对于大的n来说,每次迭代可能都非常昂贵。 它还需要评估涉及二阶偏导数的可能复杂且不灵活的Hessian表达式。 如果没有二阶导数,则可以使用近似微分技术。 但是,由于它们需要O(n^2)函数评估,因此它们在计算上可能会很昂贵。

拟牛顿法克服了许多这些局限性。 它们类似于割线法,因为使用函数梯度的有限差分来近似Hessian。 我们还将介绍一个有用的技巧,以避免计算逆向Hessian。 它们实现了二次方但超线性的收敛速度,因此,与牛顿方法相比,它们在实践中的使用频率更高。

考虑单变量函数f(x)的二阶导数的割线近似:
一元牛顿,多元牛顿,拟牛顿
或者换种表达方式:
一元牛顿,多元牛顿,拟牛顿
下面将其泛化为多元函数如下「公式1」:
一元牛顿,多元牛顿,拟牛顿
这个算法的想法是找到一个使H_t≈∇^ 2(x_t)相等的矩阵。 但是H_t中有n^ 2个条目,并且只有n个约束,这是一个不确定的系统。 现在的问题是从哪个矩阵中选择?

拟牛顿法从对Hessian H_0的一些预测开始,并随着时间的推移逐步提高它:H_1,H_2,…。 。 …每个H_t都是从H_t-1派生的,这样就可以满足上面公式中的相等性,而且还应使H_t与H_t-1的差异尽可能小。 我们还将保持H_0和所有后续H_t是正定的。

这里就要用到Davidson-Fletcher-Powell 方法:
一元牛顿,多元牛顿,拟牛顿
一元牛顿,多元牛顿,拟牛顿
结果证明,该矩阵是最接近H_t-1的对称正定矩阵,在Frobeneus范式的意义上,它满足「公式1」,这是元素方差平方和的平方根。
下面专门开一篇讲DFP以及BFGS。