Lagrange multipliers - 拉格朗日乘子法

Lagrange multipliers - 拉格朗日乘子法

拉格朗日乘子法是一种寻找多元函数在一组约束下的极值方法。>通过引入拉格朗日乘子,可将有 D 个变量与 K 个约束条件的最优化问题转化为具有 D+K 个变量的无约束优化问题求解。本文主要讲解其中的数学原理,并引入KKT条件。

先考虑一个简单的等式约束的优化问题。假定 x 为2维向量,欲寻找 x 的某个取值 x ,即使目标函数 f(x1,x2) 最小且同时满足 g(x1,x2)=0 的约束。针对此问题,通常的做法包含3步:首先,根据约束条件 g(x1,x2)=0 得到 x2 关于 x1 的表达式,即 x2=h(x1) ;其次,将 x2=h(x1) 带入目标函数中即 f(x1,h(x1)) ,这样得到关于 x1 单变量的优化问题;最后,将目标函数对 x1 求导数,即可得到其最优值 x1 ,随即也能得到 x2=h(x1)

上述方法将 x1 x2 分别对待,求其最优值,思路通俗易懂。但是,唯一的缺憾就是当通过约束条件 g(x1,x2)=0 不能得到 x2 关于 x1 的闭合表达式时,则无法通过步骤二去优化 x1 。为了处理该方法,拉格朗日乘子法则应运而生,通过引入拉格朗日乘子 λ 将等式约束融入到一个目标优化函数中,即

L(x,λ)=f(x)+λg(x)

下面从几何角度解释拉格朗日乘子法的原理,考虑 D 维变量 x

  • 首先,等式约束 g(x)=0 对应于一个 D1 维的曲面,而该曲面上的任意一点的梯度方向正交于曲面。解释如下,考虑曲面上两个非常临近的点, x x+ϵ ,使用泰勒公式得到:

    g(x+ϵ)g(x)+ϵTg(x)

    由上可知(注意 g(x)=g(x+ϵ)=0 ), ϵTg(x)0 。当 ϵ0 时, ϵTg(x)=0

  • 其次,在寻找的最优点 x 位置处,该点的梯度方向 f(x) 必正交与曲面。如下图所示,当A点不是最优点时,我们还能沿着约束曲面和 f(x) (负梯度方向)移动一个步长使得 f(x) 进一步减小(梯度下降法找最小值);而当移动到B点时,此时 f(x) 平行于 g(x) ,当再沿着约束曲面和 f(x) (负梯度方向)移动一个步长时, g(x)=0 的约束将会破坏。因此, f(x) g(x) 为平行向量时,取得最优点,此时一定存在一个非零值 λ 满足

    f(x)+λg(x)=0

    通过上述两点,我们很容易得到拉格朗日乘子表达式。
    Lagrange multipliers - 拉格朗日乘子法_第1张图片

现在考虑不等式约束 g(x)0 ,寻找最优点 x 使得即满足约束又使 f(x) 取最小值。当 g(x)<0 时,约束不起作用,直接通过 f(x)=0 来获取最优点。这等价于在拉格朗日函数中令 λ=0 进行优化求解;当考虑 g(x)=0 的情形时,这等价于上面讨论的等式约束,其中 λ0 ;但是,值得注意的是最优点 x 处, f(x) g(x) 方向必相反。如下图所示,当在A点时, f(x) g(x) 方向相同,但是A点不是最优点,因为沿着 f(x) (负梯度方向)移动一个步长时,不仅满足约束 g(x)<0 并且 f(x) 值能进一步减小;而在B点时,沿着 f(x) (负梯度方向)移动一个步长时,约束条件将被破坏,因此B点为最优点。而此时,即存在 λ>0 使得

f(x)+λg(x)=0

综合上述两种情形,比满足 λg(x)=0
Lagrange multipliers - 拉格朗日乘子法_第2张图片

综上,在约束 g(x)0 下最优化 f(x) ,可转化为在如下约束条件下的拉格朗日函数优化问题:

g(x)0λ0λg(x)=0

这就是KKT(Karush-Kuhn-Tucker)条件。

很容易将上述方法推广到多约束函数优化中。比如我们将最小化 f(x) ,且必须满足 J 个等式约束 {gj(x)=0}Jj=1 K 个不等式约束 {hk(x)0}Kk=1 。解决上述问题同样通过构造拉格朗日函数:

L(x,{λj},{uk})=f(x)+j=1Jλjgj(x)+k=1Kukhk(x)

而由不等式引入的KKT条件( k=1,,K )为:
hk(x)0uk0ukhk(x)=0

上述即为对拉格朗日乘子法的简单讨论。而对上述约束最优化问题的求解,常通过拉格朗日对偶性将原始问题转化为对偶问题求解,从而进一步得到原始问题的解。在推导对偶问题时,常将拉格朗日乘子 L(x,{λj},{uk}) x 求导并令导数为0,来获得对偶函数的表达形式。该策略在许多统计学习模型,比如最大熵模型,SVM中得到了应用。

你可能感兴趣的:(机器学习)