Skip to content

最优化方法

凸优化 (Convex Optimization)

量化金融中大量问题可以归结为优化问题。凸优化是其中最重要的一类,因为局部最优即全局最优。

标准形式的凸优化问题:

\[\min_{x} \; f(x) \quad \text{s.t.} \quad g_i(x) \leq 0, \; i=1,\ldots,m; \quad h_j(x) = 0, \; j=1,\ldots,p\]

其中 \(f(x)\)\(g_i(x)\) 为凸函数,\(h_j(x)\) 为仿射函数。

凸性判断

函数 \(f\) 是凸函数当且仅当其 Hessian 矩阵半正定:\(\nabla^2 f(x) \succeq 0\)。在投资组合优化中,方差 \(w^T \Sigma w\) 是权重 \(w\) 的凸函数(\(\Sigma\) 半正定),因此均值-方差优化本质上是凸二次规划 (Convex QP)。

拉格朗日乘数法 (Lagrange Multipliers)

对于等式约束优化问题:

\[\min_x f(x) \quad \text{s.t.} \quad h_j(x) = 0, \; j=1,\ldots,p\]

构造拉格朗日函数 (Lagrangian):

\[\mathcal{L}(x, \lambda) = f(x) + \sum_{j=1}^{p}\lambda_j h_j(x)\]

最优性一阶必要条件为:

\[\nabla_x \mathcal{L} = \nabla f(x) + \sum_{j=1}^{p}\lambda_j \nabla h_j(x) = 0\]
\[h_j(x) = 0, \quad j = 1,\ldots,p\]

最小方差组合 (Minimum Variance Portfolio)

目标:\(\min_w \frac{1}{2}w^T\Sigma w\) ,约束 \(\mathbf{1}^T w = 1\)

拉格朗日函数:\(\mathcal{L} = \frac{1}{2}w^T\Sigma w - \lambda(\mathbf{1}^T w - 1)\)

一阶条件:\(\Sigma w = \lambda \mathbf{1}\),解得:

\[w^* = \frac{\Sigma^{-1}\mathbf{1}}{\mathbf{1}^T\Sigma^{-1}\mathbf{1}}\]

KKT 条件 (Karush-Kuhn-Tucker Conditions)

对于含不等式约束的一般优化问题,KKT 条件是最优解的必要条件(凸问题中亦为充分条件)。

拉格朗日函数扩展为:

\[\mathcal{L}(x, \lambda, \mu) = f(x) + \sum_{i=1}^{m}\mu_i g_i(x) + \sum_{j=1}^{p}\lambda_j h_j(x)\]

KKT 条件包含四组方程:

\[\boxed{\begin{aligned} &\text{1. 平稳性 (Stationarity):} & \nabla_x \mathcal{L} &= 0 \\ &\text{2. 原始可行性 (Primal Feasibility):} & g_i(x) &\leq 0,\; h_j(x) = 0 \\ &\text{3. 对偶可行性 (Dual Feasibility):} & \mu_i &\geq 0 \\ &\text{4. 互补松弛 (Complementary Slackness):} & \mu_i g_i(x) &= 0 \end{aligned}}\]

互补松弛条件的含义

\(\mu_i g_i(x) = 0\) 意味着:要么约束不起作用 (\(g_i(x) < 0\), \(\mu_i = 0\)),要么约束取等号 (\(g_i(x) = 0\), \(\mu_i \geq 0\))。在组合优化中,这对应于做空约束或仓位上限是否"绑定"(Binding)。

梯度下降法 (Gradient Descent)

对无约束问题 \(\min_x f(x)\),梯度下降通过迭代更新:

\[x_{k+1} = x_k - \eta_k \nabla f(x_k)\]

其中 \(\eta_k\) 为步长 (Learning Rate)。对于凸且 \(L\)-光滑函数,取 \(\eta = 1/L\) 时收敛速度为 \(O(1/k)\)

常用变体

随机梯度下降 (SGD):用单个样本或小批量 (Mini-batch) 梯度替代全梯度,适合大规模数据:

\[x_{k+1} = x_k - \eta_k \nabla f_i(x_k), \quad i \sim \text{Uniform}\{1,\ldots,N\}\]

Adam 优化器:结合动量 (Momentum) 和自适应学习率,更新规则:

\[m_k = \beta_1 m_{k-1} + (1-\beta_1)g_k, \quad v_k = \beta_2 v_{k-1} + (1-\beta_2)g_k^2\]
\[x_{k+1} = x_k - \eta \frac{\hat{m}_k}{\sqrt{\hat{v}_k} + \epsilon}\]

其中 \(\hat{m}_k, \hat{v}_k\) 为偏差修正后的估计。

在量化中的应用

SGD 和 Adam 广泛用于机器学习因子模型的训练、深度学习定价模型以及强化学习交易策略的参数优化。

投资组合优化应用 (Portfolio Optimization)

Markowitz 均值-方差优化

经典问题形式(含做空约束):

\[\min_w \frac{1}{2}w^T\Sigma w \quad \text{s.t.} \quad \mu^T w \geq \mu_{\text{target}}, \quad \mathbf{1}^T w = 1, \quad w \geq 0\]

这是一个凸二次规划 (QP) 问题,可用内点法 (Interior Point Method) 或有效集法 (Active Set Method) 高效求解。

有效前沿 (Efficient Frontier) 的参数化

不含做空约束时,有效前沿上的组合可以参数化为:

\[w^*(\mu_{\text{target}}) = g + h \cdot \mu_{\text{target}}\]

其中 \(g, h\) 为仅依赖 \(\Sigma\)\(\mu\) 的常数向量。有效前沿在 \((\sigma, \mu)\) 空间中是一条双曲线。

估计误差问题

均值-方差优化对输入参数(尤其是期望收益率 \(\mu\))极其敏感。实践中常使用以下方法缓解:

  • Black-Litterman 模型:将市场均衡收益率与主观观点结合
  • 收缩估计 (Shrinkage):将样本协方差矩阵向结构化目标收缩
  • 正则化 (Regularization):在目标函数中添加 \(\ell_1\)\(\ell_2\) 惩罚项
  • Resampling:通过 Bootstrap 重采样生成多个有效前沿后取平均