牛顿迭代法是求解方程的近似根的一种方法。
牛顿法是求解无约束最优化问题的最优解的一种方法。
通过正定矩阵近似Hessian矩阵的逆矩阵或Hessian矩阵,简化了计算牛顿法的计算。
牛顿迭代法
牛顿迭代法是求解方程的近似根的一种方法。
选用泰勒展开的前两项来近似方程,即
非线性方程线性化求解的近似根 ⟹ ⟹
牛顿迭代法求
👁️🗨️已经证明:如果是连续的,且待求零点是孤立的,那么在零点附近存在一个区域,只要初始点在这个区域内,那么牛顿法必定收敛,并且有平方收敛的能力。
➣➣牛顿迭代法流程➣➣
- 设置初始近似值
- ⇤ 解的 1次近似
- ⇤ 解的2次近似
- ⇤ 解的k+1次近似

牛顿迭代法 ➠ 牛顿法
牛顿法是求解无约束最优化问题的最优解的一种方法
一维的公式推导()
最优化问题 ⟹ ⟹ 牛顿迭代法求解
⟹ 迭代公式
n维的公式推导()
泰勒展开
舍去高阶项,
⟹
⟹ ⟹
其中为梯度向量,为Hessian矩阵:
牛顿法
假设具有连续二阶偏导数,其求无约束问题的牛顿法迭代公式为

如何理解牛顿法的公式,以及为何牛顿法收敛速度快?
由于目标点是导数为0的点,迭代公式每次迭代改变的步长为。可以看出,当分子一阶导越大,步长则越长,符合实际意义,因为我们的目标是快速找到导数为0的点,而此时一阶导数还很大,所以改变量可以大一些;另一方面,若分母二阶导越小,步长则越大,也符合实际意义,二阶导越小,意味着一阶导的变化速度慢,故一阶导为0的位置距离当前位置还很远,故该变量可以大一些。基于以上两点,牛顿法的收敛速度很快。
➣➣牛顿法算法流程➣➣
输入:目标函数,梯度,Hessian矩阵,精度要求;
输出:的极小值点.
(1)取初值点,置;
(2)计算;
(3)若,返回;
(4)计算,并计算,即;
(5)置,转(2)
牛顿法VS梯度下降法
- 算法思路
梯度下降法是一种基于一阶导数的优化算法,核心思想是通过不断沿着负梯度方向迭代,使得目标函数的值不断逼近最小值点;
牛顿法是一种基于二阶导数的优化算法,核心思想是通过不断更新当前点的位置,使得目标函数的值不断逼近最小值点。
- 迭代效率
梯度下降法由于只需计算目标函数的一阶导数,每次迭代的计算量相对较小,适用于处理大规模数据集。
牛顿法每次迭代都需要同时计算目标函数的一阶和二阶导数,因此每次迭代的计算量较大,这可能导致其在处理大型数据集时的迭代速度受限。
- 算法收敛性
梯度下降法在多数情况下都能得到收敛的结果,但收敛速度较慢。
牛顿法具有较快的收敛速度,尤其在处理较少次的迭代时,可以得到很好的结果。
为什么牛顿法收敛更快,或迭代次数更少?

通俗来说梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。
- 初始点的影响
梯度下降法对初始点的选择不太敏感,算法会沿着负梯度方向不断迭代,最终找到局部最优解。
牛顿法对初始点的选择较为敏感,不同的初始点可能会导致算法找到不同的极值点。
总结起来,牛顿法收敛更快,但每次的迭代的计算量较大。故牛顿法在处理非凸优化问题和需要快速收敛的情况下更为适用,而梯度下降法则在处理大规模数据和大规模问题的场景下表现出更高的可扩展性和稳定性。
牛顿法 ➠ 拟牛顿法
- 相同:牛顿法和拟牛顿法的收敛速度都比较快;
- 不同:牛顿法每一步需要求解目标函数Hessian矩阵的逆矩阵,计算比较复杂;
- 不同:拟牛顿法通过正定矩阵近似Hessian矩阵的逆矩阵或Hessian矩阵,简化了计算。
基本思想:考虑用一个n阶矩阵来近似替代
牛顿法中满足的性质
将在附近作泰勒展开,
则,
记,则有
定理:如果是正定的(那么也是正定的),则可以保持牛顿法的搜索方向一定是下降方向。
证明:若,则在附近(充分小)的泰勒展开可以近似为,由于是正定的,那么也是正定的,则.当充分小时,总有,也就是说是下降方向。
牛顿法中满足的性质
如果是正定的,则可以保持牛顿法的搜索方向一定是下降方向。
拟牛顿法将作为的近似,要求满足同样的条件
拟牛顿条件
- 是正定的;
- 满足
的选择具有灵活性,有许多种具体方法。
更新:在每次迭代中基于拟牛顿条件更新
DFP算法
假设,此时
为了满足拟牛顿条件,则可使,例如取,则
可以证明,若初始正定,则对任意k都有正定。
➣➣DFP算法➣➣
输入:目标函数,梯度,精度要求;
输出:的极小值点.
(1)取初值点,取为正定对称阵,置;
(2)计算,若,返回;否则,转(3)
(3)置;
(4)一维搜索:求使得;
(5)置;
(6)计算,若,返回;否则,更新;
(7)置,转(3)。
BFGS算法
可以将作为的近似,也可以将作为的近似。此时,拟牛顿条件为。
假设,此时
为了满足拟牛顿条件,则可使,例如取,则
可以证明,若初始正定,则对任意k都有正定。
➣➣BFGS算法➣➣
输入:目标函数,梯度,精度要求;
输出:的极小值点.
(1)取初值点,取为正定对称阵,置;
(2)计算,若,返回;否则,转(3)
(3)求;
(4)一维搜索:求使得;
(5)置;
(6)计算,若,返回;否则,更新;
(7)置,转(3)。
Broyden算法
可以从BFGS算法中的迭代公式中得到BFGS算法关于的迭代公式。
记,可以利用两次Sherman-Morrison公式,得到
BFGS算法关于的迭代公式:
Sherman-Morrison公式:假设A为n阶可逆矩阵,u, v为n维向量,且也可逆,则
将DFP算法中的记为,将BFGS算法中的记为,它们都满足拟牛顿条件,则它们的线性组合也满足拟牛顿条件,并且正定。这样就得到了一类拟牛顿法,称为Broden类。
Broden类
