# 经验回放为什么有效：相关样本与灾难性遗忘演示

> 来源：https://dqn.cn/tools/experience-replay ｜ 作者：DQN.CN 编辑部 ｜ 发布：2026-11-01 ｜ 更新：2026-11-01 ｜ 许可：CC BY-NC-SA 4.0（文字）/ MIT（代码）

> （此处为交互工具，请在网页中使用：https://dqn.cn/tools/experience-replay）

## 演示在做什么

强化学习的数据来自智能体自己的轨迹：相邻时刻的状态非常相似，而且一段时间内只覆盖状态空间的一小块。这里用一个一维回归问题模拟这种情况：输入 $x$ 沿着轨迹在 $[0,1]$ 上来回慢慢移动，网络（1→24→1 的 tanh MLP，Adam 优化）要拟合目标函数。

- **无回放**：每一步用最近 32 个连续样本训练——数据高度相关，梯度只关心当前区域，网络会“覆盖掉”对远处区域的拟合（灾难性遗忘）。
- **经验回放**：把样本存进容量为 $N$ 的先进先出缓冲区，每一步从中均匀随机抽 32 个——批次近似独立同分布，网络能同时兼顾整个区间。

DQN 里还有第二个原因：回放让每个样本被重复使用多次，提高了样本效率。

## 可以试试

- 开始训练后观察红色曲线：竖线扫到哪里，哪里就拟合得好，刚离开的区域很快变形；误差曲线随轨迹来回周期性起伏。
- 把缓冲区容量调到 32 或 64：经验回放也开始遗忘。容量至少要覆盖一整趟轨迹才有效。
- 把“来回一趟的步数”调大：数据相关性更强，无回放的遗忘更严重。

## 相关教程

- [DQN](https://dqn.cn/advanced/dqn)
- [DQN 改进（PER）](https://dqn.cn/advanced/dqn-improvements)
- [全部交互工具](https://dqn.cn/tools/)
