支持向量机(SVM)之一:KKT,拉格朗日对偶
1.拉格朗日乘子法的直观解释
1)拉格朗日乘子法:求解带等式约束多元函数极值的核心数学方法,核心是通过引入 “拉格朗日乘子” 将约束条件融入目标函数,转化为无约束优化问题求解。在求多元函数f ( x , y ) f(x,y) f ( x , y ) 极值中,有约束条件,设为g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 可以使用拉格朗日乘子法求最值,步骤为:
a.引入拉格朗日乘子 λ \lambda λ (常数),构建拉格朗日函数 L ( x , y , λ ) = f ( x , y ) + λ g ( x , y ) L (x,y,\lambda)=f (x,y)+\lambda g (x,y) L ( x , y , λ ) = f ( x , y ) + λ g ( x , y ) 。
b.对 L L L 分别求各变量( x 、 y 、 λ ) (x、y、\lambda) ( x 、 y 、 λ ) 的偏导数,即∂ L ( x , y , λ ) ∂ x \frac{\partial L(x,y,\lambda)}{\partial x} ∂ x ∂ L ( x , y , λ ) ,∂ L ( x , y , λ ) ∂ y \frac{\partial L(x,y,\lambda)}{\partial y} ∂ y ∂ L ( x , y , λ ) 和∂ L ( x , y , λ ) ∂ y \frac{\partial L(x,y,\lambda)}{\partial y} ∂ y ∂ L ( x , y , λ ) ,并令所有偏导数等于 0,得到方程组。
c.解方程组得到的 ( x , y ) (x,y) ( x , y ) 即为目标函数在约束条件下的极值候选点,需进一步验证是否为极值。
2)拉格朗日数乘法的原理:对于要优化的f ( x , y ) f(x,y) f ( x , y ) (先从二元函数开始分析,一元函数限定条件是等式的话,无论函数图像如何,它的最值一定是限定最值的那个点,没有讨论的意义,例如,想要优化f ( x ) = x 2 f(x)=x^2 f ( x ) = x 2 在限定条件x = b x=b x = b 的条件下,即无论如何,最值点一定是( b , f ( b ) ) = ( b , b 2 ) (b,f(b))=(b,b^2) ( b , f ( b )) = ( b , b 2 ) 这个点,最值也只能是f ( b ) = b 2 f(b)=b^2 f ( b ) = b 2 ),限定条件为g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 。先看没有约束条件的情况,想要优化f ( x , y ) f(x,y) f ( x , y ) 就是求f ( x , y ) f(x,y) f ( x , y ) 的梯度:∇ ⃗ f ( x , y ) = ( ∂ f ( x , y ) ∂ x , ∂ f ( x , y ) ∂ y ) T \vec\nabla f(x,y)=(\frac{\partial f(x,y)}{\partial x},\frac{\partial f(x,y)}{\partial y})^T ∇ f ( x , y ) = ( ∂ x ∂ f ( x , y ) , ∂ y ∂ f ( x , y ) ) T ,想要找到最小值(以最小值为例)必须沿梯度下降的方向即 − ∇ ⃗ f ( x , y ) = − ( ∂ f ( x , y ) ∂ x , ∂ f ( x , y ) ∂ y ) T -\vec\nabla f(x,y)=-(\frac{\partial f(x,y)}{\partial x},\frac{\partial f(x,y)}{\partial y})^T − ∇ f ( x , y ) = − ( ∂ x ∂ f ( x , y ) , ∂ y ∂ f ( x , y ) ) T 移动才可找到最小值点,再看约束条件,g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 ,是一个在X o Y XoY X o Y 平面的约束,可以看作是X o Y XoY X o Y 平面上的一条曲线,那么问题就转化为该约束曲线投影到 z = f ( x , y ) z=f(x,y) z = f ( x , y ) 的3D空间曲面上的最小值,即找到该曲面上的约束曲线的的最值。就是要沿着该空间曲面的约束曲线上进行梯度下降,设Δ x ⃗ = ( Δ x , Δ y ) T \vec{\Delta x}=(\Delta x,\Delta y)^T Δ x = ( Δ x , Δ y ) T 为沿着曲线移动的方向,即曲线的切线方向。因为当沿着梯度下降的方向移动的时候函数值f ( x , y ) f(x,y) f ( x , y ) 是不断减小的,所以移动的方向需与函数梯度下降的方向夹角小于90度,于是就得到了一个结论,移动必须一直满足Δ x ⃗ ⋅ − ∇ ⃗ f ( x , y ) < 0 \vec{\Delta x}\cdot-\vec\nabla f(x,y)<0 Δ x ⋅ − ∇ f ( x , y ) < 0 ,直到移动到一个点使得Δ x ⃗ ⋅ − ∇ ⃗ f ( x , y ) = 0 \vec{\Delta x}\cdot-\vec\nabla f(x,y)=0 Δ x ⋅ − ∇ f ( x , y ) = 0 ,即Δ x ⃗ \vec{\Delta x} Δ x 垂直于− ∇ ⃗ f ( x , y ) -\vec\nabla f(x,y) − ∇ f ( x , y ) ,此时,该点为即为最小值点。对于曲线g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 ,是二元函数z = g ( x , y ) z=g(x,y) z = g ( x , y ) 在z = 0 z=0 z = 0 的等值线,也是g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 确定的隐函数。于是,对于所有满足g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 的点,使用隐函数求导法则,可得k = − ∂ g ∂ x ∂ g ∂ y k=-\frac{\frac{\partial g}{\partial x}}{\frac{\partial g}{\partial y}} k = − ∂ y ∂ g ∂ x ∂ g (∂ g ∂ y ≠ 0 \frac{\partial g}{\partial y}\neq0 ∂ y ∂ g = 0 ),于是切线方向为l ⃗ = ( 1 , k ) = ( ∂ g ∂ y , − ∂ g ∂ x ) \vec l=(1,k)=(\frac{\partial g}{\partial y},-\frac{\partial g}{\partial x}) l = ( 1 , k ) = ( ∂ y ∂ g , − ∂ x ∂ g ) ,在观察z = g ( x , y ) z=g(x,y) z = g ( x , y ) 的梯度∇ ⃗ g ( x , y ) = ( ∂ g ( x , y ) ∂ x , ∂ g ( x , y ) ∂ y ) T \vec\nabla g(x,y)=(\frac{\partial g(x,y)}{\partial x},\frac{\partial g(x,y)}{\partial y})^T ∇ g ( x , y ) = ( ∂ x ∂ g ( x , y ) , ∂ y ∂ g ( x , y ) ) T ,可以得出结论,g ( x , y ) g(x,y) g ( x , y ) 确定的在X o Y XoY X o Y 平面上的曲线的所有点的切线方向 l ⃗ \vec l l 均满足l ⃗ ⋅ ∇ ⃗ g ( x , y ) = 0 \vec l\cdot\vec\nabla g(x,y)=0 l ⋅ ∇ g ( x , y ) = 0 即两者互为垂直关系。又因为最小值点满足Δ x ⃗ ⋅ − ∇ ⃗ f ( x , y ) = 0 \vec{\Delta x}\cdot-\vec\nabla f(x,y)=0 Δ x ⋅ − ∇ f ( x , y ) = 0 ,即Δ x ⃗ \vec{\Delta x} Δ x 和− ∇ ⃗ f ( x , y ) = 0 -\vec\nabla f(x,y)=0 − ∇ f ( x , y ) = 0 是垂直的,而Δ x ⃗ \vec{\Delta x} Δ x 是曲线的切线方向,就有Δ x ⃗ \vec{\Delta x} Δ x 与∇ ⃗ g ( x , y ) \vec\nabla g(x,y) ∇ g ( x , y ) 垂直,最终就得出一个结论,− ∇ ⃗ f ( x , y ) = 0 -\vec\nabla f(x,y)=0 − ∇ f ( x , y ) = 0 和 ∇ ⃗ g ( x , y ) \vec\nabla g(x,y) ∇ g ( x , y ) 是平行的,那么,就有− ∇ ⃗ f ( x , y ) = λ ∇ ⃗ g ( x , y ) -\vec\nabla f(x,y)=\lambda\vec\nabla g(x,y) − ∇ f ( x , y ) = λ ∇ g ( x , y ) 即∇ ⃗ f ( x , y ) + λ ∇ ⃗ g ( x , y ) = 0 ⃗ \vec\nabla f(x,y)+\lambda\vec\nabla g(x,y)=\vec 0 ∇ f ( x , y ) + λ ∇ g ( x , y ) = 0 ,并且这个λ > 0 \lambda>0 λ > 0 ,因为只有f ( x , y ) f(x,y) f ( x , y ) 反方向梯度与g ( x , y ) g(x,y) g ( x , y ) 的梯度方向一致的时候,才是最小所以λ \lambda λ 必须大于0,再观察拉格朗日乘子法的构造:L ( x , y , λ ) = f ( x , y ) + λ g ( x , y ) L (x,y,\lambda)=f (x,y)+\lambda g (x,y) L ( x , y , λ ) = f ( x , y ) + λ g ( x , y ) ,对其求x x x 和y y y 的偏导就得到了方程组:{ ∂ f ( x , y ) ∂ x + λ ∂ g ( x , y ) ∂ x = 0 ∂ f ( x , y ) ∂ y + λ ∂ g ( x , y ) ∂ y = 0 \left\{\begin{matrix}\frac{\partial f(x,y)}{\partial x}+\lambda\frac{\partial g(x,y)}{\partial x}=0\\\frac{\partial f(x,y)}{\partial y}+\lambda\frac{\partial g(x,y)}{\partial y}=0\end{matrix}\right. { ∂ x ∂ f ( x , y ) + λ ∂ x ∂ g ( x , y ) = 0 ∂ y ∂ f ( x , y ) + λ ∂ y ∂ g ( x , y ) = 0 ,如果将其写成向量的形式,( ∂ f ( x , y ) ∂ x , ∂ f ( x , y ) ∂ y ) T + λ ( ∂ g ( x , y ) ∂ x , ∂ g ( x , y ) ∂ y ) T = ( 0 , 0 ) T (\frac{\partial f(x,y)}{\partial x},\frac{\partial f(x,y)}{\partial y})^T+\lambda(\frac{\partial g(x,y)}{\partial x},\frac{\partial g(x,y)}{\partial y})^T=(0,0)^T ( ∂ x ∂ f ( x , y ) , ∂ y ∂ f ( x , y ) ) T + λ ( ∂ x ∂ g ( x , y ) , ∂ y ∂ g ( x , y ) ) T = ( 0 , 0 ) T 那恰好是 ∇ ⃗ f ( x , y ) + λ ∇ ⃗ g ( x , y ) = 0 ⃗ \vec\nabla f(x,y)+\lambda\vec\nabla g(x,y)=\vec 0 ∇ f ( x , y ) + λ ∇ g ( x , y ) = 0 ,再加上约束条件即可构成整个求解方程组,这就解释了为什么拉格朗日数乘法需要构造函数L ( x , y , λ ) = f ( x , y ) + λ g ( x , y ) L (x,y,\lambda)=f (x,y)+\lambda g (x,y) L ( x , y , λ ) = f ( x , y ) + λ g ( x , y ) 求解最优。
3)实例说明(此图为寻找最大值点,是沿着梯度方向而非反梯度方向,与2)所述的原理是等价的):设f ( x , y ) = x + y f(x,y)=x+y f ( x , y ) = x + y ,g ( x , y ) = x 2 + y 2 − 2 g(x,y)=x^2+y^2-2 g ( x , y ) = x 2 + y 2 − 2 ,如下图所示,黑色线为f ( x , y ) f(x,y) f ( x , y ) 在z = 0 z=0 z = 0 平面的等值线,红色线为g ( x , y ) g(x,y) g ( x , y ) 在z = 0 z=0 z = 0 平面的等值线,即g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 ,绿色箭头为g ( x , y ) g(x,y) g ( x , y ) 在z = 0 z=0 z = 0 的梯度,黄色箭头为g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 的切线即上述的Δ x ⃗ \vec{\Delta x} Δ x ,而橙色箭头为f ( x , y ) f(x,y) f ( x , y ) 的梯度即∇ ⃗ f ( x , y ) \vec\nabla f(x,y) ∇ f ( x , y ) ,目标为在空间的红色的曲线找到最值点,黄色箭头为移动方向,从A点出发,沿着f ( x , y ) f(x,y) f ( x , y ) 梯度方向,此时f ( x , y ) f(x,y) f ( x , y ) 梯度和切线的夹角小于90度,说明f ( x , y ) f(x,y) f ( x , y ) 梯度一直在上升,直至到达点B时,f ( x , y ) f(x,y) f ( x , y ) 梯度不再上升,此时达到了最大值点,也就是f ( x , y ) f(x,y) f ( x , y ) 梯度与切线呈90度垂直状态,因为切线与g ( x , y ) g(x,y) g ( x , y ) 的梯度是垂直的,所以此时f ( x , y ) f(x,y) f ( x , y ) 与g ( x , y ) g(x,y) g ( x , y ) 平行,如果继续往切线方向走,梯度在下降,因为梯度与切线的夹角大于90度,与f ( x , y ) f(x,y) f ( x , y ) 梯度的反方向呈小于90的角,如点C,如果到达了另外一个与f ( x , y ) f(x,y) f ( x , y ) 的等值线的切点,那么梯度降到最低点,所以此时就为最小值,此时f ( x , y ) f(x,y) f ( x , y ) 梯度的反方向与g ( x , y ) g(x,y) g ( x , y ) 平行,就是2)描述的情况。
2.KKT(Karush-Kuhn-Tucker)条件的直观解释
1)为什么要引入KKT条件:在处理实际问题中拉格朗日数乘法只能处理等式约束,但是在大多数的实际问题中,通常涉及到不等式,如g ( x , y ) ≤ 0 g(x,y)\le0 g ( x , y ) ≤ 0 ,而KKT条件能解决不等式+等式的问题。二元函数而言,对于等式问题,其约束实际上是寻找在平面X o Y XoY X o Y 上g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 确定的曲线投影到二元函数f ( x , y ) f(x,y) f ( x , y ) 的空间曲面的最值,所以其实本质上,它属于在空间的一条曲线寻找最值,而该条曲线是在二元函数f ( x , y ) f(x,y) f ( x , y ) 上的。但是如果上升到不等式如g ( x , y ) ≤ 0 g(x,y)\le0 g ( x , y ) ≤ 0 ,对于X o Y XoY X o Y 平面就不再是一条曲线,而是一个平面(如x 2 + y 2 = 1 x^2+y^2=1 x 2 + y 2 = 1 是一个曲线圆,而x 2 + y 2 ≤ 1 x^2+y^2\le1 x 2 + y 2 ≤ 1 就是一个半径为1的圆),那么其最值就是寻找在X o Y XoY X o Y 上由g ( x , y ) ≤ 0 g(x,y)\le0 g ( x , y ) ≤ 0 确定的面投影到曲面f ( x , y ) f(x,y) f ( x , y ) 的曲面的最值,简而言之,它是求一个曲面的最值,这个曲面是整个f ( x , y ) f(x,y) f ( x , y ) 曲面的一部分。所以单靠拉格朗日数乘法不能解决这类的问题,于是就引入了KKT条件。最优值点满足KKT条件。
2)分类讨论最值情况:求f ( x , y ) f(x,y) f ( x , y ) 的一部分曲面(求的这部分的条件由g ( x , y ) ≤ 0 g(x,y)\le0 g ( x , y ) ≤ 0 给出),一般可分为两种情况(这里所有的g ( x , y ) ≤ 0 g(x,y)\le0 g ( x , y ) ≤ 0 这是KKT的前置条件之一,所有的不等式可以化成g ( x , y ) ≤ 0 g(x,y)\le0 g ( x , y ) ≤ 0 ):
a.当整体最值点,即没有约束条件情况下的最值点,在需要优化的这一部分的曲面里面的时候,那么其最值点就是没有约束情况下的最值点,于是对于拉格朗日数乘法构造的函数:L ( x , y , λ ) = f ( x , y ) + λ g ( x , y ) L (x,y,\lambda)=f (x,y)+\lambda g (x,y) L ( x , y , λ ) = f ( x , y ) + λ g ( x , y ) 中,λ = 0 \lambda=0 λ = 0 ,因为最值点就是没有约束的情况下的最值点,此时只需要求f ( x , y ) f(x,y) f ( x , y ) 的最值即可
b.当整体最值点,不在需要优化的这一部分的曲面里面的时候。在上述2)拉格朗日数乘法的原理中,求最小值(如果要求最大值也可以化成求最小值,在整个函数前加一个负号即可,二者是等价的)得出的结论是:− ∇ ⃗ f ( x , y ) = λ ∇ ⃗ g ( x , y ) -\vec\nabla f(x,y)=\lambda\vec\nabla g(x,y) − ∇ f ( x , y ) = λ ∇ g ( x , y ) ,且f ( x , y ) f(x,y) f ( x , y ) 的反方向梯度与g ( x , y ) g(x,y) g ( x , y ) 的方向必须是一致的,所以此时必有λ > 0 \lambda>0 λ > 0 。在这种情况下最小值必定在g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 确定的曲线投影到f ( x , y ) f(x,y) f ( x , y ) 曲面上从空间曲线取到,此时就回归到正常的拉格朗日数乘法问题上来
3)引出KKT的条件:
a.前置条件:必须满足f ( x , y ) f(x,y) f ( x , y ) 的反方向梯度与g ( x , y ) g(x,y) g ( x , y ) 的梯度平行,且方向相同即− ∇ ⃗ f ( x , y ) = λ ∇ ⃗ g ( x , y ) -\vec\nabla f(x,y)=\lambda\vec\nabla g(x,y) − ∇ f ( x , y ) = λ ∇ g ( x , y ) ,其次必须满足在X o Y XoY X o Y 平面上g ( x , y ) ≤ 0 g(x,y)\le0 g ( x , y ) ≤ 0
b.分类讨论得出的条件:λ ≥ 0 \lambda\ge0 λ ≥ 0 ,其次当λ = 0 \lambda=0 λ = 0 的时候g ( x , y ) ≤ 0 g(x,y)\le0 g ( x , y ) ≤ 0 ,当λ > 0 \lambda>0 λ > 0 的时候g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 ,于是就有λ g ( x , y ) = 0 \lambda g(x,y)=0 λ g ( x , y ) = 0
c.总结四个KKT条件:设最小值点为x ∗ ⃗ = ( x , y ) T \vec {x^*}=(x,y)^T x ∗ = ( x , y ) T ,λ \lambda λ 的最大值点为λ ∗ \lambda^* λ ∗ ,那么根据上面的推到结果就总结出KKT条件为:{ g ( x ∗ ⃗ ) ≤ 0 λ ≥ 0 ∇ L ( x ∗ ⃗ , λ ∗ ) = 0 ⃗ λ g ( x ∗ ⃗ ) = 0 \left\{\begin{matrix}g(\vec {x^*})\le0\\\lambda\ge0\\\nabla L(\vec{x^*},\lambda^*)=\vec 0\\\lambda g(\vec{x^*})=0\end{matrix}\right. ⎩ ⎨ ⎧ g ( x ∗ ) ≤ 0 λ ≥ 0 ∇ L ( x ∗ , λ ∗ ) = 0 λ g ( x ∗ ) = 0
4)引入实例(一元函数的情况,因为如果出现不等式,就不再是求一元曲线上的一个点的最小值,而是求范围的最小值,那么其就有讨论的意义了):设f ( x ) = x 2 f(x)=x^2 f ( x ) = x 2 ,不等式x − b ≤ 0 x-b\le 0 x − b ≤ 0 即x ≤ b x\le b x ≤ b ,如下图所示,分两种情况讨论最小值:
a. 当b > 0 b>0 b > 0 的时候,对应到点C C C ,点A ( 0 , 0 ) A(0,0) A ( 0 , 0 ) 包含在约束条件范围内,那么此时最小值点就是A ( 0 , 0 ) A(0,0) A ( 0 , 0 ) 。如果构造拉格朗日函数L ( x , λ ) = x 2 + λ ( x − b ) L(x,\lambda)=x^2+\lambda(x-b) L ( x , λ ) = x 2 + λ ( x − b ) 时对应的λ = 0 \lambda=0 λ = 0 ,类似的,如果升高维度去理解,就相当于f ( x , y ) f(x,y) f ( x , y ) 的全局最小值在约束范围所给出的部分曲面内,那么此时最小值即是全局最小值(没有约束条件下的最小值)。
b.当b ≤ 0 b\le0 b ≤ 0 的时候,对应到点B,点A ( 0 , 0 ) A(0,0) A ( 0 , 0 ) 没有包含在约束条件范围内,那么此时最小值点就是点B B B ,因为x x x 继续往左,函数值越大。如果构造拉格朗日函数L ( x , λ ) = x 2 + λ ( x − b ) L(x,\lambda)=x^2+\lambda(x-b) L ( x , λ ) = x 2 + λ ( x − b ) 时对应的λ > 0 \lambda>0 λ > 0 ,类似的,如果升高维度去理解,就相当于f ( x , y ) f(x,y) f ( x , y ) 的最小值在约束范围的边界中取到,也就是约束范围边界确定的曲线投影到曲面上的曲线,此时就转化为等式的拉格朗日问题。
若把两者合在一起,就形成了KKT条件。求解方程{ ∂ L ( x , λ ) ∂ x = 0 x − b = 0 \left\{\begin{matrix}\frac{\partial L(x,\lambda)}{\partial x}=0\\x-b=0\end{matrix}\right. { ∂ x ∂ L ( x , λ ) = 0 x − b = 0 即{ 2 x + λ = 0 x − b = 0 \left\{\begin{matrix}2x+\lambda=0\\x-b=0\end{matrix}\right. { 2 x + λ = 0 x − b = 0 解得λ = − 2 b \lambda=-2b λ = − 2 b 因为λ ≥ 0 \lambda \ge0 λ ≥ 0 所以此时只有b < 0 b<0 b < 0 ,当b > 0 b>0 b > 0 对应情况a,此时只能取λ = 0 \lambda=0 λ = 0 因此,λ \lambda λ 的取值范围是:[ 0 , − 2 b ] [0,-2b] [ 0 , − 2 b ] ,故λ = m a x ( 0 , − 2 b ) \lambda=max(0,-2b) λ = ma x ( 0 , − 2 b ) 因此如果要求f ( x ) f(x) f ( x ) 的最小值f ( x ∗ ) = m i n x m a x λ L ( x , λ ) f(x^*)=min_xmax_\lambda L(x,\lambda) f ( x ∗ ) = mi n x ma x λ L ( x , λ ) (其中x ∗ x^* x ∗ 是指最小值点,λ ≥ 0 \lambda\ge0 λ ≥ 0 )
3.多约束条件下的最值(进一步了解KKT)
1)描述:上述KKT条件只讨论了一个约束条件,如果将其扩展多个约束条件,设有p p p 个约束条件g i ( x ⃗ ) ≤ 0 g_i(\vec x)\le0 g i ( x ) ≤ 0 (i = 1 , 2 , 3 , . . . , p i=1,2,3,...,p i = 1 , 2 , 3 , ... , p 且 x ⃗ = ( x , y ) T \vec x=(x,y)^T x = ( x , y ) T ,先讨论二元函数,如果想要讨论更高的维度x ⃗ = ( x 1 , x 2 , . . . , x n ) T \vec x=(x_1,x_2,...,x_n)^T x = ( x 1 , x 2 , ... , x n ) T ) ,类似的,其KKT条件就可以扩展为:{ g i ( x ∗ ⃗ ) ≤ 0 ( i = 1 , 2 , 3 , . . . , p ) λ i ≥ 0 ( i = 1 , 2 , 3 , . . . , p ) ∇ L ( x ∗ ⃗ , λ ∗ ⃗ ) = 0 ⃗ ( λ ∗ ⃗ = ( λ 1 , λ 2 , λ 3 , . . . , λ p ) T ) λ i g i ( x ∗ ⃗ ) = 0 ( i = 1 , 2 , 3 , . . . , p ) \left\{\begin{matrix}g_i(\vec {x^*})\le0(i=1,2,3,...,p)\\\lambda_i\ge0(i=1,2,3,...,p)\\\nabla L(\vec{x^*},\vec{\lambda^*})=\vec 0(\vec{\lambda^*}=(\lambda_1,\lambda_2,\lambda_3,...,\lambda_p)^T)\\\lambda_i g_i(\vec{x^*})=0(i=1,2,3,...,p)\end{matrix}\right. ⎩ ⎨ ⎧ g i ( x ∗ ) ≤ 0 ( i = 1 , 2 , 3 , ... , p ) λ i ≥ 0 ( i = 1 , 2 , 3 , ... , p ) ∇ L ( x ∗ , λ ∗ ) = 0 ( λ ∗ = ( λ 1 , λ 2 , λ 3 , ... , λ p ) T ) λ i g i ( x ∗ ) = 0 ( i = 1 , 2 , 3 , ... , p ) ,此时L ( x ∗ ⃗ , λ ∗ ⃗ ) = f ( x ∗ ⃗ ) + ( λ ∗ ⃗ ) T ⋅ g ⃗ ( x ∗ ⃗ ) L(\vec{x^*},\vec{\lambda^*})=f(\vec{x^*})+(\vec{\lambda^*})^T\cdot\vec g(\vec{x^*}) L ( x ∗ , λ ∗ ) = f ( x ∗ ) + ( λ ∗ ) T ⋅ g ( x ∗ ) (其中g ⃗ ( x ∗ ⃗ ) = ( g 1 ( x ∗ ⃗ ) , g 2 ( x ∗ ⃗ ) , g 3 ( x ∗ ⃗ ) , . . . , g p ( x ∗ ⃗ ) ) \vec g(\vec{x^*})=(g_1(\vec{x^*}),g_2(\vec{x^*}),g_3(\vec{x^*}),...,g_p(\vec{x^*})) g ( x ∗ ) = ( g 1 ( x ∗ ) , g 2 ( x ∗ ) , g 3 ( x ∗ ) , ... , g p ( x ∗ )) ),其一般形式可以写成:L ( x ∗ ⃗ , λ 1 ∗ , λ 2 ∗ , λ 3 ∗ , . . . , λ p ∗ ) = f ( x ∗ ⃗ ) + ∑ i = 1 p λ i ⋅ g i ( x ∗ ⃗ ) L(\vec{x^*},\lambda^*_1,\lambda^*_2,\lambda^*_3,...,\lambda^*_p)=f(\vec{x^*})+\sum_{i=1}^{p}\lambda_i\cdot g_i(\vec{x^*}) L ( x ∗ , λ 1 ∗ , λ 2 ∗ , λ 3 ∗ , ... , λ p ∗ ) = f ( x ∗ ) + ∑ i = 1 p λ i ⋅ g i ( x ∗ )
2)图像表述:如下图所示设f ( x , y ) = x 2 + y 2 f(x,y)=x^2+y^2 f ( x , y ) = x 2 + y 2 ,有三个约束条件:g 1 ( x , y ) = y − 2 x + 1 ≤ 0 g_1(x,y)=y-2x+1\le0 g 1 ( x , y ) = y − 2 x + 1 ≤ 0 ,g 2 ( x , y ) = x − y − 1 ≤ 0 g_2(x,y)=x-y-1\le0 g 2 ( x , y ) = x − y − 1 ≤ 0 ,g 3 ( x , y ) = x + y − 1 ≤ 0 g_3(x,y)=x+y-1\le0 g 3 ( x , y ) = x + y − 1 ≤ 0 ,其中f ( x , y ) = x 2 + y 2 f(x,y)=x^2+y^2 f ( x , y ) = x 2 + y 2 的等值线用绿色的同心圆表示,g 1 ( x , y ) g_1(x,y) g 1 ( x , y ) ,g 2 ( x , y ) g_2(x,y) g 2 ( x , y ) 和g 3 ( x , y ) g_3(x,y) g 3 ( x , y ) 的等值线分别用蓝色,红色,黑色虚线表示,显然,如果没有约束条件下,最小值应该是点D D D (暗黄色表示),三个约束条件构成的平面区域用三角形表示他们三个的三个交点分别为A , B , C A,B,C A , B , C ,分别用红,黑,蓝表示,在g 1 ( x , y ) g_1(x,y) g 1 ( x , y ) 上有一点E E E (用青蓝色表示)是与f ( x , y ) = 0.2 f(x,y)=0.2 f ( x , y ) = 0.2 的等值线相切的点。观察图形可知在等值线上的每一个点均相等,并且等值线越靠近点D D D ,其值越小,所以在约束条件给出的平面内,点E E E 是最小值其他的点均不是最小值点。然后观察梯度三个约束条件的梯度(分别使用蓝色,红色,黑色的箭头表示)和f ( x , y ) f(x,y) f ( x , y ) 的反方向梯度(用紫色箭头表示)只有点E E E 是f ( x , y ) f(x,y) f ( x , y ) 的反方向梯度和g ( x , y ) g(x,y) g ( x , y ) 的梯度是方向一致的;反关点A , B , C A,B,C A , B , C 在λ 1 ≥ 0 \lambda_1\ge0 λ 1 ≥ 0 ,λ 2 ≥ 0 \lambda_2\ge0 λ 2 ≥ 0 ,λ 3 ≥ 0 \lambda_3\ge0 λ 3 ≥ 0 的条件下无论如何g 1 ( x , y ) g_1(x,y) g 1 ( x , y ) ,g 2 ( x , y ) g_2(x,y) g 2 ( x , y ) ,g 3 ( x , y ) g_3(x,y) g 3 ( x , y ) 都不能实现− ∇ ⃗ f ( x , y ) = λ 1 ∇ ⃗ g 1 ( x , y ) + λ 2 ∇ ⃗ g 2 ( x , y ) + λ 3 ∇ ⃗ g 3 ( x , y ) -\vec\nabla f(x,y)=\lambda_1\vec\nabla g_1(x,y)+\lambda_2\vec\nabla g_2(x,y)+\lambda_3\vec\nabla g_3(x,y) − ∇ f ( x , y ) = λ 1 ∇ g 1 ( x , y ) + λ 2 ∇ g 2 ( x , y ) + λ 3 ∇ g 3 ( x , y ) ,即无论如何g 1 ( x , y ) g_1(x,y) g 1 ( x , y ) ,g 2 ( x , y ) g_2(x,y) g 2 ( x , y ) ,g 3 ( x , y ) g_3(x,y) g 3 ( x , y ) 的梯度都不能通过线性组合的方式合成f ( x , y ) f(x,y) f ( x , y ) 的反向梯度,在一定程度上也说明了λ ≥ 0 \lambda\ge0 λ ≥ 0 ,否则是有可能实现− ∇ ⃗ f ( x , y ) = λ 1 ∇ ⃗ g 1 ( x , y ) + λ 2 ∇ ⃗ g 2 ( x , y ) + λ 3 ∇ ⃗ g 3 ( x , y ) -\vec\nabla f(x,y)=\lambda_1\vec\nabla g_1(x,y)+\lambda_2\vec\nabla g_2(x,y)+\lambda_3\vec\nabla g_3(x,y) − ∇ f ( x , y ) = λ 1 ∇ g 1 ( x , y ) + λ 2 ∇ g 2 ( x , y ) + λ 3 ∇ g 3 ( x , y ) ,举个例子点C C C (蓝色的点),当取g 3 ( x , y ) g_3(x,y) g 3 ( x , y ) 的梯度(黑色的箭头)的反方向,即λ < 0 \lambda<0 λ < 0 ,是有可能通过线性组合的方式合成− ∇ ⃗ f ( x , y ) -\vec\nabla f(x,y) − ∇ f ( x , y ) (紫色箭头)。对于点A , B , C A,B,C A , B , C ,它们都不是最优点(最优点为E E E ,x ∗ ⃗ = ( x , y ) T \vec{x^*}=(x,y)^T x ∗ = ( x , y ) T ,E E E 点的坐标为( x , y ) (x,y) ( x , y ) )。那么显然,对于g 2 ( x , y ) g_2(x,y) g 2 ( x , y ) ,g 3 ( x , y ) g_3(x,y) g 3 ( x , y ) ,代入x ∗ ⃗ \vec{x^*} x ∗ ,g 2 ( x ∗ ⃗ ) < 0 g_2(\vec{x^*})<0 g 2 ( x ∗ ) < 0 (红色线的左上方区域均为使g 2 ( x , y ) < 0 g_2(x,y)<0 g 2 ( x , y ) < 0 的点),g 3 ( x ∗ ⃗ ) < 0 g_3(\vec{x^*})<0 g 3 ( x ∗ ) < 0 (黑色线的左下方区域均为使g 3 ( x , y ) < 0 g_3(x,y)<0 g 3 ( x , y ) < 0 的点);对于g 1 ( x , y ) g_1(x,y) g 1 ( x , y ) 代入x ∗ ⃗ \vec{x^*} x ∗ ,g 1 ( x ∗ ⃗ ) = 0 g_1(\vec{x^*})=0 g 1 ( x ∗ ) = 0 (在蓝色线上的点使g 1 ( x , y ) = 0 g_1(x,y)=0 g 1 ( x , y ) = 0 的点),所以此时令λ 2 = 0 \lambda_2=0 λ 2 = 0 ,λ 3 = 0 \lambda_3=0 λ 3 = 0 此时g 2 ( x , y ) < 0 g_2(x,y)<0 g 2 ( x , y ) < 0 ,g 3 ( x , y ) < 0 g_3(x,y)<0 g 3 ( x , y ) < 0 ,这便是KKT条件中的g i ( x ∗ ⃗ ) ≤ 0 ( i = 1 , 2 , 3 , . . . , p ) g_i(\vec {x^*})\le0(i=1,2,3,...,p) g i ( x ∗ ) ≤ 0 ( i = 1 , 2 , 3 , ... , p ) ,λ i ≥ 0 ( i = 1 , 2 , 3 , . . . , p ) \lambda_i\ge0(i=1,2,3,...,p) λ i ≥ 0 ( i = 1 , 2 , 3 , ... , p ) 和λ i g i ( x ∗ ⃗ ) = 0 ( i = 1 , 2 , 3 , . . . , p ) \lambda_i g_i(\vec{x^*})=0(i=1,2,3,...,p) λ i g i ( x ∗ ) = 0 ( i = 1 , 2 , 3 , ... , p ) 。把g i ( x , y ) < 0 g_i(x,y)<0 g i ( x , y ) < 0 的函数即需要时λ = 0 \lambda=0 λ = 0 的约束条件函数称为是松弛的。把g i ( x , y ) = 0 g_i(x,y)=0 g i ( x , y ) = 0 的函数即需要时λ > 0 \lambda>0 λ > 0 的约束条件函数称为是紧致的。所以说着三个条件称为KKT的互补松弛条件。再看一种情况,如果最小值点D D D 在黄色区域里面的时候,边界g 1 ( x , y ) g_1(x,y) g 1 ( x , y ) ,g 2 ( x , y ) g_2(x,y) g 2 ( x , y ) ,g 3 ( x , y ) g_3(x,y) g 3 ( x , y ) 上任意一点,都不能在λ i > 0 \lambda_i>0 λ i > 0 的条件下满足− ∇ ⃗ f ( x , y ) = λ 1 ∇ ⃗ g 1 ( x , y ) + λ 2 ∇ ⃗ g 2 ( x , y ) + λ 3 ∇ ⃗ g 3 ( x , y ) -\vec\nabla f(x,y)=\lambda_1\vec\nabla g_1(x,y)+\lambda_2\vec\nabla g_2(x,y)+\lambda_3\vec\nabla g_3(x,y) − ∇ f ( x , y ) = λ 1 ∇ g 1 ( x , y ) + λ 2 ∇ g 2 ( x , y ) + λ 3 ∇ g 3 ( x , y ) ,此时λ 1 = 0 \lambda_1=0 λ 1 = 0 ,λ 2 = 0 \lambda_2=0 λ 2 = 0 ,λ 3 = 0 \lambda_3=0 λ 3 = 0 。
4.拉格朗日对偶
1)凸集(convex set):集合中任意两点 x 1 x_1 x 1 ,x 2 x_2 x 2 ,以及任意 t ∈ [ 0 , 1 ] t \in [0,1] t ∈ [ 0 , 1 ] ,连接两点的线段 t x 1 + ( 1 − t ) x 2 tx_1 + (1-t)x_2 t x 1 + ( 1 − t ) x 2 上的所有点都属于该集合(无凹陷)。如图所示,当集合是x y − 1 ≤ 0 xy-1\le0 x y − 1 ≤ 0 ,y − x − 2 ≤ 0 y-x-2\le0 y − x − 2 ≤ 0 ,y − x + 2 ≥ 0 y-x+2\ge0 y − x + 2 ≥ 0 围成的区域即红虚线,蓝虚线,绿虚线围成的集合时,连接集合内的两个点,C ( 1 2 , 2 ) C(\frac{1}{2},2) C ( 2 1 , 2 ) 和D ( 2 , 1 2 ) D(2,\frac{1}{2}) D ( 2 , 2 1 ) 形成黑色线段时,该线段有上有点不在集合内的,这就不是凸集。当集合是x 2 + y 2 ≤ 0 x^2+y^2\le0 x 2 + y 2 ≤ 0 时,该圆上任意一点的连线形成的线段上任何一点都在圆内,那么圆即集合x 2 + y 2 ≤ 0 x^2+y^2\le0 x 2 + y 2 ≤ 0 是一个凸集。凸集的反义并非凹集,而是非凸集。
2)仿射集(affien set):集合中任意两点确定的整条直线都包含在集合内(而非仅两点间的线段),它是凸集的特殊情况,所有仿射集都是凸集,但并非所有凸集都是仿射集,所以对于二维平面,一条一直线如y − x = 0 y-x=0 y − x = 0 就是一个仿射集;对于三维空间,一个平面如x + y + z = 0 x+y+z=0 x + y + z = 0 就是一个仿射集。数学表达:S ⊆ R n S\subseteq R^n S ⊆ R n (n n n 维向量,标量可视为一维向量),对于任意实数t ∈ R t\in R t ∈ R ,x ⃗ , y ⃗ ∈ S \vec{x},\vec{y}\in S x , y ∈ S 均满足:t x ⃗ + ( 1 − t ) y ⃗ ∈ S t\vec x+(1-t)\vec y\in S t x + ( 1 − t ) y ∈ S
3)凸函数(convex function):定义域为凸集,且对定义域内任意两点的连线,函数图像始终在连线下方,(凹函数则是函数图像始终在连线上方,凹函数一般可以化为凸函数例如在其前面加一个负号)数学表达为:对于一元函数:任意t ∈ [ 0 , 1 ] t\in[0,1] t ∈ [ 0 , 1 ] ,均满足f ( t x 1 + ( 1 − t ) x 2 ) ≤ t f ( x 1 ) + ( 1 − t ) f ( x 2 ) f(tx_1+(1-t)x_2)\le tf(x_1)+(1-t)f(x_2) f ( t x 1 + ( 1 − t ) x 2 ) ≤ t f ( x 1 ) + ( 1 − t ) f ( x 2 ) ,对于n n n (n > 1 n>1 n > 1 )元函数f ( t x ⃗ + ( 1 − t ) y ⃗ ) ≤ t f ( x ⃗ ) + ( 1 − t ) f ( y ⃗ ) f(t\vec{x}+(1-t)\vec{y})\le tf(\vec{x})+(1-t)f(\vec{y}) f ( t x + ( 1 − t ) y ) ≤ t f ( x ) + ( 1 − t ) f ( y ) (x ⃗ = ( x 1 , x 2 , x 3 , . . . , x n ) \vec{x}=(x_1,x_2,x_3,...,x_n) x = ( x 1 , x 2 , x 3 , ... , x n ) ,y ⃗ = ( x 1 , x 2 , x 3 , . . . , x n ) \vec{y}=(x_1,x_2,x_3,...,x_n) y = ( x 1 , x 2 , x 3 , ... , x n ) ),如果是严格凸函数,则把≤ \le ≤ 改成< < < ,如y = x 2 y=x^2 y = x 2 ,z = x 2 + y 2 z=x^2+y^2 z = x 2 + y 2 就是凸函数,因为对于y = x 2 y=x^2 y = x 2 在该曲线上任意两点的连线,该线段上的所有点均在函数图像的上方;对于z = x 2 + y 2 z=x^2+y^2 z = x 2 + y 2 ,在该曲面上任意两点的连线构成的弦,该弦上的所有点均在函数提箱的上方。
4)凸优化问题(convex optimization problem):目标函数为凸函数、不等式约束函数为凸函数、等式约束函数为仿射函数,且可行域为凸集的优化问题(不等式约束围成的区域称为可行域)。
5)对偶问题(dual problem):对于原问题m i n f ( x , y ) minf(x,y) min f ( x , y ) ,约束条件为:g i ( x , y ) ≤ 0 g_i(x,y)\le0 g i ( x , y ) ≤ 0 ,h i ( x , y ) = 0 h_i(x,y)=0 h i ( x , y ) = 0 等价于:m i n x ⃗ m a x λ i ≥ 0 L ( x ⃗ , λ ⃗ ) min_{\vec x}max_{\lambda_i\ge0}L(\vec x,\vec\lambda) mi n x ma x λ i ≥ 0 L ( x , λ ) (x ⃗ = ( x , y ) T \vec x=(x,y)^T x = ( x , y ) T ,λ ⃗ = ( λ 1 , λ 2 ) T \vec\lambda=(\lambda_1,\lambda_2)^T λ = ( λ 1 , λ 2 ) T ,L ( x ⃗ , λ ⃗ ) L(\vec x,\vec\lambda) L ( x , λ ) 为拉格朗日函数,先聚焦于不等式情况,等式情况可以使用正常的拉格朗日数乘法与不等式问题一起优化),约束条件为:g i ( x ⃗ ) ≤ 0 g_i(\vec x)\le0 g i ( x ) ≤ 0 ,它的对偶问题为m a x λ i ≥ 0 m i n x ⃗ L ( x ⃗ , λ ⃗ ) max_{\lambda_i\ge 0}min_{\vec x}L(\vec x,\vec\lambda) ma x λ i ≥ 0 mi n x L ( x , λ ) ,约束条件变为λ ≥ 0 \lambda\ge0 λ ≥ 0 因为只看最外层的m i n min min 或者m a x max ma x ,所以约束条件发生了变化。
6)强对偶和弱对偶:设A ( x ⃗ ) = m a x λ i ≥ 0 L ( x ⃗ , λ ⃗ ) A(\vec x)=max_{\lambda_i\ge0}L(\vec x,\vec\lambda) A ( x ) = ma x λ i ≥ 0 L ( x , λ ) (因为要最大化λ i \lambda_i λ i ,所以固定x ⃗ \vec x x ),设B ( λ ⃗ ) = m i n x ⃗ L ( x ⃗ , λ ⃗ ) B(\vec\lambda)=min_{\vec x}L(\vec x,\vec\lambda) B ( λ ) = mi n x L ( x , λ ) (因为要最小化x ⃗ \vec x x ,所以固定λ ⃗ \vec\lambda λ )于是就有A ( x ⃗ ) ≥ L ( x ⃗ , λ ⃗ ) ≥ B ( λ ⃗ ) A(\vec x)\ge L(\vec x,\vec\lambda)\ge B(\vec\lambda) A ( x ) ≥ L ( x , λ ) ≥ B ( λ ) 恒成立,即A ( x ⃗ ) ≥ B ( λ ⃗ ) A(\vec x)\ge B(\vec\lambda) A ( x ) ≥ B ( λ ) 恒成立。而A ( x ⃗ ) ≥ m i n x ⃗ A ( x ⃗ ) ≥ m a x λ i ≥ 0 B ( λ ⃗ ) ≥ B ( λ ⃗ ) A(\vec x)\ge min_{\vec x}A(\vec x)\ge max_{\lambda_i\ge 0}B(\vec\lambda)\ge B(\vec\lambda) A ( x ) ≥ mi n x A ( x ) ≥ ma x λ i ≥ 0 B ( λ ) ≥ B ( λ ) 也恒成立,从此得出结论m i n x ⃗ A ( x ⃗ ) = m i n x ⃗ m a x λ i ≥ 0 L ( x ⃗ , λ ⃗ ) ≥ m a x λ i ≥ 0 m i n x ⃗ L ( x ⃗ , λ ⃗ ) = m a x λ i ≥ 0 B ( λ ⃗ ) min_{\vec x}A(\vec x)=min_{\vec x}max_{\lambda_i\ge0}L(\vec x,\vec\lambda)\ge max_{\lambda_i\ge 0}min_{\vec x}L(\vec x,\vec\lambda)=max_{\lambda_i\ge 0}B(\vec\lambda) mi n x A ( x ) = mi n x ma x λ i ≥ 0 L ( x , λ ) ≥ ma x λ i ≥ 0 mi n x L ( x , λ ) = ma x λ i ≥ 0 B ( λ ) 。如果m i n x ⃗ m a x λ i ≥ 0 L ( x ⃗ , λ ⃗ ) = m a x λ i ≥ 0 m i n x ⃗ L ( x ⃗ , λ ⃗ ) min_{\vec x}max_{\lambda_i\ge0}L(\vec x,\vec\lambda)=max_{\lambda_i\ge 0}min_{\vec x}L(\vec x,\vec\lambda) mi n x ma x λ i ≥ 0 L ( x , λ ) = ma x λ i ≥ 0 mi n x L ( x , λ ) ,称强对偶,如果m i n x ⃗ m a x λ i ≥ 0 L ( x ⃗ , λ ⃗ ) > m a x λ i ≥ 0 m i n x ⃗ L ( x ⃗ , λ ⃗ ) min_{\vec x}max_{\lambda_i\ge0}L(\vec x,\vec\lambda)>max_{\lambda_i\ge 0}min_{\vec x}L(\vec x,\vec\lambda) mi n x ma x λ i ≥ 0 L ( x , λ ) > ma x λ i ≥ 0 mi n x L ( x , λ ) ,称弱对偶
7)强对偶的前提:先改写拉格朗日函数L ( x ⃗ , λ ⃗ ) = f ( x ⃗ ) + ( λ ⃗ ) T ⋅ g ⃗ ( x ⃗ ) = t + ( λ ⃗ ) T ⋅ μ ⃗ L(\vec x,\vec\lambda)=f(\vec x)+(\vec\lambda)^T\cdot\vec g(\vec{x})=t+(\vec\lambda)^T\cdot\vec\mu L ( x , λ ) = f ( x ) + ( λ ) T ⋅ g ( x ) = t + ( λ ) T ⋅ μ (μ ⃗ \vec\mu μ 是一个向量,在这里先理解成一个简单变量),原问题是:m i n x ⃗ m a x λ i ≥ 0 L ( x ⃗ , λ ⃗ ) min_{\vec x}max_{\lambda_i\ge0}L(\vec x,\vec\lambda) mi n x ma x λ i ≥ 0 L ( x , λ ) ,可以把原问题的可行域就是(假设有m m m 个不等式约束条件){ ( t , μ ⃗ ) ∣ t = f ( x ⃗ ) , μ i = g i ( x ⃗ ) , x ⃗ ∈ D } = G 1 \left\{(t,\vec\mu)|t=f(\vec x),\mu_i=g_i(\vec x),\vec x\in D \right\}=G_1 { ( t , μ ) ∣ t = f ( x ) , μ i = g i ( x ) , x ∈ D } = G 1 ,D = { x ⃗ ∣ g i ( x ⃗ ) ≤ 0 } ( i = 1 , 2 , 3 , . . , m ) D=\left\{\vec x|g_i(\vec x)\le0\right\}(i=1,2,3,..,m) D = { x ∣ g i ( x ) ≤ 0 } ( i = 1 , 2 , 3 , .. , m ) 其对偶问题为:m a x λ i ≥ 0 m i n x ⃗ L ( x ⃗ , λ ⃗ ) max_{\lambda_i\ge 0}min_{\vec x}L(\vec x,\vec\lambda) ma x λ i ≥ 0 mi n x L ( x , λ ) ,它的可行域为{ ( t , μ ⃗ ) ∣ t = f ( x ⃗ ) , μ i = g i ( x ⃗ ) , x ⃗ ∈ R n } = G 2 \left\{(t,\vec\mu)|t=f(\vec x),\mu_i=g_i(\vec x),\vec x\in R^n\right\}=G_2 { ( t , μ ) ∣ t = f ( x ) , μ i = g i ( x ) , x ∈ R n } = G 2 ,按照改写的拉格朗日,原问题是:m i n { t ∣ ( t , μ ⃗ ) ∈ G 1 , μ i ≥ 0 } min\left\{t|(t,\vec\mu)\in G_1,\mu_i\ge0\right\} min { t ∣ ( t , μ ) ∈ G 1 , μ i ≥ 0 } ,对偶问题是:m a x λ i ≥ 0 m i n x ⃗ { t + ( λ ⃗ ) T ⋅ μ ⃗ ∣ ( t , μ ⃗ ) ∈ G 2 , λ i ≥ 0 } max_{\lambda_i\ge0}min_{\vec x}\left\{t+(\vec\lambda)^T\cdot\vec\mu|(t,\vec\mu)\in G_2,\lambda_i\ge 0\right\} ma x λ i ≥ 0 mi n x { t + ( λ ) T ⋅ μ ∣ ( t , μ ) ∈ G 2 , λ i ≥ 0 } 于是建立t O μ tO\mu tO μ 直角坐标系,G 2 G_2 G 2 分是否为凸集以及凸集的情况三种情况来讨论。
a.G 2 G_2 G 2 为非凸集:如图所示,在t O μ tO\mu tO μ 平面中,由于x ⃗ ∈ R n \vec x\in R^n x ∈ R n 但是在u , t u,t u , t 平面不是无限的,假设G 2 G_2 G 2 区域为下图中的黄色+橙色区域;在G 1 G_1 G 1 中,因为μ ≤ 0 \mu\le0 μ ≤ 0 ,所以其区域是黄色部分要求原问题:m i n { t ∣ ( t , μ ⃗ ) ∈ G 1 , μ i ≤ 0 } min\left\{t|(t,\vec\mu)\in G_1,\mu_i\le0\right\} min { t ∣ ( t , μ ) ∈ G 1 , μ i ≤ 0 } ,显然t t t 的最小值是点A A A (用蓝色交点表示)的纵坐标即为p;对于对偶问题:m a x λ i ≥ 0 m i n x ⃗ { t + ( λ ⃗ ) T ⋅ μ ⃗ ∣ ( t , μ ⃗ ) ∈ G 2 , λ i ≥ 0 } max_{\lambda_i\ge0}min_{\vec x}\left\{t+(\vec\lambda)^T\cdot\vec\mu|(t,\vec\mu)\in G_2,\lambda_i\ge 0\right\} ma x λ i ≥ 0 mi n x { t + ( λ ) T ⋅ μ ∣ ( t , μ ) ∈ G 2 , λ i ≥ 0 } ,μ ⃗ \vec\mu μ 看作是一个变量,那么先最小化t + ( λ ⃗ ) T ⋅ μ ⃗ t+(\vec\lambda)^T\cdot\vec\mu t + ( λ ) T ⋅ μ ,相当于在G 2 G_2 G 2 区域内(黄色+橙色区域内)固定斜率(对于在t O μ tO\mu tO μ 的平面内,t + ( λ ⃗ ) T ⋅ μ ⃗ t+(\vec\lambda)^T\cdot\vec\mu t + ( λ ) T ⋅ μ 相当于一条直线,把t t t 想象成X O Y XOY XO Y 里的y y y ;把μ \mu μ 想象成x x x ,那么斜率为− ( λ ⃗ ) T -(\vec\lambda)^T − ( λ ) T ,因为λ i ≥ 0 \lambda_i\ge0 λ i ≥ 0 ,所以斜率必定是非正的),找出直线t + ( λ ⃗ ) T ⋅ μ ⃗ = c o n s t t+(\vec\lambda)^T\cdot\vec\mu=const t + ( λ ) T ⋅ μ = co n s t 的最小值(即截距,c o n s t const co n s t 就是截距)。先把斜率设为0 0 0 ,那么显然G 2 G_2 G 2 的最小值必定是点B B B (用红色交点表示)的纵坐标,之后需要最大化( λ ⃗ ) T (\vec\lambda)^T ( λ ) T 使得截距最大化,即在斜率小于0 0 0 的情况下最小化斜率(因为斜率是− ( λ ⃗ ) T -(\vec\lambda)^T − ( λ ) T ,且λ i > 0 \lambda_i>0 λ i > 0 ,所以最大化( λ ⃗ ) T (\vec\lambda)^T ( λ ) T 就是最小化斜率),那么显然当A A A ,B B B 两点连线的时候斜率满足(当斜率继续减小的时候,l = t + ( λ ⃗ ) T ⋅ μ ⃗ l=t+(\vec\lambda)^T\cdot\vec\mu l = t + ( λ ) T ⋅ μ 进入了G 1 G_1 G 1 (也算G 2 G_2 G 2 )的黄色区域,此时显然直线在A点下方,而AB两点形成的直线满足对偶问题,但是比l l l 的截距更小,而对偶问题是需要寻找最小的l l l 截距,这个截距是一个"范围",然后,再从这个截距"范围"里面寻找最大,如果进入黄色区域就超出了这个"范围",那么他就不算最优解了)。显然这种情况下p > q p>q p > q 的即m i n x ⃗ m a x λ i ≥ 0 L ( x ⃗ , λ ⃗ ) > m a x λ i ≥ 0 m i n x ⃗ L ( x ⃗ , λ ⃗ ) min_{\vec x}max_{\lambda_i\ge0}L(\vec x,\vec\lambda)>max_{\lambda_i\ge 0}min_{\vec x}L(\vec x,\vec\lambda) mi n x ma x λ i ≥ 0 L ( x , λ ) > ma x λ i ≥ 0 mi n x L ( x , λ ) ,是弱对偶的。
b.G 2 G_2 G 2 为凸集的情况一:最小值点在t t t 轴上,如下图所示,首先分析原问题:m i n { t ∣ ( t , μ ⃗ ) ∈ G 1 , μ i ≤ 0 } min\left\{t|(t,\vec\mu)\in G_1,\mu_i\le0\right\} min { t ∣ ( t , μ ) ∈ G 1 , μ i ≤ 0 } ,其可行域就是G 1 G_1 G 1 (黄色范围)那么t t t 的最小值就是点C C C ,点C C C 恰好在t t t 轴上;再分析对偶问题:m a x λ i ≥ 0 m i n x ⃗ { t + ( λ ⃗ ) T ⋅ μ ⃗ ∣ ( t , μ ⃗ ) ∈ G 2 , λ i ≥ 0 } max_{\lambda_i\ge0}min_{\vec x}\left\{t+(\vec\lambda)^T\cdot\vec\mu|(t,\vec\mu)\in G_2,\lambda_i\ge 0\right\} ma x λ i ≥ 0 mi n x { t + ( λ ) T ⋅ μ ∣ ( t , μ ) ∈ G 2 , λ i ≥ 0 } ,先固定斜率(假设一开始为0 0 0 ),那么C C C 恰好就是最小的截距,再减小斜率,发现只有切线的时候最小(不能进入黄色区域)。显然这种情况下p = q p=q p = q (点C C C )的即m i n x ⃗ m a x λ i ≥ 0 L ( x ⃗ , λ ⃗ ) = m a x λ i ≥ 0 m i n x ⃗ L ( x ⃗ , λ ⃗ ) min_{\vec x}max_{\lambda_i\ge0}L(\vec x,\vec\lambda)=max_{\lambda_i\ge 0}min_{\vec x}L(\vec x,\vec\lambda) mi n x ma x λ i ≥ 0 L ( x , λ ) = ma x λ i ≥ 0 mi n x L ( x , λ ) ,是强对偶的。
c.G 2 G_2 G 2 为凸集的情况二:最小值点不在t t t 轴上,如下图所示,首先分析原问题:m i n { t ∣ ( t , μ ⃗ ) ∈ G 1 , μ i ≤ 0 } min\left\{t|(t,\vec\mu)\in G_1,\mu_i\le0\right\} min { t ∣ ( t , μ ) ∈ G 1 , μ i ≤ 0 } ,其可行域就是G 1 G_1 G 1 (黄色范围)那么t t t 的最小值就是点C C C 的纵坐标值;再分析对偶问题:m a x λ i ≥ 0 m i n x ⃗ { t + ( λ ⃗ ) T ⋅ μ ⃗ ∣ ( t , μ ⃗ ) ∈ G 2 , λ i ≥ 0 } max_{\lambda_i\ge0}min_{\vec x}\left\{t+(\vec\lambda)^T\cdot\vec\mu|(t,\vec\mu)\in G_2,\lambda_i\ge 0\right\} ma x λ i ≥ 0 mi n x { t + ( λ ) T ⋅ μ ∣ ( t , μ ) ∈ G 2 , λ i ≥ 0 } ,先固定斜率(假设一开始为0 0 0 ),那么点C C C 的纵坐标恰好就是最小的截距,然后想要减小斜率,但是不能减小,因为从斜率是0开始减小,就进入了黄色区域了,所以斜率只能为0。显然这种情况下也是p = q p=q p = q (点C C C )的即m i n x ⃗ m a x λ i ≥ 0 L ( x ⃗ , λ ⃗ ) = m a x λ i ≥ 0 m i n x ⃗ L ( x ⃗ , λ ⃗ ) min_{\vec x}max_{\lambda_i\ge0}L(\vec x,\vec\lambda)=max_{\lambda_i\ge 0}min_{\vec x}L(\vec x,\vec\lambda) mi n x ma x λ i ≥ 0 L ( x , λ ) = ma x λ i ≥ 0 mi n x L ( x , λ ) ,也是强对偶的。
于是就引出了一个结论,当原问题是一个凸问题并且满足slater条件(至少有一个点在约束条件之内即对于约束条件:g i ( x ⃗ ) ≤ 0 g_i(\vec x)\le0 g i ( x ) ≤ 0 中g i ( x ⃗ ) g_i(\vec x) g i ( x ) 不能恒为0 0 0 )的情况下,满足强对偶即原问题的最优解等于对偶问题的最优解。
8)KKT条件成为最优解的重要条件的前提:从2.可知,一个最优点是满足KKT的条件的,但是满足KKT条件的未必是最优点,所以最优点是满足KKT条件的必要条件。但是当该问题是强对偶问题的条件下,最优点是满足KKT条件的充要条件。