强化学习基础:马尔可夫决策过程与贝尔曼方程
Hook:30 分钟,100 张 IF 主力合约
周三 14:30,你在一家中型私募负责股指期货 CTA 产品。组合调仓信号刚切换,系统要在收盘前 30 分钟里把 CFFEX 的 IF2406 主力合约(沪深300 股指期货)多头持仓从 100 张减到 0。一次甩出 100 张市价单,冲击成本(market impact)与价差(bid-ask spread)把执行价拖出不可接受的数字;一次挂 100 张限价单又留下严重的执行风险——盘口走开,你被甩在 30 分钟之外。可行做法是把母单拆成一串子单(child orders),每分钟根据当前剩余时间、剩余持仓与盘口状态做一次决策。
这件事和 2.6.1—2.6.3 的监督学习(supervised learning)主线截然不同。监督学习面对的是固定数据集 {(xi,yi)}∼P;这里你面对的是序贯决策(sequential decision-making)——每次下单的代价要在几秒甚至几分钟后才以市场冲击的形式回馈给你,而你要在所有 30 个决策时刻上联合优化累计成本。"在 P 上最小化期望损失"那套话已经盖不住它。这一课把它装进一套更通用的语言:马尔可夫决策过程(Markov decision process, MDP)与贝尔曼方程(Bellman equation)。Almgren-Chriss(2000)在线性—高斯假设下给过这道题的闭式解,但闭式解只是 MDP 在一个 LQR 特例上的投影,真正的通用工具是 MDP 本身。
MDP 五元组与折扣回报
把一个有限 MDP 写成五元组
(S,A,P,R,γ).
S 是状态空间(执行场景里 st=(剩余时间, 剩余持仓, 一档价差, 一档买卖盘深度)),A 是动作空间(如子单 {0,1,5,10} 张),P(s′∣s,a) 是马尔可夫转移核(下一状态在当前状态与动作下的条件分布),R(s,a) 是即时奖励(典型设计 −(冲击成本 + 价差)−λ⋅ 持仓2),折扣因子 γ∈[0,1) 把不同时刻的奖励折回当下。一个(平稳、马尔可夫的)策略(policy)π(a∣s) 是动作在状态下的条件分布;智能体的目标是最大化期望折扣回报(discounted return)
Gt=k=0∑∞γkRt+k+1.
γ<1 既保证无穷和收敛,也表达对"等大小的奖励发生越晚越不值钱"的偏好。P 的马尔可夫性——下一状态只依赖当前,不依赖到此为止的路径——是后面递推能闭合的根。
两个价值函数与贝尔曼期望方程
定义状态价值函数(state-value function)与动作价值函数(action-value function):从 s 出发跟随 π 的期望回报,以及从 s 上强制采取 a 一次再回到 π 的期望回报。
Vπ(s)=Eπ[Gt∣St=s],Qπ(s,a)=Eπ[Gt∣St=s,At=a].
这两个量本质都是 2.1.2 那一课里的条件期望(conditional expectation)。把 Gt=Rt+1+γGt+1 代入定义,先对 π(⋅∣s) 的首个动作取条件期望,再对 P(⋅∣s,a) 的下一状态取条件期望,运用塔性质(tower property),立刻得到贝尔曼期望方程(Bellman expectation equation):
Vπ(s)=a∑π(a∣s)[R(s,a)+γs′∑P(s′∣s,a)Vπ(s′)].
动作价值版本去掉首步的策略求和,在下一步再带回:
Qπ(s,a)=R(s,a)+γs′∑P(s′∣s,a)a′∑π(a′∣s′)Qπ(s′,a′).
这还不是算法,但是后面每一个算法都要用到的递推恒等式。
贝尔曼最优、压缩映射与 Banach 不动点
把最优价值函数定义为 V∗(s)=maxπVπ(s)、Q∗(s,a)=maxπQπ(s,a),把贪婪动作直接代回上面的期望方程,得贝尔曼最优方程(Bellman optimality equation):
V∗(s)=amax[R(s,a)+γs′∑P(s′∣s,a)V∗(s′)],
Q∗(s,a)=R(s,a)+γs′∑P(s′∣s,a)a′maxQ∗(s′,a′).
把上面两个右端记为算子 Tπ、T∗ 作用在 V:S→R 上。在上确界范数 ∥V∥∞=maxs∣V(s)∣ 下,Tπ 与 T∗ 都是 γ-压缩映射(γ-contraction);由 2.5.1 模块的 Banach 不动点定理,二者各有唯一不动点,正是 Vπ 与 V∗,从任何初值出发都以速率 γ 几何收敛。压缩活在 ∥⋅∥∞ 上,不在任何 Lp 范数上——这一点在函数逼近一接进来就要咬人。详细的初等 γ-Lipschitz 证明留给 Puterman 与 Szepesvári。
三种求解方法
价值迭代(value iteration):任意初始化 V0,迭代 Vk+1=T∗Vk 直到 ∥Vk+1−Vk∥∞ 落到容差以下,在极限上用贪婪规则提取策略 π∗(s)=argmaxa[R(s,a)+γ∑s′P(s′∣s,a)V∗(s′)]。每一次扫描代价 O(∣S∣2∣A∣)。
策略迭代(policy iteration):交替执行精确策略评估——一次性解线性方程 Vπk=(I−γPπk)−1Rπk,其中 Pπk 是 πk 下的 ∣S∣×∣S∣ 转移矩阵——与策略改进 πk+1(s)=argmaxaQπk(s,a)。Howard(1960)的策略改进定理保证单调改进并在有限 MDP 上有限步终止。
时序差分与 Q 学习(temporal difference & Q-learning):当 P、R 未知——交易所上的执行智能体正是这种情形——但你能观测到样本 (s,a,r,s′) 时,直接用样本替代期望:
Q(s,a)←Q(s,a)+α(TD 目标r+γa′maxQ(s′,a′)−Q(s,a)),
括号里就是 TD 误差(TD-error)。在每个 (s,a) 对充分探索(常用 ε-贪心实现)且 Robbins-Monro 步长 ∑tαt=∞、∑tαt2<∞ 的条件下,表格型 Q 学习几乎必然收敛到 Q∗(Watkins 1989;Watkins-Dayan 1992)。在不动点处,TD 误差序列是一族鞅(martingale)差分噪声——这正是随机逼近收敛证明背后的引擎。Q 学习是离策略(off-policy)的:它用 maxa′ 自举,而不是行为策略实际采到的 a′;SARSA 是同策略的孪生兄弟,直接用观测到的 a′。
Formula Explorer
r + gamma * (p * v_next + (1 - p) * v_alt)
量化里的两个落点与一句诚实话
最优执行——前面 IF2406 减仓即是。Almgren-Chriss(2000)在线性永久冲击与二次成本下给出连续时间闭式解,实质是 MDP 的 LQR 特例;Nevmyvaka-Feng-Kearns(2006)第一次用 Q 学习在 Nasdaq ITCH 数据上训练出可比 VWAP 基准的执行策略。私募(天演、九坤、鸣石、幻方、明汯、衍复)与卖方机构的 RL 大多落在执行层(智能路由、母单切片),不在 alpha 端。
动态 Delta 对冲——状态 (St,t,标的持仓),动作是本期成交多少股,奖励 =−(交易成本 +λ⋅ 已实现 P&L 方差)。Buehler 等(2019)"Deep Hedging" 是现代基准;算法属于策略梯度,留给下一课。CN 私募里做 50ETF / 300ETF 期权做市的团队普遍把对冲层接成一个 RL 子模块。
为什么表格型 RL 几乎不能直接落地:状态—动作通常是连续的,O(∣S∣2∣A∣) 扫描根本写不下;盘口和监管(交易所规则、CFFEX 规则修订)持续漂移,环境非平稳;可靠的市场模拟器极难搭建;金融奖励信号的信噪比比 Atari、围棋低一到两个数量级。这正是把 V、π 参数化为神经网络、跨进函数逼近世界的动因。
练习:三状态执行 MDP
Exercise
设一个三状态执行 MDP:S={full,half,empty} 表示剩余持仓,每个非终止状态两个动作——trade(成交一手)或 wait。从 full 上 trade 确定地转到 half,奖励 −1;从 half 上 trade 确定地转到 empty(终止),奖励 −1;wait 保持原状态,每步奖励 −0.5;empty 吸收,V∗(empty)=0。取 γ=0.9,V0≡0。
(i) 跑两次价值迭代扫描。报告 V1(half)、V2(half),以及第二轮后在 half 上的贪婪动作。
(ii) 给定样本转移 (s,a,r,s′)=(half,trade,−1,empty),步长 α=0.1,当前 Q(half,trade)=−0.5,算出更新后的 Q(half,trade)。
提示
先把贝尔曼最优更新写为
Vk+1(s)=maxa[R(s,a)+γVk(s′)];此处所有转移确定,内层求和退化为单项。
V0≡0 时第一轮就是
V1(s)=maxaR(s,a),在非终止态上代入第二轮即可。
提示
TD 目标是
r+γmaxa′Q(s′,a′)。
s′=empty 为终止态,
maxa′Q(empty,⋅)=0,目标退化为
r=−1;TD 误差
=−1−(−0.5)=−0.5;再代入
Q←Q+α⋅TD 误差。
通往下一课
到这里你能把一个 IF 减仓决策装进 MDP 五元组,写出贝尔曼期望方程与最优方程,并在小状态空间上跑出价值迭代或一步 Q 学习。下一课换装备:把 V、Q、π 都参数化为神经网络,你会看到 DQN 用经验回放与目标网络稳住"离策略 + 自举 + 函数逼近"的致命三角(deadly triad);REINFORCE 用打分函数技巧把 ∇θEπθ[G0] 写成可采样的期望;PPO 的截断目标如何在实际训练里把更新幅度压回安全区。量化落点会聚焦 Buehler 等的 Deep Hedging,并解释为什么 Sutton-Barto 的世界与 Almgren-Chriss 的世界在 2020 年之后才开始真正对话。