优先经验回放(Prioritized Experience Replay, PER)是一种用于强化学习的技术,旨在改进智能体从过去经验中学习的方式。在标准的经验回放中,智能体将其交互数据(如状态、动作、奖励和下一个状态)存储在记忆缓冲区中,并在训练期间随机采样。PER 对此进行了修改,为每个经验分配一个优先级,确保更“重要”的经验被更频繁地采样。优先级通常基于时间差分(Temporal Difference, TD)误差——预测的 Q 值与目标 Q 值之间的差异。TD 误差较大的经验被认为更有价值,因为它们代表了智能体预测不太准确的情况,表明有加快学习的机会。这种优先级划分有助于智能体专注于较少预测或更具影响力的事件,从而加速训练。
实现 PER 需要平衡效率和计算开销。优先级通常使用二叉堆或和树(sum-tree)数据结构来管理,以便快速检索高优先级经验。两种常见的优先级策略是比例式(优先级与 TD 误差成正比)和基于排名式(优先级取决于误差在缓冲区中的排名)。然而,优先采样某些经验会引入偏差,因为频繁采样的数据点可能会主导训练。为了减轻这种偏差,PER 在梯度更新期间使用重要性采样(Importance Sampling, IS)权重。这些权重根据每个样本被选取的可能性来调整其影响,确保即使采样不均匀,智能体的更新仍然是无偏的。例如,一个优先级较低、很少被采样的经验会获得更高的 IS 权重进行补偿。
PER 有效性的一个实际例子是在训练游戏 AI 智能体时,例如 Atari 游戏智能体。在像《Pong》或《Breakout》这样的游戏中,关键时刻(例如,失去一条生命或得分)虽然发生频率不高,但影响很大。通过优先考虑这些事件,PER 帮助智能体比随机采样更快地学习避免错误或复制成功的策略。然而,PER 会增加计算复杂度,因为它需要维护优先级值并重新计算 IS 权重。开发者还必须调整超参数,如优先级指数(控制偏向高优先级样本的程度)和 IS 权重调整率。尽管存在这些权衡,PER 在 DeepMind 的 Rainbow DQN 等框架中被广泛采用,与标准经验回放相比,它在样本效率和最终性能方面展现出显著的改进。