DeepMind提出比DQN更优的算法DQfD:可以从真实世界演示中进行强化学习

2013 年,DeepMind 在 NIPS 发表的论文提出了深度 Q 网络(DQN,Deep Q-Network),实现了完全从纯图像输入来学习来玩 Atari 游戏的成果。之后其又在 Nature 上发文介绍了改进版的 DQN,引起了广泛的关注,将深度强化学习推到了深度学习的热门研究前沿。近日,DeepMind 再次发文介绍了一种名叫「学习演示的深度 Q 学习(DQfD:Deep Q-learning from Demonstrations)」的更强大的算法,其表现水平和学习速度都优于之前的 DQN,重点介绍了该算法的原理和部分结果。


640-23.jpeg


深度强化学习(RL)在困难的控制问题上已经实现了一些众人瞩目的成功。但是,这些算法通常需要海量的数据才能达到合理的表现水平。实际上,它们在学习过程中的表现非常糟糕。对于模拟器来说,这可能还能接受,但这严重地限制了深度强化学习在许多真实世界任务上的应用——在真实世界任务中,智能体(agent)必须要在真实环境中学习。在这篇论文中,我们研究了一种智能体可以从系统之前的控制中获取数据的设置方法。我们提出了一种名叫「学习演示的深度 Q 学习(DQfD:Deep Q-learning from Demonstrations)」的算法,该算法可以利用这种数据来实现学习过程的大幅提速,即使只有相对较少的演示数据也可以。DQfD 的工作方式是将时间差分更新(temporal difference update)和演示者(demonstrator)的动作的大边际分类(large-margin classification)结合起来。我们表明 DQfD 在 42 种 Atari 游戏中的 40 种上都有比深度 Q 网络(DQN)更好的初始表现,而且其在这 42 种 Atari 游戏中的 27 种上都得到了更优的平均奖励。我们还表明即使给出的演示数据很差,DQfD 也能学得比 DQN 更快。


3 学习演示的深度 Q 学习(DQfD:Deep Q-learning from Demonstrations)


在许多真实世界的强化学习设置中,我们可以获取其之前的控制者操作该系统的数据,但我们无法获得一个该系统的准确模拟器。因此,在一个智能体被应用到真实系统之前,我们想要智能体能尽可能地从演示数据中学习。这个预训练阶段的目标是学习使用一个价值函数(value function)来模拟该演示者(demonstrator),该价值函数满足贝尔曼方程(Bellman equation),因此当该智能体开始与其环境交互时,其就可以通过时间差分(TD:temporal difference)更新的方式被更新。在这个预训练阶段,该智能体会从演示数据中采样 mini-batch,并通过应用三种损失来更新该网络,它们分别是:双重 Q 学习损失(double Q-learning loss)、监督式大边际分类损失(supervised large margin classification loss)和在网络的权重和偏置上的 L2 正则化损失(L2 regularization loss)。其中监督式损失被用于对该演示者的动作的分类,而 Q 学习损失能确保该网络满足贝尔曼方程,且可被用作是 TD 学习的起点。


要让这样的预训练有效,该监督式损失是至关重要的。因为演示数据必然仅覆盖了一小部分状态空间(state space),没有涵盖所有的可能动作,所以许多「状态-动作」不会被包含进来,也没有数据将它们落实到真实的值上。如果我们打算仅使用 Q 学习更新来训练该网络以得到下一个状态的最大值,那么该网络就会向着这些未落实的变量的最高值更新,这样该网络就会通过该 Q 函数来传播这些值。加入一个大边际分类损失能将这些从未见过的动作的值落实成合理的值,使得由价值函数引起的贪婪策略(greedy policy)可以模拟其演示者(Piot et al., 2014a):


640-2.png

其中 aE 是该专家演示者在状态 s 时所采取的动作,l(s, aE, a) 是一个边际函数(当 a=aE 时,其值为 0;其它情况则为正值)。这个损失会迫使其它动作的值至少比演示者的值低一个边界(margin)。如果该算法仅使用这种监督式损失进行预训练,那么就没有什么可以约束这些连续状态之间的值,而该 Q 网络就无不能满足贝尔曼方程,但这又是使用 TD 学习来在线提升策略所需的。


我们也增加了应用于该网络的权重和偏置的 L2 正则化损失以帮助防止其过拟合于相对较小的演示数据集。


用于更新该网络的整体损失是这三种损失的结合:


640-3.png

λ 参数控制这些损失的权重。


一旦预训练阶段完成,理想情况下该智能体就已经学会了一个合理的策略,使其可以可靠地运行在真实系统上。在下一阶段,该智能体开始在系统上运行,收集自己生成的数据,并将其加入到其智能体重放缓存(agent replay buffer)

640-4.png

数据被加入到该智能体重放缓存,直到加满,然后该智能体开始覆写该缓存中的旧数据。与此同时,该演示数据仍然被维持在一个分离的演示重放缓存(demonstration replay buffer)

640-5.png

中,并保持不变。每个 minibatch 包含 n 个样本,其中部分演示数据由下面的参数定义:


640-6.png


对于自己生成的数据,仅会应用双重 Q 学习损失,而对于演示数据,监督和双重 Q 学习损失都会应用。


整体而言,学习演示的深度 Q 学习(DQfD)在以下 5 个方面与 DQN 不同(具体参阅 4.2.2 节)


  • 预训练:在开始与环境进行任何交互之前,DQfD 首先开始在演示数据上单独训练,预训练过程会将 Q 学习损失和监督式损失结合起来,这样就使得代理可以模拟演示者,同时还能让价值函数为 TD 学习做好准备。

  • 监督式损失:除了 TD 损失之外,还应用了一个大边际损失来推动该演示者的动作的值超越其它动作的值(Piot et al., 2014a)。

  • L2 正则化损失:该算法也在网络的权重加上了 L2 正则化损失以防止在演示数据上的过拟合。

  • 分离的数据集:演示数据存储在 Ddemo 且永远不会被覆写,而自己生成的数据存储在 Dreplay 且经常被覆写。

  • 受控的数据采样:每一个 minibatch 中演示数据与自我生成数据的相对比例通过上述公式进行控制。


4 实验结果


640-24.jpeg

图 1:当给出了 1000 次转换的最佳或 ǫ-greedy 演示时,所有三种算法在 Catch 游戏上的在线奖励。甚至当该演示数据有 10% 的随机动作时,DQfD 也能表现得差不多好。


640-25.jpeg

表 1:该算法测试过的 Atari 游戏以及人类在该游戏上实现的最佳和最差的扥,后面还给出了试验和转换的次数。


640-26.jpeg

表 2:每个算法在全部 42 种 100 万 Atari 游戏帧上进行 200 次迭代后得到的平均在线奖励


640-7.png

图 2:三种算法在 Hero 游戏上的在线奖励。许多游戏都有和这个游戏类似的结果,其中 DQfD 的起始表现接近模仿策略(imitation policy),然后继续提升


640-8.png

图 3:三种算法在 Pong 游戏上的在线奖励。尽管人类演示者在他们的演示中没有赢下任何一场游戏,但 DQfD 仍然在前面 58 次迭代中优于 DQN  


论文链接:https://arxiv.org/abs/1704.03732

理论强化学习DeepmindDQN理论论文深度强化学习
1
返回顶部