深度学习的高成本

你穿毛衣是因为空调太冷吗?忘记在睡觉前关掉另一个房间的灯?你每天上班超过30分钟,只是为了在办公室”填座位”,即使你在工作中所做的一切都可以通过家里的笔记本电脑完成吗?

在强化学习中样本和计算效率之间的反直觉权衡中,选择进化策略可能比看起来更聪明。

现代生活充满了大大小小的低效率,但我们深学习研究/激情/企业的能量成本并不明显。办公桌上有一座高功率工作站塔,冷却风扇吹出的热空气流不断提醒人们使用的能量持久性和规模,但如果您将工作发送到大厅的共享群集,则直观了解设计决策对电费的影响会稍微困难一点。如果您将云计算用于大型工作,则能源使用和后果会更从您立即的关注中抽象出来。但是,不看问题,头脑不清醒并不是一个可行的政策,可以决定那些在极端阶段可能代表比汽车整个产品周期更大的能源支出的项目。

培训深度学习模型的能源需求

斯特鲁贝尔等人2019年,对现代深度学习模式培训的能源需求提出了重大要求。尽管它们主要侧重于称为变压器的一种大型自然语言处理模型,但论文中讨论的注意事项和结论对于在大致相同的时间内在类似硬件上训练其他任务的深层模型应该大致正确。

他们根据主要云供应商发布的一些能源组合的假设,从零开始训练Vaswani等人变压器的大型变种,从零开始排放约10%的二氧化碳当量排放量,而财务成本略低于1000美元(假设云计算)。对于一个可能值得花费的业务定义项目,但考虑到调整和实验,能源账单可以很容易地乘以 10 或更多。

斯特鲁贝尔及其同事估计,将神经架构搜索 (NAS)添加到 NLP 模型开发附带了数百万的价格标签和碳足迹相匹配。尽管许多最大的型号都利用专用硬件(如 Google 的 TU)进行培训,这可能会降低能源成本

使用星际争霸的深心训练示例 II

在44天的时间里,Deepmind 在多人实时战略游戏《星际争霸 II》中训练了所有三个可玩游戏的代理,在Battle.net排名中击败了 99.8% 的玩家,获得了大师身份。OpenAI的主要游戏掌握项目为Dota 2使用10个实时月(约800个petaflop/天)的训练时间,以击败世界冠军人类球员

由于使用TPE、虚拟工作者等,很难准确估计此类抢头游戏玩家的能源成本,但估计将分别以1200万至1800万美元的云计算费用来训练冠军阿尔法星和OpenAI五。显然,对于一个典型的学术或行业机器学习团队来说,这是遥不可及的。在强化学习领域学习效率低下,还有另一个危险。试图学习一个中等复杂的任务,但勘探错误,样品效率差的代理可能永远找不到可行的解决方案。

使用强化学习预测蛋白质结构 (NL)

例如,我们可以将中等复杂的强化学习任务与预测序列中蛋白质结构的挑战进行比较。考虑一种由100个氨基酸组成的小蛋白质,像一条有100个链接的链子。每个链接是 21 个唯一链接变体中的特定链接,结构将根据每个链路之间的角度依次成形。假设每个氨基酸/链链链路之间的键角的简化 9 种可能配置,则需要999€29,512,665,430,652,752,148,753,480,226,197,736,314,359,272,51 7,043,832,886,063,884,637,676,943,433,478,020,332,709,411,889(即3轮后94个零)迭代,以查看每个可能的结构。该 100 链接蛋白大致类似于增强学习环境,每个步骤有 100 个时间步和 9 个可能的操作

当然,强化学习代理不会随机采样所有可能的游戏状态。相反,代理将通过进行最佳猜测、定向探索和随机搜索的组合来生成学习轨迹。但是,这种生成经验的方法,我们称之为”政策”学习算法的典型方法,可以双向削减。找到给定强化学习任务的本地最佳方法的代理可能只是永远呆在那里,重复相同的错误,并且从不解决整体问题。

从历史上看,强化学习得益于试图尽可能像监督学习一样制定问题,例如,让学生用三台摄像机绑在头上徒步旅行。左相机生成带有训练标签的图像以”向右转动”,而右侧摄像机标记为”向左走”,中心摄像机”向前直冲”。

最后,您将有一个标记的数据集,适合训练四轴飞行器导航林路径。在下面的章节中,我们将讨论相似的概念(例如模仿学习)和基于模型的RL如何大大减少了代理学习任务所需的培训示例的数量,以及为什么这并不总是一件好事。

少做多:强化学习代理从示例中学习得最好

深度强化学习是机器学习的一个分支,灵感来自动物和人类认知、最佳控制、深度学习等不同领域的启发。动物行为实验有明显的类似物,动物(代理)处于一种必须学会解决问题才能得到食物治疗(奖励)的境地。在动物开始将一系列操作与奖励相关联之前,它只需要几个例子,但深度强化学习算法可能需要考虑每个纪元10 到 100 00 个时间步长,以便对代理的参数进行稳定更新。

大多数强化学习环境都是以步骤配制的。环境生成一个观察值,代理根据该观测值决定应用于环境的操作。环境根据其当前状态和代理选择的操作进行更新,我们称之为本文中的时间步长。学习所需的时间步数或”示例”越少,算法的效率就越高。

大多数现代强化学习算法的一个重要方面是,它们的核心是一种反复试验。对于一个特工学习而不采用明确的探索技术,随机活动应该偶尔做一些正确的事,否则,代理可以与环境永远互动,(基本上)永远看不到积极的回报组织/abs/1912.01588″rel=”不跟随”目标=”_blank”=在 OpenAI 在硬探索模式下的程序生成的环境套件中完全失败。我们可以想象,对于广泛的相关任务来说,这是一个问题。

学习玩视频游戏的代理可能会通过随机操作(又名按钮混搭)获得积极的回报,这也是 Atari 套件是一个受欢迎的强化学习基准的原因之一。对于更复杂的任务,如找出如何打一个复杂的结,这是极不可能的机器人会偶然遇到解决方案。无论允许多少随机交互,达到预期结果都不太可能。

正如我们之前在讨论学习 Rubik 的立方体操作时所看到的,有自定义的结绑机器人手动构建和编程以创建结,但学习从头开始这样做的强化学习代理仍然遥不可及。不用说,人类也不从零开始学习结节。一个蹒跚学步的孩子独自留在一个装满未系紧运动鞋的房间里,可能很难自己发现标准的“兔子”结。和思维实验中的幼儿一样,强化学习剂可以从示例中学到更好的知识,即使对于复杂的任务(如结结)。

教学机用强化学习等进行束缚的例子

通过结合自主学习绳物理和人类演示,伯克利的研究人员能够解决教学机器打结的问题。首先,这部分可以模拟,机器人与一根绳子在表面上互动,主要是随机的,目的是学习一个合理的模型,他们有限的世界观是如何工作的。在代理的自主学习期限之后,它显示了搭上一个简单的结所需的动作。当一切顺利时,代理能够模拟所需的操作。自主学习世界动力学模型(在上面的示例中,带有绳索的表表面)和人类所需行为示例的混合是一个强大的组合。模仿学习和相关的反强化学习代表了RL的一些最有效的方法。

Knot-tying 是一项略显深奥的任务(显然超出了许多学习算法的功能),但我们可以比较应用于更标准任务的不同学习算法的样本效率。讲座21,幻灯片39从谢尔盖·莱文在伯克利的深RL课程(子弹(开源,免费)物理模拟器。

根据幻灯片,我们预计进化策略是最样本低效和基于模型/反向强化学习是最有效的总时间步数。幻灯片中的估计值与文献中的具体示例一起转载如下。

猎手机器人在PyBullet中模拟,目标是尽快前进。虽然以 3D 方式呈现,但移动受限于 2D 平面。它就像一只猎豹,但一半。

方法 CS 285 lec 21的估计步骤 求解半猎豹的示例时间步长
进化策略 ¥1,000,000,000 €3,000,000 (ES, Salimans 等人 2016)
完全在线演员-批评方法 ¥100,000,000 €100,000,000 (信托A3C, 王等人 2016)
策略梯度 ¥10,000,000 €1,000,000 (PPO, 舒尔曼等人 2017)
值函数(策略外)方法 ¥1,000,000 €1,500,000 (Gu等人 2018)
(基于模型) ¥30,000 €400,000 (PE-TS, 库尔特兰蔡等人 2018)

表1:各种RL算法系列的相对采样效率

样本效率在同一类算法中的实现之间差异很大,我发现幻灯片中的估计值相对于文献中的特定示例可能有些夸大。特别是,OpenAI 的进化策略论文实际上报告了比 TRPO更好的样本效率,TRPO是一种策略梯度方法,它们用作比较。他们报告的”半猎豹”解决方案花了300万个时间,这与莱文估计的10亿步相去甚远。

另一方面,相关

在某些情况下,更多是更少 – 从进化中学习

在上面讨论的示例中,进化策略是可用的最低效的方法之一,通常需要比其他方法多学习给定任务 10 倍的步骤。在光谱的另一端,基于模型和仿制的方法需要最少的时间步骤来学习相同的任务。

乍一看,它似乎是一个开放和关闭的情况下,反对基于进化的方法的效用,但一个有趣的事情发生,当你优化计算,而不是样本效率。由于运行进化策略的开销降低,甚至不需要反向传播传递,它们实际上可能需要较少的计算。它们本质上也是可并行的。由于一个群体中的每个单集或单个代理不依赖于其他代理/情节的结果,因此学习算法变得令人尴尬的并行。使用快速模拟器,解决给定问题可能需要大量时间(由墙上的时钟测量)。

反转 PendulumSwingup任务启动和目标状态。绿色胶囊沿着黄色杆滑动,目的是使未激活的红杆直立平衡。

为了粗略地比较计算效率,我运行了各种学习算法的开源实现在推车杆摆动任务倒彭杜卢姆SwingupBulletEnv-v0从PyBullet。具有代表性的进化算法,协方差矩阵自适应的代码,可在Github上使用,而其他算法都是OpenAI在深RL资源中旋转的一部分。

策略体系结构都保持不变:一个源前密集神经网络,每个神经网络有两个隐藏层,每个神经元有 16 个神经元。我在一个温和的英特尔 i5 2.4 GHz CPU 的单个内核上运行了所有算法,因此结果只能真正相互比较,训练时间的差异没有任何并行化速度。值得注意的是,OpenAI 在10 分钟内对 1,440 名具有进化策略的工人进行了 MujoCo 类人形训练,因此,如果您有 CPU 内核,并行化加速是真实且有利可图的wikipedia.org/wiki/CMA-ES”rel=”无跟随”目标=”_blank”=协方差矩阵自适应

[代码]

¥4,100,000 ±500 s 策略梯度 亲端策略优化

[代码]

¥1,800,000 Φ2000 s 完全在线演员-批评方法 软演员-批评

[代码]

¥1,500,000 ±17,000 s 值函数(策略外)方法 双延迟 DDPG

[代码]

¥2,000,000 Φ17,500 s

表2:比较不同的学习方法,时钟时间和样品效率。

上表很好地介绍了不同方法所需的资源之间的相对关系。最示例有效算法(软执行组件-批评)需要大约一半的步骤,但消耗的 CPU 时间是 34 倍。双延迟 DDPG(又名 TD3)和软演员-批评家比其他方法不太稳定。

由于缺乏开源工具,我们在运行表 2 实验时没有查看基于模型的 RL 算法。基于模型的RL的研究进展有闭源开发和缺乏标准环境,但Wang等人为许多基于模型的算法提供基准做出了英勇的努力。他们发现,大多数基于模型的方法能够解决他们称之为Pendulum的任务,这与上表中报告的任务非常相似,大约25,000步。与策略梯度方法相比,对于大多数基于模型的方法,培训(挂钟)时间大约是 100 到 200 倍。

尽管深度学习似乎仍然倾向于”花哨”方法来加强学习,但基于进化的方法却卷土重来。OpenAI的”进化策略作为增强学习的可扩展替代“从2016年加入在2017年通过大规模示范遗传算法学习玩Atari游戏。如果没有围绕高级 RL 算法的所有奇特的数学陷阱,进化算法在概念上是直接的:生成总体并将个人设置为某些任务,保持最佳表现者为下一代播种,并重复,直到达到性能阈值

计算和样品效率有一些注意事项

由于实现之间可能有许多变量,因此在单个任务上对不同 RL 算法之间的计算和采样效率进行直接比较并不完全公平。一种算法可能更早收敛,但永远不会达到与不同、较慢的算法相同的分数,通常可以肯定的是,在任何发布的RL工作中,作者花费比任何比较都多得多地优化和试验新方法算法。

但是,我们上面讨论的示例让我们清楚地了解了从强化学习代理中期望什么。与其他选项相比,基于模型的方法虽然很有前途,但还不成熟,对于大多数任务来说可能不值得付出额外的努力。也许令人惊讶的是,进化算法在各种任务上表现良好,不应被忽视,因为它们是”老式的”或”太简单”。在考虑所有可用资源的价值及其可用方法的消耗时,进化算法确实可以提供最佳回报。

Comments are closed.