注:目前开通个人网站朝思录,之后的博文将在上面更新,****博客会滞后一点
主要介绍经典拉格朗日乘子法的原理,之后讨论该方法中出现的参数λ的意义
拉格朗日乘子法的数学原理
经典拉格朗日乘子法是下面的优化问题(注:x是一个向量):
minxf(x)s.t.g(x)=0(1)
直观上理解,最优解xoptimal一定有这样的性质,以x是二维变量为例:(网上下的图。为了符合行文风格,这里的g(x,y)=c应为g(x,y)=0)

这里采用等高线方式描述f(x,y)(对方程f(x,y)=d对不同d绘图),并绘制约束条件g(x,y)=0的曲线。可见,当g(x,y)=0与f(x,y)的某条等高线相切时,可取得最优解。
“当g(x,y)=0与f(x,y)的某条等高线相切”,是取得最优解的充要条件(前提是f(x,y)是凸函数),该条件可拆分成两部分:
-
g(x,y)与f(x,y)的某条等高线相切
-
g(x,y)=0
因为g(x,y)与f(x,y)的某条等高线相切,可等价于寻找使这两个函数梯度方向共线的点,所以上述条件可用方程组描述如下所示:
⎧⎩⎨∇f(x)=λ∇g(x)g(x)=0(2)
这时引入拉格朗日函数:
L(x,λ)=f(x)+λg(x)(3)
该函数有这样的特性:
⎧⎩⎨∇xL(x,λ)=∇xf(x)+λg(x)∇λL(x,λ)=g(x)(4)
即若令拉格朗日函数的梯度为零,即
(4)式为零,即可得到方程
(2),虽然
λ有所出入但不影响。
系数λ的作用
另外讨论一下(3)式中λ的意义:
由(2)式可以看出,λ在共线的基础上描述了目标函数和约束函数的梯度的长度比值。当然若以(4)为基准,(2)式第一项应写为∇f(x)=−λ∇g(x),我们对该等式两边取绝对值如下,以消除正负号可能对读者带来的困扰。
|λ|=|∇f(x)∇g(x)|(5)
可以发现,当
|λ|越小,
∇g(x)的模就越大于
∇f(x)。极端情况下,
|λ→0|,此时
|∇g(x)|→∞。这意味着在
x点,
g(x)几乎是垂直的,对增量非常敏感:当最优值不小心变一点点,条件
g(x)=0将严重偏离;若
|λ|很大,
g(x)几乎是水平的,则其对增量不敏感(若
g(x)的轻微偏离不会造成太大的损失,可以适当牺牲约束条件的精确性,来换取更优的解)。
换句话说,|λ|越小,其求得的结果灵敏度越高,反之越低;可以说|λ|是衡量最优解灵敏度的一种方法。(当然也可以直接求∇g(x)来衡量灵敏度,这样更绝对一点)