最优化方法_Part2

5 无约束优化问题(壹)

5.1 无约束优化问题

5.1.1 无约束优化问题:minf(x)
  • 最小二乘问题:minAxb
  • 采用适当的方法可将约束优化问题转换为无约束优化问题;
  • 最优解的定义:
    • 局部最优解xxNϵ(x),f(x)f(x)
    • 全局最优解xxRn,f(x)f(x)
    • 严格局部/全局最优解:即将上面式子中的>
5.1.2 无约束优化问题最优性条件

考虑无约束优化问题:minf(x)

  • f(x)为凸函数,则x是最优解等价于f(x)=0

  • f(x)为一般函数(即不一定是凸函数):

    • 一阶必要条件
      假设f(x)x处是可微的,如果x是局部最小值,那么f(x)=0
    • 二阶必要条件
      假设f(x)x处是二阶可微的,如果x是局部最小值,那么f(x)=02f(x)0,()
      泰勒展开形式
    • 二阶充分条件
      假设f(x)x处是二阶可微的,如果f(x)=02f(x)0,(),那么x是局部最小值。

修改:判定(半)正定矩阵的特殊大于(等于)简写符号为:,,并不是>,

5.2 无约束优化算法概要

5.2.1 迭代下降算法

给定初始点x0,产生点列{xk}k=1,并且f(xk+1)<f(xk)

  • 如何从当前点xk得到下一个迭代点xk+1

    • 策略1:线搜索方法

      • 当前点xk,从这个点出发,先找到某一个下降方向dk(即沿着该方向函数值减小),然后需要设置在下降方向走多远(步长)αk,最终,得到下一个点为:xk+1=xk+αkdk
    • 策略2:信赖域方法

      • 该方法有点和线搜索步骤反过来的意味,即先确定好需要前进的区域,然后选择前进的方向。

      • 设前进区域设为p,给定其约束为Δ,可以表述为

      • { min f(xk+p) s.t.p2Δ

        注意:在线搜索方法中,选择步长是一个一元/一维的问题;但信赖域方法是一个N维问题(f可能是一个比较复杂的函数),因此信赖域方法直接求解复杂度较大。所以信赖域方法在求解时并不是直接求解上述优化,而是需要先用一个简单的函数mk(p)fxk点进行近似,比如用泰勒展开等方法。

        { min mk(p) s.t.p2Δ

        信赖域方法有几点需要考虑:

        (1) Δ如何确定;(2) mk(p)如何选择,误差较大怎么办。

5.2.2 (基于线搜索)下降算法基本思路
  • STEP1:给定初始点x0,k=0
  • STEP2:判断xk是否满足终止条件;是则终止
  • STEP3:否则寻找xk处的下降方向dk
  • STEP4:设置步长αk,使得f(xk+αkdk)<f(xk+1)
  • STEP5:令xk+1=xk+αkdk;令k=k+1,转STEP1。

(一) 终止条件

常用的终止条件:

f(xk)2ε

其中,ε理论上取0,但在实际编程中一般取一个量级很小的数。此外要注意对于凸函数,此条件一定是最优解,但是非凸函数该终止条件找到的点就不一定是最优解了。

其他终止条件:

xkxkn2ε

f(xk)f(xkn)ε

(二) 下降方向

常用的下降方向——负梯度方向

dk=f(xk)

该方法又称最速下降法(Steepest descent)是梯度下降法的一种更具体实现形式。

其他下降方向选择:牛顿方向、共轭梯度方向等。

(三) 步长

ϕ(α):=f(xk+αdk),为一元函数。则可建模为:

min ϕ(α)

在确定αk的过程称为一维线搜索

(四) 点列收敛性/收敛速度

我们的算法会产生一个点列{xk}k=1,若点列不收敛,则可认为该算法不好。另外,收敛速度越快,算法越好。

5.2.3 求解步长——线搜索方法详解

求解一元问题:

{ min ϕ(α):=f(xk+αdk) s.t.α>0

其解记为α

(一) f(x)为一个简单函数

f(x)为一个简单函数,如二次函数:f(x)=12xTHx+cTx+b,H()0。黑塞矩阵正定则f为凸函数,则ϕ(α)也是凸函数。代入可得:

ϕ(α)=12(xk+αdk)TH(xk+αdk)+cT(xk+αdk)+b=12(dkTHdk)α2+(dkTHxk+cTdk)α+b

对于开口向上的二次函数,求最小,即导数为零即可。

ϕ(α)=0

(二) f(x)为一个复杂非线性函数

f(x)为一个复杂非线性函数,则minϕ(α)问题就变得复杂起来了。下面简单介绍几种常见的处理方法:

  • 基于搜索区间的直接搜索法

    • 首先找到一个搜索区间,想办法缩小搜索区间(注意缩小时不用把α扔掉),缩小到一定程度时,则可将区间内的一点作为最优解的近似。
    • 搜索区间[a0,b0]:需要包含α单谷(即在搜索区间内,函数只有一个下凸,且要注意以下推导都基于此前提)
    • 方法:选取λ,μ(a0,b0)且满足λ<μ
      • ϕ(λ)<ϕ(μ),则得到新的搜索区间为[a1,b1]=[a0,μ]
      • ϕ(λ)>ϕ(μ),则得到新的搜索区间为[a1,b1]=[λ,b0]
    • 常见的直接搜索法:
      • 均匀搜索法:
        • δ=(b0a0)/N,αi=a0+iδ, i=1,2,,N1
        • 比较相邻3个点对应的函数值,若对于某个i,有ϕ(αi1)>ϕ(αi)<ϕ(αi+1),则α[αi1,αi+1]
        • 得到新的搜索区间[a1,b1]=[αi1,αi+1]
      • 黄金区间法(0.618法):
        • τ=(51)/2=0.618, λ=a0+(1τ)(b0a0), μ=a0+τ(b0a0)
        • ϕ(λ)<ϕ(μ),则α[a0,μ],即新的搜索区间;
      • 基于导数信息的二分法
        • 记区间中点λ=b0+a02,计算该点的导数值ϕ(λ)
        • ϕ(λ)=0α=λ
        • ϕ(λ)<0α[λ,b0]
        • ϕ(λ)>0α[a0,λ]
  • 非精确线搜索

    实际下降算法中,步长的选取除了直接搜索法以外,还有其他一些方法,我们认为只要α满足一定的准则,此时即使α不是精确解也可以作为最终解的近似解。

    • Armijo条件:ϕ(α)ϕ(0)+c1αϕ(0), 0c11
  • Goldstein法则:除Armijo条件外还要去μ满足:ϕ(α)>ϕ(0)+c2αϕ(0), 0c1c21
5.2.4 补充:收敛性

基于线搜索的迭代下降算法

  • 为保证全局收敛,步长αk和下降方向dk的选取均需满足定的条件:
    • 记当前点xk处所选取下降方向dk与负梯度方向f(xk)的夹角为θk
    • cosθk=f(xk)Tdkf(xk)dk

Zoutendijk定理说明:

为了保证全局收敛,需要在选取步长和下降方向时候注意满足一定的条件

此外注意区分:全局收敛与收敛到全局最优解的区别

(1) 全局收敛是指在迭代下降算法初始点选取时,任意随机选取初始点都能保证所产生的点列满足收敛性;

(2) 收敛到全局最优解

  • 适当条件下,迭代点列xk满足:k=1cos2θkf(xk)2<,点列收敛

  • 当每次选取dk时均保证θk满足cosθkδ,δ>0,则:f(xk)0

    通俗讲就是不要让下降方向dk与负梯度方向f(xk)的夹角太接近π2,夹角尽量小。

Zoutendijk定理中的适当条件和证明:

假设函数f(x)有下界(保证有解存在),且f(x)是Lipschitz连续的,即存在L>0使得:

f(x)f(x~)Lxx~,x,x~

记迭代过程为xk+1=xk+αkdk,则

k=1cos2θkf(xk)2<

证明部分没有细看,太复杂了。。。!!!

此外,这里感觉很难理解,找了一些参考材料,有时间看看吧

漫步最优化二十一——全局收敛约束优化方法_1_——Zoutendijk可行方向法数值优化|笔记整理(2)——线搜索:步长选取条件的收敛性 - 学弱猹的文章 - 知乎

6 无约束优化问题(贰)

6.1 收敛速度

设序列{xk}k=1收敛到x,若存在极限:

limkxk+1xxkx=β

  • 0<β<1时,则称{xk}k=1为线性收敛;
  • β=0时,则称{xk}k=1为超线性收敛。

若存在某个p1,有:

limkxk+1xxkxp=β<+

则称{xk}k=1p阶收敛。当p>1时,p阶收敛必定为超线性收敛,但反之不一定成立。

评价一个算法除了收敛速度,还可以考虑把一个算法用于求解一个简单问题,如果该算法在求解简单问题时都会有较大的计算成本,那么说明该算法可能存在问题。一般用凸二次函数作为简单问题:

min12xTQx+cTx,Q0

如果算法用于求解该凸二次函数能够在有限步内找到最优解,那么称该算法具有“二次终止性”

6.2 坐标轴交替下降法

6.2.1 基本思想

给定初始点x0,依次沿着坐标轴e1,e2,,en进行搜索。

6.2.2 算法框架/流程
  • STEP 1:给定初始点x0,k:=0,ε>0

  • STEP 2:判断是否满足f(xk)ε,是,则终止算法;

  • STEP 3:记y0=xk,令yi=yi1+αiei

    其中,αi:=argminf(yi1+αiei),i=1,2,,n

    arg是argument(自变量、参数)的缩写,那么由此可知:

    argmax F(x):使目标函数F(x)能够取到最大值时的变量x的值

    argmin F(x):使目标函数F(x)能够取到最小值时的变量x的值

    (只是用F(x)举个栗子,实际使用中的函数可能不止x这一个变量,不过意思还是这个意思~)

  • STEP 4:令xk+1=yn,k:=k+1,转STEP 1。

6.2.3 优缺点

优点:不需要成本即可得到搜索方向。当变量之间的交叉程度较小时非常有效(极端情况——可分离函数);

缺点:对于一般问题所得到的点列未必收敛。

6.2.4 改进方法

比如:在交替下降过程中间每一步都加入一个线搜索。

6.3 梯度下降法(最速下降法)

6.3.1 基本思想

选择xk处负梯度作为搜索方向,即dk=f(xk)

6.3.2 优缺点

优点:简单直观;收敛;搜索方向计算简单(即只需计算梯度);

缺点:(1) 收敛速度慢(线性收敛);(2) Zigzag现象(“之”字形);(3) 不具备二次终止性(在有限步内求得凸二次函数的最优解)。

  • 缺点一:收敛速度慢(线性收敛)

    • 原因1:只利用了该点处的一阶导数,而没有利用二阶导数信息;

    • 原因2:若迭代中步长αkϕ(α):=f(xk+αdk)的精确最小点,则ϕ(αk)=0,即

      ϕ(αk)=f(xk+αkdk)Tdk=f(xk+1)f(xk)=0

      根据上式,可以看到前后两个点之间的梯度垂直,呈现“之”字形。示例如下图所示。

6.4 牛顿法

6.4.1 基本思想

当前点xk处选择dk=[2f(xk)]1f(xk)作为下降方向,可以理解为:对xk处的二次逼近函数(泰勒展开式)进行最小化。

minf(xk)+f(xk)T(xxk)+12(xxk)T2f(xk)(xxk)

令上式求导等于零,可以得到:

f(xk)+2f(xk)(xxk)=f(xk)+2f(xk)dk=0

  • 纯牛顿法:步长αk=1

    因为dk=[2f(xk)]1f(xk)xk+1=xk[2f(xk)]1f(xk)

6.4.2 算法框架/流程
  • STEP 1:给定初始点x0,k:=0,ε>0
  • STEP 2:判断是否满足f(xk)ε,是,则终止算法;
  • STEP 3:计算dk=[2f(xk)]1f(xk)
  • STEP 4:令xk+1=xk+dk,k:=k+1,转STEP 1。
6.4.3 优缺点

优点:牛顿法同时考虑了一阶导数信息和和二阶导数信息(黑塞矩阵);当初始点x0取得比较接近于收敛点x,且2f(x)满足较好性质时,二阶收敛;二次终止性(一步终止)。

缺点:计算量大(需计算Hesse矩阵);适用范围较窄。

此外,牛顿法还存在一个问题:二阶导数矩阵不一定是正定的,此时dk就不一定再是下降方向了。

6.5 修正牛顿法

  • 修改点1:步长

    • 对于步长αk的修正:首先判断αk=1是否让目标函数充分下降;否,则采用线搜索方法重新确定αk;
  • 修改点2:方向

    • 对于方向(Hesse矩阵)的修正:选取dk=Bk1f(xk)
      • 2f(xk)0,则选取Bk=2f(xk)
      • 否则,采取修正方法(多种):
        • Bk:=2f(xk)+λI,其中,λ为适当正数保证Bk正定。
        • 考虑特征值分解:2f(xk)=QTΛQ,令bk=QTdiag(τi)Q
          • τi={λi, if λiδδ, otherwise ,其中δ为一适当正数。

6.6 拟牛顿法

6.6.1 基本思想

当前点xk处对f(xk)使用二次函数进行近似:

mk(x):=f(xk)+f(xk)T(xxk)+12(xxk)TBk(xxk),Bk0

利用minmk(x)的搜索方向:dk=Bk1f(xk);我们希望Bk尽量包含一些二阶信息,然后计算要相对简单。

Bk0为正定矩阵时,mk(x)是一个凸二次函数,求其最小值即可让mk(x)的梯度为0即可,求解即可得到:

xk+1=x=xkdk=xkBk1f(xk)

6.6.2 算法框架/流程
  • STEP 1:给定初始点x0,k:=0,ε>0,B0
  • STEP 2:判断是否满足f(xk)ε,是,则终止算法;
  • STEP 3:计算dk=Bk1f(xk)
  • STEP 4:使用线搜索法确定步长αk
  • STEP 5:令xk+1=xk+αkdk,k:=k+1,确定Bk+1,转STEP 1。
6.6.3 Bk+1矩阵的确定方法

(一) 拟牛顿方程(基本要求)

f(xk+1)f(xk)=Bk+1(xk+1xk)

对上式的简单理解:

首先由中值定理可得:f(xk+1)f(xk)=2f(ξ)(xk+1xk), ξ=λxk+(1λ)xk, λ(0,1)

对比发现:也就是我们希望Bk+1能够体现2f(ξ)的作用。

分析易知,Bk+1大小为n×n,其中变量个数为n(n+1)2(对称阵),但是等式只有n个方程,因此Bk+1会有多个满足条件。

yk:=f(xk+1)f(xk)sk:=xk+1xk,则拟牛顿方程简记为:

yk=Bk+1sk

此外,若记Hk=Bk1,拟牛顿方程也可以表示为:sk=Hk+1yk

下面我们将对利用已有信息具体获得Bk+1或者Hk+1

(二) 第一类方法

选择满足拟牛顿方程且与Bk近似的矩阵。

{ min BBk s.t. Bsk=yk,B=BTor{ min HHk s.t. Hyk=sk,H=HT

矩阵范数小知识:向量范数与矩阵范数

(三) 第二类方法

BkHk进行校正,如:令Bk+1=Bk+ΔB

  • rank-1校正:要求ΔB的秩为1;

    • SR-1方法:可以看作是对Bk进行rank-1校正

      • Bk+1=Bk+(ykBksk)(ykBksk)T(ykBksk)Tsk

      • 如何得到上式:

      • 该方法相对rank-2方法迭代公式更简单,但是不能保证正定性;适当条件下能达到n步超线性收敛。

        n步超线性收敛:

        limk=xk+1+nxxkx

  • rank-2校正:要求ΔB的秩为2;

    • DFP方法:可以看作是对Hk进行rank-2校正
      • Hk+1=Hk+HkykykTHkykTHkyk+skskTykTsk
      • 如何得到上式:注意下面图中的证明用到了对称秩1矩阵A的性质:A=uvT=uuT
    • BFGS方法:可以看作是对Bk进行rank-2校正
      • Bk+1=Bk+BkskskTBkskTBksk+ykykTykTsk
      • 如何得到上式:原理同上面DFP推导类似。
      • 拟牛顿方向需要计算Bk+11,可以利用Sherman-Morrison公式显示写出;
      • BFGS方法是被认为最有效的拟牛顿法;(适当前提下可证明)超线性收敛。
      • Broyden族:DFP与BFGS的线性组合!

7 无约束优化问题(叁)

7.1 共轭梯度法背景

1950年代,求解一类优化问题中:

min12xTQx+cTx,Q0,cRn

该类问题可直接通过求梯度然后令梯度为零即可:

f(x)=Qx+c=0

可知,需要求解线性方程组。当矩阵比较大时候,计算复杂,因此有人提出使用迭代法求解方程组,因此就有了"(线性)共轭梯度法"。

1960年代,该方法推广到求解一般性优化问题,此时该方法也被称为"(非线性)共轭梯度法"。

7.2 线性共轭梯度法

考虑以下优化问题:

min12xTQx+cTx,Q0,cRn

  • Q特殊一点为对角矩阵时:

f(x)=12xT[q10000qn]x+cTx

  • Q为一般情况(非对角矩阵)时:

拿到一个普通二次型,就要想办法将其转换为标准二次型,即就是只有平方项没有交叉项。常用的方法有线性替换,最常见的线性替换又是:对Q矩阵进行特征值和特征向量分解:

Q=STΛS

其中,S是由标准正交化之后的特征向量组成。

12xTQx+cTxxx^=Sx进行替换:

f(x^)=12x^TΛx^+(Sc)Tx^

此时就可以像对角矩阵情况类似,求解变得简单。求解得到x^后即可得到最终解:x=P1x^=PTx^

一定要记住,线性共轭梯度法被设计出来就是用来求解线性方程组。

7.2.1 共轭方向

考虑正定矩阵Q和非零向量di,dj,若:

diTQdj=0

则称di,dj关于矩阵Q共轭。

向量组d0,d1,,dk关于矩阵Q共轭,即两两共轭。

7.2.2 共轭 VS 正交
  • 若向量组d0,d1,,dk关于I共轭,则向量组d0,d1,,dk是正交向量组;

  • 若向量组d0,d1,,dk关于正定矩阵Q共轭,令Q=P2,则有:

    • diTQdj=diTPTPdj=(Pdi)T(Pdj)=0正交

    涉及小知识点:

    一个正定矩阵一定能分解为另一个正定矩阵的平方:Q=P2

    共轭向量组线性无关。

7.2.3 共轭方向法

min 12xTQx+cTx,Q0,cRn

给定初始点x0以及一组关于Q共轭方向d0,d1,,dn1,令:

xk+1:=xk+αkdk, k=0,1,,n1

其中,αk=argminϕ(α):=f(xk+αdk)。计算可得步长为:

ϕ(αk)=0αk=(Qxk+c)TdkdkTQdk=f(x)TdkdkTQdk

共轭方向法为一类方法,不同的选取共轭方向的方式就对应不同的共轭方向法,共轭梯度法是其中一种

7.2.4 共轭方向法具备的特征

以下特征均是基于问题:min12xTQx+cTx,Q0,cRn

点列{xk}k=1具有如下特征:

  • 特征1:f(xk)Tdi=0,i=0,1,,k1
  • 特征2:xk:=argmin{12xTQx+cTxxXk}
    • 其中,Xk={x0+i=0k1aidiaiR,i=1,2,,k1}

证明:参考视频。

7.3 共轭梯度法具体

7.3.1 基本思想

在迭代下降过程中,借助当前点xk处的梯度信息构造共轭方向。

7.3.2 算法框架/流程
  • STEP 1:给定初始点x0,k:=0,ε>0,记d0:=f(x0)
  • STEP 2:判断是否满足f(xk)ε,是,则终止算法;
  • STEP 3:计算αk=f(x)TdkdkTQdk
  • STEP 4:令xk+1=xk+αkdk,计算方向dk+1=f(xk+1)+some-termk:=k+1转STEP 1。
    • 其中,dk+1=f(xk+1)+βkdkβk=f(xk+1)QdkdkTQdk
    • 加上some-term是为了保证dk+1Q共轭。
7.3.3 公式简化

简化的目的:将这些表达式与目标函数的梯度比较直观地表现出来。

共轭梯度法的步长公式:

αk=f(x)TdkdkTQdk

可简化为:

αk=f(x)Tf(x)dkTQdk

共轭梯度法的步长公式中的系数:

βk=f(xk+1)QdkdkTQdk

可简化为:

(*)βk=f(xk+1)T[f(xk+1)f(xk+1)]f(xk)Tf(xk)

进一步简化为:

(88)βk=f(xk+1)Tf(xk+1)f(xk)Tf(xk)

注意:()()相等只有在f(x)为二次函数时候才相等。

7.4 非线性共轭梯度法

注意注意注意:上述推导全部是建立在线性共轭梯度法,基本函数是二次函数。

  • STEP 1:给定初始点x0,k:=0,ε>0,记d0:=f(x0)
  • STEP 2:判断是否满足f(xk)ε,是,则终止算法;
  • STEP 3:利用线性搜索计算αk
  • STEP 4:令xk+1=xk+αkdk,计算方向dk+1=f(xk+1)+βkdkk:=k+1转STEP1。
    • PRP方法:βk=f(xk+1)T[f(xk+1)f(xk+1)]f(xk)Tf(xk)
    • FR方法:βk=f(xk+1)Tf(xk+1)f(xk)Tf(xk)

7.5 一些说明

  • 在实践中,为保证每次产生的方向为下降方向,可能会对βk进行调整;

  • 具有二次终止性;

  • 实现过程中常采用n步重启策略,可达到n步二阶收敛;

    n步二阶收敛:limkxk+nxxk+nx2=γ

    • 原因1:较远的点对当前点贡献很小,可以忽略,因此重启;
    • 原因2:可能会将非线性共轭转变为线性共轭梯度法;

8 约束优化理论(壹)—最优性条件

本讲要讨论的约束优化问题为:

(P) { min f(x) s.t.gi(x)0, i=1,,mhi(x)=0, i=1,,l

记问题(P)的可行集为集合S={xgi(x)0, i=1,,m,hi(x)=0, i=1,,l}

本讲讨论问题的基本假设/前提:

  • 问题(P)中函数f(x),gi(x),hi(x)均为连续可微函数;

    注意,有几类特殊的非光滑函数存在不可微点,但是可以将其转化,例如:f(x)=max{x,x2},绘图易知该函数存在两个不可微的点,那么优化问题:

    minf(x)

    可以转化为:令t=f(x)

    minf(x)

    { min t s.t.f(x)t

    { min t s.t.xtx2t

    因为t最小时肯定是等于f(x)的,所以上面两个问题是等价的。

    推广来看:f(x)=max{aix+bi}这一类函数可以进行转换。

8.1 最优解的一阶必要条件(KKT条件)

8.1.1 KKT条件的内容

假设x是问题(P)的局部最优解,且x处某个“适当条件”成立,则存在λRm,μRl(m是不等式约束个数,l是等式约束个数)使得:

{f(x)+i=1mλigi(x)+i=1lμihi(x)=0λi>0,i=1,2,,mgi(x)0,i=1,2,,mhi(x)=0,i=1,2,,lλigi(x)=0,i=1,2,,m

其中,以上5个条件就是著名的KKT条件λi,μi是两组系数,又称为“拉格朗日乘子”

针对非凸问题设计优化算法时,如果能证明算法收敛到一个KKT点,那么就说明算法达到了一个基本要求,KKT点相当于无约束优化问题中的梯度为零的作用

8.1.2 证明KKT必要条件

(一) 几个概念

  • 对于xS,若点列{xk}S满足所有xkx,limkxk=x,则称为可行点列

  • 基本思路:若xS是局部最优解,则沿着任意可行点列目标函数不会下降(即当k充分大时,有f(xk)>f(x))。

  • 考虑x处集合D(x)={df(x)Td<0}:dD均为f(xk)x处的下降方向。

  • 考虑x处集合T(x)={αdα>0,d=limkxkxxkx,xkx,xkx,xkS},该集合称为x处的切锥。切锥里面包含的方向可以告诉我们:从x点可以沿着哪一些方向/曲线可以移动,示意图如下:

    上图中,红色箭头夹住部分为切锥包含的可行方向。

(二) 最优解的必要条件

x是问题(P)的局部最优解,则有:

D(x)T(x)=

只要证明上述表达式中描述的两个集合交集为空,等价于:任取αdT(x),都有f(x)Td0

8.1.3 与切锥关系紧密的两个集合
  • 可行方向集合

    • F(x)={dx+λdS,λ(0,δ), some δ>0}
    • 易知:F(x)T(x),即可行方向一定在切锥中。
  • 集合2:记x处的有效指标集I={igi(x)=0},定义下面集合

    • F1(x)={dgi(x)Td0,iI,hj(x)Td=0,j=1,2,,l}
    • 易知:T(x)F1(x)
    • 证明:
  • 综上:F(x)T(x)F1(x)

8.1.4 适当条件:约束规范(constrain qualification)

上文KKT条件描述中提到的适当条件就是此处要讨论的约束规范。在适当条件(约束规范下):T(x)=F1(x)

  • 常用的约束规范有:
    • 函数 —— gi(x),iI,hj(x),j=1,2,,l均为线性函数;
    • 向量组 —— gi(x),iI,hj(x),j=1,2,,l线性无关(LICQ);
    • Slater Condition
    • ……

xS是问题(P)的局部最优解,在满足上述某一种约束条件下,有:

D(x)T(x)=D(x)F1(x)=

即KKT条件的一种形式。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

xS是问题(P)的局部最优解,在满足上述某一种约束条件下,则KKT条件成立。

因为:根据Farkas引理,D(x)F1(x)=当且仅当KKT条件成立。

证明:观看视频,太难了。。。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

8.2 KKT条件的解释说明

8.2.1 KKT条件中各部分的名字

f(x)+i=1mλigi(x)+i=1lμihi(x)=0

λi>0,i=1,2,,m

gi(x)0,i=1,2,,m

hi(x)=0,i=1,2,,l

λigi(x)=0,i=1,2,,m

各部分组合的名字如下:

(对偶可行(Dual Feasible, DF)) {f(x)+i=1mλigi(x)+i=1lμihi(x)=0λi>0,i=1,2,,m

(原问题可行(Primal Feasible, PF)) {gi(x)0,i=1,2,,mhi(x)=0,i=1,2,,l

(互补松弛条件(Complementary Slack, CS))) {λigi(x)=0,i=1,2,,m

不知道前面有没有说互补松弛的作用:保证那些不起作用的不等式约束在第一行中对应的乘子为零;

等式约束由于不知道h(x)的梯度方向,所以对它没有约束;

传统的互补问题就是:两个向量都是非负的,求内积等于0,其要求为对应分量相乘为0。

8.2.2 KKT条件中拉格朗日乘子意义

KKT条件中拉格朗日乘子可反映约束条件右端项发生扰动时最优目标函数值的变化情况。

x是问题(P)的局部最优解,且设x满足KKT条件:

(P) { min f(x) s.t.gi(x)0, i=1,,mhi(x)=0, i=1,,l

8.2.3 KKT条件充分性

以上好像都是在讨论KKT条件的必要性,即已经知道x是局部最优解,那么在满足某一种约束条件下,KKT条件成立。

但我们也想知道什么时候会变成充分条件,即一个点满足KKT条件,则该点是问题(P)的最优解。

  • 当问题(P)中满足:

    • (1) f(x),gi(x),i=1,2,,m均为凸函数;
    • (2) hi(x),i=1,2,,l为线性函数;
  • 则满足条件的KKT点也是问题(P)(此两条条件限制下,问题P就是凸问题)的局部(全局)最优解。

    注意2点:

    一、凸问题局部最优解即为全局最优解;

    二、可能在一些其他问题,不满足上述两条条件(即问题P非凸),KKT点也有可能是局部最优解,但判断方法需要借助黑塞矩阵,下面会讲到。

9 约束优化理论(贰)—最优性条件—二阶充分条件

9.1 本讲基础

第八讲(三)KKT条件充分性部分内容可知:

当问题(P)中满足:

  • (1) f(x),gi(x),i=1,2,,m均为凸函数;

  • (2) hi(x),i=1,2,,l为线性函数;

则满足条件的KKT点也是问题(P)(此两条条件限制下,问题P就是凸问题)的局部(全局)最优解。

本将要解决的问题是,若通过验证,发现上面的条件(1)或者(2)不满足,那么还有没有什么其他条件说明当x满足KKT条件时,KKT点x是问题(P)的最优解。

假设x满足KKT条件:

f(x)+i=1mλigi(x)+i=1lμihi(x)=0

λi>0,i=1,2,,m

gi(x)0,i=1,2,,m

hi(x)=0,i=1,2,,l

λigi(x)=0,i=1,2,,m

令:

L(x)=f(x)+i=1mλigi(x)+i=1lμihi(x)

L(x)称为拉格朗日函数

简单分析L(x)可知其具备几个特征:

  • (1) 梯度为0L(x)=f(x)+i=1mλigi(x)+i=1lμihi(x)=0
  • (2) :L(x)=f(x)+i=1mλigi(x)+i=1lμihi(x)=f(x)
  • (3) :L(x)=f(x)+i=1mλigi(x)+i=1lμihi(x)f(x),xS

由上面(2)、(3)可知:若xL(x)的最优解(局部或者全局最优解都可以),则x是问题(P)的最优解。

xL(x)的局部最优解,则x是问题(P)的局部最优解;

xL(x)的全局最优解,则x是问题(P)的全局最优解。

小证明:

局部最优解情况:f(x)=L(x)=L(x)=f(x),xSNδ(x)

全局最优解情况:f(x)=L(x)=L(x)=f(x),xS

假设x满足KKT条件,则有:

  • (1):若2L(x)0,xS,则L(x)在集合S上是凸函数,则x是问题(P)的全局最优解;

  • (2):若2L(x)0,xSNδ(x),则L(x)在上x某一邻域是凸函数,则x是问题(P)的局部最优解;

  • (3):若2L(x)0,则x是问题(P)的严格局部最优解。

视频课程中这里有一部分分析推导,有时间记录

9.2 二阶充分条件

上一节学习了约束优化的一阶必要条件,即KKT条件,并通过Farkas引理证明了KKT条件以及在什么条件下KKT点即是最优解。这一节将学习约束优化的二阶充分条件

9.2.1 内容回顾

上一节最后提到若问题(P)是凸问题时,即问题(P)中:

  • (1) f(x),gi(x),i=1,2,,m均为凸函数

  • (2) hi(x),i=1,2,,l线性函数

  • (3) x是KKT点,即满足五条性质

x是最优解。

那么本节将要研究 —— 当上述条件中(1)或(2)中有一个条件不满足时,x仍满足是KKT点,什么情况下x会使是最优解呢?

9.2.2 问题分析

假设x满足KKT条件,则满足:

记一个新函数:

L(x)=f(x)+i=1mλigi(x)+i=1mμihi(x)

其中,λiμi为KKT条件中的Lagrange系数,则我们可以得到下面几条结论:

  • 【1】 由KKT条件中的(1)式可得:L(x)=0

  • 【2】 由KKT条件中的(4)(5)可得:L(x)=f(x)+i=1mλigi(x)+i=1lμihi(x)=f(x)

  • 【3】 xS,L(x)f(x)

  • 【4】 由【2】、【3】可知,若xL(x)的最优解,则x是问题(P)的最优解,并且这个最优解可以是局部最优解,也可以是全局最优解。

(一) 结论【3】的证明

因为xS,则gi(x)0,hi(x)=0,因此:

i=1lμihi(x)=0

又因为iI,λi0;iI,λi=0,因此:

i=1mλigi(x)0

所以可得【3】中结论:

L(x)f(x)

(二) 结论【4】的证明

假设x是全局最优解,则xS,L(x)L(x),由【2】【3】可得:

f(x)=L(x)L(x)f(x)

因此xf(x)的全局最优解。同理可证若xSNδ(x),则x是局部最优解。

9.2.3 几个推论

假设x满足KKT条件,则有:

  • 【1】 若2L(x)0,xS,则L(x)在集合S上是凸函数,则x是问题(P)的全局最优解;

  • 【2】 若2L(x)0,xSNδ(x),则L(x)在上x某一邻域是凸函数,则x是问题(P)的局部最优解;

  • 【3】 若2L(x)0,则x是问题(P)的严格局部最优解。

其中【1】【2】是根据凸函数的性质得到的,而【3】是无约束优化问题的充分条件,由【3】可知:

2L(x)d,d0

但在约束优化中,并不要求对所有的d都成立。假设对dF1(x)成立,之所以选择F1(x)是因为其与集合D(x)T(x)F(x)相比更直观好判断。因为目标函数是求最小值,因此可以将F1(x)中使目标函数值上升的方向排除掉。再来回顾一下F1(x)的定义:

F1(x)={dgi(x)Td0,iI,gi(x)Td=0,i=1,2,,l}

其中,集合I是有效指标集I={igi(x)=0}。由KKT条件可以得到λi0

gi(x)Td<0时,沿着d方向gi(x)值将变小,原来的约束条件为gi(x)0gi(x)变小相当于对不等式右端做了一个扰动变为:

gi(x)ε,ε<0

由上一节Lagrange乘子的意义可以得到目标函数f(x)的值将改变λiε,若λi=0,目标函数值将不变,若λi>0,目标函数值将变大λiε

I+={iλi>0,iI},I0={iλi=0,iI}

I=I+I0。因此F1(x)中明显不可行的方向为gi(x)Td<0λi>0的方向,记F1(x)排除不可行方向后的集合记为F2(x),则:

F2(x)={dgi(x)Td<0,iI0,gi(x)Td=0,iI+,hi(x)Td=0,i=1,2,,l}

同时可以得到F2(x)F1(x)

9.2.4 二阶充分条件定义

假设x是KKT点,易知:

  • L(x)=0
  • dT2L(x)d>0,dF2(x)

x是问题(P)的严格局部最优解。

9.2. 证明

反证:假设x是KKT点,但x不是问题(P)的严格局部最优解。则能找到一个点xkx,使得:

f(xk)f(x),xkS

dk=xkxxkxαk=xkx,则会得到两个点列:{dk}{αk},易得:

  • 因为xkx,因此{αk}0

  • {dk}是有界的,因此必然存在收敛子列,设最终{dk}d

则有:xk=x+αkdk

f(xk)f(x)=f(x)T(xkx)+αk22dkTf(x)dk+o(αk2)=αkf(x)Tdk+αk22dkTf(x)dk+o(αk2)0

gi(xk)gi(x)=gi(x)T(xkx)+αk22dkTgi(x)dk+o(αk2)=αkgi(x)Tdk+αk22dkTgi(x)dk+o(αk2)0

hi(xk)hi(x)=hi(x)T(xkx)+αk22dkThi(x)dk+o(αk2)=αkhi(x)Tdk+αk22dkThi(x)dk+o(αk2)=0

剩余的证明内容请参考:数值优化| 约束优化二阶充分条件 - 知乎最优化理论与方法-第九讲-约束优化(二):二阶充分条件 - Bilibili


参考资料:最优性理论 - BiCMR - 北京大学

笔记参考资料:

【1】数值优化| 共轭梯度法

【2】数值优化| 约束优化的KKT必要条件

【3】数值优化| 约束优化二阶充分条件

posted @   博客侦探  阅读(122)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示