在约束最优化问题中,常常利用拉格朗日对偶性(Lagrange duality)将原始问题转换为对偶问题,通过解决对偶问题而得到原始问题的解。该方法在支持向量机及最大熵模型中都有应用。
约束问题又可分为等式约束和不等式约束,本文将分别简要的介绍这两种约束下的最优化问题的求解。
无约束优化
首先考虑一个不带任何约束的优化问题,对于变量 x∈RN 的函数f(x)
,无约束优化问题如下:
∇xf(x)=0
,如果没有解析解的话,可以使用梯度下降或牛顿方法等迭代的手段来使 x 沿负梯度方向逐步逼近极小值点。
等式约束优化
当目标函数加上约束条件之后,问题就变成如下形式:
∇xf(x)
为 0 的点,只需找到在可行域内使得 f(x)
最小的值即可,常用的方法即为拉格朗日乘子法,该方法首先引入 Lagrange Multiplier α∈Rm
,构建 Lagrangian 如下:为什么构建出来的拉格朗日函数偏导为0时的点即为最优解?这里分别从几何以及代数方面来进行理解。
几何角度:
对于二维情况下的目标函数f(x,y)
,在平面上画出其等高线,如下图虚线所示。并只给出一个约束等式h(x,y)=0
,如下图的绿线所示,目标函数f(x,y)
与约束h(x,y)
只有三种情况,相交、相切或者没有交集,没交集肯定不是解,只有相交或者相切可能是解,但相交得到的一定不是最优值,因为相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,这就意味着只有等高线与目标函数的曲线相切的时候,才可能得到可行解.
代数角度:
求一个多元函数f(x,y,z,...)
在条件g(x,y,z,...)=a
下的极值实际上是求前者在后者定义域下的极值。
而求函数L(r,x,y,z,...)=f(x,y,z,...)+r*(g(x,y,z,...)-a)
的无条件极值,极值存在的条件为L的所有偏导数为0.
由于r也是L的变量,所以L对r的偏导数为0相当于求g(x,y,z,...)-a=0
,这恰好使L(r,x,y,z,...)
除r外的所有变量被限制在g(x,y,z,...)
的定义域内。而在这个定义域内g-a=0
恒成立,所以就有L=f
,求f的等式约束极值被转化为求L的无条件极值问题。
不等式约束优化
当约束加上不等式之后,情况变得更加复杂,先来看看原始问题:
f(x)
可以转化为上面的θp(x)?由上面的限制条件(L(x,α,β)
第二项最大值为0,第三项恒等于0)可知L(x,α,β)<=f(x)
,因此maxα,β;α>=0(L(x,α,β))=f(x)。
所以,求原函数f(x)
的极小值等价于求上式θp(x)的最小值,也即:
这是一个对乘子变量求最大值的问题,将x看成常数。这样原问题被转化为先对乘子变量求最大值,再对x求最小值。这个原问题和我们要求解的最小化问题有同样的解,如果x违反了等式或不等式约束,上面问题的最优解是无穷大,因此不可能是问题的解。如果x满足等式和不等式约束,上面的问题的最优解就是
f(x)
, 因此二者等价。通过这样的构造,将带约束条件的问题转化成对x没有约束的问题。
接下来定义对偶问题
参考:
统计学习方法. 李航
用一张图理解SVM的脉络
约束优化方法之拉格朗日乘子法与KKT条件