约束最优化方法 (一) 最优性条件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约束最优化方法 (一) 最优性条件相关的知识,希望对你有一定的参考价值。
参考技术A之前讨论的是无约束最优化方法,这一节主要介绍的是带有约束的非线性规划问题,所谓的非线性规划,就是约束项含有平方这种。解这类问题有两种方法,一个是 容许方向法 、它是一种直接处理约束的方法;另一个是 罚函数法 ,它是将约束问题转变成一系列无约束问题,用无约束的极小点去逐渐逼近约束问题的极小点。但是在介绍这两种方法之前,要先介绍一些概念。
本节主要讨论一般约束问题的最优性条件。我们将先从仅含等式约束或不等式约束的问题入手,然后自然过渡到一般约束问题。所以这一节主要介绍各种约束下的最优性条件,也就是各种约束下,什么样的条件能够推出这个点是最优点、另外一种,已知各种约束下的最优点,能够推出什么条件。整体目录结构如下:
考虑仅含等式约束的 问题1 :
这个问题的最优性条件与求解方法在微积分中已从理论上得到了解决,这就是Lagrange定理和Lagrange乘子法。
定理1 :假设
这个定理的意义还在于,它把对等式约束问题的求解转化为对无约束问题的求解。
上式是最优性一阶必要条件 。
定理2 :在约束问题1中,假设:
的任意非零向量 ,都有:
这个定理的几何意义是,在Lagrange函数的驻点 处,如果Lagrange函数关于 的Hesse矩阵在 个约束(超)曲面的切平面的交集上正定(注意,并不需要在原来的空间中正定),那么 就是严格局部极小点。
这里就是直接给出两个定理,没办法,理解记忆吧。第一个定理相对来说比较重要一点。
下面将给出约束 问题2 :
的最优性条件。
定义1 :对于约束问题,设 , 若 使得某个不等式约束有 ,则该不等式约束 称为是关于容许点 的 起作用约束 ;否者,若 ,则该不等式约束称为是关于容许点的 不起作用约束 。
定义2 :设 是 中的非空集,且 。对于 ,若当 时,对于 ,必有 ,则集合 称为 以 为顶点的锥 。若锥 是凸集,则称为 凸锥 。
定义3 :设 是 中的非空集,且 。对于非零向量 ,若存在 ,当 时,必有 ,则 称为点 的 容许方向向量 ,其方向称为点 的 容许方向 。由点 的全部容许方向向量构成的集合称为点 的 容许方向集 ,或者说 容许方向锥 。
约束曲面 把整个空间分成两部分,梯度 总是指向包含容许集的那一侧。
把由点 的所有下降方向向量构成的集合称为点 的 下降方向锥 。
定理:设 在点 可微,则点 处的下降方向向量 必满足:
记 ,则 是点 处的下降方向集。显然 是 中的半空间。
接下来就是 几何最优性条件 的定义:(因为这个条件是仅借助点集的概念给出的,所以称为 几何最优性条件 ):
定理: 在约束问题2中,若 是局部最优点,则点 处的 容许方向锥 和 下降方向锥 的交集是空集。
上面这个定理仅仅是必要的,而不是充分的。也就是说知道这个点是最优点能够推断出容许方向锥和下降方向锥的交集是空集,但由容许方向锥和下降方向锥的交集是空集并不能推断出其是最优点。
这里要介绍:引理(Farkas)、引理(Gordan)、定理:Fritz John
引理(Farkas) :设 , , , 和 是 维向量,则满足:
的向量 也满足
的充要条件是,存在 非负数 , , , ,使得:
这个依旧不需要证明,相信它就完事了,因为直观上感觉就是非常正确的。可以看课本图4-6。或者下面这张图理解( 理解为 ):
定理:Fritz John: 在问题2中,设 是局部最优解, , , , , 在点 处可微,那么,存在不全为零的实数 , , , 使得:
上面这个式子我们来理解一下,因为这个 是最优点,所以这个容许集和下降方向集是空集。所以不存在向量 ,使得:
称为 互补松弛条件 。它表明:若 ,即 ,则必有 ;若 ,则必有 ,即 。
这个定理给你了问题2的一个 最优性必要条件 。上式称为Fritz John条件,满足Fritz-John条件的点称为 Fritz-John点 。 , , , 也称为Lagrange乘子。
Fritz-John条件仅是判别某一容许点是否为 最优点的必要条件 ,而不是充分条件。
如果Fritz-John条件中 时,Fritz-John条件失去实用价值。为了使得其大于0,就有了Kuhn-Tucker条件。
定理:Kuhn-Tucker:
在问题2中,假设
i) 是局部最优点;
ii) 在点 处可微;
iii) 点 处的全部起作用约束的梯度线性无关。那么存在实数 使得:
Kuhn-Tucker条件是Fritz John条件的特殊情况。
Kuhn-Tucker条件有明显的几何意义。在Kuhn-Tucker定理的公式中,删去不起作用约束项(注意,它们的系数是 ,当 ,Kuhn-Tucker条件可简写成:存在 ( )使得:
此式在几何上表示:若 是问题地最优解,根据Farkas引理可知,在此点处地目标函数地梯度必处在由起作用约束函数地梯度张成地凸锥之中。
之前是不等式约束,现在考虑一般约束问题地最优性条件,既有等式约束还有不等式约束的情况。我们这节就介绍一般约束问题下的 Fritz-John定理 和 Kuhn-Tucker定理 :
Fritz-John定理 :
考虑问题:
在上述问题中设 是局部最优点 , 在点 处可微。那么,存在不全为零的实数 ,使得:
这个定理可以看成是Lagrange定理的结论与Fritz-John定理的结论的合并。相当于多了 个等式约束。
Kuhn-Tucker定理 :
考虑问题:
假设:
i) 是局部最优解;
ii) 在点 处可微;
iii)点 处的全部起作用约束的梯度线性无关。
那么存在实数 使得:
定理:
在以下 凸规划 问题中:
假设 是可微 凸函数 , 是可微凹函数, 是线性函数。若 是上述问题的Kuhn-Tucker点,则 就是上述问题的全局最优点。(用Hesson矩阵即可证明是不是凸优化问题)。
约束优化之Lagrange乘子法KKT条件对偶问题最容易理解解读
1.无约束优化的常用方法
在讲带约束优化方法之前,我们先简单回顾一下常用的无约束优化方法。
1.梯度下降法
2.牛顿法/拟牛顿法
3.共轭梯度法
…
上面梯度系列的无约束条件下的最优化,基本解法是根据极值的必要条件一阶导数为0,通过泰勒展开等形式,构造不同数列不断逼近最优解。
2.带约束的优化
实际情况中,不带约束的场景比较少见,大部分都为带约束的优化问题。看一个大家都用的图:
上图中,蓝色的圈圈表示二元函数f(xy)投影在平面上的等高线,而蓝色的箭头则表示函数梯度方向。如果是不带预约条件的优化,我们直接用梯度下降法,沿着梯度方向找到使得函数值最小的点即可,这种解法我们已经很熟悉了,不再多说。
如果我们加上约束,即图中的黑线,该条线的意思是表示(x, y)的数值要落在黑线上才能满足约束条件。而蓝色圈圈(目标函数)与黑线(约束)有三种情况:
1.相离
说明两个函数没有交点,就是无解,此时不符合条件。
2.相交
两条曲线相交,说明是两个函数的解,但此时得到的一定不是最优解。因为相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小。
3.相切
如果两条曲线相切,说明是可行解。
假设目标函数为f(x),约束条件为g(x)=0,则两条曲线相交用数学式子可以表示为
∇
f
(
x
)
=
−
λ
∇
g
(
x
)
\\nabla f(x) = -\\lambda \\nabla g(x)
∇f(x)=−λ∇g(x)
其中,负号表示两者梯度方向相反。
3.等式约束与Lagrange乘子法
有如下优化问题:
m
i
n
f
(
x
)
s
.
t
.
g
(
x
)
=
0
\\beginaligned & min \\quad f(x) \\\\ & s.t. \\quad g(x) = 0 \\endaligned
minf(x)s.t.g(x)=0
为方便讨论,设f与g均为连续可导。Lagrange函数为
L
(
x
,
λ
)
=
f
(
x
)
+
λ
g
(
x
)
L(x, \\lambda) = f(x) + \\lambda g(x)
L(x,λ)=f(x)+λg(x)
其中,
λ
\\lambda
λ为Lagrange乘数。
通过上面的转换,我们将带约束优化的问题,转换成了无约束优化问题。
分别计算Lagrange函数对x与
λ
\\lambda
λ的偏导,并令其为0,就可以求得最优解。
∇
x
L
=
∂
L
∂
x
=
∇
f
+
λ
∇
g
=
0
∇
λ
L
=
∂
L
∂
λ
=
g
(
x
)
=
0
\\beginaligned & \\nabla_xL = \\frac\\partial L\\partial x = \\nabla f + \\lambda \\nabla g = 0 \\\\ & \\nabla_\\lambdaL = \\frac\\partial L\\partial \\lambda = g(x) = 0 \\endaligned
∇xL=∂x∂L=∇f+λ∇g=0∇λL=∂λ∂L=g(x)=0
其中第一式为定常方程式(stationary equation),如果我们将第二部分得到的结果移项,就会发现得到的结果与定常方程式完全一样。第二部分为约束条件。如果x为n维向量,则上面最终得到的是n+1个方程,包含有有n+1个变量,解这个线性方程组即可。
4.不等式约束与KKT条件
上面我们提到的是等式约束,实际情况中,可能还会有不等式约束条件。
先放一张大家都使用的图,方便理解。
对于不等式的条件,有两种情况:可行解
x
∗
x^*
x∗在g(x)<0的区域或者g(x)=0的边界上。
如果
x
∗
x^*
x∗在g(x)<0的区域,此时有没有g(x)<0这个条件,都是在
x
∗
x^*
x∗处取得极小值,相当于此时约束条件无效,原问题 退化成无约束优化问题。换句话说相当于不等式约束条件没有起到作用,此时可以直接最小化目标函数即可。
所以有:
∇
L
(
x
∗
)
=
0
,
λ
=
0
,
g
(
x
∗
)
<
0
\\nabla L(x^*) = 0, \\lambda=0, g(x^*)<0
∇L(x∗)=0,λ=0,g(x∗)<0
其中,
λ
=
0
\\lambda=0
λ=0相当于不等式约束没起作用。
如果
x
∗
x^*
x∗在g(x)=0的区域, 此时需要条件起作用,
λ
≠
0
\\lambda \\neq 0
λ=0。因此当可行解在g(x)=0上时,就变成了前面的等式约束,就可以用前面的朗格朗日乘子法求解。根据前面的分析不难得出此时需要满足的条件为
∇
L
(
x
∗
)
=
0
,
λ
>
0
,
g
(
x
∗
)
=
0
\\nabla L(x^*) = 0, \\lambda>0, g(x^*)=0
∇L(x∗)=0,λ>0,g(x∗)=0
如果将上面两个情况综合考虑,得到的条件为
λ
≥
0
g
(
x
∗
)
≤
0
λ
g
(
x
∗
)
=
0
\\lambda \\geq 0 \\\\ g(x^*) \\leq 0 \\\\ \\lambda g(x^*) = 0
λ≥0g(x∗)≤0λg(x∗)=0
下面我们将带不等式约束的优化问题做一般总结
有如下优化问题
m i n f ( x ) s . t . g j ( x ) = 0 , j = 1 , 2 , ⋯ , m h k ( x ) ≤ 0 , k = 1 , 2 , ⋯ , n \\beginaligned min \\quad & f(x) \\\\ s.t. \\quad & g_j(x) = 0, \\quad j=1, 2, \\cdots, m \\\\ & h_k(x) \\leq 0, \\quad k = 1, 2, \\cdots, n \\endaligned mins.t.f(x)gj(x)=0,j=1,2,⋯,mhk(x)≤0,k=1,2,⋯,n
我们可以将Lagrange函数写为
L
(
x
,
λ
j
,
μ
k
)
=
f
(
x
)
+
∑
j
=
1
m
λ
j
g
j
(
x
)
+
∑
k
=
1
n
μ
k
h
k
(
x
)
L(x, \\lambda_j, \\mu_k) = f(x) + \\sum_j=1^m \\lambda_j g_j(x) + \\sum_k=1^n \\mu_k h_k(x)
L(x,λj,μk)=f(x)+j=1∑mλjgj(x)+k=1∑nμkhk(x)
其中,
λ
j
\\lambda_j
λj是对应的等式约束
g
j
(
x
)
=
0
g_j(x)=0
gj(x)=0的拉格朗日乘子,
μ
k
\\mu_k
μk对应的是
h
k
(
x
)
≤
0
h_k(x) \\leq 0
hk(x)≤0的拉格朗日乘子(或者叫KKT乘子)。则KKT条件为:
∇
x
L
=
0
g
j
(
x
)
=
0
,
j
=
1
,
2
,
⋯
,
m
h
k
(
x
)
≤
0
,
k
=
1
,
2
,
⋯
,
n
μ
k
≥
0
,
μ
k
h
k
(
x
)
=
0
\\beginaligned & \\nabla_x L = 0\\\\ & g_j(x) = 0, \\quad j=1, 2, \\cdots, m \\\\ & h_k(x) \\leq 0, \\quad k=1,2,\\cdots, n \\\\ & \\mu_k \\geq 0, \\\\ & \\mu_k h_k(x) = 0 \\endaligned
∇xL=0gj(x)=0,j=1,以上是关于约束最优化方法 (一) 最优性条件的主要内容,如果未能解决你的问题,请参考以下文章