Hook:两个看起来都「会优化」的求解器
上海某私募基金的两位研究员同时打开 Python,一位在跑一个标的为沪深300 成分股、目标为均值方差优化(mean-variance optimization)的组合优化(portfolio optimization)问题,另一位在调一个三层的因子神经网络。两人用的迭代算法是同一份梯度下降代码,第一位 200 步就收敛、第二位 200,000 步还在抖。差别不在工程,在数学:第一个问题是凸的,第二个不是。凸性这一条几何性质决定了「梯度等于零」是「找到全局最优」的等价条件,还是只是「卡在某个临时驻点上」的弱信号。本课把第一到第三课的结论收拢成一个最优性故事,并展示组合优化与最小二乘问题为什么落在「凸」的一边。
一、一阶必要条件
定理:设 f:Rn→R 在 x∗∈Rn 处可微,且 x∗ 是无约束局部极小点(或极大点)。那么必有
∇f(x∗)=0
证明用反证:若 ∇f(x∗)=0,沿 −∇f(x∗) 方向走一小步 h=−t∇f(x∗)/∥∇f(x∗)∥,根据一阶泰勒展开(第一课),f(x∗+h)−f(x∗)=∇f(x∗)Th+o(t)=−t∥∇f(x∗)∥+o(t),这在 t>0 足够小时为负,与 x∗ 是局部极小矛盾。
满足 ∇f(x∗)=0 的点称为驻点(critical point)。第三课讲过:海森矩阵可以把驻点分成局部极小、局部极大、鞍点三类。开头那个收敛 200 步的研究员和那个 200,000 步还在挣扎的研究员,遇到的都是「梯度→0」的点;前者是全局极小、后者可能是鞍点或一个局部极小。要把这两种情况识别开,必须引入下一个概念。
二、凸集与凸函数
集合 C⊆Rn 称为凸集(convex set),如果对任意 x,y∈C 与 λ∈[0,1] 都有 λx+(1−λ)y∈C——也就是说,「连接 C 中任意两点的线段全部仍在 C 中」。
函数 f:C→R(定义在凸集 C 上)称为凸函数(convex function),如果对任意 x,y∈C 与 λ∈[0,1] 都有
f(λx+(1−λ)y)≤λf(x)+(1−λ)f(y)
等价地,凸函数的图像位于任意两点连线(弦)下方。直观地:凸函数没有「往下凹」的区段,因此也就没有「鞍点」。
二阶可微情形有一条更好用的等价刻画:f:C→R 是凸函数 当且仅当 它的海森矩阵 Hf(x) 在 C 上每一点都是半正定(positive semidefinite, PSD)。证明用第三课的二阶泰勒展开+特征分解,留作思考题;这里只用结论。
三、凸性把一阶条件升级为充分
关键定理:若 f 在凸定义域上凸、可微,则任一驻点(∇f(x∗)=0)都是全局极小点,并且每一个局部极小都是全局极小。
证明草稿:取任意 y∈C,由凸函数的一阶条件(first-order condition for convexity),
f(y)≥f(x∗)+∇f(x∗)T(y−x∗)
代入 ∇f(x∗)=0 得 f(y)≥f(x∗) 对所有 y∈C 成立——这正是「x∗ 是全局极小」的定义。
这条定理是凸优化的全部商业价值来源:在凸问题里,「写一个梯度等于零的方程并求解」就是「找全局最优」,不需要担心鞍点、不需要 multi-start、不需要随机重启。开头那条 200 步收敛的均值方差优化求解器就在享受这条定理。
下方滑块给出凸/凹判别的最简一维示意:函数 ax2 在 a>0 时凸(向上开口),a<0 时凹,a=0 时既凸又凹。
四、闭式解一:普通最小二乘
考虑普通最小二乘(ordinary least squares, OLS)问题:给定设计矩阵 X∈RT×p(T 为样本数、p 为特征数)和响应向量 y∈RT,最小化
β∈Rpminf(β)=21∥y−Xβ∥22
梯度:∇f(β)=−XT(y−Xβ)=XTXβ−XTy。海森:Hf(β)=XTX,是协方差矩阵(covariance matrix,对样本中心化后视角下)那一族对称半正定矩阵之一,所以 f 凸。由上一节的定理,∇f(β∗)=0 充分确定全局最优——也就是熟悉的正规方程(normal equations)
XTXβ=XTy
若 X 列满秩,XTX 可逆,闭式解为 β^=(XTX)−1XTy。这条解析解是因子回归、CFFEX 套利对冲比例估计、A 股 50ETF 期权隐含波动率拟合等一切线性建模的脊柱。
五、闭式解二:无约束均值方差
考虑无约束均值方差问题:
w∈Rnminf(w)=21wTΣw−μTw
其中 Σ∈Rn×n 是收益的协方差矩阵(covariance matrix)、μ∈Rn 是预期收益向量。第三课算过:∇f(w)=Σw−μ、海森 Hf(w)=Σ 半正定,故 f 凸。一阶条件:
Σw∗=μ⟹w∗=Σ−1μ
(在 Σ 正定即所有特征值为正时可逆。)这条解就是经典的 mean-variance 风险偏好为 1 时的最优组合,是私募基金做组合归因时随手就能写出的基线。
六、自检(结业级)
Exercise
给定 f(w1,w2)=w12+4w1w2+5w22−2w1−4w2。
(i) 计算海森矩阵并验证它正定,从而 f 凸;
(ii) 写出一阶条件 ∇f=0;
(iii) 解线性方程组求出唯一全局极小 w∗。
提示
海森的 (1,1) 项是
∂2f/∂w12=2;(1,2) 与 (2,1) 项都是
∂2f/(∂w1∂w2)=4;(2,2) 项是
∂2f/∂w22=10。验正定可用主子式判别。
提示
一阶条件给出方程组
2w1+4w2−2=0 和
4w1+10w2−4=0。求解得
w∗=(1,0)T。
通往下一模块
到这里你拥有了一套完整的「无约束、可微、凸」工具箱:第一课的梯度告诉你最贵的方向,第二课的链式法则让你把梯度推过任意复合,第三课的海森把驻点分类,第四课的凸性把局部极小升级为全局极小并给出闭式解。但真实问题往往带约束(私募的 T+1 结算、涨跌停板、多空头敞口上限)、目标函数往往不光滑(绝对值惩罚、L1 正则),并且 Σ 不一定可逆。下一模块 2.5 把这套思路扩展到「凸+约束」的世界:拉格朗日对偶、KKT 条件、内点法、近端梯度法——同一颗梯度,更精致的几何。