Newton's Method

目录

第5章 初学牛顿法

       本文是对牛顿法和拟牛顿法的公式进行简单的推导以及介绍,主要解决如何使用牛顿法(即不管怎么来,为什么,只管怎么用),我会在后续博文中继续学习总结它是怎么来的。
       本文将分为两个部分,第一部分是牛顿法介绍;第二部分为拟牛顿法的简单介绍。

5.1 牛顿法

       本文是对牛顿法的公式进行简单的推导以及介绍,主要解决如何使用牛顿法(即不管怎么来,为什么,只管怎么用),我会在后续博文中继续学习总结它是怎么来的。
       牛顿法是在梯度下降算法的基础上引入二阶导数,从而加快优化算法的收敛速度。具体算法思路如下:

  1. 有无约束最优化问题:
    (4.1) m i n x ∈ R n f ( x ) min_{x\in R^n}f(x)\tag{4.1} minxRnf(x)(4.1)

  2. 假设 f ( x ) f(x) f(x) 有二阶连续偏导数, x k x_k xk是第k次迭代值,可得 f ( x ) f(x) f(x)的二阶泰勒展开式如下:
    (4.2) f ( x ) = f ( x k ) + g k ( x − x k ) + 1 2 ( x − x k ) T H k ( x − x k ) f(x)=f(x_k)+g_k(x-x_k)+\frac{1}{2}(x-x_k)^T H_k(x-x_k)\tag{4.2} f(x)=f(xk)+gk(xxk)+21(xxk)THk(xxk)(4.2)
    其中 g k = g ( x k ) = f ′ ( x k ) g_k=g(x_k)=f'(x_k) gk=g(xk)=f(xk) H k H_k Hk f ( x ) f(x) f(x)的海森矩阵(Hesse matrix)。

  3. 令上式对 x x x 求导得:
    (4.3) ∇ f ( x ) = g k + H k ( x − x k ) \nabla f(x)=g_k+H_k(x-x_k)\tag{4.3} f(x)=gk+Hk(xxk)(4.3)

  4. 假设在 x k + 1 x_{k+1} xk+1 点满足:
    (4.4) ∇ f ( x k + 1 ) = 0 \nabla f(x_{k+1})=0\tag{4.4} f(xk+1)=0(4.4)
    将式子(3)中的 x x x 替换为 x k + 1 x_{k+1} xk+1得:
    (4.5) g k + H k ( x k + 1 − x k ) = 0 g_k+H_k(x_{k+1}-x_k)=0\tag{4.5} gk+Hk(xk+1xk)=0(4.5)

  5. 求解式子(4.5)得:
    (4.6) x k + 1 = x k − g k H k x_{k+1}=x_k-\frac{g_k}{H_k}\tag{4.6} xk+1=xkHkgk(4.6)
    H k p k = − g k H_kp_k=-g_k Hkpk=gk,可得:
    (4.7) x k + 1 = x k + p k x_{k+1}=x_k+p_k\tag{4.7} xk+1=xk+pk(4.7)

       用式子(4.6)作为迭代公式的算法就是牛顿算法。

牛顿算法
输入:目标函数 f ( x ) f(x) f(x),梯度 g ( x ) = ∇ f ( x ) g(x)=\nabla f(x) g(x)=f(x),海森矩阵 H ( x ) H(x) H(x),精度要求 ϵ \epsilon ϵ
输出: f ( x ) f(x) f(x)的极小值点 x ∗ x^* x.
(1) 取初始点 x k x_k xk,置 k = 0 k=0 k=0
(2) 计算 g k = g ( x k ) g_k=g(x_k) gk=g(xk)
(3) 若 ∣ ∣ g k ∣ ∣ &lt; ϵ ||g_k||&lt;\epsilon gk<ϵ,停止计算,返回近似解 x ∗ = x k x^*=x_k x=xk
(4) 计算 H k = H ( x k ) H_k=H(x_k) Hk=H(xk),并求 p k p_k pk
H k p k = − g k H_k p_k=-g_k Hkpk=gk
(5) 置 X k + 1 = x k + p k X_{k+1}=x_k+p_k Xk+1=xk+pk
(6) 置 k = k + 1 k=k+1 k=k+1,返回(2).
在步骤(4)中,要求 H k − 1 H_k^{-1} Hk1,计算比较复杂,所以有其它改进的方法。

       优点: 1. 牛顿法为二阶收敛,收敛速度快;
       缺点: 1.牛顿法每一步都要求目标函数海森矩阵的逆矩阵,计算复杂度较大;
                   2. 可能发生被零除错误,因为在零点附近,导数非常小,运算易出现被零除错误;

我跳过的坑
1. 为什么求导后的式子(4.3)没有 f ( x k ) f(x_k) f(xk)
    这个问题很简单,我们是对 x x x 进行求导,而 f ( x k ) f(x_k) f(xk) 中并没有 x k x_k xk,因此求导后 f ( x k ) f(x_k) f(xk) 为零。

2. 我一直陷入一个误区,认为优化就是沿着梯度的反方向移动,以凸函数为例:
Alt text
当初始点为 A A A时,沿梯度反方向(即梯度下降的方向)移动,可以到达最优解,但初始点为 B B B时,沿梯度下降方向移动岂不是越移越远了吗?
其实我理解是错误的,更加规范的说法是沿负梯度方向移动,当位于 A A A点时,梯度为正,负梯度即向梯度减小的方向移动,而 B B B点梯度为负,负梯度是向梯度增大的方向移动。所以不管梯度正还是负,沿梯度负方向移动都是向极小值点移动。

5.2 拟牛顿法

       由于牛顿法中求海森矩阵及其逆矩阵较为复杂,所以考虑用一个n阶矩阵 G G G来代替海森矩阵 H H H或其逆矩阵 H − 1 H^{-1} H1,如下所示:
x k + 1 = x k − G k + 1 g k 或 − g k = G k + 1 ( x k + 1 − x k ) 替 代 x k + 1 = x k − H k − 1 g k \begin{aligned} x_{k+1}&amp;=x_k-G_{k+1}g_k \\ &amp;或 \\ -g_k&amp;=G_{k+1}(x_{k+1}-x_k) \\ &amp;替代\\ x_{k+1}&amp;=x_k-H_k^{-1}g_k \end{aligned} xk+1gkxk+1=xkGk+1gk=Gk+1(xk+1xk)=xkHk1gk

为什么矩阵G是n阶矩阵?
       我的个人理解是,矩阵可视为一种映射,而这里是将n维向量 ( x k + 1 − x k ) (x_{k+1}-x_k) (xk+1xk)映射到n维向量 ( g k + 1 − g k ) (g_{k+1}-g_k) (gk+1gk),所以矩阵G必须为n阶矩阵,否则等式无法成立。

       为了实现替代,矩阵G要满足 H − 1 H^{-1} H1所满足的条件:

  1. 满足公式 x k + 1 = x k − G k + 1 g k x_{k+1}=x_k-G_{k+1}g_k xk+1=xkGk+1gk
  2. G必须为正定矩阵;

       要满足条件一可以使用假设法,假设 G k + 1 G_{k+1} Gk+1满足等式,并设计 G k + 1 G_{k+1} Gk+1的迭代表达方式,然后进行逆推,求出 G k + 1 G_{k+1} Gk+1的真正表达式。而不同的假设方式对应于拟牛顿法的两种不同算法DFP和BFGS,详情见博客第7章 拟牛顿法详解
       要满足条件二,可设置G的初始值为正定矩阵并在迭代过程中保证其正定性不变。
       优点: 1. 拟牛顿法为二阶收敛,收敛速度快;
                   2. 拟牛顿法利用迭代方式求 G k + 1 G_{k+1} Gk+1,计算复杂度比牛顿法小;
       缺点: 暂时还没学习了解到。

5.3 残留问题

5.4 参考

[1] 维基百科.黑塞矩阵
[2] (Youtube)CCU MOOCs.3.4 Newton Method 牛頓法
[3] zhiyong_will.优化算法——牛顿法(Newton Method)
[4] (Youtube)有道學堂公開課.Taylor展式與擬牛頓

牛顿法优缺点:
[5] -柚子皮-.最优化方法:牛顿迭代法和拟牛顿迭代法

DFP算法中如何求出 P k P_k Pk Q k Q_k Qk:
[6] 皮果提.牛顿法与拟牛顿法学习笔记(三)DFP 算法
[7] ihoujie.拟牛顿法/Quasi-Newton,DFP算法/Davidon-Fletcher-Powell,及BFGS算法/Broyden-Fletcher-Goldfarb-Shanno

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值