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

策略梯度与深度强化学习

2.6.4 · 无监督学习与强化学习 · 数学与统计能力

策略梯度与深度强化学习

开篇场景:表格放不下的盘口

周三盘后,上海一家头部 私募 的初级量化把成果摊给组长:CFFEX 上 沪深300 股指期货 日内大单切片,建成 144 个离散状态的 MDP,跑通了表格 Q 学习,比 TWAP 省了约 2bp 的 实施差额(implementation shortfall)。组长翻两页就皱眉:「线上要吃 5 档盘口 + 不平衡 + 已实现波动 约 500 维特征,持仓连续——表存得下吗?昨天有人把表换成 3 层 MLP,训练曲线先涨后崩。」

把表格 Q(s,a)Q(s, a) 换成参数化 Qw(s,a)Q_w(s, a) 或参数化策略 πθ(as)\pi_\theta(a \mid s) 是必然选择;为什么换上网络就崩、又如何稳住,是 深度强化学习 的核心工程问题。Sutton & Barto 第 11 章把 off-policy、自举、函数逼近 三件事同时出现命名为 ​致命三元组​​(deadly triad):

off-policy(a)  +  bootstrapping(b)  +  function approximation(c)  ⇏  convergence\underbrace{\text{off-policy}}_{(a)} \; + \; \underbrace{\text{bootstrapping}}_{(b)} \; + \; \underbrace{\text{function approximation}}_{(c)} \;\not\Rightarrow\; \text{convergence}

Tsitsiklis & Van Roy (1997) 给出理论刻画,Baird (1995) 的反例 MDP 是经典实证。监督学习里的 IID 与"固定目标"两根支柱在深度 RL 同时失效——样本来自当前策略,目标依赖正在被优化的参数。下面沿价值法(DQN)与策略法(REINFORCE → 演员-评论家 → PPO)两条主线给出工程稳化手段。

价值法:DQN

Mnih 等 (2015, Nature 518:529-533) 用深度卷积网 Qw(s,a)Q_w(s, a) 参数化动作价值,仅靠像素与得分在 49 款 Atari 游戏达到人类水平。两件武器把三元组压住:

  1. ​经验回放​​:维护固定容量的回放缓冲 D\mathcal{D},存放 (s,a,r,s)(s, a, r, s');每步从 D\mathcal{D} 独立抽 minibatch 训练,恢复近似 IID 结构、打断相邻时刻相关性。
  2. ​目标网络​​:另存一份慢更新副本 QwQ_{w^-},每 kk 步把 ww 同步过去;TD 目标用 QwQ_{w^-} 而非 QwQ_w,避免"自己追自己尾巴"的发散。

DQN 的训练损失:

L(w)=E(s,a,r,s)D[(r+γmaxaQw(s,a)Qw(s,a))2]L(w) = \mathbb{E}_{(s, a, r, s') \sim \mathcal{D}}\Bigl[ \bigl( r + \gamma \max_{a'} Q_{w^-}(s', a') - Q_w(s, a) \bigr)^2 \Bigr]

已知局限——过估计偏差(Hasselt 2010 → double DQN)、优先回放、C51 / Rainbow(Hessel et al. 2018)——仅作一行指针。

策略梯度:从 REINFORCE 到演员-评论家

直接把策略参数化为 πθ(as)\pi_\theta(a \mid s),对期望回报 J(θ)=Eτπθ[G(τ)]J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta}[G(\tau)] 做梯度上升。两步推导:(i) 把梯度搬进期望,应用对数技巧 θp=pθlogp\nabla_\theta p = p \cdot \nabla_\theta \log p;(ii) 用马尔可夫分解 p(τθ)=μ(s0)tπθ(atst)P(st+1st,at)p(\tau \mid \theta) = \mu(s_0) \prod_t \pi_\theta(a_t \mid s_t) P(s_{t+1} \mid s_t, a_t),转移核与 θ\theta 无关、对数微分后消失。Williams (1992) 的 REINFORCE 与 Sutton et al. (2000) 一般定理由此给出:

θJ(θ)=Eτπθ[t=0Tθlogπθ(atst)评分函数Gt]\nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta}\Bigl[ \sum_{t=0}^T \underbrace{\nabla_\theta \log \pi_\theta(a_t \mid s_t)}_{\text{评分函数}} \, G_t \Bigr]

这是一个蒙特卡洛估计,方差随轨迹长度 TT 增长。基线技巧允许从 GtG_t 中减去任何只依赖状态的 b(st)b(s_t) 而不引入偏差——评分函数 在 πθ\pi_\theta 下的 条件期望(conditional expectation)为零——同时显著降方差。把基线选成评论家网络 Vϕ(s)V_\phi(s),用一步 TD 误差作为优势函数的样本估计:

At=rt+γVϕ(st+1)Vϕ(st)A_t = r_t + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)

评论家用均方 TD 损失训练,演员沿 θlogπθ(atst)At\nabla_\theta \log \pi_\theta(a_t \mid s_t) \cdot A_t 上升。Schulman et al. (2016) 的 广义优势估计(GAE)以 λ\lambda 加权 TD 进一步降方差,此处仅作指针。

PPO:裁剪代理目标

朴素策略梯度有一个工程灾难:单步走得稍大,新策略就把概率质量赋给旧策略几乎从未抽到的动作,在策略假设瞬间破产。TRPO (2015) 用 KL 散度约束步长;PPO (Schulman et al. 2017, arXiv 1707.06347) 把约束换成更便宜的裁剪。定义概率比 rt(θ)=πθ(atst)/πθold(atst)r_t(\theta) = \pi_\theta(a_t \mid s_t) / \pi_{\theta_{\text{old}}}(a_t \mid s_t),PPO 的代理目标:

LCLIP(θ)=Et[min(rt(θ)At,  clip(rt(θ),1ϵ,1+ϵ)At)]L^{\mathrm{CLIP}}(\theta) = \mathbb{E}_t \Bigl[ \min\bigl( r_t(\theta) A_t, \; \mathrm{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) A_t \bigr) \Bigr]

ϵ\epsilon 典型取 0.10.10.20.2At>0A_t > 0 且新策略已加重 ata_t 时,裁剪封顶进一步推高的诱因;At<0A_t < 0 且新策略已压低 ata_t 时,裁剪同样封顶惩罚——「一步走得太远不会再换来收益」的代数形状。PPO 是 OpenAI Five / GPT-3.5 / 4 RLHF 与部分 AlphaStar 变体的底;2024-2026 DeepSeek-R1 / Qwen2.5-Math 推理 RL 浪潮使用 GRPO(PPO 衍生算法),是当下 CN AI 实验室策略梯度仍鲜活的证据。SAC / DDPG / TD3 占据 off-policy 连续动作的生态位,仅作指针。探索方面:价值法常用 ϵ\epsilon-贪婪或 玻尔兹曼探索;策略梯度则在目标里加熵正则 βH(πθ(s))\beta \cdot H(\pi_\theta(\cdot \mid s)),避免过早收敛到次优峰。

Formula Explorer

min(r * A, max(0.8, min(1.2, r)) * A)

AA±1\pm 1 之间拖动,能直接看到 PPO 在 rt(θ)[0.8,1.2]r_t(\theta) \in [0.8, 1.2] 外把斜率拍平——这就是裁剪保护信任域的几何形状。

手算练习

Exercise

2 状态 2 动作的 toy MDP,softmax 策略 πθ(as)=softmax(θϕ(s,a))\pi_\theta(a \mid s) = \mathrm{softmax}(\theta \cdot \phi(s, a)),仅含标量参数 θ\theta,特征 ϕ(s0,a0)=1\phi(s_0, a_0) = 1ϕ(s0,a1)=1\phi(s_0, a_1) = -1。当前 θold=0\theta_{\text{old}} = 0。采样轨迹 s0a0r=1ends_0 \to a_0 \to r = 1 \to \text{end},取 γ=1\gamma = 1G0=1G_0 = 1A0=1A_0 = 1

(a) 计算 评分函数 θlogπθ(a0s0)θ=0\nabla_\theta \log \pi_\theta(a_0 \mid s_0) \big|_{\theta = 0},并写出 REINFORCE 在 α=0.5\alpha = 0.5 下一次更新后 θ\theta 的新值。

(b) 在同一条轨迹上做 PPO 更新,ϵ=0.2\epsilon = 0.2。手算 r0(θ)r_0(\theta)θ\theta 的关系,指出从 θold=0\theta_{\text{old}} = 0 出发 θ\theta 增大到何值时裁剪开始生效;与 (a) 的纯 REINFORCE 步长作对比。

提示
θ=0\theta = 0 时 softmax 两类对称,πθ(a0s0)=1/2\pi_\theta(a_0 \mid s_0) = 1/2。评分函数 =ϕ(s0,a0)Ea[ϕ(s0,a)s0]=10=1= \phi(s_0, a_0) - \mathbb{E}_a[\phi(s_0, a) \mid s_0] = 1 - 0 = 1。乘以 G0α=0.5G_0 \cdot \alpha = 0.5 即更新量,新 θ=0.5\theta = 0.5
提示
(b) r0(θ)=πθ(a0s0)/πθold(a0s0)r_0(\theta) = \pi_\theta(a_0 \mid s_0) / \pi_{\theta_{\text{old}}}(a_0 \mid s_0);分母在 θold=0\theta_{\text{old}} = 0 处是 1/21/2。当 πθ(a0s0)\pi_\theta(a_0 \mid s_0) 升至 0.60.6r0=1.2r_0 = 1.2,正好抵达 1+ϵ1 + \epsilon;再大梯度被钳为 00——这就是「PPO 不会一步走太远」的代数形式。

量化金融的两条主场景

​最优执行​​。CFFEX 上 沪深300 IF 大单切片改写为:状态 =(=(剩余时间, 剩余持仓, 中间价, 价差, 盘口不平衡, 已实现波动)),动作 == 子单数量,奖励 =(=-(冲击 ++ 价差)λ) - \lambda \cdot 持仓2+^2 + 终端清仓罚。Nevmyvaka-Feng-Kearns (2006) 的表格 Q 学习是基准;现代 私募(衍复 / 鸣石 / 九坤 / 幻方)以 PPO 训练小 MLP 在内部模拟器上跑,对标 Almgren-Chriss 与 TWAP / VWAP。

​深度对冲​​(Buehler et al. 2019 Deep Hedging)。把 SSE / SZSE / CFFEX 上 50ETF / 300ETF 期权的 德尔塔对冲 写成 MDP:状态 (St,t,(S_t, t, 对冲仓位, 期权头寸, 已实现波动)),动作是标的下一笔交易量,目标是最小化终端 P&L 的 条件在险价值——与 鞅 测度无关的相干风险度量。完备市场 + 零成本极限下策略收敛到 Black-Scholes-Merton 的 Δ\Delta;跳扩散 + 交易成本下学到的规则没有任何闭式希腊值可以捕捉。

四条实务质疑必须摆上台面:(i) 非平稳——2024 年市场不是 2014 年同一个 MDP;(ii) 仿真鸿沟——策略可能学到模拟器漏洞而非可部署的规则;(iii) 信噪比极低——金融奖励的 夏普比率 即使对好信号也难稳定 2\geq 2,你常要看着 最大回撤 爬升才能判断策略是否已坏;(iv) 监管验证——SR 11-7 与 Form ADV 下"涌现"行为难过复核,CN 语境对应 中基协 与 私募 自查对可解释性的隐性要求。

通向下一模块

到此 2.6.4 无监督学习与强化学习 四节合拢:聚类与密度估计、降维与表示学习、MDP + 贝尔曼方程、本节深度 RL(DQN 与 PPO 是 2024-2026 仍跑在 OpenAI / DeepMind / DeepSeek 与一线 私募 训练栈里的工具)。本模块刻意没碰生成模型、自监督表示、RLHF / DPO / GRPO、离线 RL——属后续 LLM 对齐模块。

下一模块 2.6.5 ML in Quant Finance 把本模块的无监督 + RL 与 2.6.1-3 的监督 + 神经网络方法整合,正面回答非平稳、仿真鸿沟、信噪比、合规验证四道关——「实验室跑得通的策略,如何在 SSE / SZSE / CFFEX 真实路由上活下来」。