← 上级:RL-05.专属数据结构 · 算法:RL-03-07-算法-DQN变体
PER 按 TD 误差 $|\delta|$ 优先采样「学得差」的 transition,提升样本效率。
一、优先级
$$
p_i = (|\delta_i| + \epsilon)^\alpha, \quad P(i) = \frac{p_i}{\sum_j p_j}
$$
| 超参 | 典型 |
|---|---|
| $\alpha$ | 0.6(0=均匀,1=完全优先) |
| $\epsilon$ | 1e-6 防零 |
二、重要性采样权重
$$
w_i = \left( N \cdot P(i) \right)^{-\beta}, \quad \text{归一化 } w_i \leftarrow \frac{w_i}{\max_j w_j}
$$
$\beta$ 从 0.4 退火到 1.0。损失:
$$
L = \mathbb{E}[ w_i \cdot \delta_i^2 ]
$$
三、SumTree 结构
二叉树叶子存 priority,父节点 = 子节点和,$O(\log N)$ 采样与更新。
1 | class SumTree: |
工程可用开源 PER Buffer 或 SB3 内置。
四、流程
sample按 SumTree 抽 index + 算 $w_i$- 算 TD loss 加权
- 用 $|\delta|+\epsilon$ 更新该 index 优先级
五、小结
- PER = 优先级队列 + IS 权重。
- 下一篇:Rollout Buffer