最优化方法_part2

第五讲 无约束优化问题(壹)

5.1 无约束优化问题

(一) 无约束优化问题:$ \min f(\boldsymbol x)$
  • 最小二乘问题:
  • 采用适当的方法可将约束优化问题转换为无约束优化问题;
  • 最优解的定义:
    • 局部最优解
    • 全局最优解
    • 严格局部/全局最优解:即上面式子提到的
(二) 无约束优化问题最优性条件

考虑无约束优化问题:

  • 为凸函数,则是最优解等级于
  • 为一般函数(即不一定是凸函数):
    • 必要条件:若是最优解,则
      • 上面两条分别对应“一阶必要条件”“二阶必要条件”
      • 泰勒展开形式
    • 充分条件:若,则严格最优解(局部?)

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

5.2 无约束优化算法概要

(一) 迭代下降算法

给定初始点,产生点列,并且

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

    • 策略1:线搜索方法

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

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

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

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

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

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

(二) (基于线搜索)下降算法基本思路
  • STEP1:给定初始点
  • STEP2:判断是否满足终止条件;是则终止
  • STEP3:否则寻找处的下降方向
  • STEP4:设置步长,使得
  • STEP5:令;令,转STEP1。

1 终止条件

常用的终止条件:

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

其他终止条件:

2 下降方向

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

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

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

3 步长

,为一元函数。则可建模为:

在确定$\alpha_k$的过程称为一维线搜索

4 点列收敛性/收敛速度

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

(三) 求解步长——线搜索方法详解

求解一元问题:

其解记为

1 为一个简单函数

为一个简单函数,如二次函数:。黑塞矩阵正定则$f$为凸函数,则也是凸函数。代入可得:

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

2 为一个复杂非线性函数

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

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

    • 首先找到一个搜索区间,想办法缩小搜索区间(注意缩小时不用吧$\alpha^*$扔掉),缩小到一定程度时,则可将区间内的一点作为最优解的近似。
    • 搜索区间:需要包含单谷(即在搜索区间内,函数只有一个下凸,且要注意以下推导都基于此前提)
    • 方法:选取且满足
      • ,则得到新的搜索区间为
      • ,则得到新的搜索区间为
    • 常见的直接搜索法:
      • 均匀搜索法:
        • 比较相邻3个点对应的函数值,若对于某个,有,则
        • 得到新的搜索区间
      • 黄金区间法(0.618法):
        • ,则,即新的搜索区间;
      • 基于导数信息的二分法
        • 记区间中点,计算该点的导数值
        • ,则
        • ,则
        • ,则
  • 非精确线搜索

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

    • Armijo条件:

    • Goldstein法则:除Armijo条件外还要去满足:

(四) 补充:收敛性

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

  • 为保证全局收敛,步长和下降方向的选取均需满足定的条件:
    • 记当前点处所选取下降方向与负梯度方向的夹角为

Zoutendijk定理说明:

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

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

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

(2) 收敛到全局最优解

  • 适当条件下,迭代点列满足:,点列收敛

  • 当每次选取时均保证满足,则:

    通俗讲就是不要让下降方向与负梯度方向的夹角太接近,夹角尽量小。

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

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

记迭代过程为,则

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

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

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

第六讲 无约束优化问题(贰)

6.1 收敛速度

设序列收敛到,若存在极限:

  • 时,则称为线性收敛;
  • 时,则称为超线性收敛。

若存在某个 ,有:

则称阶收敛。当时,阶收敛必定为超线性收敛,但反之不一定成立。

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

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

6.2 坐标轴交替下降法

(一) 基本思想

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

(二) 算法框架/流程
  • STPE 1:给定初始点

  • STPE 2:判断是否满足,是,则终止算法;

  • STPE 3:记,令

    其中,

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

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

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

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

  • STPE4:令,转STPE1。

(三) 优缺点

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

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

(四) 改进方法

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

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

(一) 基本思想

选择处负梯度作为搜索方向,即

(二) 优缺点

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

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

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

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

    • 原因2:若迭代中步长的精确最小点,则,即

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

6.4 牛顿法

(一) 基本思想

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

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

  • 纯牛顿法:步长

    因为

(二) 算法框架/流程
  • STPE 1:给定初始点
  • STPE 2:判断是否满足,是,则终止算法;
  • STPE 3:计算
  • STPE4:令,转STPE1。
(三) 优缺点

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

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

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

6.5 修正牛顿法

  • 修改点1:步长
    • 对于步长的修正:首先判断是否让目标函数充分下降;否,则采用线搜索方法重新确定;
  • 修改点2:方向
    • 对于方向(Hesse矩阵)的修正:选取
      • ,则选取
      • 否则,采取修正方法(多种):
        • ,其中,为适当正数保证正定。
        • 考虑特征值分解:,令
          • ,其中为一适当正数。

6.6 拟牛顿法

(一) 基本思想

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

利用的搜索方向:;我们希望尽量包含一些二阶信息,然后计算要相对简单。

$\boldsymbol B_k \succ 0$为正定矩阵时,是一个凸二次函数,求其最小值即可让的梯度为0即可,求解即可得到:

(二) 算法框架/流程
  • STPE 1:给定初始点
  • STPE 2:判断是否满足,是,则终止算法;
  • STPE 3:计算
  • STPE 4:使用线搜索法确定步长
  • STPE 5:令,确定,转STPE1。
(三) $\boldsymbol B_{k+1}$矩阵的确定方法

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

对上式的简单理解:

首先由中值定理可得:

对比发现:也就是我们希望能够体现的作用。

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

,则拟牛顿方程简记为:

此外,若记,拟牛顿方程也可以表示为:

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

2 第一类方法

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

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

3 第二类方法

进行校正,如:令

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

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

      • 如何得到上式:

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

        $n$步超线性收敛:

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

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

第七讲 无约束优化问题(叁)

7.1 共轭梯度法背景

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

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

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

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

7.2 线性共轭梯度法

考虑以下优化问题:

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

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

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

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

进行替换:

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

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

(一) 共轭方向

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

则称关于矩阵共轭。

向量组关于矩阵共轭,两两共轭。

(二) 共轭 VS 正交
  • 若向量组关于共轭,则向量组是正交向量组;

  • 若向量组关于正定矩阵共轭,令,则有:

    • 正交

    涉及小知识点:

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

    共轭向量组线性无关。

(三) 共轭方向法

给定初始点以及一组关于共轭方向,令:

其中,。计算可得步长为:

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

(四) 共轭方向法具备的特征

以下特征均是基于问题:

点列具有如下特征:

  • 特征1:
  • 特征2:
    • 其中,

证明:参考视频。

7.3 共轭梯度法具体

(一) 基本思想

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

(二) 算法框架/流程
  • STPE 1:给定初始点,记
  • STPE 2:判断是否满足,是,则终止算法;
  • STPE 3:计算
  • STPE4:令,计算方向转STPE1。
    • 其中,
(三) 公式简化

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

共轭梯度法的步长公式:

可简化为:

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

可简化为:

进一步简化为:

7.4 非线性共轭梯度法

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

  • STPE 1:给定初始点,记
  • STPE 2:判断是否满足,是,则终止算法;
  • STPE 3:利用线性搜索计算
  • STPE4:令,计算方向转STPE1。
    • PRP方法:
    • FR方法:

7.5 一些说明

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

  • 具有二次终止性;

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

    n步二阶收敛:

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

第八讲 约束优化理论(壹)—最优性条件

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

记问题(P)的可行集为集合

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

  • 问题(P)中函数均为连续可微函数;

    注意,有几类特殊的非光滑函数存在不可微点,但是可以将其转化,例如:

    \min f( x)

    \min f( x) \\
    \Downarrow \\
    \begin{cases}\text { min } &t \\
    \text{ s.t.} & f( x) \leq t\end{cases} \\
    \Downarrow \\
    \begin{cases}\text { min } &t \\
    \text{ s.t.} & x \leq t\\
    & x^2\leq t\end{cases}
    f(x) = \max \begin{Bmatrix} a_i x + b_i \end{Bmatrix}$$这一类函数可以进行转换。

    >

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

(一) KKT条件的内容

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

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

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

(二) 证明KKT必要条件

1 几个概念

  • 对于,若点列满足所有,则称为可行点列

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

  • 考虑处集合均为处的下降方向。

  • 考虑处集合,该集合称为处的切锥。切锥里面包含的方向可以告诉我们:从点可以验证哪一些方向/曲线可以移动,示意图如下:

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

2 最优解的必要条件

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

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

(三) 与切锥关系紧密的两个集合
  • 可行方向集合
    • 易知:,即可行方向一定在切锥中。
  • 集合2:记处的有效指标集,定义下面集合

    • 易知:
    • 证明:
  • 综上:

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

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

  • 常用的约束规范有:
    • 函数——均为线性函数;
    • 向量组——线性无关(LICQ);
    • Slater Condition
    • ……

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

即KKT条件的一种形式。

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

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

因为:根据Farkas引理,当且仅当KKT条件成立。

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

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

8.2 KKT条件的解释说明

(一) KKT条件中各部分的名字

各部分组合的名字如下:

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

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

(二) KKT条件中拉格朗日乘子意义

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

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

(三) KKT条件充分性

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

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

  • 当问题(P)中满足:

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

    注意2点:

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

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

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

9.1 本讲基础

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

  • 当问题(P)中满足:
    • (1) 均为凸函数;
    • (2) 为线性函数;
  • 则满足条件的KKT点也是问题(P)(此两条条件限制下,问题P就是凸问题)的局部(全局)最优解。

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

假设满足KKT条件:

令:

  • (2)
  • (3):

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

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

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

小证明:

局部最优解情况:

全局最优解情况:

假设满足KKT条件,则有:

  • (1):若,则在集合上是凸函数,则是问题(P)的全局最优解;
  • (2):若,则在上某一邻域是凸函数,则是问题(P)的局部最优解;
  • (3):若,则是问题(P)的严格局部最优解;

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

9.2 二阶充分条件

下面是本讲内容的核心:

(一) 二阶充分条件定义

假设是KKT点,易知:

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

(二) 证明

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

,则会得到两个点列:,易得:

  • 因为,因此

则有:

  • Copyrights © 2015-2024 wjh
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信