强化学习志在通过奖励函数使算法能自主学习解决复杂序列决策问题,但在许多实际问题中奖励函数的设计非常困难。过于稀疏的奖励使智能体难以探索到有效路径、学不到东西,人为塑造较为密集的奖励又可能误导智能体、学到违背初衷的东西。所以需要能更好应对奖励的稀疏性(sparsity)和误导性(deception)的办法。
论文没有探讨奖励函数的设计,而是着眼于如何进行有效探索,因为论文认为对状态空间充足的探索能够发现稀疏的奖励并避开具有误导性的局部最优。为了应对阻碍有效探索的两个问题detachment(算法忘记了如何到达之前访问过的状态)和derailment(算法在从一个状态开始探索前没有先回到这个状态),论文提出Go-Explore系列算法(使用simulator的探索、不使用simulator的policy-based探索),核心思想是记住高价值的状态并在进行可能的探索之前先回到这些状态。算法在Atari games和机械臂任务上表现优越,"remember states, return to them, and explore from them"这个简单的法则或许是创造通用学习智能体的一个关键。
Go-Explore解决detachment和derailment的措施:
1. 用一个archive保存访问过的状态。初始时archive中只有初始状态,之后迭代地进行依据概率从archive中选取状态、回到这个状态、从这个状态开始探索、用遇到的新状态更新archive。
2.过去的RL算法没有区分returning和exploring,而是把二者混在一起,例如在时间片加入随机动作、从随机策略中采样。Go-Explore通过先return再explore避免了derailment。