梯度、约束优化与拉格朗日乘子

关键点:最优点要同时满足约束以及目标函数,那么它在它们的交点上;如果这个二者在这个交点不相切的话,那么,我们总可以沿着约束曲线,使得函数值升高或者降低(把目标函数的值看成一系列等高线),所以不是相切点的交点不是最优点。

0. 我们要解决的是什么问题?

在很多问题中(数学 / 物理 / 工程 / 优化):

我们希望 最小化(或最大化)某个量, 但 变量不能随便取值,而是必须满足某些约束。

形式上,这类问题统一写成:

[ \begin{aligned} \min\ & f(\mathbf{x})
\text{s.t. } & g(\mathbf{x}) = 0 \end{aligned} ]

其中:

  • (f):目标函数(你真正关心的量)
  • (g=0):约束(你允许解存在的集合)

拉格朗日乘子法就是解决这类问题的核心工具。


1. 为什么“梯度”会出现在优化里?

在进入约束之前,先回答一个更基础的问题:

什么叫“函数在某个方向上变化最快”?

1.1 梯度的定义

对一个标量函数 [ f(x,y) ] 它的梯度定义为:

[ \nabla f = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right) ]

1.2 梯度的关键几何含义(唯一需要记住的)

在某一点处,梯度指向函数值上升最快的方向

等价地:

  • 沿梯度方向走:(f) 增加最快
  • 沿负梯度方向走:(f) 减少最快

这不是比喻,而是可以严格证明的结论(来自方向导数)。


2. 无约束最优化的本质(为后面做铺垫)

如果变量 完全自由,那最优点必须满足:

[ \nabla f = 0 ]

原因很简单:

  • 如果梯度不为零
  • 就存在一个方向可以让 (f) 继续减小
  • 那当前点就不可能是最优

这一点你早就熟悉,只是平时没意识到它的几何含义。


3. 引入约束:问题发生了什么变化?

现在加入约束:

[ g(x,y)=0 ]

这意味着:

  • 变量不能在整个平面上移动
  • 只能沿着一条曲线(或曲面)移动

于是一个关键问题出现了:

“还能不能沿着梯度方向走?”

答案是:通常不行,因为梯度方向往往会“冲出约束”。


4. 约束的几何角色:切向与法向

这是理解拉格朗日乘子的核心。

4.1 约束函数的梯度

对约束函数 (g(x,y)):

[ \nabla g = \left( \frac{\partial g}{\partial x}, \frac{\partial g}{\partial y} \right) ]

一个基本事实是:

(\nabla g) 垂直于约束曲线 (g=0)

也就是说:

  • 沿着约束曲线移动 → 切向方向
  • (\nabla g) → 法向方向(“不能走”的方向)

5. 约束最优点的核心逻辑(一句话版)

在最优点:

在所有“允许的方向”里,目标函数都无法再下降

翻译成几何语言就是:

  • 目标函数的“最陡下降方向”
  • 被约束的“法向方向”完全挡住了

6. 拉格朗日乘子条件(正式登场)

上述几何事实,用数学写出来只有一种可能:

[ \nabla f = \lambda \nabla g ]

这就是拉格朗日乘子条件

它表达的不是数值关系,而是:

目标函数梯度 与 约束梯度 在最优点处共线

(\lambda) 只是比例因子。


7. 现在才上例子:为什么 (y=x^2) 不该让你困惑

7.1 问题本身

在约束 [ y = x^2 ] 下,最小化 [ y ]

7.2 正确拆分问题

目标函数: [ f(x,y)=y ]

约束函数: [ g(x,y)=y-x^2=0 ]

注意这一点非常关键:

(y=x^2) 不是“被优化的函数”, 它是约束集合; 被优化的仍然是高度 (y)。


8. 梯度从哪里来(你卡住的那一步)

8.1 目标函数的梯度

[ \nabla f = \nabla y = (0,1) ]

这只是说:

在二维空间中,(y) 增加最快的方向是竖直向上

8.2 约束函数的梯度

[ \nabla g = \nabla(y-x^2) = (-2x,1) ]


9. 拉格朗日条件具体写出来

[ (0,1) = \lambda(-2x,1) ]

这是直接套用定义,不是技巧,也不是“猜”。

解得:

[ x=0,\quad y=0 ]


10. 一句话总结(给你以后用)

  • 梯度描述的是在整个空间中的变化趋势

  • 约束限制的是你允许走的方向

  • 拉格朗日乘子刻画的是:

    在最优点,目标函数的最陡方向,正好被约束的法向挡住