在强化学习中,通过样本和计算效率之间的反直觉权衡,选择正确的进化策略可能比看起来更有效。
现代生活充满了各种低效率的情况,但深度学习的能源成本却没有那么明显。 在您的办公桌上设置一个高性能工作站,冷却风扇发出的热气流不断提醒您正在持续使用大量能源。 然而,如果工作被推到大厅的共享集群中,直观地感受到设计决策对电费的影响就变得有点困难。 如果在大型项目中使用云计算,能源的使用和后续后果将逐渐离你关心的对象越来越远。 然而,看不见、摸不着对于一个项目来说并不是一个可行的决定。 在大规模的极端情况下,可能意味着这些项目的能源消耗大于汽车整个产品周期的能源消耗。
训练深度学习模型的能耗要求
2019年,重点关注了训练现代深度学习模型的大量能源需求。他们主要针对一个名为“训练深度学习模型”的大型自然语言处理模型,所花费的时间基本相同。
他们估计,使用存在大量变量的训练所释放的二氧化碳量约为从纽约飞往旧金山的航班释放的二氧化碳量的 10%。 此估算基于主要由云提供商发布的能耗假设以及低于 1,000 美元的财务成本(云计算假设)。 对于商业项目来说,这可能是一笔划算的支出,但当考虑到优化和实验等因素时,能源费用很容易就会增加 10 倍或更多。
和他的同事估计,将神经架构搜索 (NAS) 添加到 NLP 模型开发中将使价格标签和相应的碳足迹增加数百万美元。 尽管许多大型模型利用专门的硬件,例如谷歌的TPU来进行训练,从而降低了30到80倍的能源成本,使训练稍微便宜一些,但这仍然是一笔巨大的开支。 在本文重点关注的强化学习领域,低效训练的后果可能会毁掉一个项目、产品或业务。
使用星际争霸II的训练示例(二)
在过去的44天里,训练有素的特工在多人即时战略游戏《星际争霸II》中通过三场比赛达到了大师级别,击败了排名中99.8%的玩家。 主打游戏高手项目Dota2进行了10个月(约800人/天)的实战训练,目的是击败人类选手的世界冠军。
由于使用了TPU、虚拟工作者等技术,确实很难准确估算此类游戏玩家的能耗成本。 据估计,培养五人冠军的云计算成本约为1200万美元至1800万美元。 显然,这对于典型的学术或行业机器学习团队来说是遥不可及的。 在强化学习领域,低效的学习带来了另一个危险:中等复杂的强化学习任务,探索性和样本效率低下,可能永远找不到可行的解决方案。
使用强化学习 (NL) 预测蛋白质结构
这里,选择一个中等复杂的强化学习任务作为例子:根据序列预测蛋白质结构。 一个由 100 个氨基酸连接在一起的小蛋白质就像一条有 100 个链接的链,每个链接都是 21 个独特的链接变体之一,这些链接变体又根据每个链接之间的角度形成一个结构。假设有 9 种可能的简化配置每个氨基酸/链环之间的键角,我们需要
迭代以查看每种可能的结构。 这 100 个链接蛋白大致类似于强化学习环境。 每个步骤由 100 个时间步骤和 9 个可能的动作组成,它们的组合是爆炸性的。
当然,强化学习代理不会随机采样所有可能的游戏状态。 相反,代理将通过最佳猜测、定向探索和随机搜索的组合来生成学习轨迹。 这种生成经验的方法被称为典型的“on-”学习算法。 能够找到局部最优方法的智能体可能会永远停留在那里,重复相同的错误,并且永远无法解决整个问题。
从历史上看效率解释举例,强化学习受益于尽可能类似于监督学习的问题的制定,例如让学生头上绑三个摄像头徒步旅行,左摄像头生成“右转”的训练标签图像效率解释举例,而右摄像头生成训练标签图像。右侧标有“左转”,中间的摄像机标有“直行”。
最后,您将拥有一个适合训练导航森林小径( 至 )的带标签数据集。 在接下来的部分中,我们将讨论相似的概念(例如,模仿学习)和基于模型的强化学习如何显着减少代理学习任务所需的训练示例数量,以及为什么这并不总是有益的。 。
事半功倍:让强化学习代理从示例中学到最好的知识
深度强化学习是机器学习的一个分支,受到动物和人类认知、最优控制和深度学习等领域的启发。 有一个明显的类似动物行为的实验,其中将动物(代理)置于特定的情境中:它必须学会通过解决问题来获取食物(奖励)。 只需要几个类似的例子,动物就开始将一系列行为与食物奖励联系起来。 然而,为了实现代理参数的稳定更新,深度强化学习算法可能需要为每个时期考虑 100,000 到 100,000 个。 时间步数。
大多数强化学习环境都是按步骤制定的。 环境生成一个观察结果,代理根据该观察结果决定对环境应用哪些操作。 环境根据其当前状态和代理选择的操作进行更新,在本文中称为时间步。 学习所需的时间步长或“样本”越少,算法的效率就越高。
大多数现代强化学习算法的重要性在于其核心,这是一种反复试验的形式。 对于不使用显式探索技术的智能体,其随机活动偶尔会做正确的事情(do right)。 否则,如果没有主动奖励,智能体可能会(本质上)永远与环境交互。 。 事实上,近端策略优化(一种在一系列基准测试中实现竞争性能的算法)在一系列程序生成的环境中的硬探索模式下完全失败。 正如您可以想象的那样,这对于许多相关任务来说都是一个问题。
学习玩视频游戏的智能体可能会体验到积极的奖励和随机动作(也称为按钮捣乱),这就是 Atari 套件成为流行的强化学习基准的原因。 对于更复杂的任务,例如如何打复杂的结,机器人不太可能偶然找出解决方案。 无论允许多少次随机交互,实现预期结果的可能性都不会很高。
正如之前关于学习操作魔方的讨论中所见,通过手动编程定制的打结机器人来打结,从一开始就学会这样做的强化学习代理仍然遥不可及。 不言而喻,人类也不会学会打结。 如果一个小孩被单独留在一个满是未系鞋带的运动鞋的房间里,他将很难自己打一个标准的“兔子”结。 就像思想实验中的幼儿一样,强化学习代理可以更好地从示例中学习,以便完成打结等复杂任务。
使用强化学习教机器打结的示例
通过将实体绳索的自主学习与真人演示相结合,伯克利的研究人员解决了教机器打结的问题。 首先,这部分可以进行模拟:机器人和桌子上的绳子之间的随机交互,以便了解它们如何工作并学习合理的模型。 在代理的自主学习周期中,会显示所需的操作:打一个简单的结。 代理能够模拟所需的操作而不会出错。 自学习世界动力学模型(在上面的例子中,一张有绳子的桌子)与人类想要执行的动作紧密耦合。 模仿学习和相关的逆强化学习代表了一些样本效率最高的强化学习方法。
打结是一项深奥的任务(显然超出了许多学习算法的能力),但它允许我们比较不同学习算法应用于更标准任务的样本效率。 In
的深度 RL 课程讲座 21、幻灯片 29 通过比较公开发布的任务的结论,给出了各种 RL 算法的相对样本效率。 这是一项 2D 运动任务,使用机器人模糊地模拟猫的运动。 可以在(需要付费许可证)和(开源、免费)物理模拟器中实现。
根据幻灯片内容,我们期望基于模型/逆强化学习的总时间步对应的进化策略具有最低的样本失败率和最高的效率。 下面转载了幻灯片中的估值以及文献中的具体示例。
机器人在 Py 中进行模拟,目标是尽可能快地前进。 尽管以 3D 形式呈现,但移动仅限于 2D 平面。 就像猎豹一样,但只有一半的身体。
表 1:各种 RL 算法的相对样本效率。
同一类算法的实现之间的样本效率差异很大,我发现幻灯片中的估计相对于文献中的具体示例可能有些夸大。 特别是,进化策略论文提出了一种比TRPO样本效率更高的方法,即策略梯度方法,并用它与TRPO进行比较。 报告指出: 的解决方案花费了 300 万个时间步,远低于 10 亿步的估计。
此外,实验室发表的一篇相关论文将遗传算法应用于Atari游戏,其样本效率约为10亿时间步,约为课程预估的5倍。
在某些情况下,多即是少——从进化中学习
在上面讨论的示例中,进化策略是样本效率最低的方法之一,通常需要比其他方法多至少 10 倍的步骤来学习给定的任务。 在另一个极端,基于模型的方法和模仿方法需要最少的时间步来学习相同的任务。
乍一看,这似乎与基于进化的方法相反,但当您针对计算而不是样本效率进行优化时,会发生有趣的事情。 由于运行演化策略的开销减少,甚至不需要反向传播过程,因此它们实际上需要更少的计算,并且本质上是并行计算。 由于群体中的每个或单个代理不依赖于其他代理/节点的结果,因此学习算法变得相对并行。 使用高速仿真器,它可以在更短的时间内解决给定的问题(根据墙上的时钟测量)。
gup任务的起始状态和目标状态。 绿色胶囊沿着黄色杆滑动,目的是保持红色杆平衡和直立。
为了对计算效率进行粗略比较,我在车杆摆动任务 -v0 上运行了不同学习算法的几种开源实现。 代表性进化算法和协方差矩阵自适应的源代码可以在 中找到,而其他算法则是 Deep RL 资源的一部分。
策略架构保持不变:前馈密集神经网络,共有 16 个神经元,每个神经元有两个隐藏层。 我在单核 2.4GHz CPU 上运行了所有算法,并且可以看到在没有任何并行化加速的情况下训练时间的差异。 值得注意的是,使用进化策略在10分钟内对1440名工人进行了类人训练,得出了以下结论:如果有并行CPU核心,并行可以真正实现加速,并且确实是有利可图的。
表2:不同学习方法的挂钟时间和样本效率对比表
上表很好地说明了不同算法所需资源之间的相对关系:样本效率最高的算法(soft actor-)需要大约一半的步长,但消耗了 34 倍的 CPU 时间。 双延迟 DDPG(又名 TD3)和软角色算法不如其他算法稳定。
由于缺乏开源工具,在运行表2中的实验时没有考虑基于模型的强化学习算法。基于模型的强化学习的进一步研究受到闭源开发和缺乏标准环境的影响,但许多科学家们为标准化基于模型的强化学习算法做出了不懈的努力。 他们发现大多数基于模型的强化学习方法能够在大约 25,000 步内解决“钟摆”任务,类似于上表中报告的策略梯度方法 ( ),但训练时间与策略梯度方法相同 ( )方法100至200次。
虽然深度学习似乎仍然青睐“花哨”的强化学习方法,但基于进化的方法已经卷土重来。 自2016年起从事“进化策略作为强化学习的可扩展替代方案”的研究,并参加了2017年遗传算法的大规模演示:学习玩雅达利游戏。 没有高级强化学习算法的花哨数学陷阱,进化算法的概念非常简单:创建一个群体并为群体中的每个人设置某些任务,最好的玩家成为下一代的种子,循环不断重复,直到表现出色已达到阈值。 由于其背后的一些简单概念及其固有的并行化潜力,可以看出进化算法将是您最稀缺的资源:可以节省开发人员的大量时间。
关于计算和样本效率的一些附加说明
在单个任务上直接比较不同 RL 算法之间的计算和样本效率并不完全公平,因为在实现中可能存在许多不同的变量。 一种算法可能会更早收敛,但无法达到与另一种较慢的算法相同的分数。 总的来说,我可以打赌,在任何已发布的 RL 项目中,作者花费了比任何其他算法更多的精力来优化和试验他们的新方法。
上面讨论的示例很好地回答了强化学习代理的期望问题。 基于模型的方法虽然很有前途,但与其他选择相比还不成熟,不值得付出额外的努力。 也许,这就是神奇之处:进化算法在各种任务上都表现得非常好,不应该被忽视,即使它们被认为“过时”或“太简单”。 当考虑到所有可用资源的价值及其消耗时,进化算法确实提供了最佳回报。
原来的。 经许可转载。
相关链接: