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

选自arXiv

作者:Todd Hester等

机器之心编译

参与:吴攀

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

深度强化学习(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):

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

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

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

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

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

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

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

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

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

  • 预训练:在开始与环境进行任何交互之前,DQfD 首先开始在演示数据上单独训练,预训练过程会将 Q 学习损失和监督式损失结合起来,这样就使得代理可以模拟演示者,同时还能让价值函数为 TD 学习做好准备。
  • 监督式损失:除了 TD 损失之外,还应用了一个大边际损失来推动该演示者的动作的值超越其它动作的值(Piot et al., 2014a)。
  • L2 正则化损失:该算法也在网络的权重加上了 L2 正则化损失以防止在演示数据上的过拟合。
  • 分离的数据集:演示数据存储在 Ddemo 且永远不会被覆写,而自己生成的数据存储在 Dreplay 且经常被覆写。
  • 受控的数据采样:每一个 minibatch 中演示数据与自我生成数据的相对比例通过上述公式进行控制。

4 实验结果

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

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

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

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

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

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

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-04-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

如何从零开始构建深度学习项目?这里有一份详细的教程

选自Medium 作者:Jonathan Hui 机器之心编译 在学习了有关深度学习的理论课程之后,很多人都会有兴趣尝试构建一个属于自己的项目。本文将会从第一步...

34780
来自专栏AI研习社

自学习 AI 智能体第二部分:深度 Q 学习

深度学习的数学指导。 在关于深度强化学习的多系列的第二部分中,我将向你介绍 AI 主体如何学习在具有离散动作空间的环境中表示的有效方法。

14770
来自专栏新智元

关于 NIPS 2016 你应该知道的 50 件事情

【新智元导读】Andreas Stuhlmüller 目前在斯坦福 Noah Goodman 教授 Computation & Cognition lab 当博...

33940
来自专栏数据派THU

手把手教你从零到一搭建深度学习项目

在学习了有关深度学习的理论之后,很多人都会有兴趣尝试构建一个属于自己的项目。本文将会从第一步开始,告诉你如何解决项目开发中会遇到的各类问题。

13030
来自专栏喔家ArchiSelf

机器学习之于IOT浅见

为了更好地服务于目标客户, 嵌入式设计团队也在研究新技术, 如机器学习和深度学习。 深度学习允许这些设计师以有限的资源更快地开发和部署复杂的系统和设备。 通过这...

15020
来自专栏人工智能LeadAI

从零开始掌握Python机器学习(附不可错过的资源)

01 基 础 篇 01 基本Python 如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。幸运的是,因为 ...

40550
来自专栏量子位

面对数据缺失,如何选择合适的机器学习模型?

作者:阿萨姆 普华永道 | 数据科学家 量子位 已获授权编辑发布 转载请联系原作者 有些小伙伴在实际使用中发现xgboost可以自动处理缺失值,而有些模型不可以...

57260
来自专栏ATYUN订阅号

机器学习初学者常犯的六大错误总结

在机器学习中,有很多方法来构建产品或解决方案,而且每种方法都有不同的假设。很多时候,如何识别哪些假设是合理的并不是件容易的事情。在最初的操作中,机器学习新手总会...

30970
来自专栏华章科技

如何从零开始构建深度学习项目?这里有一份详细的教程

导读:在学习了有关深度学习的理论之后,很多人都会有兴趣尝试构建一个属于自己的项目。本文将会从第一步开始,告诉你如何解决项目开发中会遇到的各类问题。

12440
来自专栏瓜大三哥

形态学滤波(二) 之Tophat滤波

形态学滤波(二) 之Tophat滤波 Tophat滤波变换实际上是原图像与“开运算”的结果图之差。算法的数学表达式如下: ? 因为开运算带来的结果是放大了裂缝或...

49470

扫码关注云+社区

领取腾讯云代金券