经典优化算法

优化算法概论

理想的优化算法有以下几个特点

  • 数值解 \(\{x_k\}_{k=0}^{\infty}\)的迭代,实际中操作使用有限次,满足一定条件停止迭代即可
  • 单调性,满足\(f(x_{k+1})<f(x_{k-m})\)就很好,但是往往碰到螺旋下降的情况
  • 策略 :\(x_k\)如何到\(x_{k+1}\)?

线搜索方法

\[x_{k+1}=x_k+\alpha_kp_k \]

这里\(\alpha_k\)是一个很小的正量表示步长,\(p_k\)表示方向,线搜索方法就是先定方向,再定步长

信赖域方法

\[x_{k+1}=x_k+p_k \]

方向和步长合二为一

线搜索方法理论

确定方向

假定

  • \(\{ f(x_k)\}_{k=0}^{\infty}\)是单调下降的
  • \(\alpha_k\)足够小
  • \(||p_k||=1\)

则有

\[\begin{align*} f(x_{k+1}) &= f(x_k + \alpha_k p_k) \\ &= f(x_k) + \nabla f(x_k)^T \cdot \alpha_k p_k + o(\|\alpha_k p_k\|) \\ f(x_{k+1}) - f(x_k) &\approx \nabla f(x_k)^T \cdot \alpha_k p_k < 0 \\ \text{由于 } \alpha_k &> 0 \quad \text{因此} \\ \nabla f(x_k)^T \cdot p_k &< 0 \end{align*} \]

所以下降方向就是负梯度方向

关于步长的三个约束条件

Armijo Condition

假定\(p_k\)是下降方向,我们令

\[\phi(\alpha)=f(x_{k+1})=f(x_k+\alpha p_k) \]

于是

\[\phi^{'}(\alpha)=\nabla f(x_k+\alpha p_k)^T p_k \]

\[\phi(0)=f(x_k) \]

\[\phi^{'}(0)=\nabla f_k^{T}p_k \]

我们想让a取到一个良好的位置,应当满足

  • 必要条件(f序列单调减)

\[\phi(\alpha)<\phi(0) \]

  • 充分条件

\[\phi(\alpha) \le f(x_k)+c_1\nabla f_k^Tp_k \alpha \\ c_1 \in (0,1) \]

Glodstein Condition

Glodstein发现Armijo条件总会导致筛选出特别小的a,但是这在数值计算中没有意义,为此他提出了新的筛选方法

\[f(x_k)+(1-c)\nabla f_k^Tp_k\alpha \le \phi(\alpha) \le f(x_k)+c\nabla f_k^Tp_k \alpha \\ c \in (0,\frac12) \]

wolfe condition

wolfe综合了上述思想,又考虑到Glodstein的约束条件过于狭窄,在c趋于0.5的时候几乎不留区间,于是最终演化出我们现在通用的筛选标准

\[\phi(\alpha)\leq f(x_{k})+C_{1}\nabla f_{k}^T p_{k}\alpha \]

\[\nabla f_{k+1}^{T}\cdot p_{k}\geq C_{2}\nabla f_{k}^{T}P_{k} \]

\[C_{1}\in(0,1)\\C_{2}\in(C_{1},1) \]

第二个式子中\(\nabla f_{k+1}^{T}\)就是函数图像中\(\phi(a)\)在a处的斜率,这样就不冒进的排除掉了\(\alpha\)靠近0的一小段区间

收敛性证明

\(x_{k+1}=x_k+\alpha_kp_k\) ,我们有以下几点要求,

  • \(\nabla f(x)\)满足Lipschitz连续,即\(\|\nabla f(x)-\nabla f(\hat{x})\|\leq L\|x-\hat{x}\|,\quad\forall x,\hat{x}\) (1)

  • \(p_k\)是下降方向,即\(\nabla f_k^Tp_k< 0\) (2)

  • \(\alpha_k\)满足wolfe条件,即:

\[f_{k+1}<f_k+c_1\alpha_k\nabla f_k^Tp_k \quad (3) \]

\[\nabla f_{k+1}^Tp_k\geq c_2\nabla f_k^Tp_k \quad (4) \]

这几点要求对大多数优化问题来说都是比较容易满足的。在这样的已知条件下,我们可以推导出一个重要的结论:Zoutendijk条件

Proof

由(4)

\[(\nabla f_{k+1}-\nabla f_k)^Tp_k\geq(c_2-1)(\nabla f_k^Tp_k) \quad (5) \]

又由李普希兹连续条件可得

\[\|\nabla f_{k+1}-\nabla f_k\|\leq\alpha_kL\|p_k\| \]

\[\|\nabla f_{k+1}-\nabla f_k\|\|p_k\|\leq\alpha_kL\|p_k\|^2 \]

\[(\nabla f_{k+1}-\nabla f_k)^Tp_k\leq\alpha_kL\|p_k\|^2 \quad (6) \]

联立(5),(6)可得

\[\alpha_k\geq\frac{c_2-1}{L}\frac{\nabla f_k^Tp_k}{\left\|p_k\right\|^2} \]

代入(3)(注意到\(\alpha_k\nabla f_k^Tp_k<0\)

\[f_{k+1}\leq f_k+c_1\frac{c_2-1}{L}\frac{\left(\nabla f_k^Tp_k\right)^2}{\left\|p_k\right\|^2} \]

\[f_k-f_{k+1}\geq c\cos^2\theta_k\|\nabla f_k\|^2 \quad c=c_1\frac{1-c_2}{L}>0 \]

两边累加可得

\[f_0-f_{k+1}\geq c\Sigma_{j=0}^k\cos^2\theta_j\|\nabla f_j\|^2 \]

因为f有下界,因此左边收敛,那么由数列和的收敛判断,必然有

\[\lim_{k\to\infty}\cos^2\theta_k\|\nabla f_k\|^2=0 \]

上面我们已经证明了在一定条件下,可以推导出Zoutendijk条件:

\[\lim_{k\to\infty}\cos^2\theta_k\|\nabla f_k\|^2=0 \]

更进一步,如果能够证明

\[\cos\theta_k\geq\delta>0,\forall k \]

那么显然要想仍然满足Zoutendijk条件,则只能要求\(\lim_{k\to\infty}\|\nabla f_k\|=0\) ,从而证明了收敛性。对于最速下降方向\(p_k=-\nabla f_k\),天然的\(\cos\theta_k=1\),则自然满足收敛性。

收敛速度

\(x^{*}\)为局部的最优解

Q收敛速度

次线性收敛

\[\lim_{k\to\infty}\frac{\left\|x_{k+1}-x^{*}\right\|}{\left\|x_{k}-x^{*}\right\|}=1 \]

线性收敛

\[\frac{\parallel x_{k+1}-x^{*}\parallel}{\parallel x_{k}-x^{*}\parallel}\leq a\in(0,1) \]

超线性收敛

\[\lim_{k\to\infty}\frac{\parallel x_{k+1}-x^{*}\parallel}{\parallel x_{k}-x^{*}\parallel}=0 \]

二次收敛

\[\frac{\|x_{k+1}-x^{*}\|}{\|x_{k}-x^{*}\|^{2}}\leq a\in(0,+\infty) \]

R收敛速度(类似于比较收敛)

  • \(k\)充分大

例子
\(\{ \frac 1 k\}\) 是Q次线性
\(2^{-k}\)是Q线性
\(2^{2^{-k}}\)是二次线性

梯度下降法

关于凸函数性质的理解

在数学上,我们应当有这样的直觉:

  • 李普希兹连续保证了我们的研究函数有二次上界
  • 强凸这一性质保证了研究函数大于了一个二次下界

proof:李普希兹连续->二次上界

命题:若\(f\)可微,\(\nabla f\)Lipschitz连续,则f有二次上界:

\[f(y) \le f(x)+\nabla f(x)^T(y-x)+\frac L2||y-x||^2 \]

证明: 记 \(g(\theta)=f(x+\theta (y-x))\)
原命题变为证明

\[g(1)-g(0)-\nabla f(x)^T(y-x) \le \frac L2||y-x||^2 \]

左边等于

\[=\int_{0}^{1}g^{\prime}(\theta)d\theta-\int_{0}^{1}\nabla f(x)^{T}(y-x)d\theta \]

\[=\int_{0}^{1}\left(\nabla f(x+\theta(y-x))^{T}\cdot(y-x)-\nabla f(x)^{T}(y-x))d\theta\right. \]

\[=\int_{0}^{1}\left(\nabla f\left(x+\theta\left(y-x\right)\right)-\nabla f\left(x\right)\right)^{T}\cdot\left(y-x\right)d\theta .\\\leq\int_{0}^{1}\|\nabla f\left(x+\theta\left(y-x\right)\right)-\nabla f\left(x\right)\|\cdot\|y-x\|d\theta . \]

\[\leq\int_{0}^{1}L||\theta(y-x)||\cdot||y-x||d\theta \]

\[= \frac L2||y-x||^2 \]

证毕

凸函数:梯度下降法收敛性分析

先引入一种求解\(\alpha\)最小上界的思路

回到算法本身

x的更新公式为

\[x_{k+1}=x_k-\alpha_k\nabla f(x_k) \]

根据二次上界不等式可得

\[\begin{aligned} f_{k+1}& =f\left(x_k-\alpha\nabla f(x_k)\right) \\ &\leq f(x_k)-\alpha\|\nabla f(x_k)\|^2+\frac{L\alpha^2}2\|\nabla f(x_k)\|^2 \\ &=f(x_k)-\alpha\left(1-\frac{\alpha L}2\right)\|\nabla f(x_k)\|^2 \end{aligned}\]

由凸函数的性质可知:\(f^*>f(x_k)-\nabla f(x_k)^\top\left(x_k-x^*\right)\)

由于\(\alpha\in\left(0,\frac1L\right)\),则

\[\begin{aligned} f_{k+1}& \leq f(x_k)-\frac\alpha2\|\nabla f(x_k)\|^2 \\ &\leq f^*+\nabla f(x_k)^\top\left(x_k-x^*\right)-\frac\alpha2\|\nabla f(x_k)\|^2 \\ &=f^*+\frac1{2\alpha}(2\alpha \nabla f(x_k)^\top\left(x_k-x^*\right)-\alpha^2\|\nabla f(x_k)\|^2-\|x_k-x^*\|^2+\|x_k-x^*\|^2) \\ &=f^*+\frac1{2\alpha}\left(\|x_k-x^*\|^2-\|x_k-x^*-\alpha\nabla f(x_k)\|^2\right) \\ &=f^*+\frac1{2\alpha}{\left(\|x_k-x^*\|^2-\|x_{k+1}-x^*\|^2\right)} \end{aligned}\]

进一步有

\[f_{k+1}-f^*=\frac1{2\alpha}\left(\|x_k-x^*\|^2-\|x_{k+1}-x^*\|^2\right) \]

\[\begin{gathered} \sum_{k=0}^n(f_{k+1}-f^*) \leq\frac1{2\alpha}\big(\|x_0-x^*\|^2-\|x_{k+1}-x^*\|^2\big) \\ =\frac1{2\alpha}\|x_0-x^*\|^2 \end{gathered}\]

由于\(f_k\)单调下降,因此

\[f_{n+1}-f^*\leq\frac1{n+1}\sum_{k=0}^n(f_{k+1}-f^*)\leq\frac1{2(n+1)\alpha}\|x_0-x^*\|^2 \]

算法使得以\(O(\frac 1k)\)收敛到\(f^*\)

重要的引理:白老爹定理

强凸函数应用梯度下降法的收敛性分析

  • \(f\)有下界,m-强凸,可微
  • \(\nabla f\)李普希兹连续
  • \(\alpha \in (0,\frac{2}{L+m})\)

\(x_k\)Q线性收敛到\(x^*\)

\[||x_{k+1}-x^{*}||^{2}=||x_{k}-\alpha \nabla f(x_{k})-x^{*}||^{2} \]

\[=\|x_{k}-x^{*}\|^{2}-2\alpha\nabla f(x_{k})^{T}(x_{k}-x^{*})+\alpha^{2}\|\nabla f(x_{k})\|^{2} \]

\[=||x_{k}-x^{*}||^{2}-2\alpha(\nabla f(x_{k})-\nabla f(x^{*}))^{T}(x_{k}-x^{*})+\alpha^{2}||\nabla f(x_{k})||^{2} \]

现在的任务就是为\((\nabla f(x_{k})-\nabla f(x^{*}))^{T}(x_{k}-x^{*})\)寻找一个合适的下界

带入原始的式子

梯度下降法的缺点:在病态条件下收敛过慢

posted @ 2025-05-11 21:48  bradinz  阅读(52)  评论(0)    收藏  举报