直观理解拉格朗日乘子法

论坛 期权论坛 脚本     
匿名技术用户   2021-1-10 00:58   936   0

拉格朗日乘数法(Lagrange multiplier)是一种寻找多元函数在一组约束下的极值的方法。通过引入拉格朗日乘子,可将d个变量和k个约束条件的最优化为题转化成d+k个变量的无约束优化问题求解。
举个2维的例子来说明:
假设有自变量x和y,给定约束条件g(x,y)=c,要求f(x,y)在约束g下的极值。

我们看到隐函数f(x,y)可以描述为一个二维平面(即图中的一座山),我们可以画出它的等高线,如下图。此时,约束g(x,y)=c由于只有一个自由度,因此是图中的一条曲线(红色曲线所示),这条曲线是在x0y平面上的,由于没有z坐标,所以它可以在任何一个等高线平面,如图中在等高线平面3的L1,在等高线平面4的L2(L1,L2都是曲线g(x,y)=c)。我们的任务就是求f(x,y)在满足g(x,y)=c条件下的最小值,很明显就是找到与曲线L相切的最低的等高线平面。在最小值处,约束曲线不可能和等高线相交,一定是相切。比如我们看到L2是跟平面4是相交的,显然它比平面3要高。

之后,我们根据以下两条性质:

1. 对于约束曲面(在这里由于维度过低,是约束曲线)上的任意点x,该点的梯度\bigtriangledown g(x)正交于约束曲面或者约束曲线。

2.在最优点x*,目标函数在该点的梯度\bigtriangledown f(x*)正交于约束曲面。

上面的描述源自周志华《机器学习》,其实就是因为g(x,y)=c的法向量是垂直于切线的,而g(x,y)=c的法向量又等于g(x,y)的梯度(对应第一条),f(x,y)的的梯度是垂直于等高线切线的(对应第2条)。所以在他们俩相切的地方,f(x,y)的梯度和g(x,y)的梯度方向必然相同或者相反(注:如果这段话你不太清楚,可以了解一下: 直观理解偏导数、方向导数和法向量和梯度

所以存在\lambda \neq 0使得:

\bigtriangledown f(x*) + \lambda \bigtriangledown g(x*) = 0

注:这里的x是多维向量,在二维情况下等价于上面的f(x,y)。

经过上面的分析,我们知道最优点x*必然满足以下两条方程

\bigtriangledown f(x*) + \lambda \bigtriangledown g(x*) = 0

g(x*)=0

进而我们可以定义拉格朗日函数:

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

这时候我们只要令函数L的导数为零(包括对x的偏导数和对\lambda的偏导数都为零),既可以求出让f(x)最小的x(同时满足g(x)=0),其实零两个偏导数为零就等价于上面我们提到的两条方程。

至此,我们就把原优化问题转换成了对拉格朗日函数的无约束优化问题。


三、参考资料

【1】周志华《机器学习》

【2】https://www.zhihu.com/question/38586401

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP