# Ape-X  DQfD

> [Observe and Look Further: Achieving Consistent Performance on Atari](https://arxiv.org/pdf/1805.11593.pdf)

尽管深度强化学习（RL）领域取得了重大进展，但今天的算法仍然无法在Atari 2600游戏等一系列多项任务中持续学习人类级别的策略。我们确定了任何算法都需要掌握的三个关键挑战，才能在所有游戏中表现出色:处理各种奖励分配、长期推理和高效探索。在这篇文章中，我们提出了一个算法来解决每一个挑战，并且能够学习几乎所有雅达利游戏中的人类层面的策略。一个新的transformed Bellman算子允许我们的算法处理不同密度和尺度的奖励; 辅助时间一致性损失使我们能够使用 $$\gamma$$ = 0.999（而不是 $$\gamma$$ = 0.99）的贴现因子稳定地训练，将有效规划的范围扩大一个数量级;我们通过使用人类演示来引导代理人奖励状态，从而缓解探索问题。

## 方法

### Transformed Bellman Operator

$$
(\mathcal{T} Q)(x, a) :=\mathbb{E}\_{x^{\prime} \sim P(\cdot | x, a)}\left\[R(x, a)+\gamma \max \_{a^{\prime} \in \mathcal{A}} Q\left(x^{\prime}, a^{\prime}\right)\right], \quad \forall(x, a) \in \mathcal{X} \times \mathcal{A}
$$

在深度强化学习中，如果 $$\mathcal{T} f\_{\theta^{(k-1)}} )(x, a)$$ 的方差太大，容易使训练不稳定而无法收敛，一种方法是截断回报的分布于区间 $$\[-1,1]$$ 。不过，我们建议将重点放在行动价值函数上，而不是减少奖励的幅度，我们使用一个函数: $$R→R$$ 来缩小动作值函数的范围。

$$
\left(\mathcal{T}*{h} Q\right)(x, a) :=\mathbb{E}*{x^{\prime} \sim P(\cdot | x, a)}\left\[h\left(R(x, a)+\gamma \max \_{a^{\prime} \in \mathcal{A}} h^{-1}\left(Q\left(x^{\prime}, a^{\prime}\right)\right)\right)\right], \quad \forall(x, a) \in \mathcal{X} \times \mathcal{A}
$$

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-Lb0i2HAnM5N_YCtjAD8%2F-Lb0lfThGsIeF7rV5KlX%2Fimage.png?alt=media\&token=83a3ecd8-dbe6-4269-90cc-c4f98c77ff85)

上述定理说明了新的Q函数的收敛性，我们的算法中使用 $$h : z \mapsto \operatorname{sign}(z)(\sqrt{|z|+1}-1)+\varepsilon z \text { with } \varepsilon=10^{-2}$$ 。

新的损失函数可写为：

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-Lb0i2HAnM5N_YCtjAD8%2F-Lb0m--biNpO5XvDhOGE%2Fimage.png?alt=media\&token=862c1f74-6ecc-411e-9d1b-89330e045105)

### Temporal consistency (TC) loss

虽然变换后的贝尔曼算子提供了目标尺度和方差的缩减，但是当折扣因子γ接近1时，不稳定性仍然会发生。增加折扣系数会减少非奖励状态之间的时间价值差异。特别地，神经网络 $$f\_{\theta}$$ 到下一个状态 $$x'$$ 的不希望的泛化（由于时间上相邻的目标值的相似性）可能导致灾难性的TD backup。我们通过添加表单的辅助时间一致性（TC）损失来解决问题：

$$
L\_{\mathrm{TC}}\left(\theta ;\left(t\_{i}\right)*{i=1}^{N},\left(p*{i}\right)*{i=1}^{N}, \theta^{(k-1)}\right) :=\sum*{i=1}^{N} p\_{i} \mathcal{L}\left(f\_{\theta}\left(x\_{i}^{\prime}, a\_{i}^{\prime}\right)-f\_{\theta^{(k-1)}}\left(x\_{i}^{\prime}, a\_{i}^{\prime}\right)\right)
$$

TC损失惩罚改变下一个动作值估计 $$f\_{\theta}\left(x^{\prime}, a^{\prime}\right)$$ 的权重更新。。这确保了更新后的估计值符合操作要求，从而随着时间的推移保持一致。

### Ape-X DQfD

在本节中，我们将描述如何将变换后的Bellman算子和TC损失与DQfD算法和分布式优先级经验重放相结合。整体的架构和Ape-X类似，不过引入了额外的损失函数。

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LasjYBGW086kebgFdoi%2F-LasvC1yA_ctbnVnsper%2Fimage.png?alt=media\&token=58dd6e16-de13-4a60-b8f0-4e24ad140c0f)

#### Leaner Process

用于模仿演示学习的监督损失为（DQfD）：

$$
L\_{\mathrm{IM}}\left(\theta ;\left(t\_{i}\right)*{i=1}^{N},\left(p*{i}\right)*{i=1}^{N}, \theta^{(k-1)}\right) :=\sum*{i=1}^{N} p\_{i} e\_{i}\left(\max *{a \in \mathcal{A}}\left\[f*{\theta}\left(x\_{i}, a\right)+\lambda \delta\_{a \neq a\_{i}}\right]-f\_{\theta}\left(x\_{i}, a\_{i}\right)\right)
$$

总的损失函数为：

$$
L\left(\theta ;\left(t\_{i}\right)*{i=1}^{N},\left(p*{i}\right)*{i=1}^{N}, \theta^{(k-1)}\right) :=\left(L*{\mathrm{TD}}+L\_{\mathrm{TC}}+L\_{\mathrm{IM}}\right)\left(\theta ;\left(t\_{i}\right)*{i=1}^{N},\left(p*{i}\right)\_{i=1}^{N}, \theta^{(k-1)}\right)
$$

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LasjYBGW086kebgFdoi%2F-LasvHx_FfsqwWS7tVac%2Fimage.png?alt=media\&token=c57084da-2e6f-4d46-b275-1ec449568a35)

## 测试

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-Lb0i2HAnM5N_YCtjAD8%2F-Lb0o9ZQiFmchabUb6oQ%2Fimage.png?alt=media\&token=19c1bea5-3d92-4792-9351-61fa719626ef)
