Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

陈萍、小舟编辑

训练Rainbow算法需要1425个GPU Day?谷歌说强化学习可以降低计算成本

DeepMind 提出的 Rainbow 算法,可以让 AI 玩 Atari 游戏的水平提升一大截,但该算法计算成本非常高,一个主要原因是学术研究发布的标准通常是需要在大型基准测试上评估新算法。来自谷歌的研究者通过添加和移除不同组件,在有限的计算预算、中小型环境下,以小规模实验得到与 Rainbow 算法一致的结果。


人们普遍认为,将传统强化学习深度神经网络结合的深度强化学习,始于 DQN 算法的开创性发布。DQN 的论文展示了这种组合的巨大潜力,表明它可以产生玩 Atari 2600 游戏的有效智能体。之后有多种方法改进了原始 DQN,而 Rainbow 算法结合了许多最新进展,在 ALE 基准测试上实现了 SOTA 的性能。然而这一进展带来了非常高的计算成本,拥有充足计算资源的和没有计算资源之间的差距被进一步拉大。

在 ICML 2021 的一篇论文《Revisiting Rainbow: Promoting more Insightful and Inclusive Deep Reinforcement Learning Research》中,研究者首先讨论了与 Rainbow 算法相关的计算成本。研究者探讨了通过结合多种算法组件,以小规模实验得到与 Rainbow 算法一致的结果,并将该想法进一步推广到在较小的计算预算上进行的研究如何提供有价值的科学见解。


论文地址:https://arxiv.org/abs/2011.14826

Rainbow 计算成本高的一个主要原因是学术研究发布的标准通常是需要在大型基准测试(例如 ALE,其中包含 57 款强化学习智能体能够学会玩 Atari 2600 游戏)上评估新算法。通常使用 Tesla P100 GPU 训练模型学会玩一个游戏大约需要五天时间。此外,如果想要建立有意义的置信边界,通常至少执行 5 次运行。

因此,在全套 57 款游戏上训练 Rainbow 需要大约 34,200 个 GPU hour(约 1425 天)才能提供令人信服的性能实验数据。这样的实验只有能够在多个 GPU 上并行训练时才可行,这使得较小的研究小组望而却步。

Rainbow 算法

与原始 Rainbow 算法的论文一样,在 ICML 2021 的这篇论文中,研究者评估了在原始 DQN 算法中添加以下组件的效果:双 Q 学习(double Q-learning)、优先经验回放(prioritized experience replay,PER)、竞争网络、多步学习、分布式强化学习和嘈杂网络。

该研究在四个经典控制环境中进行评估。需要注意的是,相比于 ALE 游戏需要 5 天,这些环境在 10-20 分钟内就可以完成完全训练:

左上:在 CartPole 中,游戏任务是智能体通过左右移动平衡推车上的一根杆子;右上:在 Acrobot 中,有两个杠杆和两个连接点,智能体需要向两个杠杆之间的连接点施加力以抬高下面的杠杆使其高于某个高度要求。左下:在 LunarLander 中,智能体的任务是将飞船降落在两个旗帜之间;右下:在 MountainCar 中,智能体需要在两座山丘之间借助一定的动力将车开到右边的山顶。

研究者探究了将每个组件单独添加到 DQN 以及从完整 Rainbow 算法中删除每个组件的效果,并发现总的来说每一个算法组件的添加都确实改进了基础 DQN 的学习效果。然而,该研究也发现了一些重要的差异,例如通常被认为能起到改进作用的分布式 RL 自身并不总是能够产生改进。实际上,与 Rainbow 论文中的 ALE 结果相反,在经典控制环境中,分布式 RL 仅在与其他组件结合时才会产生改进。

上图显示了在 4 个经典控制环境中,向 DQN 添加不同组件时的训练进度。x 轴为训练 step,y 轴为性能(越高越好)。


上图显示了在 4 个经典控制环境中,从 Rainbow 中移除各种组件时的训练进度。x 轴为训练 step,y 轴为性能(越高越好)。

研究者还在 MinAtar 环境中重新运行了 Rainbow 实验,MinAtar 环境由一组五个小型化的 Atari 游戏组成,实验结果与原 Rainbow 论文类似。MinAtar 游戏的训练速度大约是常规 Atari 2600 游戏的 10 倍,其中后者的训练速度是在最初的 Rainbow 算法上评估的。此外,该研究的实验结果还有一些有趣的方面,例如游戏动态和给智能体添加基于像素的输入。因此,该研究提供了一个具有挑战性的中级环境,介于经典控制和完整的 Atari 2600 游戏之间。


综合来看,研究者发现现在的结果与原始 Rainbow 论文的结果一致——每个算法组件产生的影响可能因环境而异。研究者建议使用单一智能体来平衡不同算法组件之间的权衡,该研究的 Rainbow 版本可能与原始版本高度一致,这是因为将所有组件组合在一起会产生整体性能更好的智能体。然而,在不同算法组件之间,有一些重要的细节变化值得进行更彻底的探究。

优化器 - 损失函数」不同组合实验

DQN 被提出时,同时采用了 Huber 损失和 RMSProp 优化器。对于研究者而言,在构建 DQN 时使用相同的选择是一种常见的做法,因为研究者将大部分时间用在了其他算法设计上。

而该研究重新讨论了 DQN 在低成本、小规模经典控制和 MinAtar 环境中使用的损失函数优化器。研究者使用 Adam 优化器进行了一些初始实验,目前 Adam 优化器是最流行的优化器,并在实验中结合使用了一个更简单的损失函数,即均方误差损失 (MSE)。由于在开发新算法时,优化器损失函数的选择往往被忽略,而该研究发现在所有的经典控制和 MinAtar 环境中,这二者的改变都能让实验结果有显著的改进。

因此,研究者将两个优化器(RMSProp、Adam 优化器)与两个损失函数(Huber、MSE 损失)进行了不同的组合,并在整个 ALE 平台(包含 60 款 Atari 2600 游戏)上进行了评估。结果发现 Adam+MSE 组合优于 RMSProp+Huber 组合。

在默认 DQN 设置下(RMSProp + Huber),评估 Adam+MSE 组合带来的改进(越高越好)。

此外,在比较各种「优化器 - 损失函数」组合的过程中,研究者发现当使用 RMSProp 时,Huber 损失往往比 MSE 表现得更好(实线和橙色虚线之间的间隙可以说明这一点)。

对 60 款 Atari 2600 游戏的标准化得分进行汇总,比较不同的「优化器 - 损失函数」组合。

在有限的计算预算下,该研究研究者能够在高层次上复现论文《Rainbow: Combining Improvements in Deep Reinforcement Learning》的研究,并且发现新的、有趣的现象。显然,重新审视某事物比首次发现更容易。然而,研究者开展这项工作的目的是为了论证中小型环境实证研究的相关性和重要性。研究者相信,这些计算强度较低的环境能够很好地对新算法的性能、行为和复杂性进行更关键和彻底的分析。该研究希望 AI 研究人员能够把小规模环境作为一种有价值的工具,评审人员也要避免忽视那些专注于小规模环境的实验工作。

参考链接:https://ai.googleblog.com/2021/07/reducing-computational-cost-of-deep.html
理论强化学习谷歌
相关数据
深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~