英文版本:[[Second Derivative Test - Where Calculus Meets Linear Algebra]] ## 为什么驻点如此重要? **驻点**(Stationary Point)是指梯度消失的点——在这里,函数既不上升也不下降。这些点之所以关键,是因为它们是寻找最优值的“头号嫌疑人”。对于任何可微函数,局部极小值和局部极大值一定出现在驻点上。 这种模式在各个领域随处可见: * **机器学习**:训练神经网络本质上是在最小化一个拥有数百万参数的损失函数;梯度下降算法就是在寻找该曲面的驻点。 * **经济学**:企业追求利润最大化,消费者追求效用最大化;驻点决定了资源的最优配置。 * **物理学**:系统趋向于能量最低状态;平衡态对应于位能函数的驻点。 * **统计学**:最大似然估计通过寻找似然函数的驻点,来确定让观测数据出现概率最大的参数。 **核心逻辑**:只要一个量取决于多个变量,而你想找到它的最佳值,你就得先搜寻驻点,然后对它们进行分类。 ## 两个阶段的流程 1. **第一阶段**:让所有一阶偏导数等于零。此时梯度消失,所有的驻点都会浮出水面。 2. **第二阶段**:对每个点进行分类——它是局部极小值、局部极大值,还是鞍点?这一步由**二阶导数判别法**完成。 ## 泰勒多项式:最理想的工具 函数 $f(x,y)$ 可能极其复杂,包含三角函数、嵌套指数或其他难以直接分析的组合。但在特定点附近,**泰勒多项式**可以用一个表现几乎一致的多项式来替代原函数。 多项式的逻辑简单明了,而舍弃的误差又微乎其微。这种“以简代繁”的交换正是该方法的核心。 在驻点处,这种转化起到了决定性作用。你想知道:当你离开驻点时,函数值是上升、下降,还是兼而有之?泰勒多项式将这个几何问题转化为了代数问题——通过观察多项式的符号特征来得出结论。 ## 数学推导 $f(x,y)$ 在 $\mathbf{a} = (a_1, a_2)$ 附近的二阶泰勒展开式为: $f(\mathbf{a} + \mathbf{h}) \approx f(\mathbf{a}) + \underbrace{f_x(\mathbf{a})h_1 + f_y(\mathbf{a})h_2}_{\text{线性项}} + \underbrace{\frac{1}{2}\bigl[f_{xx}(\mathbf{a})h_1^2 + 2f_{xy}(\mathbf{a})h_1 h_2 + f_{yy}(\mathbf{a})h_2^2\bigr]}_{\text{二次项}}$ 其中 $\mathbf{h} = (h_1, h_2)$ 是远离 $\mathbf{a}$ 的微小位移。 ### 线性项为何消失? 假设 $\mathbf{a}$ 是一个驻点。根据定义,$f_x(\mathbf{a}) = 0$ 且 $f_y(\mathbf{a}) = 0$。因此: $f_x(\mathbf{a})h_1 + f_y(\mathbf{a})h_2 = (0)h_1 + (0)h_2 = 0$ 这不是什么花招,而是因为系数本身就是零。梯度是一阶项的系数向量,梯度消失意味着一阶贡献被彻底抹除。 这就是驻点的特殊之处。在非驻点处,线性项占主导地位(它们随 $|\mathbf{h}|$ 缩小,而二次项随 $|\mathbf{h}|^2$ 缩小)。函数只是沿着梯度方向倾斜,没有什么好分类的。只有当线性项消失,**二次型**(Quadratic Form)才开始掌权,**曲率**才成为主导行为。 ### 剩下的部分 $f(\mathbf{a} + \mathbf{h}) - f(\mathbf{a}) \approx \frac{1}{2}\bigl[f_{xx}h_1^2 + 2f_{xy}h_1 h_2 + f_{yy}h_2^2\bigr]$ 左边是函数值的变化量,右边是关于 $\mathbf{h}$ 的二次型。用矩阵语言表示: $f(\mathbf{a} + \mathbf{h}) - f(\mathbf{a}) \approx \frac{1}{2}\mathbf{h}^T H \mathbf{h}, \qquad H = \begin{pmatrix} f_{xx} & f_{xy} \\ f_{xy} & f_{yy} \end{pmatrix}$ ## 判定分类 所有问题都简化为一个:$\mathbf{h}^T H \mathbf{h}$ 的符号是什么? 1. **若对所有非零 $\mathbf{h}$,恒有 $\mathbf{h}^T H \mathbf{h} > 0$**:函数在所有方向上都上升 $\Rightarrow$ **局部极小值**。 2. **若对所有非零 $\mathbf{h}$,恒有 $\mathbf{h}^T H \mathbf{h} < 0$**:函数在所有方向上都下降 $\Rightarrow$ **局部极大值**。 3. **符号取决于 $\mathbf{h}$ 的方向**:有些方向上升,有些方向下降 $\Rightarrow$ **鞍点**。 这与单变量微积分的逻辑一致:$ax^2 + bx + c$ 中若 $a > 0$,抛物线开口向上,对应极小值。**正定性**(Positive Definiteness)将这一概念推广到了 $n$ 维——无论你从哪个方向切开这个图形,它都呈现开口向上的形状。 ## 桥梁:当微积分遇见线性代数 依赖链条如下: **泰勒多项式 $\rightarrow$ 出现二次型 $\rightarrow$ 线性代数进行分类** 二阶导数判别法是这两个数学分支的交汇点:微积分产出 **Hessian 矩阵**,而线性代数判断它的性质: * **正定** $\Rightarrow$ 局部极小值 * **负定** $\Rightarrow$ 局部极大值 * **不定** $\Rightarrow$ 鞍点 ### $2 \times 2$ 矩阵的情况 在驻点 $\mathbf{a}$ 处的 Hessian 矩阵为: $H = \begin{pmatrix} f_{xx} & f_{xy} \\ f_{xy} & f_{yy} \end{pmatrix}$ 矩阵行列式为:$Det(H) = f_{xx} f_{yy} - (f_{xy})^2$。 教科书上的常用配方——先看 $Det(H) > 0$,再看 $f_{xx}$ 的符号——其实就是**赫尔维茨判据**(Sylvester's Criterion)在 $2 \times 2$ 矩阵上的应用。 ## 参考-典型的二阶导数判判定流程 1. **找到驻点**:满足 $\nabla f = 0$。 2. **计算 Hessian 行列式 $D$**: * **如果 $D < 0$**:直接判定为**鞍点**。 * **如果 $D = 0$**:**判别失效**,需要更高阶的项或进一步分析。 * **如果 $D > 0$**:观察 $f_{xx}$ 的符号: * $f_{xx} > 0$:**局部极小值**(正定,如碗状开口向上)。 * $f_{xx} < 0$:**局部极大值**(负定,如碗状开口向下)。 ## 测试正定性的几种方法 不同的视角可以得出相同的答案,核心都是询问对于所有非零向量 $\mathbf{v}$,是否满足 $\mathbf{v}^T A \mathbf{v} > 0$。 * **特征值法**:计算所有特征值。如果全部为正,则为正定。这是最直观的视角:二次型在每个特征方向上都向外拉伸空间。 * **Sylvester 判据(顺序主子式)**:检查所有领先主子式 $\Delta_1, \Delta_2, \ldots, \Delta_n$ 是否全部大于零。这避免了复杂的特征值计算,适合多变量扩展。 * **Cholesky 分解**:尝试将矩阵分解为 $A = LL^T$。如果分解成功且 $L$ 的对角线元素全为正,则矩阵正定。这是数值计算软件的首选。 * **高斯消元法(主元法)**:在不交换行的情况下进行消元。如果所有主元都为正,则矩阵正定。 * **定义法**:通过代数论证(如配方法)证明 $\mathbf{v}^T A \mathbf{v} > 0$。在实际计算中较少使用,但有时是最简洁的证明。 ## 微积分和线代的交汇处 微积分教材中的二阶导数判别法,本质上是一个线性代数中的**矩阵分类问题**。研究二次型、特征值和正定性并非绕路,它们正是驱动多变量优化的核心引擎。