在学到拉格朗日乘数法的时候,讲解的都很复杂,很难理解,本篇用最简单的例子来说明拉格朗日乘数法基础原理,方便我们入门理解。
例子
我们先用一个比喻来解释拉格朗日乘数法:
想象一下你是一位摄影师,你的目标是拍摄一张尽可能美丽的风景照片,用函数表示就是 f ( x , y ) f(x,y) f(x,y)。这里,拍摄美丽照片的目标就类似于优化问题中你想要最大化或最小化的函数(即优化 f ( x , y ) f(x,y) f(x,y))。
但是,你面临一个限制:你必须在一条指定的小径上拍摄。你不能离开这条小径,这就像是优化问题中的约束条件 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0。
在没有任何限制的情况下,你可以自由地走到任何地方拍摄最美的景色。但由于必须留在小径上,你的选择受到了限制。现在的问题是,在这条小径上找到一个位置,从那里拍摄的风景尽可能美丽。
在这种情况下,拉格朗日乘数法就像是一个帮助你在小径的限制下找到最佳拍摄点的工具。在这个比喻中,拉格朗日乘数 ( λ ) (λ) (λ)帮助我们调整在限制(留在小径上)和目标(拍摄美丽照片)之间的平衡。
通过使用拉格朗日乘数法,你可以在小径上找到那个既符合规则(不离开小径)又能让你拍摄出最佳风景照片的最佳位置。
所以得到公式: L ( x , λ ) = f ( x ) − λ g ( x , y ) L(x, λ) =f(x) - λ g(x,y) L(x,λ)=f(x)−λg(x,y)
最简情况
如果我们本身的目标是最小化函数 y = x
,在约束 x >= 10
下,使用拉格朗日乘数法构建的拉格朗日函数 L(x, λ)
(代入公式)是:
L
(
x
,
λ
)
=
x
−
λ
(
x
−
10
)
L(x, λ) = x - λ(x - 10)
L(x,λ)=x−λ(x−10)
接下来,我们对这个函数分别对 x
和 λ
求偏导数,然后设置这些导数为零来求解方程:
- 对
x
求导: ∂ L ∂ x = 1 − λ \frac{\partial L}{\partial x} = 1 - \lambda ∂x∂L=1−λ - 对
λ
求导: ∂ L ∂ λ = 10 − x \frac{\partial L}{\partial \lambda} = 10 - x ∂λ∂L=10−x
求解这些方程可以找到满足约束的 x
和 λ
的值。
但在这个简单例子中,可以直接观察到,由于约束 x >= 10
和目标函数 y = x
,最优解是在约束的边界处取得,即 x = 10
时 y
的值最小,为 10。
所以拉格朗日乘数法就把一个有约束条件的式子,转换成了一个无约束条件的式子。然后通过求导后解方程就可以算出来 x
和 λ
的最佳值。
在实际应用中最小化函数和约束条件可能会非常复杂,但拉格朗日乘数法都适用。因此在一些有约束的回归或分类问题中,拉格朗日乘数法非常有用,比如人的年龄、身高通常都有一个约束范围等等。
在支持向量机(SVM)中,就是确保所有样本都正确分类的情况下(约束条件),最大化边界间隔。所以 f ( x ) − λ g ( x , y ) f(x)-λg(x,y) f(x)−λg(x,y)中 f ( x ) f(x) f(x)是计算边界间隔的,而 g ( x , y ) g(x,y) g(x,y)就是约束条件。