[ML Notes] 拉格朗日函数:推导过程
Contents
1. 推导过程
以二元函数为例,要寻找 $f(x, y)$ 在约束条件 $g(x, y) = 0$ 下的极值,如
$$
\begin{aligned}
\min \; & f(x, y) \\
\text{s.t.} \; & g(x, y) = 0
\end{aligned} \tag{1}
$$
假设 $f(x, y)$ 在 $(x_0, y_0)$ 处取得极值,则有
$$
g(x_0, y_0) = 0 \tag{2}
$$
假设在 $(x_0, y_0)$ 的某一邻域内 $f(x, y)$ 和 $g(x, y)$ 都有连续的一阶偏导数,且 $g_y(x_0, y_0) \neq 0$,由隐函数存在定理可知,$g(x, y)$ 确定一个连续且具有连续导数的函数 $y = \phi(x)$,此时 $f(x, y)$ 变为变量 $x$ 的函数
$$
z = f(x, \phi(x))
$$
由 $f(x, y)$ 在 $(x_0, y_0)$ 处取得极值,有
$$
\left. \frac{\mathrm{d}z}{\mathrm{d}x} \right\vert_{x=x_0} = f_x(x_0, y_0) + f_y(x_0, y_0) \left.\frac{\mathrm{d} y}{\mathrm{d} x}\right\vert_{x=x_0} = 0 \tag{3}
$$
由式 $(2)$ 和隐函数求导公式,有
$$
\left.\frac{\mathrm{d} y}{\mathrm{d} x}\right\vert_{x=x_0} = – \frac{g_x(x_0, y_0)}{g_y(x_0, y_0)} \tag{4}
$$
将式 $(4)$ 代入式 $(3)$,得到
$$
f_x(x_0, y_0) – f_y(x_0, y_0) \frac{g_x(x_0, y_0)}{g_y(x_0, y_0)} = 0 \tag{5}
$$
记
$$
\frac{f_y(x_0, y_0)}{g_y(x_0, y_0)} = -\lambda \tag{6}
$$
将式 $(6)$ 代入式 $(5)$,得到
$$
f_x(x_0, y_0) + \lambda g_x(x_0, y_0) = 0 \tag{7}
$$
由式 $(5)$ 本身,有
$$
f_y(x_0, y_0) + \lambda g_y(x_0, y_0) = 0 \tag{8}
$$
引进辅助函数
$$
L(x, y) = f(x, y) + \lambda g(x, y) \tag{9}
$$
其中 $L(x, y)$ 称为拉格朗日函数,$\lambda$ 称为拉格朗日乘子。
结合拉格朗日函数,式 $(7)$、$(8)$、$(2)$ 构成方程组
$$
\begin{cases}
f_x(x_0, y_0) + \lambda g_x(x_0, y_0) = 0 \\
f_y(x_0, y_0) + \lambda g_y(x_0, y_0) = 0 \\
g(x, y) = 0
\end{cases} \tag{10}
$$
求解上述方程组,即可得到 $x_0$、$y_0$ 和 $\lambda$。
2. 拉格朗日乘数法
要找函数 $z = f(x, y)$ 在附加条件 $g(x, y) = 0$ 下的可能极值点,可以先作拉格朗日函数
$$
L(x, y) = f(x, y) + \lambda g(x, y)
$$
其中 $\lambda$ 为参数。求其对 $x$ 和 $y$ 的一阶偏导数并使之为零,然后与约束条件 $g(x, y) = 0$ 联立起来
$$
\begin{cases}
f_x(x_0, y_0) + \lambda g_x(x_0, y_0) = 0 \\
f_y(x_0, y_0) + \lambda g_y(x_0, y_0) = 0 \\
g(x, y) = 0
\end{cases}
$$
由该方程组解出 $x$、$y$ 和 $\lambda$,由此得到的 $(x, y)$ 就是函数 $f(x, y)$ 在附加条件 $g(x, y) = 0$ 下的可能的极值点。
对于有多个自变量的场景,如要求函数
$$
u = f(x, y, z, t)
$$
在附加条件
$$
\begin{aligned}
g(x, y, z, t) = 0 \\
h(x, y, z, t) = 0
\end{aligned}
$$
下的极值,可以先作拉格朗日函数
$$
L(x, y, z, t) = f(x, y, z, t) + \lambda g(x, y, z, t) + \mu h(x, y, z, t)
$$
其中 $\lambda$、$\mu$ 均为参数。求上式的一阶偏导数并使之为零,与两个约束条件联立求解即可。
隐函数存在定理 设函数 $F(x, y)$ 在点 $(x_0, y_0)$ 的某一邻域内具有连续偏导数,且 $F(x_0, y_0) = 0$,$F_y(x_0, y_0) \neq 0$,则方程 $F(x, y) = 0$ 在点 $(x_0, y_0)$ 的某一邻域内恒能唯一确定一个连续且具有连续导数的函数 $y = f(x)$,它满足条件 $y_0 = f(x_0)$,并有
$$
\frac{\mathrm{d} y}{\mathrm{d} x} = – \frac{F_x}{F_y}
$$