拉格朗日乘子法(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
我们希望在给定的一段时间内 $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{即最大化投影后的方差总和}\]