← 返回模块
Q2.4.2.4beta 可读 · 未来付费校验通过内容版本 2026-05-24

一阶最优性与凸性

2.4.2 · 面向最优化的微积分 · 数学与统计能力

Hook:两个看起来都「会优化」的求解器

上海某私募基金的两位研究员同时打开 Python,一位在跑一个标的为沪深300 成分股、目标为均值方差优化(mean-variance optimization)的组合优化(portfolio optimization)问题,另一位在调一个三层的因子神经网络。两人用的迭代算法是同一份梯度下降代码,第一位 200 步就收敛、第二位 200,000 步还在抖。差别不在工程,在数学:第一个问题是凸的,第二个不是。凸性这一条几何性质决定了「梯度等于零」是「找到全局最优」的等价条件,还是只是「卡在某个临时驻点上」的弱信号。本课把第一到第三课的结论收拢成一个最优性故事,并展示组合优化与最小二乘问题为什么落在「凸」的一边。

一、一阶必要条件

定理:设 f:RnRf: \mathbb{R}^n \to \mathbb{R}xRnx^* \in \mathbb{R}^n 处可微,且 xx^* 是无约束局部极小点(或极大点)。那么必有

f(x)=0\nabla f(x^*) = 0

证明用反证:若 f(x)0\nabla f(x^*) \neq 0,沿 f(x)-\nabla f(x^*) 方向走一小步 h=tf(x)/f(x)h = -t \nabla f(x^*) / \|\nabla f(x^*)\|,根据一阶泰勒展开(第一课),f(x+h)f(x)=f(x)Th+o(t)=tf(x)+o(t)f(x^* + h) - f(x^*) = \nabla f(x^*)^T h + o(t) = -t \|\nabla f(x^*)\| + o(t),这在 t>0t > 0 足够小时为负,与 xx^* 是局部极小矛盾。

​满足 f(x)=0\nabla f(x^*) = 0 的点称为驻点(critical point)​​。第三课讲过:海森矩阵可以把驻点分成局部极小、局部极大、鞍点三类。开头那个收敛 200 步的研究员和那个 200,000 步还在挣扎的研究员,遇到的都是「梯度→0」的点;前者是全局极小、后者可能是鞍点或一个局部极小。要把这两种情况识别开,必须引入下一个概念。

二、凸集与凸函数

集合 CRnC \subseteq \mathbb{R}^n 称为​​凸集(convex set)​​,如果对任意 x,yCx, y \in Cλ[0,1]\lambda \in [0, 1] 都有 λx+(1λ)yC\lambda x + (1 - \lambda) y \in C——也就是说,「连接 CC 中任意两点的线段全部仍在 CC 中」。

函数 f:CRf: C \to \mathbb{R}(定义在凸集 CC 上)称为​​凸函数(convex function)​​,如果对任意 x,yCx, y \in Cλ[0,1]\lambda \in [0, 1] 都有

f(λx+(1λ)y)λf(x)+(1λ)f(y)f(\lambda x + (1 - \lambda) y) \le \lambda f(x) + (1 - \lambda) f(y)

等价地,凸函数的图像位于任意两点连线(弦)下方。直观地:凸函数没有「往下凹」的区段,因此也就没有「鞍点」。

二阶可微情形有一条更好用的等价刻画:f:CRf: C \to \mathbb{R} 是凸函数 当且仅当 它的海森矩阵 Hf(x)H_f(x)CC 上每一点都是半正定(positive semidefinite, PSD)。证明用第三课的二阶泰勒展开+特征分解,留作思考题;这里只用结论。

三、凸性把一阶条件升级为充分

​关键定理:若 ff 在凸定义域上凸、可微,则任一驻点(f(x)=0\nabla f(x^*) = 0)都是全局极小点,并且每一个局部极小都是全局极小。​

证明草稿:取任意 yCy \in C,由凸函数的一阶条件(first-order condition for convexity),

f(y)f(x)+f(x)T(yx)f(y) \ge f(x^*) + \nabla f(x^*)^T (y - x^*)

代入 f(x)=0\nabla f(x^*) = 0f(y)f(x)f(y) \ge f(x^*) 对所有 yCy \in C 成立——这正是「xx^* 是全局极小」的定义。

这条定理是凸优化的全部商业价值来源:在凸问题里,「写一个梯度等于零的方程并求解」就是「找全局最优」,不需要担心鞍点、不需要 multi-start、不需要随机重启。开头那条 200 步收敛的均值方差优化求解器就在享受这条定理。

下方滑块给出凸/凹判别的最简一维示意:函数 ax2a x^2a>0a > 0 时凸(向上开口),a<0a < 0 时凹,a=0a = 0 时既凸又凹。

Formula Explorer

a * x^2

四、闭式解一:普通最小二乘

考虑普通最小二乘(ordinary least squares, OLS)问题:给定设计矩阵 XRT×pX \in \mathbb{R}^{T \times p}TT 为样本数、pp 为特征数)和响应向量 yRTy \in \mathbb{R}^T,最小化

minβRp  f(β)=12yXβ22\min_{\beta \in \mathbb{R}^p}\; f(\beta) = \tfrac{1}{2} \|y - X \beta\|_2^2

梯度:f(β)=XT(yXβ)=XTXβXTy\nabla f(\beta) = -X^T (y - X \beta) = X^T X \beta - X^T y。海森:Hf(β)=XTXH_f(\beta) = X^T X,是协方差矩阵(covariance matrix,对样本中心化后视角下)那一族对称半正定矩阵之一,所以 ff 凸。由上一节的定理,f(β)=0\nabla f(\beta^*) = 0 充分确定全局最优——也就是熟悉的​​正规方程(normal equations)​

XTXβ=XTyX^T X \beta = X^T y

XX 列满秩,XTXX^T X 可逆,闭式解为 β^=(XTX)1XTy\hat\beta = (X^T X)^{-1} X^T y。这条解析解是因子回归、CFFEX 套利对冲比例估计、A 股 50ETF 期权隐含波动率拟合等一切线性建模的脊柱。

五、闭式解二:无约束均值方差

考虑无约束均值方差问题:

minwRn  f(w)=12wTΣwμTw\min_{w \in \mathbb{R}^n}\; f(w) = \tfrac{1}{2} w^T \Sigma w - \mu^T w

其中 ΣRn×n\Sigma \in \mathbb{R}^{n \times n} 是收益的协方差矩阵(covariance matrix)、μRn\mu \in \mathbb{R}^n 是预期收益向量。第三课算过:f(w)=Σwμ\nabla f(w) = \Sigma w - \mu、海森 Hf(w)=ΣH_f(w) = \Sigma 半正定,故 ff 凸。一阶条件:

Σw=μw=Σ1μ\Sigma w^* = \mu \quad \Longrightarrow \quad w^* = \Sigma^{-1} \mu

(在 Σ\Sigma 正定即所有特征值为正时可逆。)这条解就是经典的 mean-variance 风险偏好为 1 时的最优组合,是私募基金做组合归因时随手就能写出的基线。

六、自检(结业级)

Exercise

给定 f(w1,w2)=w12+4w1w2+5w222w14w2f(w_1, w_2) = w_1^2 + 4 w_1 w_2 + 5 w_2^2 - 2 w_1 - 4 w_2。 (i) 计算海森矩阵并验证它正定,从而 ff 凸; (ii) 写出一阶条件 f=0\nabla f = 0; (iii) 解线性方程组求出唯一全局极小 ww^*

提示
海森的 (1,1) 项是 2f/w12=2\partial^2 f / \partial w_1^2 = 2;(1,2) 与 (2,1) 项都是 2f/(w1w2)=4\partial^2 f / (\partial w_1 \partial w_2) = 4;(2,2) 项是 2f/w22=10\partial^2 f / \partial w_2^2 = 10。验正定可用主子式判别。
提示
一阶条件给出方程组 2w1+4w22=02 w_1 + 4 w_2 - 2 = 04w1+10w24=04 w_1 + 10 w_2 - 4 = 0。求解得 w=(1,0)Tw^* = (1, 0)^T

通往下一模块

到这里你拥有了一套完整的「无约束、可微、凸」工具箱:第一课的梯度告诉你最贵的方向,第二课的链式法则让你把梯度推过任意复合,第三课的海森把驻点分类,第四课的凸性把局部极小升级为全局极小并给出闭式解。但真实问题往往带约束(私募的 T+1 结算、涨跌停板、多空头敞口上限)、目标函数往往不光滑(绝对值惩罚、L1L_1 正则),并且 Σ\Sigma 不一定可逆。下一模块 2.5 把这套思路扩展到「凸+约束」的世界:拉格朗日对偶、KKT 条件、内点法、近端梯度法——同一颗梯度,更精致的几何。