一句话定位
Value Prediction Network(VPN)学一个抽象状态转移函数,但训练目标不是重建未来观测,而是直接预测未来的 option-reward、option-discount 与 option-value——把”学到的模型”与”值函数逼近”焊进同一个网络里联合训练,再用该模型做前瞻树搜索来选动作、算 bootstrapped target。它是**价值等价模型(value-equivalent model)**这条谱系里最早把该思想接到”由动作驱动的抽象 MDP + 前瞻搜索”上的工作之一,直接启发了两年后的 muzero(MuZero 论文自陈 VPN 是其”最接近的前身”,但 VPN 缺 policy 预测、搜索只靠 value)。
背景与定位
2017 年前后,主流 model-based RL 走的是”观测预测模型”(observation-prediction model)路线:学一个网络重建/预测未来的像素观测(如 Oh et al. 2015 的 action-conditional video prediction、Video Pixel Networks),再基于重建出的观测做规划。论文指出这条路线在高维、随机环境下很难学准——环境里大量与决策无关的视觉细节(背景变化等)会被模型白白建模,且确定性网络在随机环境下容易退化为预测”平均未来观测”($E_x[x]$),而不是真正的期望值 $E_x[V(x)]$。
VPN 的出发点是一个反问:规划真正需要的只是对未来 reward/value 的预测,那能否跳过观测重建,直接在抽象状态空间里预测 reward、discount 和 value?论文把这一支路径与几条已有工作对照定位:
- 与 Dyna-Q(Sutton 1990 系)比较:Dyna-Q 也把 model-free 和 model-based 揉进一套架构,但它的模型独立学习环境动态、生成”想象样本”喂给 Q-learning;VPN 的转移模块与值函数共享一个网络,通过 reward/value 预测的反向传播间接学到抽象动态,且用前瞻树搜索选动作/算 target 而非生成虚拟样本。
- 与 Predictron(Silver et al. 2017)最接近、部分受其启发:Predictron 也用 RNN 在抽象状态上滚动预测 value,但只做策略评估(uncontrolled),每次 rollout 是纯抽象的;VPN 可视为”grounded 版 Predictron”——每次 rollout 对应环境里真实的 option 执行,且能学习最优策略(controlled)。
- 与 Value Iteration Networks(Tamar et al. 2016)比较:VIN 用 CNN 在全状态空间上近似值迭代/Bellman 更新,要求状态空间小且具有局部转移拓扑(如 2D 网格);VPN 没有这些限制,可扩展到 Atari 级别的高维视觉输入。
- 与 AlphaGo(Silver et al. 2016)的价值网络 + TD search(Silver et al. 2012)类比:VPN 在树搜索中用值函数逼近叶节点,训练算法可视为 TD search 的一个实例,区别是 VPN 自己学习动态而非拿到现成的模拟器。
范式名:value-equivalent model + TD search + n-step Q-learning(论文本身用 “value prediction model” 描述,后续文献将其归入 value-equivalent model 谱系)。这条支线后来被 muzero 系统化为 h/g/f 三函数框架,并补上了策略预测与 MCTS。
模型架构
VPN 定义在带 option 的(半)马尔可夫决策过程(SMDP)上,由四个共享参数 $\theta={\theta_{enc},\theta_{value},\theta_{trans},\theta_{out}}$ 的模块组成:
- Encoding $f_{\theta_{enc}}: x \mapsto s$ — CNN 把观测编码为抽象状态 $s\in\mathbb{R}^m$($s$ 是网络自己学出来的表征,不是环境状态或其近似)。
- Value $f_{\theta_{value}}: s \mapsto V_\theta(s)$ — 只依赖抽象状态、不依赖原始观测,估计该抽象状态的价值。
- Outcome $f_{\theta_{out}}: s,o \mapsto r,\gamma$ — 预测执行 option $o$ 得到的 option-reward($k$ 步内在累积折扣奖励标量)与 option-discount。
- Transition $f_{\theta_{trans}}: s,o \mapsto s’$ — option 条件的抽象状态转移函数。
一步合成得到 core module $f_{\theta_{core}}: s,o \mapsto r,\gamma,V_\theta(s’),s’$,从而 $Q_\theta(s,o)=r+\gamma V_\theta(s’)$;递归展开 core module 即可在抽象空间里做多步 rollout(不重建任何观测)。
规划算法(Algorithm 1,两阶段:expansion + backup):给定深度 $d$,先按当前 1-step Q 值挑选 $b$ 个候选 option 递归展开到深度 $d$(expansion),再自底向上做加权平均: $$V_\theta^d(s) = \frac{1}{d}V_\theta(s) + \frac{d-1}{d}\max_o Q_\theta^{d-1}(s,o)$$ 即对 $d$ 个沿最佳 option 序列的期望回报做均匀平均。分支因子 $b$ 在深度 ≤3 时设为 4(模拟 4-best options),深度 >3 后设为 1(只走最优 option,类似 MCTS 里深度之外用默认策略)。
训练目标(k-step prediction loss,公式见论文 §3.3):给定长度 $n$ 的轨迹,对每个时间步定义 $k$-step 预测 $s_t^k, v_t^k, r_t^k, \gamma_t^k$,损失为 $$L_t=\sum_{l=1}^{k}\Big[(R_t-v_t^l)^2+(r_t-r_t^l)^2+(\log_\gamma\gamma_t-\log_\gamma\gamma_t^l)^2\Big]$$ 其中 $R_t$ 是 n-step Q-learning 目标($t\le n$ 时为 $r_t+\gamma_t R_{t+1}$,$t=n+1$ 时为 $d$-step 规划算出的 $\max_o Q_\theta^d(s_{n+1},o)$)。对 discount 用 $\log_\gamma$ 而非原始值,让损失等价于对”步数”做平方误差,有助优化。
配置数字(论文附录 E):
- Collect 域:encoding = Conv(32-3x3-1)-Conv(32-3x3-1)-Conv(64-4x4-2);transition = OptionConv(64-3x3-1)-Conv(64-3x3-1)-Conv(64-3x3-1) + 独立 Conv(64-1x1-1) 生成 sigmoid mask,乘到第 3 层卷积输出上(transition 有残差连接,学”状态变化量”而非状态本身);outcome = OptionConv(64-3x3-1)-Conv(64-3x3-1)-FC(64)-FC(2);value = FC(64)-FC(1);激活函数全用 ELU。
- Atari:encoding = Conv(16-8x8-4)-Conv(32-4x4-2);transition = OptionConv(32-3x3-1)-Conv(32-3x3-1)(同样带 mask + 残差);outcome = OptionConv(32-3x3-1)-Conv(32-3x3-1)-FC(128)-FC(1);value = FC(128)-FC(1)。
- DQN baseline 为对齐参数量,把 value 模块隐层数翻倍(Collect 用 256,Atari 用 256)。
- 超参数记号:训练时预测步数 $k$、训练规划深度 $d_{train}$、评估规划深度 $d_{test}$、分支因子 $b$;实验默认 $k=d_{train}=d_{test}$,记为 VPN($d$)。
数据
本文两组实验均为在线策略采集,无离线大规模数据集:
- Collect 域(自建 2D 导航任务):智能体、目标、墙壁每回合随机生成;观测为 $3\times10\times10$ 的二值 3D 张量(三个物体类型 one-hot 通道),剩余时间归一化到 $[0,1]$ 后作为通道拼进第 3 层卷积;每回合 20 步,收集目标得 +2.0,每步时间惩罚 −0.2。同时构造随机版环境(每个目标每步以 0.3 概率随机移动一格;每个 option 以 0.3 概率被重复执行)测试鲁棒性。
- 训练 outcome 模块时额外用 100 万条($R=10^6$)随机策略 rollout 填充一个独立 replay memory,从中采样样本单独训练 reward/discount 预测,减少对 agent 自身行为分布的偏置——此技巧仅用于 Collect 域,未用于 Atari(附录 D)。
- Atari:来自 Arcade Learning Environment 的 9 款游戏(Frostbite/Seaquest/Enduro/Alien/Q*bert/Ms. Pacman/Amidar/Krull/Crazy Climber),屏幕预处理为 84×84 灰度图,输入取最近 4 帧;本文用 frame-skip=10(多数既往 Atari 工作用 4),把每个 option 定义为”重复同一原始动作”,VPN 训练做 3-option-step 预测,即在真实时间尺度上向前预测约 0.5 秒。数据全部由异步 rollout 在线生成,无 sim-to-real 或跨域混合数据。
训练方法
- 基础算法是异步 n-step Q-learning(Mnih et al. 2016,A3C 同源),$n=10$,16 个并行线程;目标网络 $\theta^-$ 每 10K 步与在线网络同步一次。
- 用 -greedy 策略结合前述 $d$-step 规划算法生成轨迹(regarding 论文 Algorithm 2):每步用规划算出的 $Q^d_\theta$ 选 option 或以 $\epsilon$ 概率随机探索;$\epsilon$ 从 1 线性衰减到 0.05,在头 100 万步内完成。
- 优化器 Adam,学习率与衰减率各自网格搜索:学习率 $\in{0.0001,0.0002,0.0005,0.001}$,衰减 $\in{0.98,0.95,0.9,0.8}$,每 100 万步乘一次衰减。
- 折扣因子:Collect 域 0.98,Atari 0.99。
- 消融基线:VPN(1)(等价于把 Q 值分解成 reward+discount+next-state-value 的 1 步版 DQN 变体);OPN($d$)(Observation Prediction Network,架构与 VPN 相同但直接预测下一帧观测而非 value,训练用观测重建的平方误差损失,同样支持 $d$-step 规划做对照)。
- 论文明确指出:由于 VPN 不学习预测观测,评估时用比训练更深的规划深度($d_{test}>d_{train}$)没有理论保证收益,但实证发现只要 $k=d_{train}>2$,加深 $d_{test}$ 反而能进一步提升性能(Fig.7;额外训练了 $k=10,d_{train}=5$ 的 “VPN(5)*“,评估时 $d_{test}=10$ 效果最好)。
Infra(训练 / 推理工程)
- 硬件规模未披露(论文与代码库均未给出 GPU 型号/数量或机器规格);实现基于 TensorFlow,代码基于 OpenAI 的 A3C 风格 universe-starter-agent 改造,用 16 个异步线程做 n-step Q-learning(CPU 多线程并行 rollout + 参数异步更新的 A3C 范式,而非 GPU 数据并行)。
- GitHub 仓库(
junhyukoh/value-prediction-network)README 注明代码支持多 GPU 训练(--gpu参数可传多个 GPU ID),但未给出实际使用的 GPU 数量或算力预算。 - 训练/推理 FPS、控制频率(Hz)、单步延迟等未披露具体数字;Atari 实验里 planning 深度固定在 3(对应真实时间约 0.5 秒前瞻),是论文里唯一给出的”前瞻时间尺度”量化描述。
评测 benchmark
Collect 域(Table 1,泛化性测试,含 95% 置信区间下的最优加粗):
| 方法 | 确定性-Original | 确定性-FGs(少目标) | 确定性-MWs(多墙) | 随机性-Original | 随机性-FGs | 随机性-MWs |
|---|---|---|---|---|---|---|
| Greedy | 8.61 | 5.13 | 7.79 | 7.58 | 4.48 | 7.04 |
| Shortest-path | 9.71 | 5.82 | 8.98 | 7.64 | 4.36 | 7.22 |
| DQN | 8.66 | 4.57 | 7.08 | 7.85 | 4.11 | 6.72 |
| VPN(1) | 8.94 | 4.92 | 7.64 | 7.84 | 4.27 | 7.15 |
| OPN(5) | 9.30 | 5.45 | 8.36 | 7.55 | 4.09 | 6.79 |
| VPN(5) | 9.29 | 5.43 | 8.31 | 8.11 | 4.45 | 7.46 |
VPN(5) 在随机环境的全部三个测试集(原始/少目标/多墙)上都是最优,在确定性环境下与 OPN(5) 相当;DQN/VPN(1) 等 model-free 基线在未见环境上明显弱于 greedy 算法,而 VPN 保持接近 model-based 方法的泛化能力。论文另指出:随机环境中 OPN 因确定性网络会退化为预测”平均未来观测”,导致 $V_\theta(E_x[x]) \ne E_x[V(x)]$,这是 VPN 显著优于 OPN 的关键原因。
Atari(Table 2,9 款游戏,5 个 top agent 平均分,frame-skip=10):
| 游戏 | DQN | VPN |
|---|---|---|
| Frostbite | 3058 | 3811 |
| Seaquest | 2951 | 5628 |
| Enduro | 326 | 382 |
| Alien | 1804 | 1429 |
| Q*bert | 12592 | 14517 |
| Ms. Pacman | 2804 | 2689 |
| Amidar | 535 | 641 |
| Krull | 12438 | 15930 |
| Crazy Climber | 41658 | 54119 |
VPN 在 9 款中的 7 款上超过 DQN(Alien、Ms. Pacman 上 DQN 略胜),且在 Seaquest、Q*bert、Krull、Crazy Climber 上学习速度明显更快(Fig.8 学习曲线)。
Effect of Planning Depth(Fig.7):固定训练时的预测步数/规划深度后,改变评估时的规划深度 $d_{test}$(1→10),发现只要训练时 $k=d_{train}>2$,测试时用更深的规划($d_{test}>d_{train}$)性能进一步提升;反之 $d_{test}=1$ 时的表现随 $d_{train}$ 增大而下降,说明 VPN 用长期规划换取的价值估计质量是以牺牲短期(1 步)规划质量为代价的。
创新点与影响
- 首次把”预测未来 value/reward 而非观测”这一价值等价模型思想,接到由动作驱动、可做前瞻树搜索的抽象 MDP 上,并给出统一的训练算法(TD search + n-step Q-learning 的混合)。
- 模型与值函数共享一个网络、通过 reward/value 预测的梯度间接学抽象动态,区别于 Dyna-Q 式”独立学一个环境模型”的路线;同时用规划算出的 target 反过来加速/稳定 Q-learning 本身的收敛。
- 实证证明:在随机环境中,观测预测模型(OPN)的确定性重建会退化为”预测平均观测”,值估计因此出现系统性偏差;VPN 的抽象状态不受此约束,鲁棒性显著更好。
- 作者自陈的局限 / 未来方向:论文只用手工设计的固定 option(Atari 里就是重复同一动作 $k$ 步),并明确把”自动学习适合 VPN 规划的 option”列为有趣的未来方向;论文规划算法是简单的均匀加权 rollout,未使用 UCT 等更精细的探索-利用平衡机制(作者提到 UCT 也可用但未实现)。
- 历史地位:MuZero(2019)论文将 VPN 明确列为其”最接近的前身”——两者都学习 grounded-in-action 的抽象 MDP 动态并做前瞻搜索,区别在于 VPN 的搜索只依赖 value(无 policy 预测/无 MCTS),MuZero 补上了策略头和完整 MCTS,并把方法从 Atari 扩展到围棋/国际象棋/将棋等双人博弈领域。
原始链接
- arXiv abs:https://arxiv.org/abs/1707.03497 (v2, 2017-11-06;NIPS 2017 会议版)
- arXiv PDF:https://arxiv.org/pdf/1707.03497
- 官方代码仓库(TensorFlow):https://github.com/junhyukoh/value-prediction-network
一手源存档(sources/)
- value-prediction-network—github-readme — 官方 GitHub 仓库 README 快照(依赖、训练命令、多 GPU 说明)
- arXiv 原文 PDF(
https://arxiv.org/pdf/1707.03497,arXiv 原文 PDF,不入 git)