存在即有理---拉格朗日乘子法(Lagrange Multiplier Method)

拉格朗日乘子法是为了解决有约束的优化(最大最小化)问题。

网上很多博客论坛将KKT条件与不等式优化的乘子法混淆了,并且有很多对于这个概念混沌的地方。我就写一篇梳理一遍思路。

已知一个问题的目标与参数的关系是y=x^2,那么我们很容易知道当x=0时,最优的目标y=min \ x^2=0.但是如果我们给这个优化过程添加一条约束:x-1 \geq 0,也就是x必须满足这一约束的情况下,求解原函数的最小值。则这个问题就得换种思路解决。我们在此时我们便引入了拉格朗日乘子法(Lagrange Multiplier Method),有的地方也叫拉格朗日乘数法

先来看一个最简单的例子

单个等式约束条件下的拉格朗日乘子法,这种情况下最简单,我们一定要注意计算过程,不眼高手低,我举一个完整的例子该大家看:

\max_{x,y} \; f(x,y)=x^2y \quad
s.t. \quad g(x,y): \ x^2+y^2-3 = 0

我们设拉格朗日乘子为\lambda,则有如下拉格朗日函数:

L(x,y,\lambda)=x^2y-\lambda(x^2+y^2-3)

接下来对x,y,\lambda三个变量分别求偏微分:

\nabla_{x,y,\lambda}L(x,y,\lambda)=\left( \frac{\partial L}{\partial x},\frac{\partial L}{\partial y},\frac{\partial L}{\partial \lambda}  \right)
=(2xy+2 \lambda x,x^2+2 \lambda y,x^2+y^2-3)

令偏微分都为0,则有:

\nabla_{x,y,\lambda}L(x,y,\lambda)=0  \;  \iff \begin{cases} 2xy+2\lambda x =0, \quad (i) \\  x^2+2 \lambda y=0, \quad (ii) \\ x^2+y^2-3=0, \quad (iii) \end{cases}

解出L

(\pm \sqrt 2,1,-1);(\pm \sqrt 2,-1;1);(0, \pm \sqrt 3,0)

代入f(x,y)中解得最终f(x,y)几种可能的值分别为2,-2,0,则此为最大最小值的集合,可知\max_{x,y} \; f(x,y) =2,上图已经完全解释了我这一串计算过程。

再看看不等式约束与KKT条件

情况会稍微复杂一点。对于不等式约束,只要满足一定的条件,依然可以使用拉格朗日乘子法解决,这里的条件便是KKT条件(Karush–Kuhn–Tucker conditions)。KKT条件是以人名命名的,所以不必关注其命名的背后含义。我看很多论坛博客上写的等式约束使用拉格朗日乘子法,不等式约束使用KKT条件法,这是不严谨的。KKT条件只是一个条件而已,并不是一种方法。等式和不等式约束优化问题所采用的方法都是拉格朗日乘子法。

我们看这样一个不等式约束的问题:

\min_x \;f(x) \qquad s.t. \; g(x)\leq0

其对应的拉格朗日函数如下所示:

L(x,\lambda)=f(x)+ \lambda g(x)

这时可行解必须落在约束区域以内,下图给了目标函数的等高线以及约束:

这里红色的区域代表的是不等式的区域,蓝色代表的原函数的等高线,这里我们可以将其想象成一个碗状的三维图形。值得一提的是,我们这里暂时只针对凸函数问题,所以我们可以看到这个蓝色圆心便是最优解。

那么现在我们只会有两种情况了:一种是原函数的最优解就已经在约束范围内;另一种是原函数的最优解在约束范围边界上或者之外。我们来看下面两图:

我们看第一个图就代表了第一种情况,蓝色圆心在红色圆内。这样约束条件没有起到约束作用,约束之后的最优解还是原来的最优解。对于第二个图,我们看到蓝色圆心在红色区域之外。当然这也包括了刚好在红色边界上的情况。为什么这两种情况归为一类呢?我们接着看:我们必须要满足约束条件,也就是我们必须要在红色范围内找到一个最优解。即使这个最优解并不是原函数最优的。由于原函数是一个凸函数,所以是平滑单个极值。那么理论上说,我们在极值往外任意方向上,都是离极值越近,那个值就越优。所以我们便可知,这个最优值会在约束的边界上。也就是g(x)=0的时候。这时候就又变成了等式约束了。

以上两种情况就是说,要么可行解落在约束边界上即得g(x)=0,要么可行解落在约束区域内部,此时约束不起作用,令 \lambda = 0 消去约束即可,所以无论哪种情况都会得到:

λg(x)=0

而在这种情况下,我们的不等式约束是和等式约束同解的。这种情况,就是我们所说的KKT条件下。所以我们总结出此问题的KKT条件:

\begin{cases}  \nabla_x L(x,\lambda) =0, \quad (I) \\  λg(x)=0, \quad (II) \\ g(x) \leq 0, \quad (III)  \\ \lambda \geq0, \quad (IV) \\  \end{cases}

总结:KKT是我们将不等式约束直接化成等式约束的必要条件,也是这个不等式约束的必要条件。在凸函数优化问题中,升级为充要条件。一般的,KKT条件很容易满足,我们论证一下就可以使用乘子法解决问题。在拉格朗日对偶中,KKT条件也是十分重要的条件,判断原问题与对偶问题是否有一致解。这个在《拉格朗日对偶》里面细说。

上式需要满足的要求是拉格朗日乘子\lambda\geq0,这个问题可以举一个形象的例子,假设你去爬山,目标是山顶,但有一个障碍挡住了通向山顶的路,所以只能沿着障碍爬到尽可能靠近山顶的位置,然后望着山顶叹叹气,这里山顶便是目标函数的可行解,障碍便是约束函数的边界,此时的梯度方向一定是指向山顶的,与障碍的梯度同向,下图描述了这种情况 :

当然更一般的问题:

\min_{x\in R^n}\ f(x)
s.t. \quad c_{i}(x)\leq0 \ ,\quad i=1,2,...,k
\quad \qquad h_{j}(x)=0 \ ,\quad j=1,2,...,l

我们有更为完整的KKT条件:

\begin{cases}  \nabla_x L(x,\alpha_i,\beta_i) =0, \qquad \qquad \quad (1) \\  \alpha_i c_i(x) = 0, \quad i=1,2,...,k \quad(2) \\ h_j(x) = 0, \qquad  j=1,2,...,l \quad  (3)  \\ c_i(x) \leq0, \quad  i=1,2,...,k \qquad(4) \\  \alpha_i \geq0, \quad \quad \  i=1,2,...,k \qquad(5) \\  \end{cases}

满足 KKT 条件后极小化 Lagrangian 即可得到在不等式约束条件下的可行解。 KKT 条件看起来很多,其实很好理解:

  1. 拉格朗日取得可行解的必要条件;
  2. 这就是以上分析的一个比较有意思的约束,称作松弛互补条件;
  3. 初始的约束条件;
  4. 初始的约束条件;
  5. 不等式约束的 Lagrange Multiplier需满足的条件。

主要的KKT条件便是 (3) 和 (5) ,只要满足这俩个条件便可直接用拉格朗日乘子法, SVM 中的支持向量便是来自于此,需要注意的是 KKT 条件与对偶问题也有很大的联系

拉格朗日乘子法是怎么想出来的

拉格朗日乘子法的思路是:给予违反约束适当的惩罚,使得无约束的拉格朗日函数的解与原优化函数的解一致。拉格朗日乘子法的策略是将有约束的问题转化成无约束的优化问题

考虑多个约束条件的原始最优化问题:

\min_{x\in R^n}\ f(x)
s.t. \quad c_{i}(x)\leq0 \ ,\quad i=1,2,...,k
\quad \qquad h_{j}(x)=0 \ ,\quad j=1,2,...,l

我们对这种多维约束条件,有如下拉格朗日函数:

L(x,\alpha,\beta)=f(x)+ \sum_{i=1}^k \alpha_{i} c_{i}(x)+\sum_{j=1}^l\beta_{j}h_{j}(x)

假设给定某个x,如果x违反原始问题的约束条件,即存在某个i使得c_{i}(w)>0或者存在某个j使得h_{j}(w) \neq0,那么就有

\max_{\alpha,\beta:\alpha_{i} \geq0} \left[ f(x)+\sum_{i=1}^k \alpha_{i}c_{i}(x)+ \sum_{j=1}^l\beta_{j}h_{j}(x)  \right]=\infty

因为若某个i使约束c_{i}>0,则可令\alpha_{i} \rightarrow+ \infty,若某个j使得约束h_{j}(x) \neq0,则令\beta_{j}使得\beta_{j}h_{j}(x) \rightarrow +\infty,而将其余的\alpha_{i},\beta_{j}均取为0。这样使得不满足约束条件的都取成\infty,而相反的,满足约束条件的我们让\alpha,\beta置0,使得拉格朗日函数与原函数解相同。

以上陈述详细的说明了拉格朗日乘子法的思想。

当然,除了拉格朗日乘子法,还有其他思路去求解这个约束的最优化问题的。可以,我们可以不像拉格朗日一样给以违反以惩罚,从侧面解出,而是顺着约束条件去找这个最优值。但是我们的现实问题非常复杂,有时候连有没有最有值或者最优值可不可行都无法得知,这类方法也就不适用了。

所以:

存在即有理。有啥理? 答曰:解决这一类问题的已知最有效方法。


手推对偶中的KKT条件已经移至《拉格朗日对偶》,有兴趣的朋友可以过去看看。

参考文献:

[1].《统计学习方法》 李航 2012年3月第1版

[2].约束优化方法之拉格朗日乘子法与KKT条件

[3].【直观详解】拉格朗日乘法和KKT条件

[4].拉格朗日乘子法和KKT条件

[5].《机器学习》 周志华 2016年1月第1版

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值