Hook:一条卡在鞍点上的优化器
某沪深300 增强组合的研究员发来一段日志:使用裸的梯度下降迭代 6000 次后,目标函数(一个带分段惩罚的跟踪误差)几乎不再变化——但梯度范数也没有逼近零,反而在 10−3 量级上震荡。绘出参数空间上的曲面发现:当前点位于一个鞍点(saddle point),沿其中一个主轴是「碗」、沿另一个主轴是「山脊」,一阶信息把这两种几何混在一起,肉眼看不出区别。要把它们拆开,必须用上二阶信息——也就是 50ETF 期权波动率曲面研究员每天打交道的那个对象:海森矩阵(Hessian)。本课从一元泰勒公式出发,把它升级到多元二阶展开,并解释海森的特征值(eigenvalue)为何就是局部曲率。
一、一元泰勒展开做暖身
回顾一元的二阶泰勒展开:在 f 二阶可导且光滑的前提下,
f(x+h)=f(x)+f′(x)h+21f′′(x)h2+o(h2)
f′′(x) 是曲率:f′′(x)>0 表示局部「凸」(开口朝上),f′′(x)<0 表示局部「凹」(开口朝下),f′′(x)=0 时一阶展开就已经足够分辨极值。这套语言搬到多元里,曲率不再是一个数,而是一个矩阵。
二、多元二阶泰勒展开
设 f:Rn→R 是二阶连续可导的标量值函数。海森矩阵 Hf(x) 是一个 n×n 矩阵,其 (i,j) 元为
Hf(x)ij=∂xi∂xj∂2f(x)
在二阶连续可导(即所有二阶偏导数连续)的前提下,Clairaut/Schwarz 定理保证混合偏导可交换:∂2f/(∂xi∂xj)=∂2f/(∂xj∂xi),所以海森矩阵自动是对称矩阵(symmetric matrix)。这一点在后面用谱分解时极为重要。
带上海森,二阶泰勒展开写成
f(x+h)=f(x)+∇f(x)Th+21hTHf(x)h+o(∥h∥2)
读法:常数项 f(x)、一阶贡献 ∇f(x)Th(上一课讨论过)、二阶贡献 21hTHf(x)h(曲率的方向相关版本)、加上一个更高阶的余项。整条多元微积分接下来的故事——最优性条件、收敛性分析、牛顿法——基本都是这条展开式不同方向的应用。
三、海森的特征值就是局部曲率
固定一点 x,让 h=tv 其中 v 是单位向量、t>0 是小量。代入二阶展开:
f(x+tv)=f(x)+t∇f(x)Tv+21t2vTHf(x)v+o(t2)
对 t 求两次导并令 t=0,得到 f 在 x 处沿方向 v 的「二阶导数」:
dt2d2t=0f(x+tv)=vTHf(x)v
由于海森对称,谱定理(spectral theorem)保证它有一组正交规范的特征向量基 v1,…,vn,对应特征值 λ1,…,λn。沿第 k 个特征向量方向,vkTHf(x)vk=λk——也就是说,海森的特征值正是 f 沿其特征向量方向的二阶导数。所有 λk>0 即海森正定,对应「全方向上都向上弯」的碗形;所有 λk<0 即海森负定,对应「全方向上都向下弯」的拱顶;正负混合即海森不定,对应鞍形。
四、二阶导数检验:分类驻点
设 x∗ 是一个驻点(critical point),即 ∇f(x∗)=0。在 x∗ 附近的二阶展开里一阶项消失,留下
f(x∗+h)−f(x∗)=21hTHf(x∗)h+o(∥h∥2)
把 h 沿任意方向 v 取小量,结合特征分解:
- 若 Hf(x∗) 正定(所有特征值 >0),二次型 hTHfh>0 对所有 h=0 成立,故 f(x∗+h)>f(x∗),x∗ 是严格局部极小(local minimum)。
- 若 Hf(x∗) 负定,对称地,x∗ 是严格局部极大(local maximum)。
- 若 Hf(x∗) 不定(既有正特征值又有负特征值),x∗ 是鞍点——开头那条卡住的优化器看到的就是这种情况。
- 若 Hf(x∗) 半正定(positive semidefinite)但不正定,二阶检验失败,需要更高阶信息或全局分析。
下方滑块给出一个一维示意:固定二阶系数 a、扰动 h,对应位移项 a*h^2——正、负、零三种符号对应碗、拱、平。
五、一个量化里的二次例子
回到上一课提到的二次型:组合方差 f(w)=21wTΣw−bTw,其中 Σ∈Rn×n 是协方差矩阵(covariance matrix)、b∈Rn 是预期收益向量。一阶项的梯度已知 ∇f(w)=Σw−b。二阶项的海森更简单:直接对 wk,wℓ 求二阶偏导,
∂wk∂wℓ∂2f=Σkℓ
也就是说,对于这一类二次型函数,海森矩阵就等于 Σ 本身,与 w 无关。又因为协方差矩阵天然半正定(PSD),所以这个函数曲面在任何点都「向上弯或在某些方向上平」,永远不会出现鞍点——下一课的凸性讨论会把这一点说穿。
六、自检
Exercise
设 f(x1,x2)=x13−3x1x22。验证 (0,0) 是它的一个驻点,然后用海森判断这个驻点的类型。
提示
分别求两个偏导:
∂f/∂x1=3x12−3x22,
∂f/∂x2=−6x1x2。在
(0,0) 都为零,所以是驻点。
提示
再求二阶偏导得到海森。在
(0,0) 处海森是零矩阵,半正定但不正定——二阶检验失败,需要更高阶分析(事实上这是「猴鞍」型鞍点)。
通往下一节
到这里你能用海森把驻点分成极小、极大、鞍三类——但有一个例外没收掉:海森半正定退化的时候二阶检验失败。下一课换一个视角:在「凸函数」这个更强的全局假设下,第一节那条 ∇f(x∗)=0 不仅必要、而且充分,每个局部极小自动也是全局极小,组合优化里的均值方差与最小二乘问题正是凭这一点才能写出闭式解。