无约束最优化问题的一般结构与规划方法

来源:互联网 发布:淘宝宝贝描述尺寸 编辑:程序博客网 时间:2024/06/13 22:08

  • 无约束问题与最优解
  • 最优性条件
  • 一维线性搜索
    • 精确线性搜索
    • 直接搜索法
    • 非精确一维搜索法
  • 下降算法的收敛性与收敛速度
  • 无约束规划
    • 最速下降法
    • Newton法
    • 共轭梯度法

无约束问题与最优解

考虑如下最优化问题:

minxRnf(x)
无约束最优化问题的解由局部解和全局解两种,而实际上可行的往往只有局部解(或严格局部解)。如不加说明我们讨论的都是局部解。
局部解定义
xRn ,若存在 xδ(δ>0) 邻域
Nδ(x)={x|xx<δ}
使得
f(x)f(x),xNδ(x)
则称 xf(x) 的局部解;若
f(x)>f(x),xNδ(x)
则称 xf(x) 的严格局部解。

最优性条件

一阶必要条件
f(x) 一阶连续可微,若 x 是一个局部解,则:f(x)=0 。即 x 在任何方向上的方向导数均为零,该点所处的切平面是水平的。
二阶必要条件
f(x) 二阶连续可微,若 x 是一个局部解,则:

f(x)=0,2f(x) 
即在局部解 x 处二阶方向导数非负。满足 f(x)=0 的点 x 被称为函数 f 的平稳点或驻点,不是极小点也不是极大点的平稳点被称为函数的鞍点
二阶充分条件
f(x) 二阶连续可微,且
f(x)=0,2f(x) 
x 是无约束问题的一个严格局部解。
凸充分性定理
f:RnR 是凸函数,且 f(x) 的一阶连续可微的,则 x 是全局解得充分必要条件是 f(x)=0

一维线性搜索

求解最优化问题的关键是构造一个点列 {xk} 使其满足

limkf(xk)=f(x)=minxRf(x),limkxk=x
x 为问题的解, 称 {xk}极小化点列,其构造方法一般采用逐步构造法:
xk+1=xk+αkdk,k=0,1,2,
dk搜索方向, ak步长。一维搜索问题即讨论如何确定步长的问题,下面简要介绍几种搜索方法,及其特色,但对算法本身不予详细介绍。

精确线性搜索

如果有 αk 使得

ϕ(αk)=minα0{ϕ(α)=f(xk+αdk)}
则称该搜索为精确线性搜索,称 αk 为最优步长。该方法有重要理论价值,但除了 f(x) 是二次函数的特殊情况外,确定精确极小点是很困难的。

直接搜索法

首先介绍两个概念。
搜索区间
αϕ(α) 的极小点,若存在区间 [a,b]使得 α[a.b],则称 [a,b]ϕ(α) 的搜索区间。确定搜索区间可采用进退法。从一点出发确定函数值“高-低-高”的4点,一个方向不成功就退回来反方向寻找。
单峰函数
设函数 ϕ(α) 在区间 [a,b] 内存在极小点 α(a.b),如果对于任意 α1,α2 满足:

  1. α1<α2α时,有 ϕ(α1)>ϕ(α2)
  2. αα1<α2时,有 ϕ(α1)<ϕ(α2)

ϕ(α) 在区间 [a,b] 上是单峰函数。

假设 f(x) 在得到的搜索区间上是单峰函数,我们可以通过 0.618法直接搜索近似最优步长。0.618法的基本思想是通过取试探点进行函数值比较,使得包含极小点的搜索区间不断减小,每次迭代极小区间的收缩比为0.618,即以线性速度收敛的极小点附近。

非精确一维搜索法

0.618法的计算量比较大,我们可 适当放松对 αk 的要求,使目标函数在迭代的每一步都充分下降即可。非精确一维搜索的基本思想是求 μ 使得 ϕ(μ)<ϕ(0),但不希望 μ 值过大否则会引起点列的大幅度摆动,也不希望 μ 值过小,否则会使得点列在未达到 x 之前没有进展。常见的方法包括:Goldstein方法Armijo方法Wolfe-Powell方法

下降算法的收敛性与收敛速度

下降算法的一般迭代格式如下:

  1. 给定初始点 x1k:=1
  2. 确定局部下降方向 dk 使得
    f(xk)Tdk<0
  3. 确定步长 αk使得
    f(xk+αkdk)<f(xk)
  4. xk+1=xk+αkdk
  5. f(xk+1)=0则停,否则令 k:=k+1,转步骤1。

若上述算法可行,须解决下述问题:

  1. 如何确定搜索方向?
  2. 如何进行一维搜索确定每一步步长?
  3. 如果确定当前点的终止准则?

问题2已在上一小节讨论过,另外两个问题见下文。下降算法产生极小化序列 {xk},对应的目标函数序列 {f(xk)} 是单调递减的。所谓收敛,是指序列{xk}或它的一个子列满足 limkxk=x 。通常获得这样的结果很难。若对于某些算法来说,只有当初始点靠近极小点 x 时,才能保证序列{xk}收敛到极小点,则称这类算法为局部收敛。反之,若对于任意初始点产生的序列收敛到极小点,这类算法则被称为全局收敛

为了使极小化序列能够收敛到一个平稳点,通常要求目标函数能够“充分”下降。由 f(x) 的一阶Taylor展开式:

f(xk+αkdk)=f(xk)+αkf(xk)Tdk+o(αkdk)
可知,当 dkf(xk) 接近于正交时,f(x) 下降很少,因此要求其二者之间的夹角远离正交方向,即存在 u¯>0 使得:
θkπ2u¯,k
其中
cosθk=f(xk)Tdkf(xk)dk

设序列 {xk}收敛到 x,若极限

limkxk+1xxkx=β
存在,则当 0<β<1 时,称{xk}线性收敛;当 β=0时,称{xk}超线性收敛;当 β=1时,称{xk}次线性收敛。若存在某个 p1,有
limkxk+1xxkxp=β+
则称{xk}p 阶收敛。当 p>1时,p 阶收敛必为超线性收敛,反之不一定成立。最优化算法中通常考虑线性收敛、超线性收敛和二阶收敛。

无约束规划

假设我们要考虑的无约束规划问题为:

minxRnf(x),fC1
其中 C1 表示一阶连续可微函数的全体。下面介绍三种规划方法,仅简述其规划思想与执行步骤,不做具体推导。

最速下降法

根据Taylor级数展开,当 f(x) 在某点 xk 处连续可微,且 f(xk)0 时,我们可得:

f(xk+adk)=f(xk)+af(xk)Tdk+o(adk)
其中 a>0dk 是一个确定的方向向量。若向量 dk 满足f(xk)dk<0,则 dk 是函数 f(x)xk 处的下降方向。进一步改写上式:
f(xk+adk)=f(xk)a(f(xk)Tdk)+o(adk)
可见若 f(xk)Tdk 越大,则下降幅度越大。由
f(xk)Tdk=f(xk)Tdkcosθk
可知取 θk=0 时,也就是 dk=f(xk) 时达到最大值。因此在 xk 点处的搜索方向应取 dk=f(xk)

步骤:

  1. 选定初始点 x1 和精度要求 ϵ>1 ,取 k=1
  2. f(xk)<ϵ,则停止,取 x=xk ;否则令 dk=f(xk)
  3. xk 处沿方向 dk 做线性搜索,得 xk+1=xk+akdkk=k+1,转步骤2。

在第3步,采用精确线性搜索,即:

ak=argminf(xk+adk)
,可得:
df(xk+adk)daa=ak=(dk)Tf(xk+1)=0
可见 dkdk+1 正交。

Newton法

Newton法利用二次近似多项式的极值点求法给出原函数极值点的求法。本节考虑 f(x) 二次可微的情形。

利用Taylor展开,考虑在 xk 点处的二次近似多项式:

f(x)f(xk)+f(xk)T(xxk)+12(xxk)T2f(xk)(xxk)
令其导数为零,得到:
f(xk)+2f(xk)(xxk)=0
2f(xk)(Hesse矩阵)非奇异时:
x=xk[2f(xk)]1f(xk)
上式称为 Newton 迭代公式,方便起见,我们将上式改写为
xk+1=xk+dk
其中 dk 是线性方程组
2f(xk)d=f(xk)
的解向量。

步骤:

  1. 选定初始点 x1 和精度要求 ϵ>1 ,取 k=1
  2. f(xk)<ϵ,则停止,取 x=xk ;否则求解线性方程组:2f(xk)d=f(xk) 得到 dk
  3. xk+1=xk+dk,k=k+1。转到步骤2。

Newton 法求解无约束优化问题会出现以下情况:

  1. 收敛到极小点;
  2. 收敛到鞍点;
  3. Hesse矩阵奇异,无法继续计算。

其优点是收敛速度快,但是每一步不能保证目标函数值总是下降的。

共轭梯度法

共轭梯度法用来求解正定二次规划问题,它具有如下性质:

  1. 搜素方向是下降方向;
  2. 不必计算Hesse矩阵,只计算函数值和梯度;
  3. 具有二次终止性。

这里不具体推导共轭梯度法的收敛原理,仅介绍其思想。设目标函数为

f(x)=12xTx+rTx+δ
其中 x=(x1,x2,,xn)T,r=(r1,r2,,rn)TRn,δRn。设 q1,q2,,qkk(kn) 个两两正交的非零向量,从任意初始点出发,一次沿 q1,q2,,qk 作精确一维搜索,得到 x2,x3,,xk+1xk+1f(x) 在仿射集
X¯k={x=x1+i=1kα^iqi|α^iR,i=1,2,,k}
上的唯一极小点。当 k=n 时,xk+1f(x) 在整个空间上的唯一极小点。

考虑一般正定二次函数:

f(x)=12xTGx+rTx+δ
其中 G 是正定矩阵。d1,d2,,dkGk(kn) 个非零共轭方向,从任意初始点 x1 出发,一次沿 di0(i=1,2,,k) 作一维精确搜索,得到 x2,x3,,xk+1xk+1f(x) 在仿射集
Xk={x=x1+i=1kαidi|αiR,i=1,2,,k}
上的唯一极小点。当 k=n 时,xk+1f(x) 在整个空间上的唯一极小点。且此时:
f(xk+1),di=0,i=1,2,,k
上述结论被称为扩展子空间定理

步骤:

  1. 选定初始点 x1 和精度要求 ϵ>1 ,取 k=1
  2. f(xk)<ϵ,则停止,取 x=xk ;否则,置:
    dk=f(xk)+βk1dk1
    其中(Pulak-Ribiere-Polyak(PRP)公式)
    βk1=0,f(xk)2f(xk1)2,k=1k>1
    或(Fletcher-Reeves(FR)公式)
    βk1=0,f(xk)T(f(xk)f(xk1))f(xk1)Tf(xk1),k=1k>1
  3. 一维搜索,求解一维问题:
    minϕ(α)=f(xk+αd)
    得到 α,置
    xk+1=xk+αkdk
  4. k=k+1 ,转到步骤2。

虽然共轭梯度法是根据二次函数导出的,但仍旧适用于一些可微函数。这里需要解决一个问题:共轭梯度法产生的搜索方向是否为下降方向?

定理:设 f(x) 具有连续的一阶偏导数,并假设一维搜索是精确的,考虑用共轭梯度法求解无约束问题 minf(x),xRn。若 f(xk)0,则搜索方向 dkxk 处的下降方向。

定理:若一维搜索是精确的,则共轭梯度法具有二次终止性。
对于正定二次函数,共轭梯度法至多 n 步终止,否则说明目标函数不是正定二次函数,或者说目标函数没有进入一个正定二次函数的区域。

如果你想继续学习凸优化相关知识,请参考下一篇:约束规划问题与凸二次规划