拉格朗日乘子法(Lagrange multiplier )一般问题

问题: $\min_x f(x),\ g(x)=0$

解决: 构建Lagrangian $\mathcal L (x,\lambda)=f(x)-\lambda g(x)$ , 解$\nabla_x f-\lambda \nabla_x g=0$ . Lagrangian的维数更低, 更好解.

示例

应用场景 优化目标 约束条件
Markowitz 投资组合 最大 Sharpe 比 $w^T \Sigma w = 1$ $w \propto \Sigma^{-1} \mu$
PCA 最大方差方向 最大 $|Ax|^2$ $x^T x = 1$ $x$ 是 $A^T A$ 最大特征向量
PCA 最小压缩误差 最小 $|A - A V V^T|$ $V^T V = I$ $V$ 是 $A^T A$ 最大特征子空间

一、Markowitz 投资组合模型:最大化区间 Sharpe

Modern_portfolio_theory

我们希望在给定的一段时间内 $T$,在一个包含 $N$ 支股票的股票池中,找到一个组合权重向量 $w \in \mathbb{R}^{N \times 1}$,使得组合的 Sharpe 比 最大:

\[\text{Sharpe} = \frac{w^T \mu}{\sqrt{w^T \Sigma w}}\]
  • 记portfolio的权重为 w(N x 1), 股票池内股票的returns为 R(N x T), 前T天组合股票的return为 $wR=\sum_i w_i\cdot r_{it}$
  • $Sharpe =\frac{mean}{std dev} =\frac{\sum_t \sum_i w_i\cdot r_{it}}{\sqrt{\sum_t (\sum_i w_i\cdot \bar r_{it})^2}}=\frac{\sum_i w_i (\sum_t r_{it})}{\sqrt{\sum_t \sum_{ij} w_i\cdot \bar r_{it}\bar r_{jt}\cdot w_j}}=\frac{\sum_i w_i (\sum_t r_{it})}{\sqrt{\sum_{ij} w_i\cdot (\sum_t \bar r_{it}\bar r_{jt})\cdot w_j}}=\frac{w^T \mu}{\sqrt{w^T\Sigma w}}$
    • 记$\mu=\sum_t r_{it}$ (N x 1) , 是每只股票的历史平均收益率, 即ts_mean(stats.returns, T)
    • 记 $\Sigma=\sum_t \bar r_{it}\bar r_{jt}$ (N x N), 是收益率协方差矩阵, 即ts_mean(self_corr(ts_av_diff(stats.returns,T),1),T)

拉格朗日乘子法求解

Sharpe对w比例不敏感, 我们将问题转化为:

\[\max_w w^T \mu \quad \text{s.t. } w^T \Sigma w = 1\]

构造拉格朗日函数:

\[\mathcal{L}(w, \lambda) = w^T \mu - \lambda (w^T \Sigma w - 1)\]

对 $w$ 求梯度并令其为零:

\[\nabla_w \mathcal{L} = \mu - 2\lambda \Sigma w = 0 \quad \Rightarrow \quad w \propto \Sigma^{-1} \mu\]

也就是说,最优解的方向与协方差矩阵的逆乘以期望收益向量的方向一致。这就是经典 Markowitz 模型的解析解。


二、Plain PCA:最大化数据投影方差

在主成分分析中,我们希望找到一个方向 $x \in \mathbb{R}^{d \times 1}$,使得数据在该方向上的投影方差最大,约束是单位长度 $|x|=1$。假设数据矩阵为 $A \in \mathbb{R}^{n \times d}$,则问题形式为:

\[\max_x \|Ax\|^2 \quad \text{s.t. } \|x\|^2 = 1\]

拉格朗日函数为:

\[\mathcal{L}(x, \lambda) = x^T A^T A x - \lambda (x^T x - 1)\]

对 $x$ 求导并设为 0:

\[\nabla_x \mathcal{L} = 2 A^T A x - 2\lambda x = 0 \quad \Rightarrow \quad A^T A x = \lambda x\]

这表明 $x$ 是矩阵 $A^T A$ 的特征向量,对应最大特征值的方向即为最大方差方向,也就是第一主成分。


三、PCA压缩视角下的拉格朗日优化

从数据压缩角度看,我们希望用一个PCA压缩(列变换)后子空间 $Z= AV\in \mathbb{R}^{w \times k}$ 来逼近原始数据矩阵 $A \in \mathbb{R}^{w \times h}$。PCA 等价于找到一个低维正交投影矩阵 $V \in \mathbb{R}^{h \times k}$,使得重构误差最小:

\[\min_{V} \|A - A V V^T\|_F^2 \quad \text{s.t. } V^T V = I\]

拉格朗日乘子法求解

问题可以转换为 Plain PCA:

\[\max_{V} \|A V\|_F^2 \quad \text{s.t. } V^T V = I\]

推导

展开 Frobenius 范数:

\[\begin{aligned} \|A - A V V^T\|_F^2 &= \text{tr}\left((A - A V V^T)^T (A - A V V^T)\right) \\ &= \text{tr}(A^T A - A^T A V V^T - V V^T A^T A + V V^T A^T A V V^T) \\ &= \text{tr}(A^T A) - 2\text{tr}(V^T A^T A V) + \text{tr}(V^T A^T A V) \\ &= \text{tr}(A^T A) - \text{tr}(V^T A^T A V) \end{aligned}\]

于是优化目标就变为:

\[\min_{V^T V = I} \|A - A V V^T\|_F^2 = \text{const} - \max_{V^T V = I} \text{tr}(V^T A^T A V)\]

也就是说:

\[\max_{V^T V = I} \text{tr}(V^T A^T A V) \quad \text{即最大化投影后的方差总和}\]