带约束的最优化问题

有约束的优化问题求解——Karush-Kuhn-Tucker (KKT)条件 前言:由于本科学习的数理知识较为基础,没有涉及到优化问题相关知识,在遇到优化问题时,满脸问号这是个啥子嘞?相信很多小伙伴也有和我一样的感受。在网上一顿神搜索,又查阅了相关的书籍,终于有了一点感悟。由于网上相关的知识较为零碎,我将其整理了一下,一是作为学习笔记,二是方便后面的小伙伴们学习。 Karush-Kuhn-Tucker (KKT)条件是非线性规划(nonlinear programming)最佳解的必要条件。KKT条件将Lagrange乘数法(Lagrange multipliers)所处理涉及等式 阅读详情

支持向量机SVM的训练过程中需要求解带约束的最优化问题。

带约束的最优化问题通常表述如下:

objective:minw f(w)s.t. {gi(w)≤0,hj(w)=0,i=1,2,3...n;j=1,2,3...m;不等式约束等式约束 o b j e c t i v e : min w   f ( w ) s . t .   { g i ( w ) ≤ 0 , i = 1 , 2 , 3... n ; 不等式约束 h j ( w ) = 0 , j = 1 , 2 , 3... m ; 等式约束

gi(w) g i ( w ) , hj(w) h j ( w ) 和 f(w) f ( w ) 一般都是连续可导的。要求在满足 gi(w)≤0,hj(w)=0 g i ( w ) ≤ 0 , h j ( w ) = 0 的前提下求能使得目标函数 f(w) f ( w ) 最小化的 w w 。

学习支持向量机SVM时,拉格朗日对偶、Slater条件、KKT条件等一大堆概念席卷而来,让没系统学习过凸优化的笔者一头雾水,估计不少人都是这样吧。
不幸的是笔者在数学相关问题上经常一不小心就陷入死磕,遇到没想明白的问题就总惦记着。另外笔者还是个懒于动手的人,但好在数学是一门完全不需要动手的学科,你只要靠想就可以,最多需要在纸上画画,完全不用做什么实验或者手工体力活儿,嗯,很适合笔者这种懒人,这也是笔者为什么从一个电气工程学生慢慢偏离航向发展成一个程序猿的原因。
回到我们要说的SVM中的优化问题。为什么要引入一堆系数把约束条件与目标函数组合到一起?为什么满足了KKT条件就是符合条件的解? 为什么可以转化为对偶问题?什么是Slater条件?在讲SVM的资料中通常不会详细展开这些问题,只是告知读者有这么回事。带着一排排问号,翻阅文献、Wiki、博客,加上自己的一些思考,算是把不少问题整理清楚了。笔者希望能把这些问题用容易理解的方式讲述明白,通过这一系列博文,将相关问题由易到难一一做出解释,希望这个系列的文章能帮更多人解惑。

本系列文章包括:
1. 纯等式约束时的optimalize问题
2. 纯不等式约束时的optimalize问题
3.混合约束时的optimalize问题——KKT条件与拉格朗日对偶问题
4.强对偶性的证明与Slater条件

1. 纯等式约束时的optimalize问题

这一类问题的范式如下:

objective:minw f(w)s.t:hj(w)=0,j=1,2,3...m;

在满足 hj(w)=0 h j ( w ) = 0 的条件下使 f(w) f ( w ) 最小化。 hj(w) h j ( w ) 和 f(w) f ( w ) 都应是连续可导的。上面纯代数的形式会让人不容易看到此类问题的本质,我们希望对这类问题有一个直观的几何理解。首先我们来看一下每个等式约束的含义。

等式约束的几何意义

对于 hj(w)=0 h j ( w ) = 0 ,如果 w w 是一个3维变量,那所有满足hj(w)=0的 w w 点集通常会组成一个 2 维的曲面。特别当hj(w)是 w w 的线性函数时,比如 :

hj(w)=a1wx+a2wy+a3wz+b

其中 wx、wy、wz w x 、 w y 、 w z 分别是w w 在三个维度上的分量,a1、a2、a3、b是某些常数。这时 hj(w)=0 h j ( w ) = 0 就是三维空间中的一个平面。对于通常的非线性函数而言, hj(w)=0 h j ( w ) = 0 一般对应一个曲面。


如果w w 是更高维的变量,维数设为dw,那hj(w)=0 h j ( w ) = 0 一般对应一个(dw−1) ( d w − 1 ) 维的子空间,或者说(dw−1) ( d w − 1 ) 维的曲面。注意,当我们下面再提到”面”这个概念时,它不一定代表狭义的二维面,而可以是对任意维度的一个子空间的称谓。
借用下物理中的概念:如果将hj(w) h j ( w ) 看做空间中某个向量场的势函数,这个向量场就是hj(w) h j ( w ) 的梯度场∇hj(w) ∇ h j ( w ) ,而hj(w)=0 h j ( w ) = 0 所对应的子空间就是该梯度场的0等势面。在等势面上任一点的梯度都与该点邻域内的等势面垂直,即若w∗ w ∗ 是等势面上一点,则∇hj(w∗) ∇ h j ( w ∗ ) 垂直于该等势面。(通常等势面是个曲面,当我们说垂直的时候,只是针对该面上某个点的切面)
进一步的,c∇hj(w∗) c ∇ h j ( w ∗ ) 构成了一个1维的子空间Gj G j ,这个子空间与(dw−1) ( d w − 1 ) 维的0等势面(在w∗ w ∗ 处的切面)垂直,因此它们互为补空间(相互垂直且维度之和是dw d w )。这意味着,在w∗ w ∗ 处所有与0等势面垂直的向量都在Gj G j 子空间中,即都可表示成一个常数与∇hj(w∗) ∇ h j ( w ∗ ) 相乘。
继续往下读之前先确保理解了上面几段的内容。提示:在本文中遇到高维相关结论,可以先在大脑里以我们熟悉的三维空间举例理解。
只有一个等式约束时目标函数与约束函数的梯度关系
再回到我们的问题,这里我们有m个等式约束,每个约束都对应一个0等势面,m个约束同时作用,相当于把可行域限制在了这m个0等势面的交集上。这个交集是什么样子?它也是一个子空间,只不过维数可能更低。比如三维空间中两个不平行的面(2维)的交集,是一条1维的线。我们先称呼前面提到的这个交集为”公共0势面”。
假设公共0势面的维度是d0 d 0 ,通常d0=dw−m d 0 = d w − m 。而各hj(w) h j ( w ) 在公共0势面上某点w∗ w ∗ 处的梯度向量∇hj(w∗) ∇ h j ( w ∗ ) 都与公共0势面垂直,且共有m个这样的向量,因此这些梯度向量组合成的m维子空间G G 与公共0势面互补。意味着:w∗处所有与公共0势面垂直的向量都在G G 子空间中,即都可表示成:

V=m∑j=1cj∇hj(w∗)

当然,d0 d 0 也有大于dw−m d w − m 的时候,但这并不影响上面的结论。假如m个等势面中有某(t+1) ( t + 1 ) 个等势面是相切的,这时公共等势面变成了dw−(m−t) d w − ( m − t ) 维,比正常时候多了t个维度;但另一方面,梯度空间G也会因此而减少t个维度,因为有(t+1) ( t + 1 ) 个梯度是平行的,它们只能提供1个维度。此时,上面的结论保持不变

公共0势面上的极值条件

我们已经知道,满足所有等式约束的点,都在前面提到的公共0势面上。那我们的目标函数f(w) f ( w ) 的极值点怎么找呢?
通常,在没有约束的时候,我们要找f(w) f ( w ) 的极值点,只要找f(w) f ( w ) 梯度为0的点,即∇f(w) ∇ f ( w ) 是0。而我们把可行域限制在公共0势面上之后呢?对,我们只要要求梯度向量∇f(w) ∇ f ( w ) 在公共0势面上的分量为0即可,换句话说,梯度向量与公共0势面垂直。
为了表达具体一点我们不得不把倒霉的w∗ w ∗ 再抓回来当我们的小白鼠。我们继续把它在公共0势面上,看一下它怎样才能变成极值点。
我们要求f(w) f ( w ) 在w∗ w ∗ 处的梯度向量∇f(w∗) ∇ f ( w ∗ ) 与该处的公共0势面垂直,意味着∇f(w∗) ∇ f ( w ∗ ) 必然在前面提到的梯度子空间G上,即它可以由各个等式约束函数在w∗ w ∗ 处的梯度线性组合而成,即存在一系列系数βj β j ,满足下式:
∇f(w∗)+m∑j=1βj∇hj(w∗)=0

∇ f ( w ∗ ) + ∑ j = 1 m β j ∇ h j ( w ∗ ) = 0

这就是判定 w∗ w ∗ 是否是可行域内极值点的方法。

结论

当我们求解纯等式约束下的最优化问题时,我们只需求解如下方程组即可求得候选解,然后从中挑选最优解:
求解w和β{∇f(w)+∑mj=1βj∇hj(w)=0hj(w)=0for j=1,2...m

求 解 w 和 β { ∇ f ( w ) + ∑ j = 1 m β j ∇ h j ( w ) = 0 h j ( w ) = 0 f o r   j = 1 , 2... m

或者我们可以构造一个能把约束条件与目标函数融合到一起的新函数:
L(w,β)=f(w)+m∑j=1βjhj(w)
L ( w , β ) = f ( w ) + ∑ j = 1 m β j h j ( w )

不错,狡猾的笔者偷偷把 拉格朗日乘子式的雏形列了出来,就在读者察觉到怎么读了这么久还没看到拉格朗日大人的踪影是不是走错片场了的时候。
这时,上面的方程组其实就是
求解w和β{∂L∂wk=0for k=1,2,3...dw(w的维数)∂L∂βj=0for j=1,2...m
求 解 w 和 β { ∂ L ∂ w k = 0 f o r   k = 1 , 2 , 3... d w ( w 的 维 数 ) ∂ L ∂ β j = 0 f o r   j = 1 , 2... m

多说两句,这个方程组中共有 (dw+m) ( d w + m ) 个未知量和方程。
其中 ∂L∂wk=0 ∂ L ∂ w k = 0 是同时包含 w,β w , β 的方程,这样的方程共有 dw d w 个;
而 ∂L∂βj=hj(w)=0 ∂ L ∂ β j = h j ( w ) = 0 是只包含 w w 的方程,这样的方程共有m个。为使w有解,m应小于 w w 的维数dw,否则对 w w 的约束方程数将大于w的变量个数导致约束太强、各约束方程无法同时被满足而无解;

因此当d>m d > m 时,上面的方程组通常是有解的。特别是当目标函数f(w) f ( w ) 是w w 的二次函数、hj(w)都是w的一次函数即仿射函数时,上面的方程组就变了一个线性方程组,可以用线性代数方法直接求解

简单解释一下:
当f(w) f ( w ) 是w w 的二次函数、hj(w)是w w 的一次函数时,他们对wk的偏导分别是w w 的一次和零次(常数)函数,所以他们的组合函数 L(w,β)对wk w k 的偏导∂L∂wk ∂ L ∂ w k 就是w,β w , β 的一次函数,∂L∂wk=0 ∂ L ∂ w k = 0 就是一个线性方程;

而∂L∂βj=0 ∂ L ∂ β j = 0 等价于hj(w)=0 h j ( w ) = 0 ,hi(w) h i ( w ) 是w w 的一次函数,因此所有的hj(w)=0也都是线性方程;

于是整个方程组就变成了线性方程组

一句话概括

求解等式约束下的最优化问题,只需要解个方程组就可以找到候选极值点,然后在方程组的各个解中筛选出满足条件的最小值点即可(该方程组有可能是多解的)。

如果目标函数是二次函数,且约束都是线性的,那我们只需要求解一个线性方程组。

2. 纯不等式约束时的optimalize问题

这一类问题的范式如下:
objective:minw f(w)s.t:gi(w)≤0,i=1,2,3...n;

o b j e c t i v e : m i n w   f ( w ) s . t : g i ( w ) ≤ 0 , i = 1 , 2 , 3... n ;

gi(w) g i ( w ) 和f(w) f ( w ) 都应是连续可导的。为了方便理解,我们先看只有一个不等式约束时的情形

只有一个不等式约束的情况

objective:minw f(w)s.t:g1(w)≤0

o b j e c t i v e : m i n w   f ( w ) s . t : g 1 ( w ) ≤ 0

对于某个给定的 w∗ w ∗ ,如果它在可行域的内部,即 g1(w∗)<0 g 1 ( w ∗ ) < 0 时,只需判断 f(w) f ( w ) 在 w∗ w ∗ 处的梯度 ∇f(w∗) ∇ f ( w ∗ ) 是否为0即可判断其是否是可行域上的候选极值点。
而如果 w∗ w ∗ 在可行域的边界,即 g1(w)=0 g 1 ( w ) = 0 时,情况就稍微复杂。首先,我们要保证至少在边界面上, w∗ w ∗ 是一个极值点(条件一);其次,还要保证在可行域内部, w∗ w ∗ 的邻域内的其他点的函数值都比 f(w∗) f ( w ∗ ) 大(条件二)。
为满足条件一, ∇f(w∗) ∇ f ( w ∗ ) 在边界面上的梯度分量应为0,即 ∇f(w∗) ∇ f ( w ∗ ) 与边界面垂直。而边界面其实是 g1(w) g 1 ( w ) 的零等势面,因此 ∇g1(w∗) ∇ g 1 ( w ∗ ) 也垂直于边界面。这样 ∇f(w∗) ∇ f ( w ∗ ) 就应与 ∇g1(w∗) ∇ g 1 ( w ∗ ) 平行,即 ∇f(w∗)+α1∇g1(w∗)=0
∇ f ( w ∗ ) + α 1 ∇ g 1 ( w ∗ ) = 0

但这还不够,我们还要考虑不在边界上的内点。设 (w∗+Δw) ( w ∗ + Δ w ) 是邻域内任一点,则当 Δw Δ w 满足如下条件时:(注意 Δw Δ w 与梯度一样都是向量,而非标量) ∇g1(w∗)⋅Δw≤0
∇ g 1 ( w ∗ ) ⋅ Δ w ≤ 0

(w∗+Δw) ( w ∗ + Δ w ) 就是可行域上的点,因为这时满足 g1(w∗+Δw)=g1(w∗)+∇g1(w∗)⋅Δw≤0 g 1 ( w ∗ + Δ w ) = g 1 ( w ∗ ) + ∇ g 1 ( w ∗ ) ⋅ Δ w ≤ 0 。
为使 f(w) f ( w ) 能在 w∗ w ∗ 处取可行域上的极小值,对于可行域内的所有 Δw Δ w 须满足 ∇f(w∗)⋅Δw≥0 ∇ f ( w ∗ ) ⋅ Δ w ≥ 0 ,即
−α1∇g1(w∗)⋅Δw≥0
− α 1 ∇ g 1 ( w ∗ ) ⋅ Δ w ≥ 0

而 ∇g1(w∗)⋅Δw≤0 ∇ g 1 ( w ∗ ) ⋅ Δ w ≤ 0 ,因此此时 α1≥0 α 1 ≥ 0 。

从几何角度来说,上面的两个条件对应的意义是:∇f(w∗) ∇ f ( w ∗ ) 应与边界面垂直并指向包含可行域的一侧(边界面的一侧包含可行域,另一侧不包含可行域)。函数值沿着梯度方向是增长的,当f(w) f ( w ) 在w∗ w ∗ 处的梯度指向可行域一侧时,可行域内部的函数值都比w∗ w ∗ 处大,w∗ w ∗ 才能是极小点
这里写图片描述

现在可以做个小结了:若w∗ w ∗ 是可行域上的极值点,则应满足:
{∇f(w∗)+α1∇g1(w∗)=0且α1≥0w∗是边界点,即g1(w∗)=0时∇f(w∗)=0w∗是内点,即g1(w∗)<0时

{ ∇ f ( w ∗ ) + α 1 ∇ g 1 ( w ∗ ) = 0 且 α 1 ≥ 0 w ∗ 是 边 界 点 , 即 g 1 ( w ∗ ) = 0 时 ∇ f ( w ∗ ) = 0 w ∗ 是 内 点 , 即 g 1 ( w ∗ ) < 0 时

或者换一种更统一的形式
∇f(w∗)+α1∇g1(w∗)=0其中α1≥0,且当g1(w∗)<0时只能取等号
∇ f ( w ∗ ) + α 1 ∇ g 1 ( w ∗ ) = 0 其 中 α 1 ≥ 0 , 且 当 g 1 ( w ∗ ) < 0 时 只 能 取 等 号

我们甚至可以把原问题中的约束条件也包进来,构造一个完整的方程组:
求解w和α1{∇f(w)+α1∇g1(w)=0α1g1(w)=0α1≥0, g1(w)≤0
求 解 w 和 α 1 { ∇ f ( w ) + α 1 ∇ g 1 ( w ) = 0 α 1 g 1 ( w ) = 0 α 1 ≥ 0 ,   g 1 ( w ) ≤ 0

巧妙的是,第二行的(α1g1(w)=0) ( α 1 g 1 ( w ) = 0 ) 和第三行的(α1≥0, g1(w)≤0) ( α 1 ≥ 0 ,   g 1 ( w ) ≤ 0 ) 联合起来,正好暗示了一个规则:当g1(w)<0 g 1 ( w ) < 0 时,α1=0 α 1 = 0 ;只有当g1(w)=0 g 1 ( w ) = 0 时,α1 α 1 才可能大于0

同时存在多个不等式约束的情况

objective:minw f(w)s.t:gi(w)≤0,i=1,2,3...n;

o b j e c t i v e : m i n w   f ( w ) s . t : g i ( w ) ≤ 0 , i = 1 , 2 , 3... n ;

多个不等式约束同时存在时,思路与前面大致相同。
如果 w∗ w ∗ 不在边界上,只需判断 ∇f(w∗) ∇ f ( w ∗ ) 是否为0;
如果 w∗ w ∗ 只在其中某一个约束比如 gi(w)≤0 g i ( w ) ≤ 0 的边界上,处理方法与前面一样;
唯一需要多加考虑的,是当 w∗ w ∗ 同时在多个约束的公共边界上的情况,即 w∗ w ∗ 在多个不同约束的边界面的交集上,比如, g1(w∗)=g2(w∗)=g3(w∗)=g4(w∗)=0 g 1 ( w ∗ ) = g 2 ( w ∗ ) = g 3 ( w ∗ ) = g 4 ( w ∗ ) = 0 。下面以此为例来说明。
首先,为使 w∗ w ∗ 在公共边界上满足极值条件, ∇f(w∗) ∇ f ( w ∗ ) 应与公共边界垂直。
而公共边界同时属于 g1(w∗)、g2(w∗)、g3(w∗)、g4(w∗) g 1 ( w ∗ ) 、 g 2 ( w ∗ ) 、 g 3 ( w ∗ ) 、 g 4 ( w ∗ ) 的0等势面,因此 ∇g1(w∗)、∇g2(w∗)、∇g3(w∗)、∇g3(w∗) ∇ g 1 ( w ∗ ) 、 ∇ g 2 ( w ∗ ) 、 ∇ g 3 ( w ∗ ) 、 ∇ g 3 ( w ∗ ) 分别都与公共边界垂直,且这四个向量张成的四维空间正好构成公共边界的补空间,所有与公共边界垂直的向量,都在这个补空间中,可以被这四个向量的线性组合表示。
因此 ∇f(w∗)+4∑i=1αi∇gi(w∗)=0
∇ f ( w ∗ ) + ∑ i = 1 4 α i ∇ g i ( w ∗ ) = 0

同样,我们还要关心可行域上、公共边界以外的其他点。
设 (w∗+Δw) ( w ∗ + Δ w ) 是邻域内任一点,当 Δw Δ w 同时满足如下条件时:
∇gi(w∗)⋅Δw≤0,其中i=1,2,3,4
∇ g i ( w ∗ ) ⋅ Δ w ≤ 0 , 其 中 i = 1 , 2 , 3 , 4

(w∗+Δw) ( w ∗ + Δ w ) 就是可行域上的点。
为使 f(w) f ( w ) 能在 w∗ w ∗ 处取可行域上的极小值,对于可行域内的所有 Δw Δ w 须满足 ∇f(w∗)⋅Δw≥0 ∇ f ( w ∗ ) ⋅ Δ w ≥ 0 ,即
−4∑i=1αi∇gi(w∗)⋅Δw≥0
− ∑ i = 1 4 α i ∇ g i ( w ∗ ) ⋅ Δ w ≥ 0

同样的几何意义:∇f(w∗) ∇ f ( w ∗ ) 应与公共边界面垂直并指向靠近可行域的方向。
这里说的“靠近可行域的方向”,是指与可行域夹角小于等于90°的方向。准确的说,对于所有能使(w∗+Δw) ( w ∗ + Δ w ) 位于可行域上的微小位移向量 Δw Δ w ,与∇f(w∗) ∇ f ( w ∗ ) 夹角都应小于等于90°,用内积表示就是∇f(w∗)⋅Δw≥0 ∇ f ( w ∗ ) ⋅ Δ w ≥ 0

结合∇gi(w∗)⋅Δw≤0 ∇ g i ( w ∗ ) ⋅ Δ w ≤ 0 ,为保证对所有满足的条件的Δw Δ w 上式都能成立,必须要求每个αi α i 都大于等于0。

否则,假如α1 α 1 小于0,对于满足以下条件Δw Δ w ,∇g1(w∗)⋅Δw<0, ∇g2(w∗)⋅Δw=0,∇g3(w∗)⋅Δw=0, ∇g4(w∗)⋅Δw=0

∇ g 1 ( w ∗ ) ⋅ Δ w < 0 ,   ∇ g 2 ( w ∗ ) ⋅ Δ w = 0 , ∇ g 3 ( w ∗ ) ⋅ Δ w = 0 ,   ∇ g 4 ( w ∗ ) ⋅ Δ w = 0
上面的式子就不成立了

总结起来就是,当w∗ w ∗ 在上述公共边界并是可行极值点时,应满足:
∇f(w∗)+n∑i=1α1∇g1(w∗)=0仅当i=1,2,3,4时,αi≥0,其他αi=0

∇ f ( w ∗ ) + ∑ i = 1 n α 1 ∇ g 1 ( w ∗ ) = 0 仅 当 i = 1 , 2 , 3 , 4 时 , α i ≥ 0 , 其 他 α i = 0

OK,有了这个特例的辅助,我们很容易将结论一般化如下:
∇f(w∗)+n∑i=1α1∇g1(w∗)=0其中αi≥0,且当gi(w∗)<0,即w∗不在第i个约束边界时必须取等号
∇ f ( w ∗ ) + ∑ i = 1 n α 1 ∇ g 1 ( w ∗ ) = 0 其 中 α i ≥ 0 , 且 当 g i ( w ∗ ) < 0 , 即 w ∗ 不 在 第 i 个 约 束 边 界 时 必 须 取 等 号

我们继续运用前面说到的巧妙办法,把原问题中的约束条件也包进来,构造一个完整的方程组:
求解w和α{∇f(w)+∑ni=1αi∇gi(w)=0αigi(w)=0for i=1,2...nαi≥0, gi(w)≤0for i=1,2...n
求 解 w 和 α { ∇ f ( w ) + ∑ i = 1 n α i ∇ g i ( w ) = 0 α i g i ( w ) = 0 f o r   i = 1 , 2... n α i ≥ 0 ,   g i ( w ) ≤ 0 f o r   i = 1 , 2... n

现在到再请出拉格朗日大人的时候了。我们构造一个能把约束和目标函数融合在一起的新函数,如下(拉格朗日乘子式):
L(w,α)=f(w)+n∑i=1αigi(w)
L ( w , α ) = f ( w ) + ∑ i = 1 n α i g i ( w )

这时上面的方程组变成了
求解w和α{∂L∂wk=0for k=1,2,3...dw(w的维数)αi⋅∂L∂αi=0for i=1,2...nαi≥0,∂L∂αi≤0for i=1,2...n
求 解 w 和 α { ∂ L ∂ w k = 0 f o r   k = 1 , 2 , 3... d w ( w 的 维 数 ) α i ⋅ ∂ L ∂ α i = 0 f o r   i = 1 , 2... n α i ≥ 0 , ∂ L ∂ α i ≤ 0 f o r   i = 1 , 2... n

这里共有 dw+n d w + n 个等式方程和 dw+n d w + n 个变量,可以先求解前两行构成的等式方程组,再排除掉其中不符合第三行条件的解,剩下的即是符合条件候选极值点。
然而,第二行的方程与纯等式约束时的情况不太一样,纯等式约束下只要求约束式的偏导为0,而这里是要求偏导与系数(也是待求的未知数)乘积为0,这增加了解方程的难度。即便当目标函数是二次的、不等式约束都是线性的时候,方程组整体也变成了二次方程组,很难直接求解。不过,这时不等式约束的数量n是可以大于d_w的,因为第二行的方程不在只包含 w w ,同时也包含了α,不会出现 w w 的约束太强而无解。

3. 混合约束时的optimalize问题——KKT条件与拉格朗日对偶问题

这一类问题的范式如下:
objective:minw f(w)s.t. {gi(w)≤0,i=1,2,3...n;不等式约束hj(w)=0,j=1,2,3...m;等式约束


gi(w) g i ( w ) , hj(w) h j ( w ) 和 f(w) f ( w ) 都应是连续可导的。

拉格朗日乘子式与KKT条件

有了前面纯等式和纯不等式约束问题的铺垫,我们可以轻松得出混合约束时的结论。
首先,还是先考虑最简单的情况,假如w∗ w ∗ 不在任何不等式的边界,即gi(w∗)<0 g i ( w ∗ ) < 0 对所有 i=1,2...n i = 1 , 2... n 成立。——被玩坏的w∗ w ∗ 肯定在抱怨:为什么又是我躺枪,隔壁w′ w ′ 闲了两天了!但显然无情的笔者才不打算关心这个声音。
但w∗ w ∗ 须仍在所有等式约束hj(w) h j ( w ) 的公共0势面上。这时相当于只有等式约束,w∗ w ∗ 是极值的条件是:
∇f(w∗)+m∑j=1βj∇hj(w∗)=0

∇ f ( w ∗ ) + ∑ j = 1 m β j ∇ h j ( w ∗ ) = 0

我们再把w∗ w ∗ 扔到不等式的边界上看看会发生什么。有了之前纯不等式约束的基础,我们直接考虑w∗ w ∗ 同时在多个不等式约束边界时的情况,假如w∗ w ∗ 在第1、2、3、4个不等式约束的公共边界面上,即:
{gi(w∗)=0for i=1,2,3,4gi(w∗)<0for i=otherhj(w∗)=0for j=1,2...m

{ g i ( w ∗ ) = 0 f o r   i = 1 , 2 , 3 , 4 g i ( w ∗ ) < 0 f o r   i = o t h e r h j ( w ∗ ) = 0 f o r   j = 1 , 2... m

可见,这个公共边界面,属于 g1(w)、g2(w)、g3(w)、g4(w) g 1 ( w ) 、 g 2 ( w ) 、 g 3 ( w ) 、 g 4 ( w ) 和 h1(w)、h2(w)...hm(w) h 1 ( w ) 、 h 2 ( w ) . . . h m ( w ) 的公共混合0势面的一部分。如果想让 f(w) f ( w ) 在 w∗ w ∗ 处是可行域上的一个极值,首先要保证 w∗ w ∗ 在这个公共混合0势面上是极值,即 f(w) f ( w ) 在 w∗ w ∗ 处的梯度应垂直于该混合0势面,可以表示成:
∇f(w∗)+m∑j=1βj∇hj(w∗)+4∑i=1αi∇gi(w∗)=0
∇ f ( w ∗ ) + ∑ j = 1 m β j ∇ h j ( w ∗ ) + ∑ i = 1 4 α i ∇ g i ( w ∗ ) = 0

但这还不够,为了保证可行域上w∗ w ∗ 所有邻域点(w∗+Δw) ( w ∗ + Δ w ) 的目标函数值都比w∗ w ∗ 处大,α1...α4 α 1 . . . α 4 还应都是大于等于0的,具体分析过程与讲解纯不等式约束问题时类似,不再重复。

再强调下几何意义:∇f(w∗) ∇ f ( w ∗ ) 应与公共混合0势面垂直并指向靠近可行域的方向。

将上面两种情况用统一的形式重写如下,w∗ w ∗ 是可行域上极值点的条件是:
∇f(w∗)+m∑j=1βj∇hj(w∗)+n∑i=1α1∇g1(w∗)=0其中αi≥0,且当gi(w∗)<0,即w∗不在第i个不等式约束边界时只能取等号

∇ f ( w ∗ ) + ∑ j = 1 m β j ∇ h j ( w ∗ ) + ∑ i = 1 n α 1 ∇ g 1 ( w ∗ ) = 0 其 中 α i ≥ 0 , 且 当 g i ( w ∗ ) < 0 , 即 w ∗ 不 在 第 i 个 不 等 式 约 束 边 界 时 只 能 取 等 号

因此,我们可以通过解以下方程组(前3行等式构成方程组)
求解w、α和β{∇f(w)+∑mj=1βj∇hj(w)+∑ni=1αi∇gi(w)=0hj(w)=0for j=1,2...mαigi(w)=0for i=1,2...nαi≥0,gi(w)≤0for i=1,2...n

求 解 w 、 α 和 β { ∇ f ( w ) + ∑ j = 1 m β j ∇ h j ( w ) + ∑ i = 1 n α i ∇ g i ( w ) = 0 h j ( w ) = 0 f o r   j = 1 , 2... m α i g i ( w ) = 0 f o r   i = 1 , 2... n α i ≥ 0 , g i ( w ) ≤ 0 f o r   i = 1 , 2... n

然后排除掉不满足第4行的解,就可以得到可行域上的候选极值点。

然后,拉格朗日时间到。是时候引出完整版的拉格朗日乘子式了,我们构造一个融合目标函数和所有约束的新函数:
L(w,α,β)=f(w)+n∑i=1αigi(w)+m∑j=1βjhj(w)

L ( w , α , β ) = f ( w ) + ∑ i = 1 n α i g i ( w ) + ∑ j = 1 m β j h j ( w )

然后前面的方程组就变成了
求解w、α和β{∂L∂wk=0for k=1,2,3...dw(w的维数)∂L∂βj=0for j=1,2...mαi⋅∂L∂αi=0for i=1,2...nαi≥0,∂L∂αi≤0for i=1,2...n
求 解 w 、 α 和 β { ∂ L ∂ w k = 0 f o r   k = 1 , 2 , 3... d w ( w 的 维 数 ) ∂ L ∂ β j = 0 f o r   j = 1 , 2... m α i ⋅ ∂ L ∂ α i = 0 f o r   i = 1 , 2... n α i ≥ 0 , ∂ L ∂ α i ≤ 0 f o r   i = 1 , 2... n

是的,我们就这样得到了广为流传的KKT条件。对于某组给定的(w∗,α∗,β∗) ( w ∗ , α ∗ , β ∗ ) ,如果能同时满足上面的条件,w∗ w ∗ 就是原问题的候选解,但候选解不一定是最优解。KKT条件只是最优解的必要条件。

拉格朗日对偶问题

前面KKT条件中的方程组通常是很难直接求解的。而有些时候,将原问题转换成另一种形式,可能更会容易求解。下面就介绍一种常见的转换形式,对偶问题。

我们先来看一个与原问题等价的问题。设

θ(w)=maxα≥0,βL(w,α,β)注意条件,所有的αi≥0

θ ( w ) = max α ≥ 0 , β L ( w , α , β ) 注意条件,所有的 α i ≥ 0

注意所有的 αi α i 都是大于等于0的。
容易得出

θ(w)={f(w)所有等式和不等式约束均被满足+∞,有任意一个约束未被满足

θ ( w ) = { f ( w ) 所有等式和不等式约束均被满足 + ∞ , 有任意一个约束未被满足

如果不等式约束中有任意一个约束未被满足,比如若某个 w∗ w ∗ 使得 gi(w∗)>0 g i ( w ∗ ) > 0 时, 那我们将对应的 αi α i 取 +∞ + ∞ ,则 αigi(w∗) α i g i ( w ∗ ) 必然也是 +∞ + ∞ ,导致 θ(w∗) θ ( w ∗ ) 变为 +∞ + ∞ 。
同理如果原问题的等式约束中有任意一个约束未被满足,比如若某个w∗ w ∗ 使得 hj(w∗)≠0 h j ( w ∗ ) ≠ 0 时, 那我们将对应的βj β j 取βj={−∞hj(w∗)<0+∞,hj(w∗)>0

β j = { − ∞ h j ( w ∗ ) < 0 + ∞ , h j ( w ∗ ) > 0

则 βjhj(w∗) β j h j ( w ∗ ) 必然是 +∞ + ∞ ,,导致 θ(w∗) θ ( w ∗ ) 变为 +∞ + ∞ 。
只有当 w∗ w ∗ 满足所有的等式约束和不等式约束时, θ(w∗) θ ( w ∗ ) 才不会变为无穷大。而且由于此时等式约束被满足,导致所有的 βjhj(w∗) β j h j ( w ∗ ) 项被直接消去,因为他们都等于0;另一方面由于所有的 αi≥0,gi(w∗)≤0 α i ≥ 0 , g i ( w ∗ ) ≤ 0 ,因此 αigi(w∗) α i g i ( w ∗ ) 取最大时必然也是0,即所有的 αigi(w∗) α i g i ( w ∗ ) 项也被消去,只剩下了 f(w) f ( w ) 。于是就有上面的结果
θ(w)={f(w)constraint satisfied+∞,constraint not satisfied
θ ( w ) = { f ( w ) constraint satisfied + ∞ , constraint not satisfied

这样一来,求原问题中的 minwf(w) min w f ( w ) 就等价于求 minwθ(w) min w θ ( w ) 。
原问题等价于:

objective:minwmaxα,βL(w,α,β)s.t.αi≥0,for i=1,2,3...n

o b j e c t i v e : min w max α , β L ( w , α , β ) s . t . α i ≥ 0 , for i=1,2,3...n

如果调换上面 min 和 max 的顺序,就得到该问题的对偶问题。
对偶问题 :

objective:maxα,βminwL(w,α,β)s.t.αi≥0,for i=1,2,3...n

o b j e c t i v e : max α , β min w L ( w , α , β ) s . t . α i ≥ 0 , for i=1,2,3...n

引入一个新函数: θD(α,β)=minwL(w,α,β) θ D ( α , β ) = min w L ( w , α , β ) ,这时对偶问题变成:

objective:maxα,βθD(α,β)s.t.αi≥0,for i=1,2,3...n

o b j e c t i v e : max α , β θ D ( α , β ) s . t . α i ≥ 0 , for i=1,2,3...n

根据θD θ D 的定义可知,对于任意的(w,β,α≥0) ( w , β , α ≥ 0 ) ,有θD(α,β)≤L(w,α,β) θ D ( α , β ) ≤ L ( w , α , β ) ;
根据θ θ 的定义可知,对于任意的(w,β,α≥0) ( w , β , α ≥ 0 ) ,有θ(w)≥L(w,α,β) θ ( w ) ≥ L ( w , α , β ) ;
如果设p∗=θ(w∗)=minwθ(w),d∗=θD(α∗,β∗)=maxα≥0,βθD(α,β)

p ∗ = θ ( w ∗ ) = min w θ ( w ) , d ∗ = θ D ( α ∗ , β ∗ ) = max α ≥ 0 , β θ D ( α , β )

则 d∗=θD(α∗,β∗)≤L(w∗,α∗,β∗)≤θ(w∗)=p∗
d ∗ = θ D ( α ∗ , β ∗ ) ≤ L ( w ∗ , α ∗ , β ∗ ) ≤ θ ( w ∗ ) = p ∗

即 d∗≤p∗ d ∗ ≤ p ∗ ,这个特性被称为”弱对偶性”, (p∗−d∗) ( p ∗ − d ∗ ) 被称为”对偶间隙”,对偶间隙是大于等于0的。通过求解对偶问题,可以求出原问题的一个下限,在实际中这对寻求原问题最优解有一定的帮助。
如果对偶间隙为0即 d∗=p∗ d ∗ = p ∗ ,则称之为”强对偶性”,此时对偶问题于原问题等价,只需求解对偶问题即可, (w∗,α∗,β∗) ( w ∗ , α ∗ , β ∗ ) 同时是原问题和对偶问题的解。
那什么情况下强对偶性才能被满足呢?我们介绍一个能在 凸优化问题中保证强对偶性的充分条件,下一节再证明这个结论。

定义: 凸优化问题
当且仅当目标函数f(w) f ( w ) 和所有的不等式约束函数gi(w) g i ( w ) 都是凸函数,所有的等式约束hj(w) h j ( w ) 都是线性(仿射)函数时,相应的最优化问题属于凸优化问题。
Slater条件
对于凸优化问题,如果可行域满足Slater条件,强对偶性保证成立。
Slater条件是指,可行域存在一点 w′ w ′ 同时满足:{gi(w′)<0for i=1,2...n (注意是<不再是≤)hj(w′)=0for j=1,2...m

{ g i ( w ′ ) < 0 f o r   i = 1 , 2... n   ( 注 意 是 < 不 再 是 ≤ ) h j ( w ′ ) = 0 f o r   j = 1 , 2... m

如果不等式约束中存在线性约束,比如前 t t 个不等式约束都是线性约束时,Slater条件可以弱化为:{gi(w′)≤0for i=1,2...tgi(w′)<0for i=t+1,t+2...nhj(w′)=0for j=1,2...m

KKT条件的充分性

之前的分析中,KKT条件只能作为最优解的必要条件,但满足KKT条件的解不一定是最优解。而对于凸优化问题,KKT条件同时也是最优解的充分条件。

如果(w∗,α∗,β∗) ( w ∗ , α ∗ , β ∗ ) 是满足KKT条件的一组解,即
{∂L∂w∗k=0for k=1,2,3...dw(w的维数)∂L∂β∗j=0for j=1,2...mα∗i⋅∂L∂α∗i=0for i=1,2...nα∗i≥0,∂L∂α∗i≤0for i=1,2...n

{ ∂ L ∂ w k ∗ = 0 f o r   k = 1 , 2 , 3... d w ( w 的 维 数 ) ∂ L ∂ β j ∗ = 0 f o r   j = 1 , 2... m α i ∗ ⋅ ∂ L ∂ α i ∗ = 0 f o r   i = 1 , 2... n α i ∗ ≥ 0 , ∂ L ∂ α i ∗ ≤ 0 f o r   i = 1 , 2... n

由于 α∗≥0 α ∗ ≥ 0 ,以及凸优化问题中各不等式约束函数和目标函数都是凸函数的特点,易知 L(w,α∗,β∗) L ( w , α ∗ , β ∗ ) 是 w w 的凸函数,而KKT条件的第一行说明w∗是使得 L(w,α∗,β∗) L ( w , α ∗ , β ∗ ) 对 w w 导数为0的点,因此
L(w∗,α∗,β∗)=minwL(w,α∗,β∗)=θD(α∗,β∗)

同时,KKT条件的第二行 h(w∗)=0 h ( w ∗ ) = 0 和第三行 α∗g(w∗)=0 α ∗ g ( w ∗ ) = 0 使得
L(w∗,α∗,β∗)=f(w∗)=θ(w∗)
L ( w ∗ , α ∗ , β ∗ ) = f ( w ∗ ) = θ ( w ∗ )

因此有 θD(α∗,β∗)=θ(w∗) θ D ( α ∗ , β ∗ ) = θ ( w ∗ ) 。
而同时 θD(α∗,β∗)≤d∗≤p∗≤θ(w∗) θ D ( α ∗ , β ∗ ) ≤ d ∗ ≤ p ∗ ≤ θ ( w ∗ ) ,这其实暗示了 d∗=p∗ d ∗ = p ∗ ,即强对偶性成立,且 (w∗,α∗,β∗) ( w ∗ , α ∗ , β ∗ ) 正好是原问题和对偶问题的最优解。
因此,对于凸优化问题,满足KKT条件的解一定是最优解,且满足KKT条件暗示了强对偶性成立。

4. 强对偶性的证明与Slater条件

强对偶性的一种比较直观的证明是用几何方法。

先介绍一条关于凸集的定理。这个定理表达的意思很直观。比如在二维空间中,二维平面上的任意一个凸图形(比如一个圆),在其边缘上任一点处做切线,该图形必在切线的同一侧,而不会被切割成多个部分并分居两侧。该定理的完整表述如下:

引理: 支撑超平面定理
设集合 C C 是 Rn 空间中的闭凸集, ˉx x ¯ 是 C C 边界上一点,则必存在一个过点 ˉx 的超平面,使得 C C 位于它的一个闭半空间。即存在法向量 a ,使得对于 C C 中任意点 x ,有:
a⋅x−a⋅ˉx≥0

a ⋅ x − a ⋅ x ¯ ≥ 0

进一步地,如果已知 xin x i n 是 C C 的一个内点,则:
a⋅xin−a⋅ˉx>0

这里写图片描述
如果想了解该定理的证明看这里:
http://www.cnblogs.com/murongxixi/p/3615034.html
这是在网上找到的一篇博文,里面步骤比较详尽。为防止原链接失效,相关的重要证明步骤会以图片形式插入到本文末尾的附录中。

回到我们的问题。我们要研究的是凸优化问题中强对偶性成立的条件,首先做一个基本假设:

基本假设:假设原问题是凸优化问题,即f(w),gi(w) f ( w ) , g i ( w ) 都是凸函数,hj(w) h j ( w ) 都是线性函数,且所有的hj(w) h j ( w ) 相互之间都是线性独立的。

w∈Rdw w ∈ R d w ,我们按如下方式将Rdw R d w 空间中一点w w 映射为R(n+m+1)空间中的点E E :
E(w)=(u1,u2,...un,v1,v2,...vm,t)其中{ui=gi(w)i=1,2,3...nvj=hj(w)j=1,2,3...mt=f(w)


简化表示为E=(u,v,t) E = ( u , v , t ) 。

设所有点E E 组成的集合为Go,
Go={(u,v,t):u=g(w),v=h(w),t=f(w),w∈Rdw} G o = { ( u , v , t ) : u = g ( w ) , v = h ( w ) , t = f ( w ) , w ∈ R d w }
然而,即便有了前面的基本假设,我们也不能保证Go G o 是凸集。但是如果把它简单扩展一下,设:
Ge={(u,v,t):u≥g(w),v=h(w),t≥f(w),w∈Rdw}

G e = { ( u , v , t ) : u ≥ g ( w ) , v = h ( w ) , t ≥ f ( w ) , w ∈ R d w }

容易证明Ge G e 是一个凸集,且Go⊆Ge G o ⊆ G e 。

若A(ua,va,ta) A ( u a , v a , t a ) 和B(ub,vb,tb) B ( u b , v b , t b ) 是Ge G e 内的两个点,按照Ge G e 的定义可知必然存在wa w a 和wb w b ,使得
va=h(wa),ua≥g(wa),ta≥f(wa)vb=h(wb),ub≥g(wb),tb≥f(wb)

v a = h ( w a ) , u a ≥ g ( w a ) , t a ≥ f ( w a ) v b = h ( w b ) , u b ≥ g ( w b ) , t b ≥ f ( w b )

设 0≤c≤1,wc=cwa+(1−c)wb,C=cA+(1−c)B=(uc,vc,tc) 0 ≤ c ≤ 1 , w c = c w a + ( 1 − c ) w b , C = c A + ( 1 − c ) B = ( u c , v c , t c ) ,则
uc=cua+(1−c)ubvc=cva+(1−c)vbtc=cta+(1−c)tb
u c = c u a + ( 1 − c ) u b v c = c v a + ( 1 − c ) v b t c = c t a + ( 1 − c ) t b

由于 h(w) h ( w ) 是 w w 的线性函数,因此
c⋅h(wa)+(1−c)h(wb)=h[cwa+(1−c)wb]=h(wc)

即 vc=h(wc) v c = h ( w c ) ;
由于 g(w),f(w) g ( w ) , f ( w ) 都是 w w 的凸函数,因此
c⋅g(wa)+(1−c)g(wb)≥g[cwa+(1−c)wb]=g(wc)c⋅f(wa)+(1−c)f(wb)≥f[cwa+(1−c)wb]=f(wc)

而同时 ua≥g(wa),ta≥f(wa),ub≥g(wb),tb≥f(wb) u a ≥ g ( w a ) , t a ≥ f ( w a ) , u b ≥ g ( w b ) , t b ≥ f ( w b ) ,于是
cua+(1−c)ub≥c⋅g(wa)+(1−c)g(wb)cta+(1−c)tb≥c⋅f(wa)+(1−c)f(wb)
c u a + ( 1 − c ) u b ≥ c ⋅ g ( w a ) + ( 1 − c ) g ( w b ) c t a + ( 1 − c ) t b ≥ c ⋅ f ( w a ) + ( 1 − c ) f ( w b )

即 uc≥g(wc),tc≥f(wc) u c ≥ g ( w c ) , t c ≥ f ( w c ) 。再结合 vc=h(wc) v c = h ( w c ) ,可知 (uc,vc,tc)∈Ge ( u c , v c , t c ) ∈ G e ,即 C=cA+(1−c)B∈Ge C = c A + ( 1 − c ) B ∈ G e 。由于前述 A,B,c A , B , c 的选取具有任意性,因此对于任意两点 A,B∈Ge A , B ∈ G e ,连线 ¯AB A B ¯ 上的所有点都属于 Ge G e , Ge G e 是凸集。

除此之外,我们还知道E∗=(0,0,p∗) E ∗ = ( 0 , 0 , p ∗ ) 必是Ge G e 的一个边界点,其中p∗=minwθ(w) p ∗ = min w θ ( w ) ,θ(w) θ ( w ) 的定义同上一节。

若w∗ w ∗ 是目标函数f(w) f ( w ) 在可行域内的极小点,则p∗=f(w∗) p ∗ = f ( w ∗ ) ,且由于在可行域内,必然满足g(w∗)≤0 g ( w ∗ ) ≤ 0 、h(w∗)=0 h ( w ∗ ) = 0 ,因此(0,0,p∗)∈Ge ( 0 , 0 , p ∗ ) ∈ G e ;
又由于p∗ p ∗ 是可行域上即区间 {g(w∗)≤0,h(w∗)=0} { g ( w ∗ ) ≤ 0 , h ( w ∗ ) = 0 } 上的最小值(边界值),对于任意小的正数δ δ ,(0,0,p∗−δ)∉Ge ( 0 , 0 , p ∗ − δ ) ∉ G e ,因此(0,0,p∗) ( 0 , 0 , p ∗ ) 在边界上。
即E∗=(0,0,p∗) E ∗ = ( 0 , 0 , p ∗ ) 是Ge G e 的一个边界点。

利用上面关于边界点的支撑超平面定理,我们知道必存在一个法向量a=(αa,βa,γa) a = ( α a , β a , γ a ) ,使得对于Ge G e 内任一点Ee=(ue,ve,te) E e = ( u e , v e , t e ) ,满足:
a⋅Ee−a⋅E∗≥0即αaue+βave+γate≥γap∗

((1-a)) a ⋅ E e − a ⋅ E ∗ ≥ 0 即 α a u e + β a v e + γ a t e ≥ γ a p ∗

由于 ue,te u e , t e 可以随意取正无穷大, p∗ p ∗ 是个定值,为使上面的大于等于恒成立, αa α a 和 γa γ a 必须大于等于0。否则,如果他们任意一个取负,当 ue,te u e , t e 取正无穷大时,左边会变成负无穷而导致上式无法被满足。

h(w) h ( w ) 是w w 的线性函数,因此ve=h(w)也可以取到正无穷,甚至负无穷也可以。但ve v e 不能单独、随意 地增大,因为ve v e 完全由w w 确定,而ue和te只是被w w 确定了下限,它们可以单独增大,且仍保证在集合Ge内。

γa>0 γ a > 0 的情况

假如γa≠0 γ a ≠ 0 ,此时令α∗=αa/γa,β∗=βa/γa α ∗ = α a / γ a , β ∗ = β a / γ a ,则式(1-a)可重写如下:
α∗ue+β∗ve+te≥p∗

((2-a)) α ∗ u e + β ∗ v e + t e ≥ p ∗

由于 αa≥0 α a ≥ 0 , α∗≥0 α ∗ ≥ 0 。
由于 Go⊆Ge G o ⊆ G e ,因此 Go G o 中任意一点 E(u,v,t)=(g(w),h(w),f(w)) E ( u , v , t ) = ( g ( w ) , h ( w ) , f ( w ) ) 也都满足上式。
即必然存在一组 α∗,β∗ α ∗ , β ∗ ,对任意的 w∈Rdw w ∈ R d w ,始终满足:
α∗g(w)+β∗h(w)+f(w)≥p∗α≥0
α ∗ g ( w ) + β ∗ h ( w ) + f ( w ) ≥ p ∗ α ≥ 0

我们上面都使用了简化后的表示方式,如果将上式完整展开,就是:存在一组 α∗,β∗ α ∗ , β ∗ 使得下式对所有的 w∈Rdw w ∈ R d w 成立。
n∑i=1α∗igi(w)+m∑j=1β∗jhj(w)+f(w)=L(w,α∗,β∗)≥p∗α∗i≥0,for i=1,2,3...n
∑ i = 1 n α i ∗ g i ( w ) + ∑ j = 1 m β j ∗ h j ( w ) + f ( w ) = L ( w , α ∗ , β ∗ ) ≥ p ∗ α i ∗ ≥ 0 , f o r   i = 1 , 2 , 3... n

由于上式对任意的w w 都成立,因此
θD(α∗,β∗)=minwL(w,α∗,β∗)≥p∗


进一步由于d∗=maxα≥0,βθD(α,β)≥θD(α∗,β∗)

d ∗ = max α ≥ 0 , β θ D ( α , β ) ≥ θ D ( α ∗ , β ∗ )

于是得到 d∗≥p∗ d ∗ ≥ p ∗ 。而由弱对偶性, d∗≤p∗ d ∗ ≤ p ∗ 。因此 d∗=p∗ d ∗ = p ∗ ,强对偶性成立。

γa=0 γ a = 0 的情况,Slater条件的作用

这不是我们期望出现的情况,因为一旦γa=0 γ a = 0 ,我们就无法将式(1-a)的左边转换成跟L(w,α,β) L ( w , α , β ) 相同的形式了。实际上,只要上节中提到的Slater条件被满足(通常这个条件都是满足的),就不会出现γa=0 γ a = 0 的情况。下面我们分析为什么不会出现。

假如γa=0 γ a = 0 ,此时式(1-a)变成
αaue+βave+γate≥0

((4-a)) α a u e + β a v e + γ a t e ≥ 0

Slater条件保证了在可行域内,存在 w′ w ′ 使得g(w′)<0,h(w′)=0 g ( w ′ ) < 0 , h ( w ′ ) = 0 ,设
E1=(g(w′),h(w′),f(w′))∈GeE2=(g(w′)+Δg,h(w′),f(w′)+Δf)∈int Ge其中Δg和Δf是任意大于0的值,这两个正增量保证了E2是Ge的内点

E 1 = ( g ( w ′ ) , h ( w ′ ) , f ( w ′ ) ) ∈ G e E 2 = ( g ( w ′ ) + Δ g , h ( w ′ ) , f ( w ′ ) + Δ f ) ∈ i n t   G e 其 中 Δ g 和 Δ f 是 任 意 大 于 0 的 值 , 这 两 个 正 增 量 保 证 了 E 2 是 G e 的 内 点

则有
αag(w′)+βah(w′)+γaf(w′)≥0

(4-b) α a g ( w ′ ) + β a h ( w ′ ) + γ a f ( w ′ ) ≥ 0

αa[g(w′)+Δg]+βah(w′)+γa[f(w′)+Δf]>0
(4-c) α a [ g ( w ′ ) + Δ g ] + β a h ( w ′ ) + γ a [ f ( w ′ ) + Δ f ] > 0

式(4-c)中可以用大于号是因为 E2是Ge的内点 E 2 是 G e 的 内 点 ,上面介绍引理时专门提到对于内点可以用大于号。
考虑到 h(w′)=0,γa=0 h ( w ′ ) = 0 , γ a = 0 ,由式(4-b)可得 αag(w′)≥0 α a g ( w ′ ) ≥ 0 ;
再由 g(w′)<0,α≥0 g ( w ′ ) < 0 , α ≥ 0 ,可得 αa=0 α a = 0 ;
而将 αa=0 α a = 0 和 h(w′)=0,γa=0 h ( w ′ ) = 0 , γ a = 0 代入式(4-c),会得到式(4-c)左边等于0的结论,这与式(4-c)中的大于号矛盾。
因此, 当Slater条件被满足时,不会出现γa=0 γ a = 0 的情况。

Slater条件的表述似乎加强了对可行域的要求。实际上,只要要求对于每一个不等式约束 gi(w) g i ( w ) ,在可行域内分别存在一个 wi w i 能使得gi(wi)<0 g i ( w i ) < 0 即可,这就足以支持我们推出上面的矛盾(将上面的简化表达式完整展开并推导出每个αi=0 α i = 0 即可推出矛盾)。而不须要求存在某个 w′ w ′ 使其同时满足所有的不等式约束。然而如果所有的gi(w) g i ( w ) 都是连续可导的话,这两种表述似乎也是等价的,不过这个结论的推理过程可能有些繁杂。

之前还提到了弱化的Slater条件(Weak Slater Condition),弱化的Slater条件放宽了对线性不等式约束的要求。
实际上,当原Slater条件未被满足,但弱化的Slater条件能被满足时,说明存在某个线性不等式约束 gi(w) g i ( w ) ,在可行域内找不到任何点能使得gi(w)<0 g i ( w ) < 0 成立,即在整个可行域内gi(w)=0 g i ( w ) = 0 。这意味着所有等式约束hj(w)=0 h j ( w ) = 0 ,它们与gi(w)≤0 g i ( w ) ≤ 0 的交集和与gi(w)=0 g i ( w ) = 0 的交集一样。考虑到hj(w) h j ( w ) 和gi(w) g i ( w ) 都是w w 的线性函数,这只会发生在gi(w)正好是所有所有等式约束hj(w) h j ( w ) 的线性组合时,即
gi(w)=m∑j=1cjhj(w)

g i ( w ) = ∑ j = 1 m c j h j ( w )

而这时,可以认为g_i(w)完全不起约束作用,直接为其分配系数 αi=0 α i = 0 ,然后按正常方式为其他不等式约束分配系数即可。因此只要满足弱化的Slater条件,就可以保证强对偶性。

结论

综上,只要f(w),gi(w)都是凸函数,hj(w)都是线性函数,且可行域满足弱化的Slater条件时,强对偶性可以被保证。

附录:支撑超平面定理的证明(截图)

以下截图来自博文:
http://www.cnblogs.com/murongxixi/p/3615034.html

这里写图片描述
这里写图片描述

机器学习之&&Dual(带约束条件的最优化问题) 关于dual的相关知识,这套理论不仅适用于SVM的优化问题,而是对于所有带约束的优化问题都适用,是优化理论中的一个重要部分。(也许你觉得一个IT人优化问题不重要,其实你仔细想想,现实中的很多问题,都是在有条件约束的情况下的求最优的问题) 阅读详情

相关推荐

KKT条件实战:用Python手把手教你求解带约束的最优化问题

本文通过Python实战演示如何应用KKT条件求解带约束的最优化问题,涵盖等式与不等式约束处理、拉格朗日乘子初始化等核心技巧。结合SciPy和Sympy工具,从理论推导到数值实现,帮助读者掌握这一工程优化关键技术,并应用于投资组合优化等实际场景。

weixin_33686714的博客 450

约束优化方法

简述约束优化方法的基本思想和分类。

_2312 8530

Python——使用scipy求解带约束的最优化问题

我们要求解的最优化问题的形式如下: min f(x)s.t.gi(x)&gt;0,i=1,...,mhj(x)=0,j=1,...,n \begin{aligned} min \ f(x) \\ s.t.\quad g_i(x)&amp; \gt 0, i = 1,...,m\\ \quad h_j(x)&amp; = 0, j = 1,...,n \end{al...

HappyRocking的专栏 4万+

通用的改进遗传算法求解带约束的优化问题(MATLAB代码精讲、实际工程经验分享)

问题描述 考虑一下优化问题: min y=x12+x22 min\ y = x_1^2 + x_2^2 min y=x12​+x22​ x1+x2>1x1−x2<2x1,x2∈[−10,10] x_1 + x_2 > 1 \\ x_1 - x_2 <2 \\ x_1,x_2 \in [-10,10] x1​+x2​>1x1​−x2​<2x1​,x2​∈[−10,10] 显然,这个问题是一个带约束的优化问题。经典的遗传算法没有考虑问题存在约束的情况。因

运筹不帷幄的博客 2万+

机器人中的数值优化(十二)——带约束优化问题简介、LP线性规划

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 3850

优化问题----等式约束与不等式约束问题求解

约束性极值问题求解

qq_25018077的博客 1万+

求解带约束的最优化问题

首先感谢《利用Python求解带约束的最优化问题》让我不用自己重0开始敲代码了!不过就是效率有点慢了,还在解决中,至少问题有解了~ =================== 问题描述 ======================= 昨天项目例会上产品提了一个看似很正常但是细想却很棘手的要求,在前端页面上展示出来的内容如果仅仅只有分割网络的结果会很奇怪,对用户的体验不好,他需要在包含目标的bbox基础...

qq_30625217的博客 1872

详细介绍如何使用Ipopt非线性求解器求解带约束的最优化问题

本文中将详细介绍如何使用Ipopt非线性求解器求解带约束的最优化问题,结合给出的带约束的最优化问题示例,给出相应的完整的C++程序,并给出详细的解释和注释,以及编译规则等

慕羽★的博客 7008

迭代求解最优化问题——带约束问题

在求解最优化问题时,很多问题的变量会满足一定的约束,其数学形式为 $$\min f(\mathbf x) \\ st. \mathbf C(\mathbf x)=0 $$ 显然,对于带约束问题,我们使用前面的方法进行求解时,一次迭代结束后得到的x很容易不满足约束条件。

Faded 3998

【优化理论】第三章之七:目标函数的求解之Ipopt非线性求解器求解带约束的非线性最优化问题

最优化问题的求解是一个迭代的过程, 从初始点(初始解)x0开始, 通过迭代方法(梯度下降法, 牛顿法等)逐步更新xi, 直至逼近最优解x∗ 上图形象的展示了这个迭代的过程, 从初始解start点开始, 逐步迭代至最优解. 在这个1维问题上, 迭代方向只有左和右(-, +), 我们如何确定迭代的方向和步长呢? 或者更高维度的问题里, 如何确定每个维度的方向和步长呢?详细介绍如何使用Ipopt非线性求解器求解带约束的最优化问题,结合给出的带约束的最优化问题示例,给出相应的完整的C++程序,并给出详细的解释和注

qq_35635374的博客 336

数值优化(Numerical Optimization)学习系列-带约束最优化(Constrained Optimization)

概述 带约束的最优化问题是区别于无约束最优化问题的,另外一大类最优化问题。在实际中也经常遇到,本节主要介绍了带约束最优化问题的相关理论以及最优解满足的必要条件。 1. 带约束最优化问题概述 2. 带约束最优化问题解的必要条件示例 3. 最优解满足的一阶和二阶必要条件 4. 对偶 5. 总结 带约束最优化问题 数学形式为min f(x)st. ci(x

互联网广告从业者,长期关注AI、计算广告以及搜广推相关技术,致力于广告投放、广告策略以及底层技术透明可视,太阳底下没有新鲜事,人人可懂可会 1万+

利用拉格朗日对偶性求解带约束条件的最优化问题

利用拉格朗日对偶性求解带约束条件的最优化问题

qq_44665283的博客 1712

【论文复现】自动化细胞核分割与特征分析

HoVer-Net是一种精心设计的多分支深度学习网络架构,专为处理复杂的多组织显微图像中的细胞核实例分割与精确分类任务而开发。该网络通过创新的策略,不仅有效解决了细胞核在密集聚集区域难以准确区分的问题,还实现了对每个独立细胞核类型的细致分类。此外,HoVer-Net还引入了专门的上采样分支,这一设计旨在对每个成功分割出的细胞核实例进行进一步的核类型分类。这一分支利用高级语义信息,结合精心设计的分类策略,能够准确判断每个细胞核的所属类型,为医学研究提供了宝贵的细胞水平信息。

2201_75366661的博客 1978

Python-求解带约束的最优化问题

题目: 利用拉格朗日乘子法 #导入sympy包,用于求导,方程组求解等等 from sympy import * #设置变量 x1 = symbols("x1") x2 = symbols("x2") alpha = symbols("alpha") beta = symbols("beta") #构造拉格朗日等式 L = 10 - x1*x1 - x2*x2 + alpha ...

秀呀秀的博客 6973

10-Oracle 23 ai Vector Search 概述和参数

企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation :RAG)功能,RAG能够将LLM的生成能力与知识库的精准资料库进行检索结合,将大模型部署在内部同时将私有的数据进行LLM的检索避免泄露企业专用的数据同时提高的准确性。于是如何将数据存入向量数据库以及向量查询等这些基本功能变得必备和重要。

远方的专栏 1294

操作系统期末大题类型题解

额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量

ZXxxiaoxuan的博客 792

带约束的最优化问题,拉格朗日乘数法

求解等式约束下的最优化问题 假设最优化问题如下 min⁡f(x)s.th(x)=0\begin{array}{cl}{\min } & {f(x)} \\ s.t & h(x)=\mathbf{0}\end{array}mins.t​f(x)h(x)=0​即只含等式约束的最优化问题,其中x∈Rn,f:Rn→R,h:Rn→Rm,m≤n,h∈C1x\in R^n,f:R^n\right...

润润哥的博客 4560

服务器卡死排查实战:从现象分类到根因定位的完整手册

服务器卡死是运维中最令人头疼的故障之一,从游戏圈吐槽的“土豆服务器”到生产环境中的Linux系统无响应、rsync复制挂起,本质都是系统或进程失去正常响应能力。其原理通常涉及CPU、内存、磁盘IO或网络资源耗尽,以及内核和驱动异常。掌握系统化的排查方法,能够帮助工程师快速定位根因、缩短故障时间,避免盲目重启。本文从资源、层级、场景等多维度分类,结合top、dmesg、strace等工具,梳理一套从现象确认、指标收集、日志分析到进程定位的实战排查流程,并覆盖常见高频场景与预防治理建议。无论你是运维新手还是老手

weixin_33851177的博客 374

【数学基础与最优化1.4】带约束的优化问题

条件极值 拉格朗日乘数法   现实问题中,有时会遇到对函数的自变量还有附加条件的极值问题。例如,求表面积为a2a^2a2而体积为最大的长方体的体积问题。设长方体的三棱长为x,y,zx,y,zx,y,z,则体积V=xyzV=xyzV=xyz,又因表面积为a2a^2a2,所以自变量x,y,zx,y,zx,y,z还必须满足附加条件2(xy+yz+xz)=a22(xy+yz+xz)=a^22(xy+yz...

春播秋忙 2416

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1487

Vue3 - 实现集成配置百度语音识别转文字,长按或开启录音并将录音文件实时转换为文字,上传音频文件利用百度语音识别API转换为文本并展示(vue3百度智能云API实现上传录音文件并转换成文字案例)

vue3对接百度智能云语音识别,vue3 h5移动端网页中实现语音识别,百度语音识别录音转文字_百度智能云,vue3如何使用百度语音识别,如何将语音转文字,使用vue3实现录音并将录音转换为文字,vue3如何实现语音输入功能功能,vue3集成百度智能云API实现录音转文字详细教程完整示例代码demo,VUE3使用百度语音识别语音转文字,vue调用百度语音识别,vue3百度语音识别文字并展示功能,vue3免费语音转文本api,百度语音识别申请配置教程,Vue3项目配置自定义界面百度语音识别转文字和原生使用方式

🏆 前端领域优质创作者 2726

matlab约束函数,约束中带分段线性函数的matlab最优化问题求解

程序贴出来了,实在奈何不了它,请帮忙看哪里错误,谢谢了哈!station我取250个,但贴出来时为了简便,只用了5个,相应y(i,j)就只有8行5列了。还是出现“Error code: 1017”,LINGO Solver Status显示Variables只有一个,Model没有显示,State:Unknown。。。MODEL:CVaR优化;SETS:capital/1..8/: q,x0,e,...

weixin_39904116的博客 881

Windows 下运行 openclaw 出现“‘openclaw‘ 不是内部或外部命令,也不是可运行的程序或批处理文件“的解决方案

方案适用场景推荐指数检查并手动添加 PATH明确知道全局安装目录,只是没加进PATH⭐⭐⭐⭐⭐pnpm setup 自动配置使用 pnpm 安装,想要省心的自动化方式⭐⭐⭐⭐⭐npx 免安装临时运行快速验证核心程序是否正常,排除法排查⭐⭐⭐⭐清理残留后重装npm/pnpm 混用导致版本混乱⭐⭐⭐⭐改用 WSL2不熟悉 Windows 路径体系,长期使用⭐⭐⭐'openclaw' 不是内部或外部命令这类报错,本质上不是"程序坏了",而是。

一键难忘的博客 1万+

为什么拉格朗日乘子法可以处理带约束最优化问题?

最优化问题是指在一组变量中,寻找一个最优解,使得某个目标函数达到最大值或最小值,同时满足一些约束条件。一个典型的最优化问题可以表示为:其中,f(,......,)是目标函数,,......,)是约束条件,m 是约束的数量。传统的最优化方法,如直接对目标函数进行求导和求解,通常无法有效处理约束条件。拉格朗日乘子法的作用就是通过构造一个新的函数,将约束条件纳入其中,从而把带约束的最优化问题转化为一个无约束的问题。

QBoson的博客 772

锂电池SOH估计 | 基于LSTM模型的锂电池SOH估计(Python)

锂电池SOH估计 | 基于LSTM模型的锂电池SOH估计(Python)

前程算法屋的博客 1433

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

最优化方法(3)带约束问题的最优性条件及求解方法

1. 等式约束问题的最优性条件 这类问题描述为,qq

选好坑 挖好坑 才会结出好的果子 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: Let's Complain the Irresponsible keyword 'const' in C++
NewThinker_wei
博客等级 码龄14年 521粉丝 51原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值