策略梯度与深度强化学习
开篇场景:表格放不下的盘口
周三盘后,上海一家头部 私募 的初级量化把成果摊给组长:CFFEX 上 沪深300 股指期货 日内大单切片,建成 144 个离散状态的 MDP,跑通了表格 Q 学习,比 TWAP 省了约 2bp 的 实施差额(implementation shortfall)。组长翻两页就皱眉:「线上要吃 5 档盘口 + 不平衡 + 已实现波动 约 500 维特征,持仓连续——表存得下吗?昨天有人把表换成 3 层 MLP,训练曲线先涨后崩。」
把表格 Q(s,a) 换成参数化 Qw(s,a) 或参数化策略 πθ(a∣s) 是必然选择;为什么换上网络就崩、又如何稳住,是 深度强化学习 的核心工程问题。Sutton & Barto 第 11 章把 off-policy、自举、函数逼近 三件事同时出现命名为 致命三元组(deadly triad):
(a)off-policy+(b)bootstrapping+(c)function approximation⇒convergence
Tsitsiklis & Van Roy (1997) 给出理论刻画,Baird (1995) 的反例 MDP 是经典实证。监督学习里的 IID 与"固定目标"两根支柱在深度 RL 同时失效——样本来自当前策略,目标依赖正在被优化的参数。下面沿价值法(DQN)与策略法(REINFORCE → 演员-评论家 → PPO)两条主线给出工程稳化手段。
价值法:DQN
Mnih 等 (2015, Nature 518:529-533) 用深度卷积网 Qw(s,a) 参数化动作价值,仅靠像素与得分在 49 款 Atari 游戏达到人类水平。两件武器把三元组压住:
- 经验回放:维护固定容量的回放缓冲 D,存放 (s,a,r,s′);每步从 D 独立抽 minibatch 训练,恢复近似 IID 结构、打断相邻时刻相关性。
- 目标网络:另存一份慢更新副本 Qw−,每 k 步把 w 同步过去;TD 目标用 Qw− 而非 Qw,避免"自己追自己尾巴"的发散。
DQN 的训练损失:
L(w)=E(s,a,r,s′)∼D[(r+γa′maxQw−(s′,a′)−Qw(s,a))2]
已知局限——过估计偏差(Hasselt 2010 → double DQN)、优先回放、C51 / Rainbow(Hessel et al. 2018)——仅作一行指针。
策略梯度:从 REINFORCE 到演员-评论家
直接把策略参数化为 πθ(a∣s),对期望回报 J(θ)=Eτ∼πθ[G(τ)] 做梯度上升。两步推导:(i) 把梯度搬进期望,应用对数技巧 ∇θp=p⋅∇θlogp;(ii) 用马尔可夫分解 p(τ∣θ)=μ(s0)∏tπθ(at∣st)P(st+1∣st,at),转移核与 θ 无关、对数微分后消失。Williams (1992) 的 REINFORCE 与 Sutton et al. (2000) 一般定理由此给出:
∇θJ(θ)=Eτ∼πθ[t=0∑T评分函数∇θlogπθ(at∣st)Gt]
这是一个蒙特卡洛估计,方差随轨迹长度 T 增长。基线技巧允许从 Gt 中减去任何只依赖状态的 b(st) 而不引入偏差——评分函数 在 πθ 下的 条件期望(conditional expectation)为零——同时显著降方差。把基线选成评论家网络 Vϕ(s),用一步 TD 误差作为优势函数的样本估计:
At=rt+γVϕ(st+1)−Vϕ(st)
评论家用均方 TD 损失训练,演员沿 ∇θlogπθ(at∣st)⋅At 上升。Schulman et al. (2016) 的 广义优势估计(GAE)以 λ 加权 TD 进一步降方差,此处仅作指针。
PPO:裁剪代理目标
朴素策略梯度有一个工程灾难:单步走得稍大,新策略就把概率质量赋给旧策略几乎从未抽到的动作,在策略假设瞬间破产。TRPO (2015) 用 KL 散度约束步长;PPO (Schulman et al. 2017, arXiv 1707.06347) 把约束换成更便宜的裁剪。定义概率比 rt(θ)=πθ(at∣st)/πθold(at∣st),PPO 的代理目标:
LCLIP(θ)=Et[min(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)]
ϵ 典型取 0.1 或 0.2。At>0 且新策略已加重 at 时,裁剪封顶进一步推高的诱因;At<0 且新策略已压低 at 时,裁剪同样封顶惩罚——「一步走得太远不会再换来收益」的代数形状。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 连续动作的生态位,仅作指针。探索方面:价值法常用 ϵ-贪婪或 玻尔兹曼探索;策略梯度则在目标里加熵正则 β⋅H(πθ(⋅∣s)),避免过早收敛到次优峰。
Formula Explorer
min(r * A, max(0.8, min(1.2, r)) * A)
把 A 在 ±1 之间拖动,能直接看到 PPO 在 rt(θ)∈[0.8,1.2] 外把斜率拍平——这就是裁剪保护信任域的几何形状。
手算练习
Exercise
2 状态 2 动作的 toy MDP,softmax 策略 πθ(a∣s)=softmax(θ⋅ϕ(s,a)),仅含标量参数 θ,特征 ϕ(s0,a0)=1、ϕ(s0,a1)=−1。当前 θold=0。采样轨迹 s0→a0→r=1→end,取 γ=1、G0=1、A0=1。
(a) 计算 评分函数 ∇θlogπθ(a0∣s0)θ=0,并写出 REINFORCE 在 α=0.5 下一次更新后 θ 的新值。
(b) 在同一条轨迹上做 PPO 更新,ϵ=0.2。手算 r0(θ) 与 θ 的关系,指出从 θold=0 出发 θ 增大到何值时裁剪开始生效;与 (a) 的纯 REINFORCE 步长作对比。
提示
θ=0 时 softmax 两类对称,
πθ(a0∣s0)=1/2。评分函数
=ϕ(s0,a0)−Ea[ϕ(s0,a)∣s0]=1−0=1。乘以
G0⋅α=0.5 即更新量,新
θ=0.5。
提示
(b)
r0(θ)=πθ(a0∣s0)/πθold(a0∣s0);分母在
θold=0 处是
1/2。当
πθ(a0∣s0) 升至
0.6 时
r0=1.2,正好抵达
1+ϵ;再大梯度被钳为
0——这就是「PPO 不会一步走太远」的代数形式。
量化金融的两条主场景
最优执行。CFFEX 上 沪深300 IF 大单切片改写为:状态 =(剩余时间, 剩余持仓, 中间价, 价差, 盘口不平衡, 已实现波动),动作 = 子单数量,奖励 =−(冲击 + 价差)−λ⋅ 持仓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, 对冲仓位, 期权头寸, 已实现波动),动作是标的下一笔交易量,目标是最小化终端 P&L 的 条件在险价值——与 鞅 测度无关的相干风险度量。完备市场 + 零成本极限下策略收敛到 Black-Scholes-Merton 的 Δ;跳扩散 + 交易成本下学到的规则没有任何闭式希腊值可以捕捉。
四条实务质疑必须摆上台面:(i) 非平稳——2024 年市场不是 2014 年同一个 MDP;(ii) 仿真鸿沟——策略可能学到模拟器漏洞而非可部署的规则;(iii) 信噪比极低——金融奖励的 夏普比率 即使对好信号也难稳定 ≥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 真实路由上活下来」。