训练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 算法一致的结果,并将该想法进一步推广到在较小的计算预算上进行的研究如何提供有价值的科学见解。

论文地址:

Revisiting Rainbow: Promoting more Insightful and Inclusive Deep Reinforcement Learning Research

论文地址:

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

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 深度强化学习Rainbow算法是一种用于训练强化学习智能体的先进算法,它结合了多种强化学习技术的优点,旨在解决传统强化学习算法中存在的一些问题。 Rainbow算法的源码实现主要包含以下几个关键要素: 1. Experience Replay(经验回放):Rainbow算法使用经验回放技术来缓解强化学习中的数据相关性问题。它将先前的经验样本保存在一个经验回放存储器中,并随机抽样用于训练智能体,从而减少数据样本间的相关性。 2. Double Q-Learning(双重Q学习):Rainbow算法使用双重Q学习来减轻智能体的过高估计问题。它在每个时间步骤中使用两个Q网络来估计行动价值,使得智能体更准确地学习到环境的奖励和行动之间的关系。 3. Prioritized Experience Replay(优先经验回放):Rainbow算法引入了优先经验回放来提高对重要经验的学习效率。它使用优先级来衡量每个经验样本的重要性,并根据优先级进行样本抽样,使得那些对模型学习更有帮助的经验可以更频繁地被智能体训练学习。 4. Dueling Network Architectures(决斗网络结构):Rainbow算法使用决斗网络结构来分离状态值函数和行动值函数的估计。这种结构有助于更好地理解状态的价值和行动的价值,并使得智能体能更好地进行动作选择。 5. N-step Learning(N步学习):Rainbow算法通过使用N步回报来改进学习效率。它在训练过程中使用多步的回报作为奖励信号,使得智能体能更快地学习到环境中的长期收益。 总而言之,Rainbow算法的源码实现结合了经验回放、双重Q学习、优先经验回放、决斗网络结构和N步学习等多种技术,旨在提高强化学习智能体的学习效率和性能。通过这些关键要素的组合,Rainbow算法能够更好地解决传统强化学习算法中存在的问题,帮助智能体在各种复杂环境中做出更准确的决策。 ### 回答2: 深度强化学习是利用神经网络来实现的一种强化学习方法,而Rainbow算法是一种介于DQN和深度强化学习之间的算法Rainbow算法是融合了多种增强学习技术的方法,通过优化DQN算法的各个方面,提高其性能和稳定性。 Rainbow算法的源码包括以下几个主要部分: 1. Prioritized Experience Replay(经验回放):通过使用优先级队列方法,选择具有较高TD误差的经验样本,提高了样本的重要性采样,从而改善训练效果。 2. Double Q-Learning(双重Q-Learning):使用两个独立的Q网络进行训练和估计,减少了目标估计的方差,避免了DQN算法中的过高估计问题。 3. Dueling Network(分权网络):将Q网络分解为值函数和优势函数,使网络能够学习到状态的价值和行动的优势,从而更好地估计和选择动作。 4. N-step Learning(N步学习):使用N步回合的奖励来更新网络参数,增加了训练样本的多样性和稳定性。 5. Distributional RL(分布式强化学习):将Q值的估计从标量形式转换为离散的概率分布,从而更准确地估计不同回合奖励的分布情况。 6. Noisy Nets(噪声网络):在神经网络的权重中添加噪音,增加了网络的探索性,避免了过于确定性的行为选择。 通过融合以上这些技术,Rainbow算法在深度强化学习中取得了较好的效果,提高了训练的收敛速度和最终性能。其源码实现可以通过查阅相关的深度强化学习库或开源项目来了解具体的实现方式。 ### 回答3: 深度强化学习(Deep Reinforcement Learning)是将神经网络与强化学习结合的方法,用于解决复杂的决策问题。而Rainbow算法是一种深度强化学习算法的改进版,旨在提高强化学习的性能。 Rainbow算法的源码实现是基于深度Q网络(Deep Q-Network,DQN)的,但同时也引入了多种改进技术,包括经验回放(Experience Replay)、优先经验回放(Prioritized Experience Replay)、双网络(Double Network)、多步骤回报(n-step Returns)等。这些改进技术的目的是解决DQN存在的问题,例如样本效率低、过度估计(Overestimation)等。 Rainbow算法的源码可以分为以下几个主要部分: 1.网络架构:Rainbow算法通常采用卷积神经网络(Convolutional Neural Network,CNN)作为Q网络的基础架构,用于处理输入的状态。同时,由于Rainbow算法引入了多个改进技术,因此网络结构也会相应进行调整和优化。 2.经验回放:Rainbow算法使用经验回放的方法存储和重复利用之前的经验样本,以增加样本利用率。在每次迭代中,从经验存储中随机采样一批数据,用于网络的训练和更新。 3.优先经验回放:为了提高对重要经验的学习效率,Rainbow算法使用了优先经验回放。即根据每个经验样本的TD误差(Temporal Difference Error)来选择重要性权重,从而在采样时有更高的机会选择到这些重要的经验样本。 4.双网络:为了解决DQN网络的过度估计问题,Rainbow算法引入了双网络。即在训练过程中,使用一个目标网络来计算目标Q值,并定期将主网络的参数复制给目标网络。 5.多步骤回报:Rainbow算法使用多步骤回报来估计Q值,而不仅仅是使用单步回报。通过引入n-step Returns,可以更好地估计长期回报,从而提高学习效果。 总结起来,Rainbow算法源码实现主要包括网络架构的设计、经验回放的实现、优先经验回放的实现、双网络的实现以及多步骤回报的实现。这些改进技术在Rainbow算法中共同作用,使得深度强化学习算法性能得到了提升。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值