首页 > 其他 > 详细

优化04无约束优化---牛顿法

时间:2020-12-25 15:02:49      阅读:26      评论:0      收藏:0      [点我收藏+]

无约束优化---牛顿法

无约束最优化问题:

\[\begin{aligned} (P) ~ ~ ~ \min &~ ~ ~ f(x)\\ \text{s.t.} &~ ~ ~x ∈ X ? R^n \end{aligned} \]

1牛顿法

\(x = \bar{x}\)时,f(x)可近似为:

\[f(x) \approx h(x) = f(\bar{x}) + ?f(\bar{x})^T (x ? \bar{x}) + \frac{1}{2}(x ? \bar{x})^TH(\bar{x})(x ? \bar{x}) \]

这是\(f (x)\)\(x = \bar{x}\)处的二次泰勒展开式。其中\(H(\bar{x})= ?^2f(\bar{x})\)

\(\min ~ ~ ~ f(x)\),则\(?h(x)=0\),有

\[?f(\bar{x}) +H(\bar{x})(x ? \bar{x}) = 0, \]

\(H(\bar{x})\)可逆, 则

\[x ? \bar{x}= -H(\bar{x})^{-1} ?f(\bar{x}) \]

\(-H(\bar{x})^{-1} ?f(\bar{x})\)称为牛顿方向,或\(x = \bar{x}\)处的牛顿步长。则得牛顿法的迭代公式:

\[x^{k+1} = x^k - H({x}^k)^{-1} ?f({x}^k)\tag1 \]

\(\large\color{#70f3ff}{\boxed{\color{brown}{阻尼牛顿法} }}\)

纯牛顿法步长固定为 \(α=1\)阻尼牛顿法( damped Newton method or guarded Newton method)的步长\(α\)是不固定的。

[算法] 给定起始点$ x_0\in dom \ f,k=0 $,精度 $\epsilon >0 $,

  1. 计算牛顿方向\(d^k=-H(\bar{x}^k)^{-1} ?f(\bar{x}^k)\)
  2. 停止条件:如果 \(d^k=0,或者(d^k)^2/2<\epsilon\)则退出。
  3. 线搜索:用精确性线搜索或者非精确性线搜索选择步长 \(α_k\)
  4. 迭代: \(x^{k+1} = x^k + α_kd^k, k = k + 1\). 转到步骤1。
def newton(f, start):
    fun = Function(f)
    x = array(start)
    g = fun.grad(x)
    while fun.norm(x) > epsilon:
        G = fun.hesse(x)
        d = (-dot(linalg.inv(G), g)).tolist()[0]
        alpha = wolfe(f, x, d)
        x = x + alpha * array(d)
        g = fun.grad(x)
    return x

请注意以下几点:

  • 牛顿法不能满足\(H(\bar{x}^k)\)在每次迭代中都是非奇异,正定矩阵。
  • 不能保证每一步\(f(x^{k+1}) <f(x^k)\)

牛顿法的优缺点

牛顿法求根

牛顿法的原理是使用函数 \(f(x)\) 的泰勒级数的前面几项来寻找方程 \(f(x)=0\) 的根。

将函数 \(f(x)\)\(x_0\) 处展开成泰勒级数:

\[f(x)=f(x_0)+f^{‘}(x_0)(x-x_0)+\frac{1}{2}f^{‘‘}(x_0)(x-x_0)^2+\dots\\]

取其线性部分,作为 \(f(x)\) 的近似,则可用 \(f(x_0)+f^{‘}(x_0)(x-x_0)=0\) 的解来近似 \(f(x)=0\) 的解,其解为

\[x_1=x_0-\frac{f(x_0)}{f^{‘}(x_0)} \]

由于对 \(f(x)\) 的近似只是一阶展开,因此 \(r\) 并非 \(f(x)=0\) 的解,只能说 \(f(x_1)\)\(f(x_0)\) 更接近0。于是,考虑迭代求解:

\[x_{n+1}=x_{n}-\frac{f(x_n)}{f^{‘}(x_n)}\\]

由于牛顿法是基于当前位置的切线来确定下一次的位置,所以牛顿法又被很形象地称为是"切线法"。牛顿法的搜索路径(二维情况)如下图所示:

  牛顿法搜索动态示例图:

技术分享图片

2收敛速度

序列\({s_i}\)线性收敛时,满足的条件:

\[\lim_{i→∞}s_i = \bar{s},~ ~ ~\lim_{i→∞} \frac{||s_{i+1}-\bar{s}||}{||s_i-\bar{s}||}= δ < 1. \]

如果取\(δ = 0\),则该序列表现出超线性收敛

序列\({s_i}\)二次收敛时,满足的条件:

\[\lim_{i→∞}s_i = \bar{s},~ ~ ~\lim_{i→∞} \frac{||s_{i+1}-\bar{s}||}{||s_i-\bar{s}||^2}= δ < ∞. \]

\(\Large\color{magenta}{例子}\)

线性收敛:

\[s_{i}=\left(\frac{1}{10}\right)^{i}: 0.1,0.01,0.001, \cdots, \bar{s}=0, \frac{\left|s_{i+1}-\bar{s}\right|}{\left|s_{i}-\bar{s}\right|}=0.1 \]

超线性收敛:

\[\begin{array}{c} s_{i}=\frac{1}{i !}: 1, \frac{1}{2}, \frac{1}{6}, \frac{1}{24}, \cdots, \bar{s}=0 \\frac{\left|s_{i+1}-\bar{s}\right|}{\left|s_{i}-\bar{s}\right|}=\frac{1}{i+1} \longrightarrow 0, i \longrightarrow \infty \end{array} \]

二次收敛:

\[s_{i}=\left(\frac{1}{10}\right)^{\left(2^{i}\right)}: 0.1,0.01,0.0001, \cdots, \bar{s}=0 \]

\[\frac{\left|s_{i+1}-\bar{s}\right|}{\left|s_{i}-\bar{s}\right|^{2}}=\frac{\left(10^{2 i}\right)^{2}}{10^{2^{i+1}}}=1 \]

3牛顿法的二次收敛性

\(\large\color{magenta}{\boxed{\color{brown}{定理1} }}\)如果\(H(x)\)是对称和正定(SPD),而\(d =-H({x})^{-1} ?f({x}) \neq 0\),则\(d\)是一个下降方向,即对于所有\(α\)的足够小的值,有 \(f(x +αd) < f(x)\)

【证明】因为

\[f(x) \approx h(x) = f(\bar{x}) + ?f(\bar{x})^T (x ? \bar{x}) + \frac{1}{2}(x ? \bar{x})^TH(\bar{x})(x ? \bar{x}) \]

\(\min ~ ~ ~ f(x)\),则\(?h(x)=0\),有

\[?f(\bar{x}) +H(\bar{x})(x ? \bar{x}) = 0, \]

所以\(d =-H({x})^{-1} ?f({x})\)\(x^{k+1} = x^k + αd\) ,如果\(H(x)\)是对称和正定(SPD),则

\[\nabla f(x)^{T} d=-\nabla f(x)^{T} H(x)^{-1} \nabla f(x)<0 \]

\(d\)是一个下降方向,有 \(f(x +αd) < f(x)\)

\(\large\color{magenta}{\boxed{\color{brown}{定理2} }}\) (二次收敛定理) 假设 \(f(x)\) 是二次连续可微 ,点 \(x^{*}\) 满足 \(\nabla f\left(x^{*}\right)=0\) 。假设 \(\mathrm{H}(\mathrm{x})\) 满足以下条件:
存在一个标量 \(h>0\) ,有 \(\left\|H\left(x^{*}\right)^{-1}\right\| \leq \frac{1}{h}\) ,存在标量 \(\beta>0\)\(L>0\) 满足 \(\left\|H(x)-H\left(x^{*}\right)\right\| \leq L\left\|x-x^{*}\right\|\) 其中 \(x\) 满足 \(\left\|x-x^{*}\right\| \leq \beta\)
那么:
(i) \(\left\|x_{N}-x^{*}\right\| \leq\left\|x-x^{*}\right\|^{2}\left(\frac{L}{2\left(h-L\left\|x-x^{*}\right\|\right)}\right)\)
(ii) \(\left\|x_{N}-x^{*}\right\| \leq\left\|x-x^{*}\right\|<\gamma\)
(iii) \(\left\|x_{N}-x^{*}\right\| \leq\left\|x-x^{*}\right\|^{2}\left(\frac{3 L}{2 h}\right)\).

牛顿法虽然收敛很快,但其一个致命弱点就是每次迭代都要计算目标函数的Hesse矩阵及其逆矩阵,当问题的维数较大时,计算量迅速增加。于是后来又有了拟牛顿法。

4 Modifified Newton method修正牛顿法

对于步长 \(α_k = 1\) 是否让目标函数充分下降;否,则采用线搜索方法重新确定* \(α_k\)

  • 对于方向(Hesse矩阵)的修正:选取 \(d^k = - B_k ^{-1} ?f (x^k )\)

\(?^2f (x^k ) ? 0\), 则选取 \(B_k := ?^2f (x_k )\) ; 否则,采取修正方法(多种):

  1. \(B_k := ?^2f (x^ k ) + λI\) , \(λ\)为适当正数保证 \(B_k\) 正定;

  2. 考虑特征值分解 \(?^2f (x ^k ) = Q^T ΛQ\) , 其中 \(Λ = diag (λ _1, · · · , λ _n )\) ; 令 \(B_k = Q^T diag(τ_i)Q\) ,

    \[τ_i = \begin{cases} λ _i, \ if\ \ λ i ≥ δ ; \\[2ex] δ, otherwise . \\[2ex]\end{cases}\\]

    \(δ\)为一适当的正数

例子

例1:用牛顿法求解

\[\min f(x)=\frac{1}{2} x_{1}^{2}+x_{1} x_{2}+x_{2}^{2}-4 x_{1} \]

解决方案:

【1】

\[\begin{array}{c} \nabla f(x)=\left(x_{1}+x_{2}-4, x_{1}+2 x_{2}\right)^{T} \H(x)=\left(\begin{array}{ll} 1 & 1 \1 & 2 \end{array}\right) \end{array} \]

\(\nabla f(x)=0,\)

\[\bar{x}=\left(\begin{array}{c} 8 \-4 \end{array}\right), H(\bar{x})=\left(\begin{array}{cc} 1 & 1 \1 & 2 \end{array}\right) \succ 0 \]

所以, \(\bar{x}=\left(\begin{array}{c}8 \\ -4\end{array}\right)\) 是一个严格的局部优化。

【2】
\(x^{1}=\left(\begin{array}{l}1 \\ 1\end{array}\right), \nabla f\left(x^{1}\right)=\left(\begin{array}{c}-2 \\ 3\end{array}\right),\)
\(H^{-1}=\left(\begin{array}{cc}2 & -1 \\ -1 & 1\end{array}\right),\)所以
\(x^{2}=x^{1}-H^{-1} \nabla f\left(x^{1}\right)=\left(\begin{array}{c}1 \\ 1\end{array}\right)-\left(\begin{array}{cc}1 & 1 \\ 1 & 2\end{array}\right)^{-1}\left(\begin{array}{c}-2 \\ 3\end{array}\right)=\left(\begin{array}{c}8 \\ -4\end{array}\right)\)
因为 \(\nabla f\left(x^{2}\right)=0,\) 停止迭代. \(x^{2}\) 是一个最优点。

例2:

\[\begin{array}{c} \min f(x)=7 x-\ln (x) \end{array} \]

解决方案:

\[\nabla f(x)=7-\frac{1}{x}, H(x)=\frac{1}{x^{2}} \]

不难发现\(x^{*}=\frac{1}{7}=0.142857143\)是唯一的全局最小值。在\(x\)的牛顿方向是

\[d=-H(x)^{-1} \nabla f(x)=-x^{2}\left(7-\frac{1}{x}\right)=x-7 x^{2} \]

因此,Newton的方法将生成迭代\(\left\{x^{k}\right\}\)的序列,满足:

\[x^{k+1}=x^{k}+\left(x^{k}-7\left(x^{k}\right)^{2}\right)=2 x^{k}-7\left(x^{k}\right)^{2} \]

顺便说一下,牛顿的二次收敛的范围。这个函数的方法是

\[x ∈ (0.0, 0.2857143). \]

例3:

\[\begin{array}{c} \min f(x)=-\ln \left(1-x_{1}-x_{2}\right)-\ln \left(x_{1}\right)-\ln \left(x_{2}\right) \end{array} \]

解决方案:

\[\nabla f(x)=\begin{bmatrix} \begin{array}{c} \frac{1}{1-x_{1}-x_{2}}-\frac{1}{x_{1}} \\frac{1}{1-x_{1}-x_{2}}-\frac{1}{x_{2}} \end{array} \end{bmatrix}\~\~\H(x)=\begin{bmatrix} \begin{array}{c} \left(\frac{1}{1-x_{1}-x_{2}}\right)^{2}+\left(\frac{1}{x_{1}}\right)^{2} &\left(\frac{1}{1-x_{1}-x_{2}}\right)^{2} \\left(\frac{1}{1-x_{1}-x_{2}}\right)^{2} &\left(\frac{1}{1-x_{1}-x_{2}}\right)^{2}+\left(\frac{1}{x_{2}}\right)^{2} \end{array} \end{bmatrix} \]

这是显而易见的 \(x^{*}=\left(\frac{1}{3}, \frac{1}{3}\right)^{T}, f\left(x^{*}\right)=7=3.295836866\).

在牛顿法中,重复步骤3 通过 \(x^{k+1}=x^{k}+\alpha_{k} d_{N}^{k}\) 其中\(\alpha_{k}\) 满足:

\[f\left(x^{k}+\alpha_{k} d^{k}\right)=\min _{\alpha>0} f\left(x^{k}+\alpha d^{k}\right) \]

例4:

用Damp-Newton法求解

\[\min f(x)=\frac{1}{2} x_{1}^{2}+x_{1} x_{2}+x_{2}^{2}-4 x_{1} \]

解决方案:

\[\begin{array}{c} \nabla f(x)=\left(x_{1}+x_{2}-4, x_{1}+2 x_{2}\right)^{T} \H(x)=\left(\begin{array}{ll} 1 & 1 \1 & 2 \end{array}\right) \end{array} \]

\(x^{1}=\left(\begin{array}{l}1 \\ 1\end{array}\right),\)

\[\nabla f\left(x^{1}\right)=\left(\begin{array}{c} -2 \3 \end{array}\right), H^{-1}=\left(\begin{array}{cc} 2 & -1 \-1 & 1 \end{array}\right) \]

\(x=x^{1}+\alpha d^{1},\) 其中

\[d^{1}=-H^{-1} \nabla f\left(x^{1}\right)=-\left(\begin{array}{cc} 1 & 1 \1 & 2 \end{array}\right)^{-1}\left(\begin{array}{c} -2 \3 \end{array}\right)=\left(\begin{array}{c} 7 \-5 \end{array}\right) \]

然后我们有

\[\varphi(\alpha)=f\left(x^{1}+\alpha d^{1}\right)=\frac{29}{2} \alpha^{2}-29 \alpha-\frac{3}{2} \]

\(\varphi^{\prime}(\alpha)=0,\) 我们有 \(\alpha_{1}=1,\) 并且 \(x^{2}=x^{1}+\alpha_{1} d^{1}=(8,-4)^{T}\)
因为 \(\nabla f\left(x^{2}\right)=0,\) 停止迭代. \(x^{2}\) 是一个最优点。

参考资料

牛顿法_百度百科

无约束优化算法--牛顿法与拟牛顿法(DFP,BFGS,LBFGS) - ljy2013 - 博客园

梯度下降or拟牛顿法?

MIT凸优化课程

Stephen BoydConvex Optimization

《凸优化》,Stephen Boyd等著,王书宁等译

“最优化理论与算法”北京邮电大学数学系

优化04无约束优化---牛顿法

原文:https://www.cnblogs.com/liangjiangjun/p/14188282.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!