以前学机器学习的时候,在 SVM 中遇到过拉格朗日对偶问题,后来学习强化学习看自然梯度以及 TRPO 也遇到了拉格朗日对偶问题。这里,就把凸优化中的一些内容,尤其是最优性条件以及拉格朗日对偶问题总结一下。

无约束优化问题的最优性条件

先考虑无约束非线性规划问题
【凸优化】最优性条件 - 图1
其中决策变量 【凸优化】最优性条件 - 图2,目标函数 【凸优化】最优性条件 - 图3。我们先引进下降方向的概念。

下降方向

定义:设函数 【凸优化】最优性条件 - 图4。若存在 【凸优化】最优性条件 - 图5 使
【凸优化】最优性条件 - 图6
则称 【凸优化】最优性条件 - 图7【凸优化】最优性条件 - 图8【凸优化】最优性条件 - 图9 处的下降方向。

定理**:设 【凸优化】最优性条件 - 图10【凸优化】最优性条件 - 图11 处可微,【凸优化】最优性条件 - 图12。若 【凸优化】最优性条件 - 图13,则称 【凸优化】最优性条件 - 图14【凸优化】最优性条件 - 图15【凸优化】最优性条件 - 图16 处的下降方向。

这个定理是很显然的,梯度方向是函数值上升变化最大的方向,与它为钝角的方向就是函数值下降的方向。

记,【凸优化】最优性条件 - 图17,则 【凸优化】最优性条件 - 图18 中元素均为 【凸优化】最优性条件 - 图19【凸优化】最优性条件 - 图20 处的下降方向。

一阶最优性条件

一阶必要条件:设 【凸优化】最优性条件 - 图21【凸优化】最优性条件 - 图22 处可微。若 【凸优化】最优性条件 - 图23 是 (UNP) 的局部最优解,则 【凸优化】最优性条件 - 图24

这一点我们在高等数学里已经知道了,梯度为 0 的点是极值点的必要条件。一般的满足 【凸优化】最优性条件 - 图25 的点我们称之为平稳点

一阶充分条件:设 【凸优化】最优性条件 - 图26【凸优化】最优性条件 - 图27 上的下凸函数,并在在 【凸优化】最优性条件 - 图28 处可微。若 【凸优化】最优性条件 - 图29,则 【凸优化】最优性条件 - 图30 是 (UNP) 问题的全局最优解。这一点学过高数的都知道是显然的。

二阶最优性条件

二阶必要条件:设 【凸优化】最优性条件 - 图31【凸优化】最优性条件 - 图32 处二阶连续可微。若 【凸优化】最优性条件 - 图33 是 (UNP) 的局部最优解,则 【凸优化】最优性条件 - 图34【凸优化】最优性条件 - 图35 半正定。

这就是梯度为零向量,然后海森矩阵半正定。

二阶充分条件:设 【凸优化】最优性条件 - 图36【凸优化】最优性条件 - 图37 处二阶连续可微。 【凸优化】最优性条件 - 图38【凸优化】最优性条件 - 图39 正定。则 【凸优化】最优性条件 - 图40 是 (UNP) 的严格局部最优解。

注意到,严格局部最优也可能是半正定的,正定是充分条件,半正定是必要条件。
**
这些最优性条件都可以用多元函数的泰勒展开证明,泰勒展开如下:
【凸优化】最优性条件 - 图41

【凸优化】最优性条件 - 图42

无约束二次规划问题的最优性条件

无约束二次规划问题的通用形式为:
【凸优化】最优性条件 - 图43
其中 【凸优化】最优性条件 - 图44 是对称矩阵,【凸优化】最优性条件 - 图45

最优点的充要条件:设 【凸优化】最优性条件 - 图46。则 【凸优化】最优性条件 - 图47 是 (UQP) 的最优解的充要条件是 【凸优化】最优性条件 - 图48【凸优化】最优性条件 - 图49 半正定。
必要性:根据二阶必要条件,【凸优化】最优性条件 - 图50,显然必要性没问题
充分性:由 【凸优化】最优性条件 - 图51 为半正定矩阵可知,【凸优化】最优性条件 - 图52 是一个下凸的函数,对于下凸函数,平稳点一定是最优解。

约束优化问题的最优性条件

考虑约束非线性规划问题:
【凸优化】最优性条件 - 图53
其中决策变量 【凸优化】最优性条件 - 图54,可行域 【凸优化】最优性条件 - 图55。目标函数 【凸优化】最优性条件 - 图56

可行方向

可行方向定义:设集合 【凸优化】最优性条件 - 图57【凸优化】最优性条件 - 图58。若存在 【凸优化】最优性条件 - 图59,使
【凸优化】最优性条件 - 图60
则称 【凸优化】最优性条件 - 图61【凸优化】最优性条件 - 图62【凸优化】最优性条件 - 图63 处的可行方向。

对于 【凸优化】最优性条件 - 图64,记 【凸优化】最优性条件 - 图65【凸优化】最优性条件 - 图66【凸优化】最优性条件 - 图67 处的可行方向集。

可行下降方向定义:对于问题 (CNP),设 【凸优化】最优性条件 - 图68。若 【凸优化】最优性条件 - 图69,并且 【凸优化】最优性条件 - 图70【凸优化】最优性条件 - 图71【凸优化】最优性条件 - 图72 处的下降方向,则称 【凸优化】最优性条件 - 图73 是 (CNP) 在 【凸优化】最优性条件 - 图74 处的可行下降方向。

定理:设 【凸优化】最优性条件 - 图75【凸优化】最优性条件 - 图76【凸优化】最优性条件 - 图77 处可微。若 【凸优化】最优性条件 - 图78 是 (CNP) 的局部最优解,则
【凸优化】最优性条件 - 图79
这个定理是很显然的,极小值点是没有可行下降方向的。

下面分别分析线性约束集合和一般不等式约束集合的可行方向集。

带线性约束集合的可行方向集

【凸优化】最优性条件 - 图80,其中 【凸优化】最优性条件 - 图81。若 【凸优化】最优性条件 - 图82,则将 【凸优化】最优性条件 - 图83 进行分块:

【凸优化】最优性条件 - 图84

【凸优化】最优性条件 - 图85【凸优化】最优性条件 - 图86【凸优化】最优性条件 - 图87 处对应于起作用约束的系数矩阵,【凸优化】最优性条件 - 图88【凸优化】最优性条件 - 图89【凸优化】最优性条件 - 图90 处对应于不起作用约束的系数矩阵。约束起作用时,这个点刚好在某个约束边界上,那个边界起作用。

定理:设 【凸优化】最优性条件 - 图91,若 【凸优化】最优性条件 - 图92 ,并且公式 (1) 成立,则:
【凸优化】最优性条件 - 图93
这个定理粗看起来很奇怪,其实一点都不奇怪,看了后面的部分就很容易理解了。下面,我们来粗略的证明:
证明:设 【凸优化】最优性条件 - 图94,由于 【凸优化】最优性条件 - 图95 是可行方向有:存在 【凸优化】最优性条件 - 图96,使 【凸优化】最优性条件 - 图97,故
【凸优化】最优性条件 - 图98
由于 【凸优化】最优性条件 - 图99,显然有 【凸优化】最优性条件 - 图100

一般不等式约束集合的可行方向集

现在考虑约束 【凸优化】最优性条件 - 图101【凸优化】最优性条件 - 图102
【凸优化】最优性条件 - 图103,记 【凸优化】最优性条件 - 图104,当 【凸优化】最优性条件 - 图105 时,称约束 【凸优化】最优性条件 - 图106【凸优化】最优性条件 - 图107【凸优化】最优性条件 - 图108 处起作用的约束,或者称之为紧约束。再记:
【凸优化】最优性条件 - 图109
为什么定义这两个符号,为什么这两个符号里有梯度,对约束函数进行泰勒展开就很显然了。

定理:设 【凸优化】最优性条件 - 图110【凸优化】最优性条件 - 图111。若 【凸优化】最优性条件 - 图112【凸优化】最优性条件 - 图113【凸优化】最优性条件 - 图114 处可微,【凸优化】最优性条件 - 图115【凸优化】最优性条件 - 图116【凸优化】最优性条件 - 图117 处连续,则 【凸优化】最优性条件 - 图118。当 【凸优化】最优性条件 - 图119 为线性函数时,【凸优化】最优性条件 - 图120

这个定理我们不证明,我们只需要知道:对于非线性约束,可行方向集在 【凸优化】最优性条件 - 图121 之间就行了。这是很显然的事情,对于非线性约束,沿着切线(与梯度正交)的方向不是可行方向,而对于线性约束,沿着梯度垂直的方向是可行方向。

推论:设 【凸优化】最优性条件 - 图122【凸优化】最优性条件 - 图123【凸优化】最优性条件 - 图124【凸优化】最优性条件 - 图125 处可微, 若 【凸优化】最优性条件 - 图126【凸优化】最优性条件 - 图127【凸优化】最优性条件 - 图128 处可微,【凸优化】最优性条件 - 图129【凸优化】最优性条件 - 图130【凸优化】最优性条件 - 图131 处连续。若 【凸优化】最优性条件 - 图132 是 (CNP) 的局部最优解,则
【凸优化】最优性条件 - 图133
【凸优化】最优性条件 - 图134 为线性函数时,有 【凸优化】最优性条件 - 图135

这里就是说,下降方向集与可行方向集的交集为空。一般老师,非线性等式约束和不等式约束结合在一起的话,一般没有可行方向了,但存在序列可行方向。就是只能沿着约束条件的弯曲的边界走

序列可行方向

定义:设集合 【凸优化】最优性条件 - 图136【凸优化】最优性条件 - 图137【凸优化】最优性条件 - 图138。若存在序列 【凸优化】最优性条件 - 图139,有:【凸优化】最优性条件 - 图140,使
【凸优化】最优性条件 - 图141
则称 【凸优化】最优性条件 - 图142【凸优化】最优性条件 - 图143【凸优化】最优性条件 - 图144 处的序列可行方向。
【凸优化】最优性条件 - 图145【凸优化】最优性条件 - 图146【凸优化】最优性条件 - 图147 处的序列可行方向集,又称切锥。

下面给出几个要点:

  • 【凸优化】最优性条件 - 图148 是闭集和锥
  • 【凸优化】最优性条件 - 图149
  • 【凸优化】最优性条件 - 图150。若 【凸优化】最优性条件 - 图151 是 (CNP) 的局部最优解,则 (CNP) 在 【凸优化】最优性条件 - 图152 处不存在序列可行的下降方向。(显然,不证)


定义**:设 【凸优化】最优性条件 - 图153【凸优化】最优性条件 - 图154【凸优化】最优性条件 - 图155 处可微。若 【凸优化】最优性条件 - 图156是 (CNP) 的局部最优解,则 【凸优化】最优性条件 - 图157

现在考虑 【凸优化】最优性条件 - 图158 时的序列可行方向集。
【凸优化】最优性条件 - 图159。对 【凸优化】最优性条件 - 图160,记

【凸优化】最优性条件 - 图161


定理**:设【凸优化】最优性条件 - 图162。若 【凸优化】最优性条件 - 图163【凸优化】最优性条件 - 图164【凸优化】最优性条件 - 图165【凸优化】最优性条件 - 图166 处可微,【凸优化】最优性条件 - 图167【凸优化】最优性条件 - 图168【凸优化】最优性条件 - 图169 处可微,则 【凸优化】最优性条件 - 图170。当 【凸优化】最优性条件 - 图171【凸优化】最优性条件 - 图172 为线性函数时,【凸优化】最优性条件 - 图173

我们需要知道对于非线性等式约束,一般是没有可行方向的,只有序列可行方向。上面的定理也是很显然的东西。下面我们给出一个定理,但是不证明(不是很好证):

定理:设【凸优化】最优性条件 - 图174。若 【凸优化】最优性条件 - 图175【凸优化】最优性条件 - 图176【凸优化】最优性条件 - 图177【凸优化】最优性条件 - 图178 处可微,,【凸优化】最优性条件 - 图179【凸优化】最优性条件 - 图180【凸优化】最优性条件 - 图181 处连续, 【凸优化】最优性条件 - 图182【凸优化】最优性条件 - 图183【凸优化】最优性条件 - 图184 处可微,【凸优化】最优性条件 - 图185 线性无关,则

【凸优化】最优性条件 - 图186

通过以上两个定理我们知道:

【凸优化】最优性条件 - 图187

定理:设【凸优化】最优性条件 - 图188【凸优化】最优性条件 - 图189 是 (CNP) 的局部最优解,【凸优化】最优性条件 - 图190【凸优化】最优性条件 - 图191 处可微, 【凸优化】最优性条件 - 图192【凸优化】最优性条件 - 图193【凸优化】最优性条件 - 图194 处可微,,【凸优化】最优性条件 - 图195【凸优化】最优性条件 - 图196【凸优化】最优性条件 - 图197 处连续, 【凸优化】最优性条件 - 图198【凸优化】最优性条件 - 图199【凸优化】最优性条件 - 图200 处可微,有

  1. 【凸优化】最优性条件 - 图201 由线性约束组成,则 【凸优化】最优性条件 - 图202
  2. 【凸优化】最优性条件 - 图203 线性无关,则 【凸优化】最优性条件 - 图204

这个定理非常重要,直接引出了一阶必要条件。
**

一阶必要条件

我们现在讨论 【凸优化】最优性条件 - 图205时 (CNP) 的最优性条件,即考虑问题:
【凸优化】最优性条件 - 图206
分别建立其 Fritz John 条件和 K-T 条件。

定理Fritz John 条件,设 【凸优化】最优性条件 - 图207【凸优化】最优性条件 - 图208【凸优化】最优性条件 - 图209 处可微, 【凸优化】最优性条件 - 图210【凸优化】最优性条件 - 图211【凸优化】最优性条件 - 图212 处可微,,【凸优化】最优性条件 - 图213【凸优化】最优性条件 - 图214【凸优化】最优性条件 - 图215 处连续, 【凸优化】最优性条件 - 图216【凸优化】最优性条件 - 图217【凸优化】最优性条件 - 图218 处可微,若 【凸优化】最优性条件 - 图219 是 (CNP) 的局部最优解,则存在不全为 0 的 【凸优化】最优性条件 - 图220【凸优化】最优性条件 - 图221,使

【凸优化】最优性条件 - 图222

简单说一下证明过程,我们已经知道了 【凸优化】最优性条件 - 图223,这意味着

【凸优化】最优性条件 - 图224

无解,根据择一性定理,就可以得到 Fritz John 条件了。

由于在 Fritz John 条件中,目标函数的梯度的系数可能刚好为 0 使 FJ 条件成立,这会导致梯度信息丢失,为了保证该系数不为 0 ,需要对可行域加一些约束规格,由此得到 K-T (Kuhn-Tucker) 条件。下面我们介绍两种约束规格。

  1. 线性约束规格【凸优化】最优性条件 - 图225 是线性函数
  2. 正则点约束规格【凸优化】最优性条件 - 图226【凸优化】最优性条件 - 图227 的正则点,即 【凸优化】最优性条件 - 图228 线性无关。

定理KKT 条件,设 【凸优化】最优性条件 - 图229【凸优化】最优性条件 - 图230【凸优化】最优性条件 - 图231 处可微, 【凸优化】最优性条件 - 图232【凸优化】最优性条件 - 图233【凸优化】最优性条件 - 图234 处可微,,【凸优化】最优性条件 - 图235【凸优化】最优性条件 - 图236【凸优化】最优性条件 - 图237 处连续, 【凸优化】最优性条件 - 图238【凸优化】最优性条件 - 图239【凸优化】最优性条件 - 图240 处可微,若 【凸优化】最优性条件 - 图241 是 (CNP) 的局部最优解,并且约束规格成立 (二选一) 则存在 【凸优化】最优性条件 - 图242【凸优化】最优性条件 - 图243,使

【凸优化】最优性条件 - 图244

这个定理比较好证明,就是在 FJ 条件中把 【凸优化】最优性条件 - 图245 给消掉了。

事实上,在约束规格下,有 【凸优化】最优性条件 - 图246

【凸优化】最优性条件 - 图247【凸优化】最优性条件 - 图248 处可微时,KKT 条件可以写成。

【凸优化】最优性条件 - 图249

加上优化问题中已有的约束条件,KKT 条件可以写为:

【凸优化】最优性条件 - 图250

一般的我们称上面第一个式子为拉格朗日函数,【凸优化】最优性条件 - 图251 为拉格朗日乘子。

一阶充分条件

在凸性条件下,KKT 条件也是 (CNP) 的最优解的充分条件。

定理:**设【凸优化】最优性条件 - 图252【凸优化】最优性条件 - 图253【凸优化】最优性条件 - 图254, 在 【凸优化】最优性条件 - 图255 处可微。若 【凸优化】最优性条件 - 图256 是 (CNP) 的 KKT 点,且 【凸优化】最优性条件 - 图257 为凸函数,【凸优化】最优性条件 - 图258 是凹函数, 【凸优化】最优性条件 - 图259 是线性函数, 则 【凸优化】最优性条件 - 图260 是 (CNP) 问题的最优解.

所以对于凸优化问题, 我们利用 KKT 条件, 解方程找到 KKT 点就行了. 但是对于非凸优化问题, KKT点不一定是局部最优解, 这时需要用二阶最优性条件判断.

约束二次规划问题的最优性条件

现在考虑特殊的非线性规划问题: 约束二次规划问题:
【凸优化】最优性条件 - 图261
其中 【凸优化】最优性条件 - 图262 是对称矩阵, 【凸优化】最优性条件 - 图263. 记 【凸优化】最优性条件 - 图264. 设 【凸优化】最优性条件 - 图265 是 (CQP) 的 KKT 点, 【凸优化】最优性条件 - 图266 是对应的拉格朗日乘子, 【凸优化】最优性条件 - 图267 满足条件:

【凸优化】最优性条件 - 图268

【凸优化】最优性条件 - 图269【凸优化】最优性条件 - 图270 中与 【凸优化】最优性条件 - 图271 对应的部分, 则 KKT 条件为:

【凸优化】最优性条件 - 图272

定理: 【凸优化】最优性条件 - 图273. 则 【凸优化】最优性条件 - 图274 是 (CQP) 的局部最优解, 当且仅当存在 【凸优化】最优性条件 - 图275【凸优化】最优性条件 - 图276, 使

【凸优化】最优性条件 - 图277

这个定理这里不证明, 注意: 这里的优化问题是一个非凸的问题.

二阶最优性条件

直接看结论吧:
1.png

对偶及鞍点问题

拉格朗日对偶问题

考虑非线性规划问题:
【凸优化】最优性条件 - 图279
我们把上述问题的对偶问题定义为:
【凸优化】最优性条件 - 图280
其中
【凸优化】最优性条件 - 图281
【凸优化】最优性条件 - 图282 称为拉格朗日对偶函数.

弱对偶定理:** 设 【凸优化】最优性条件 - 图283 分别是原问题和对偶问题的可行解, 则
【凸优化】最优性条件 - 图284
这是很显然的事情, 根据定义可以直接看出来. 下面我们根据弱对偶定理给出四个推论:

推论1: 对于原问题和对偶问题, 必有
【凸优化】最优性条件 - 图285
这个推论就是把弱对偶定理抄了一遍.
推论2: 如果 【凸优化】最优性条件 - 图286, 其中 【凸优化】最优性条件 - 图287, 则 【凸优化】最优性条件 - 图288 分别是原问题和对偶问题的最优解.
推论3: 如果 【凸优化】最优性条件 - 图289, 则对每个 【凸优化】最优性条件 - 图290, 有 【凸优化】最优性条件 - 图291.
推论4: 如果 【凸优化】最优性条件 - 图292, 则原问题没有可行解.

根据弱对偶定理, 这四个推论都很显然. 我们根据弱对偶定理就知道, 一定有
【凸优化】最优性条件 - 图293
如果等号不成立, 则称存在对偶间隙. 为了保证不存在对偶间隙, 我们需要加一些限定, 得到强对偶定理. 这里, 我们不加证明的给出强对偶定理.

强对偶定理: 【凸优化】最优性条件 - 图294【凸优化】最优性条件 - 图295 中的一个非空凸集, 【凸优化】最优性条件 - 图296 分别是 【凸优化】最优性条件 - 图297 上的凸函数和凹函数, 【凸优化】最优性条件 - 图298【凸优化】最优性条件 - 图299 上的线性函数, 即 【凸优化】最优性条件 - 图300, 又设存在点 【凸优化】最优性条件 - 图301, 使得
【凸优化】最优性条件 - 图302

【凸优化】最优性条件 - 图303
且若上式中, inf 为有限值,则 【凸优化】最优性条件 - 图304【凸优化】最优性条件 - 图305 达到, 其中 【凸优化】最优性条件 - 图306. 如果 inf 在点 【凸优化】最优性条件 - 图307 达到, 必有
【凸优化】最优性条件 - 图308
强对偶定理表明, 对于凸优化问题, 在适当的约束下(线性等式约束), 原问题的极小值与对偶问题的极大值是相等的.

鞍点与最优性条件

考虑非线性规划问题:
【凸优化】最优性条件 - 图309
我们把上述问题的对偶问题定义为:
【凸优化】最优性条件 - 图310
其中
【凸优化】最优性条件 - 图311
【凸优化】最优性条件 - 图312 称为拉格朗日对偶函数. 并且我们定义拉格朗日函数为 :
【凸优化】最优性条件 - 图313

我们先定义拉格朗日函数的鞍点, 设 【凸优化】最优性条件 - 图314为拉格朗日函数, 【凸优化】最优性条件 - 图315如果对每个【凸优化】最优性条件 - 图316 都有
【凸优化】最优性条件 - 图317
则称 【凸优化】最优性条件 - 图318【凸优化】最优性条件 - 图319 的鞍点.

鞍点定理: 设 【凸优化】最优性条件 - 图320 是原问题拉格朗日函数的鞍点, 则 【凸优化】最优性条件 - 图321 分别是原问题和对偶问题的最优解. 反之, 若【凸优化】最优性条件 - 图322 分别凸函数和凹函数, 【凸优化】最优性条件 - 图323 是线性函数, 即 【凸优化】最优性条件 - 图324, 且 【凸优化】最优性条件 - 图325 满秩. 又设存在 【凸优化】最优性条件 - 图326 , 使 【凸优化】最优性条件 - 图327. 如果 【凸优化】最优性条件 - 图328 是原问题的最优解, 则存在 【凸优化】最优性条件 - 图329 其中 【凸优化】最优性条件 - 图330, 使 【凸优化】最优性条件 - 图331 是拉格朗日函数【凸优化】最优性条件 - 图332的鞍点.

所以我们知道, 对于一般优化问题, 鞍点一定是最优解. 但注意到, 对于一般问题(非凸优化), 最优解不一定是拉格朗日函数的鞍点, 不能认为鞍点是最优解的必要条件, 鞍点是充分条件.

关于原问题拉格朗日函数的鞍点以及KKT条件, 有下面的定理**: 设在原问题中, 可行集为 【凸优化】最优性条件 - 图333, 【凸优化】最优性条件 - 图334 满足 KKT 条件, 即找到了 【凸优化】最优性条件 - 图335 满足 KKT 条件. 又设 【凸优化】最优性条件 - 图336 为 凸函数, 【凸优化】最优性条件 - 图337 为凹函数, 【凸优化】最优性条件 - 图338 为线性函数, 则 【凸优化】最优性条件 - 图339 是原问题拉格朗日函数的鞍点. 反之, 设 【凸优化】最优性条件 - 图340 可微, 若 【凸优化】最优性条件 - 图341 是拉格朗日函数的鞍点, 则 【凸优化】最优性条件 - 图342 满足 KKT 条件.

所以我们知道: 对于一般优化问题, 鞍点一定满足 KKT 条件. 对于凸优化, 线性等式约束的优化问题, 满足 KKT 条件的点一定是鞍点.
**

参考文献

最优化理论与方法(第二版),陈宝林。