等式约束:拉格朗日乘子

推导

经典拉格朗日乘子法是下面的优化问题(注:x是一个向量):
4.2 有约束优化 - 图1
等式约束:
4.2 有约束优化 - 图2 4.2 有约束优化 - 图3
先引入等高线的概念,以二维函数f(x,y)为例,用平行于XOY的平面去切这个二维函数然后投影至XOY平面上,就可以得到等高线(等高线上函数值相等),越往中心越接近函数最小值。然而这里还有等式约束,也就是要在曲线4.2 有约束优化 - 图4上找到一个距离等高线中心最近的点。所以很自然地就是要找到等高线与曲线相切的点。因为切线方向是共线的,所以法线方向也是共线的。
4.2 有约束优化 - 图5
下面来求此时等高线的法线:
设二维函数为z=f(x,y),那么当高度z为常数c时的等高线也就是:
4.2 有约束优化 - 图6
对其求偏导,并令其等于0有:
4.2 有约束优化 - 图7
可以转化为:
4.2 有约束优化 - 图8
而该函数的梯度可以用各个偏导排列组成的向量表示,即4.2 有约束优化 - 图9,梯度方向为:4.2 有约束优化 - 图10
用切向乘以梯度方向有:
4.2 有约束优化 - 图11
所以梯度方向与切线方向垂直,即梯度方向与法线方向共线。即:
4.2 有约束优化 - 图12
也就是此时二维函数与约束函数的梯度方向共线。

以上是二维函数的例子,推广到n维就是:
image.png
其中4.2 有约束优化 - 图14
把第一个式子展开有:
4.2 有约束优化 - 图15
4.2 有约束优化 - 图16

这里为了统一上面两个方程,我们引入拉格朗日函数:
4.2 有约束优化 - 图17
对拉格朗日函数求导就能得到上面的两个函数。这就是拉格朗日函数的推导。

不等式约束

这里跟等式约束差不多,只是约束函数变为4.2 有约束优化 - 图18(大于等于可以转化为小于等于)。
首先我们假设等高线中心不在约束范围内,否则最小值就可以直接取中心了。
所以此时f(x)的梯度方向与g(x)的梯度方向是相反的。
那么这时引入的拉格朗日函数为:
4.2 有约束优化 - 图19
上面多引入第二个方程的含义是,当取到4.2 有约束优化 - 图20的内部点时(即不在曲线g(x)=0上),那么该方程就会得到4.2 有约束优化 - 图21,那么方程4.2 有约束优化 - 图22就不起作用了。该方程只有在4.2 有约束优化 - 图23时使得4.2 有约束优化 - 图24。该方程有时也叫做KKT条件。

求解流程

下面总结一下求解流程:
假设4.2 有约束优化 - 图25是定义在4.2 有约束优化 - 图26上的连续可微函数,最优化问题为:
4.2 有约束优化 - 图27
4.2 有约束优化 - 图28
4.2 有约束优化 - 图29
所以引入的拉格朗日函数为:
4.2 有约束优化 - 图30
需要满足:
4.2 有约束优化 - 图31
从而解出4.2 有约束优化 - 图32

举个例子辅助理解
image.png 解得:image.png

优化的对偶理论

原始问题

image.png
注意上式中把x看作一个给定的常数,要寻找4.2 有约束优化 - 图36得到最大值为4.2 有约束优化 - 图37,所以这是x的函数。

要求4.2 有约束优化 - 图38需要分三种情况讨论:
情况一,x满足原始条件的约束,则拉格朗日函数变为:
4.2 有约束优化 - 图39
因为4.2 有约束优化 - 图40,所以当4.2 有约束优化 - 图41时,函数取到最大值,即:
4.2 有约束优化 - 图42
所以
4.2 有约束优化 - 图43
情况二,存在4.2 有约束优化 - 图44使得4.2 有约束优化 - 图45,那么我们令除了4.2 有约束优化 - 图46以外的4.2 有约束优化 - 图47都为0,令所有4.2 有约束优化 - 图48也都为0(这里是为了找到
4.2 有约束优化 - 图49而取的),则拉格朗日函数函数变为:
4.2 有约束优化 - 图50
因为4.2 有约束优化 - 图51,而4.2 有约束优化 - 图52是给定不变的,所以整个函数没有上界。
情况三,存在4.2 有约束优化 - 图53使得4.2 有约束优化 - 图54,那么我们令除了4.2 有约束优化 - 图55以外的4.2 有约束优化 - 图56都为0,令所有4.2 有约束优化 - 图57也都为0,则拉格朗日函数为:
4.2 有约束优化 - 图58
4.2 有约束优化 - 图59也是没有上界的,而4.2 有约束优化 - 图60是给定不变的,所以整个函数没有上界。

对以上三种情况总结,则有:

image.png

而上式又可以转化为:
4.2 有约束优化 - 图62x满足原始问题约束
而这个又是原问题!所以我们知道原问题与4.2 有约束优化 - 图63是等价的。
所以我们可以将原问题转化求4.2 有约束优化 - 图64,因为此时我们不用考虑原问题的一堆约束,只要满足
4.2 有约束优化 - 图65.

对偶问题

image.png

弱对偶定理

image.png
以上这种形式是弱对偶形式,如果能把不等号变成等号,那么就变成强对偶形式。
变成强对偶形式是有好处的,这样原问题就可以转变为对偶问题来求解,因为对偶问题更容易计算。
下面就来看看什么时候可以取为等号,变成强对偶。

强对偶定理

弱对偶转为强对偶的条件

image.png
其中仿射函数就是一次线性函数。
机器学习中SVM算法就都满足上面的条件,所以它可以转化为对偶问题求解。

KKT条件

然而要想对偶问题的解就是原始问题的解,则还要满足以下的KKT条件
image.png