← 返回模块
2.5.1.1beta 可读 · 未来免费校验通过内容版本 2026-05-26

凸集与凸函数

2.5.1 · 凸优化 · 数学与统计能力

开篇场景(Hook):基数约束如何把 MVO 从 QP 推到 MIP

周二下午,你在一家百亿规模的私募(private fund)量化部门里,给沪深300 成分股做一只全仓做多组合。脚本是教科书版本的均值方差优化(mean-variance optimization, MVO):最小化 12wTΣwμTw\tfrac{1}{2} w^T \Sigma w - \mu^T w,约束 1Tw=1\mathbf{1}^T w = 1w0w \ge 0。CVXPY 在 80ms 内返回全局最优。你顺手加了一行「最多持仓 20 只名字」,重启脚本——求解器立刻报错;改成混合整数程序(MIP)后跑了 8 分钟仍未收敛。从「秒级返回」到「跑不出来」,唯一变的是约束的几何性质:从凸掉到了非凸。本节要建立这个判断的基本词汇——什么样的集合是凸集(convex set),什么样的函数是凸函数(convex function),以及为什么这两个性质合起来才让求解器返回一个干净的全局最优。

一、凸集:定义与日常清单

集合 CRnC \subseteq \mathbb{R}^n 是​​凸集​​当且仅当对任意 x,yCx, y \in Cλ[0,1]\lambda \in [0, 1]

λx+(1λ)yC.\lambda x + (1 - \lambda) y \in C.

直观:把集合内任意两点连成线段,整段都还在集合里。下面是量化里最常见的几类凸集——你应当一眼能认出。

  • ​半空间(halfspace)​ {x:aTxb}\{x : a^T x \le b\}。一张超平面把空间砍成两半,留下其中一半。预算上限、风险上限、单行业敞口上限都落在这里。
  • ​超平面(hyperplane)​ {x:aTx=b}\{x : a^T x = b\}。半空间的等式版本;满仓约束 1Tw=1\mathbf{1}^T w = 1 就是一张超平面。
  • ​多面体(polyhedron)​ 是有限个半空间的交 {x:Axb}\{x : Ax \le b\};凸集的任意交仍凸,故多面体凸。
  • ​概率单纯形(probability simplex)​ Δn={w0:1Tw=1}\Delta_n = \{w \ge 0 : \mathbf{1}^T w = 1\}。这正是私募在沪深300 全仓做多 mandate 下能选的全部权重向量。
  • ​范数球(norm ball)​ {x:xr}\{x : \|x\| \le r\} 对任意向量范数(vector norm)都成立;L2L_2 球是其中最常见的一个。
  • ​椭球(ellipsoid)​ {x:(xxc)TP1(xxc)1}\{x : (x - x_c)^T P^{-1}(x - x_c) \le 1\},其中 P0P \succ 0。它正是单位球在仿射函数(affine map)xAx+xcx \mapsto A x + x_c 下的像。
  • ​半正定锥(PSD cone)​ S+n={X=XT:X0}\mathbb{S}^n_+ = \{X = X^T : X \succeq 0\}。半正定(positive semidefinite, PSD)锥本身是矩阵空间里的凸集,所有的协方差矩阵(covariance matrix)都住在这里。

​保凸操作(convexity-preserving operations)​​:把这些原子拼成更复杂的可行域时,只需记住四条规则。任意(甚至无穷多)凸集的交仍是凸集;凸集在仿射函数 xAx+bx \mapsto A x + b 下的像与原像都还是凸集;凸集乘以非负常数仍凸;两个凸集的 Minkowski 和 C1+C2={x+y:xC1,yC2}C_1 + C_2 = \{x + y : x \in C_1, y \in C_2\} 也凸。多面体可由半空间交出来,椭球可写成单位球的仿射像——掌握这四条,你能从原子搭出绝大多数符合 mandate 的可行域。

二、凸函数:三种等价定义

函数 f:RnRf : \mathbb{R}^n \to \mathbb{R} 是​​凸函数​​当且仅当对任意 x,yx, yλ[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).

几何上,函数图像上任两点之间的连线段始终位于图像上方。这条线段不等式等价于另外两个常用判据。

  1. ​上图集(epigraph)判据​​:ff    \iff 它的上图集 epif={(x,t)Rn+1:f(x)t}\mathrm{epi}\, f = \{(x, t) \in \mathbb{R}^{n+1} : f(x) \le t\} 是凸集。这条把「函数凸」翻译成「集合凸」,便于直接套用上一节的保凸操作。
  2. ​一阶判据​​:若 ff 一阶可微,则 ff    \iff 对所有 x,yx, y 在定义域内,f(y)f(x)+f(x)T(yx)f(y) \ge f(x) + \nabla f(x)^T (y - x)。即函数图像处处位于其切超平面之上。
  3. ​二阶判据(second-order characterization)​​:若 ff 在定义域上二阶可微,则
f 凸    2f(x)0 对定义域内所有 x.f \text{ 凸} \iff \nabla^2 f(x) \succeq 0 \text{ 对定义域内所有 } x.

Hessian 2f\nabla^2 f 自动是对称矩阵(symmetric matrix),二阶判据等价于其所有特征值(eigenvalue)非负——这正是上一模块(线性代数与微积分)里 Hessian 判据的延伸:你只需要查特征值的符号即可。

下面这个滑块让你直观感受最简单的凸二次函数 f(x)=12x2f(x) = \tfrac{1}{2} x^2 在不同 xx 处的取值变化:

Formula Explorer

0.5 * x**2

三、一张分类表,把常见对象认清

函数凸 / 凹 / 都不是一行理由
仿射 f(x)=aTx+bf(x) = a^T x + b既凸又凹二阶导恒为零;线段不等式两边恰好相等
二次型 12xTQx+bTx\tfrac{1}{2} x^T Q x + b^T xQ0Q \succeq 0Hessian 恰为 QQ,半正定;MVO 风险项 wTΣww^T \Sigma w 即此类(Σ\Sigma 是协方差矩阵)
向量范数 x\|x\|(含 L1,L2,LL_1, L_2, L_\infty三角不等式 λx+(1λ)yλx+(1λ)y\|\lambda x + (1-\lambda) y\| \le \lambda\|x\| + (1-\lambda)\|y\| 直接给出线段不等式
凸集指示函数 IC(x)I_C(x)CC 凸)上图集等于 C×R+C \times \mathbb{R}_+,仍凸
logx-\log xR++\mathbb{R}_{++}二阶导 1/x2>01/x^2 > 0;对数效用最大化等价于最小化这一项
log ⁣iexi\log\!\sum_i e^{x_i}(log-sum-exp)Hessian 是某个离散分布的协方差矩阵,自动 PSD
仿射函数族的逐点最大 maxi(aiTx+bi)\max_i (a_i^T x + b_i)上图集是各半空间上图集的交,仍凸
xlogxx \log xR++\mathbb{R}_{++}二阶导 1/x>01/x > 0;熵的负号

读这张表时记住一个动作:先看 Hessian,再回到线段不等式做心算检查——两套判据彼此印证。

四、严格凸与最优解的唯一性

把线段不等式的 \leλ(0,1)\lambda \in (0, 1)xyx \ne y 时改成严格 <<,就得到​​严格凸(strictly convex)​​。直接结果是:无约束最小化的最优解最多一个。如果 Σ0\Sigma \succ 0(而不仅 0\succeq 0),MVO 的风险项严格凸,组合权重的最优解被唯一钉死;若 Σ\Sigma 退化(半正定但不正定,比如因子模型把噪声维度压扁后),就可能整整一条「等价最优」的方向都达到同一个目标值,此时数值解会随求解器随机性漂移——一个值得在生产代码里加诊断断言的细节。

练习:识别一个 mandate 的几何

Exercise

ΣRn×n\Sigma \in \mathbb{R}^{n \times n} 满足 Σ0\Sigma \succeq 0μRn\mu \in \mathbb{R}^n,常数 c>0c > 0。回答两个独立的判断:

(i) 集合 S={wRn:1Tw=1,w0,w2c}S = \{w \in \mathbb{R}^n : \mathbf{1}^T w = 1,\, w \ge 0,\, \|w\|_2 \le c\} 是不是凸集?

(ii) 函数 f(w)=wTΣwμTwf(w) = w^T \Sigma w - \mu^T w 是不是凸函数?

把你的依据写下来——「我用了哪条判据」比「是 / 否」更重要。

提示
SS 拆成三块:超平面 1Tw=1\mathbf{1}^T w = 1、非负卦限 w0w \ge 0nn 个半空间的交)、L2L_2 范数球 w2c\|w\|_2 \le c。每块单独凸性都已在上文清单中确认;再用保凸操作把三块合起来。
提示
ff 由两项构成。线性项 μTw-\mu^T w 是仿射函数,Hessian 为零矩阵;二次项 wTΣww^T \Sigma w 的 Hessian 是 2Σ2\Sigma。两者相加后回到二阶判据 2f0\nabla^2 f \succeq 0,问题转化为 Σ\Sigma 是否半正定——而这正是题目给定的条件。

通往下一节

到此你已经能在一组约束面前回答两个最基本的问题:可行域是不是凸集?目标函数是不是凸函数?下一节把这两件事拼到一起——把凸目标、凸不等式约束、仿射等式约束写进同一个标准形式,并证明这种组合下「任何局部最优都是全局最优」的核心定理。