首页 > 其他分享 >无约束优化问题

无约束优化问题

时间:2024-10-13 18:44:22浏览次数:1  
标签:xk right frac grad 无约束 问题 alpha 收敛 优化

收敛速度

由算法A产生的迭代序列${xk}$在某种意义下收敛到$x$即$\lim_{k \to \infty} \left | xk-x \right | =0$,且存在常数$\alpha>0,q>0$
$$
s.t.\lim_{k \to \infty} \frac{\left | x{k+1}-x* \right | }{\left | xk-x* \right | ^{\alpha}} =q
$$
则称算法A产生的点列${x^k}$具有$\alpha$阶的收敛速度或称算法A是$\alpha$阶收敛的

  • $\alpha=1,且0<q\le1$,算法A线性收敛
  • $1<\alpha<2,且q>0/\alpha=1,q=0$,算法A超线性收敛
  • $\alpha=2$,算法A二阶收敛

最速下降法

选择$xk$处的负梯度作为搜索方向$dk=-\grad f(x^k)$,步长$\alpha_k$是$\phi (\alpha)=f(x^k+\alpha d^k)$中的精确最小点,${\phi }' (\alpha)=0$
$$
{\phi }' (\alpha)=\grad f(x^k+\alpha d^k)=-\grad f(x{k+1})T\grad f(x^k)=0
$$
特点:

  • 简单直观
  • 收敛
  • 搜索方向只要计算$\grad f(x^k)$

缺点:

  • 收敛速度慢(线性收敛)
  • Zigzag现象
  • 不具备二次中止性(在有限步内求得凸二次函数最优解)

最速下降法

牛顿法

基本思想:在当前$xk$处选择$dk=-[\grad2f(xk)]^{-1}\grad f(x^k)$

理解:对$x^k$处的二次逼近函数进行最小化
$$
\min (f(x^k)+\grad f(xk)T(x-x^k)+\frac{1}{2} (x-xk)T\grad f(xk)(x-xk))\
x{k+1}=xk-[\grad2f(xk)]^{-1}\grad f(x^k)\
所以dk=-[\grad2f(xk)]\grad f(x^k),步长\alpha_k=1
$$
步骤:

  • step0:$x^0,\varepsilon ,k:=0$
  • step1:$\left | \grad f(x^k) \right | \le \varepsilon $?
  • step2:计算$d^k$
  • step3:$x{k+1}=xk+d^k,k:=k+1$go to step1

优点:

  • 初始点$x0$取得比较接近收敛点$x*$,且$\grad^2f(x)$满足比较好的性质时二阶收敛,具有二阶中止性

缺点:

  • 计算量大,要计算Hesse矩阵
  • 适用范围窄

牛顿法

阻尼/修正牛顿法

对牛顿法的方向和步长进行修正

修正$\alpha_k$:

  • $\alpha_k=1$时能否让目标函数充分下降
  • 如果否,用线搜索重新确定$\alpha_k$

修正方向$dk$:$dk=-B_k^{-1}\grad f(x^k)$

  • 若$\grad2f(xk)>0$,则$B_k:=\grad2f(xk)>0$

  • 否则修正方法:

    • 1.$B_k:=\grad2f(xk)+\lambda E,\lambda 为适当正数保证B_k正交$

    • 2.考虑特征值分解

      $\grad2f(xk)=Q^T\Lambda Q,其中\Lambda=diag{\lambda_1 \cdots\lambda_n}$

      $B_k=Q^Tdiag(\tau _i) Q,\tau _i=\left{\begin{matrix}
      \lambda_i ,\ \ \ if \lambda_i \ge \delta \
      \delta,\ \ \ \ \ \ \ otherwise
      \end{matrix}\right.(\delta为适当正数)$

拟牛顿法

考虑$f(x)$在当前点$x^k$的二次近似函数
$$
m_k(x):=f(x^k)+\grad f(xk)T(x-xk)+\frac{1}{2}(x-xk)TB_k(x-xk)\
B_k>0,并且不仅要体现一些二次信息,还要容易获取\
利用\min m_k(x)得dk=-B_k \grad f(x^k)
$$
步骤:

  • step0: $x^0 ,\varepsilon,k:=0,B_0=\grad2f(x0)+\lambda E $
  • step1: if $\left | \grad f(x^*) \right | \le \varepsilon $?
  • step2:算$dk=-B_k \grad f(x^k)$
  • step3:确定步长$\alpha_k$(采用线搜索)
  • step4:$x{k+1}=xk+\alpha_kd^k$确定$B_{k+1},k:=k+1$ go to step1

拟牛顿法是一类方法
$$
B_{k+1}矩阵得确定,拟牛顿法的基本要求\
\grad f(x^{k+1})-\grad f(xk)=B_{k+1}(x-x^k)\
y_k=\grad f(x^{k+1})-\grad f(xk);s_k=x-x^k\
y_k =B_{k+1}s_k\
B_{k+1}:n\times n;所以\frac{n(n+1)}{2}个变量,n个方程
$$

$$
H_{k+1}=B_{k+1}^{-1}\
所以Bs_k=y_k \to Hy_k=s_k\
$$

几种方法:

DFP方法(秩2)

$$
H_{k+1}=H_{k}-\frac{H_k y_k y_kTH_k}{y_kTH_k y_k}+\frac{s_k s_kT}{y_kTs_k}
$$

BFGS方法(秩2)

$$
B_{k+1}=B_k-\frac{B_k s_k s_kTB_k}{s_kTB_k s_k}+\frac{y_k y_kT}{y_kTs_k}
$$

被认为是最有效的拟牛顿法,超线性收敛

SR-1(秩1)

$$
B_{k+1}=B_k+\frac{(y_k-B_ks_k)(y_k-B_ks_k)T}{(y_k-B_ks_k)Ts_k}
$$

迭代公式更简单,但不保证正定性

适当条件下达到n步超线性收敛$\lim_{k \to \infty} \frac{\left | x{k+1+n}-x* \right | }{\left | xk-x* \right | ^{\alpha}} =0$

标签:xk,right,frac,grad,无约束,问题,alpha,收敛,优化
From: https://www.cnblogs.com/zzylovemath/p/18462719

相关文章