每次看到人类训练机器人,我都会很困惑一件事,那就是在如此残酷环境中培养出来的技能,到底能在现实世界中用上几回?
像是狠狠从背后踹它一脚,让它倒地后再爬起来;让两个机器人斗殴在地上疯狂摩擦;又或者是在十几米的高台不停地跳高高……有事吗???
这么对待重金打造的机器人,先不说画面“不忍直视”,修理损耗难道不要钱的吗?
后来我明白了,这跟目前的技术路径有关。 学习就是要进行大量的实践和训练,才能不断优化算法,直至机器人能够应对真实世界中各种各样的状况。
理论上讲,只要时间足够长、预算无上限,猴子也能用电脑写出文学著作,更何况是算力逆天的机器。
但,这跟我们普通人又有什么关系呢?我们能否在有生之年用上(而且买得起)可靠解决问题的机器小助手呢?一万年太久,我们只争朝夕好吗?
最近,伯克利和谷歌大脑最新开发的强化学习算法——soft actor-critic(SAC),据说就现实世界的机器人学习,或许,有望改变一下训练机器人的古早思维。
今天我们就来聊聊,SAC会如何改变机器人的“成材之路”?
为什么想要一个rio的机器人,这么难?
在介绍SAC这个新算法之前,有必要先解释一下,是不是一定要有更好的机器人算法呢?或者说,这个算法到底能够改变什么?
这要从机器人在现实世界中遇到的挑战来解答。
首先,是目前的训练方式,决定了机器掌握新技能的速度还远远不够。
传统的机器学习算法,每次执行新任务时,都需要对原型设计进行参数调整,有的还需要重新收集数据进行训练,这就使得机器新技能所需的总时间迅速增加;
其次,现实场景中的无数意外,都有可能让机器出现故障。
真正在使用机器时,无论出现什么问题,比如断电或者网络延迟,机器都会以“死机”来应对危机。如果每次都要以“重启”来恢复作业,那应用机器人的价值何在?
以上都是效率问题,传统训练方式带来的成本困境,更是令研究人员愁到秃头。
无论是训练人员人为制造bug的暴力操作,还是执行器在种种复杂环境下的高频抖动,都会给硬件带来极大的磨损。这是机器人吗?这是钞票粉碎机啊!
当然,人类也不是没有想过办法。比如让机器人打游戏啦,设计仿真环境啦,这些努力都大大减少了对现实训练的依赖,但归根结底,都无法替代现实环境的多样性和随机性。最重要的,还是得打造一套专为现实世界机器人“量身定制”的算法。
真实世界的机器人,到底需要怎样的算法?
那么,这样一套算法应该具备哪些属性呢?
至少需要有这样几个关键要素:
1.良好样本复杂性。提供给算法的训练样本数量越多,机器获得数据标签的时间成本也就越低,返回的误差也更小,在强化学习中的表现自然也就越出色;
2.没有敏感的超参数。为了提高机器学习的性能和效果,往往需要对超参数进行优化,但在现实环境中,自然是参数调整越少越好。算法就需要最大限度地减少调整超参数的需求;
3.异步采样。真实世界中,难免会出现数据流终端、推理延迟等问题,要让机器在“重启”阶段也能够保持一定的持续性和稳定性,就必须将数据的收集和训练在确保在最小化的多个独立线程中进行。
4.动作平滑。为了防止大幅度动作或震动损坏硬件,因此,时间上具有关联和连贯性的探索就变得尤为重要了。
简单总结一下,如果我们相信未来真实世界中的机器人不可或缺,那么,要求它用无限长的时间、无限多的投入、无数次的碰壁去掌握这样那样的本领,显然不太明智。
如何让它自己进行有取舍、有现实意义的训练呢?SAC应声出现。
SAC成功的秘诀,就是心大
说了这么多,正主终于出现了。那么。究竟什么是SAC?
SAC,全称是Soft actor-critic。从名字不难看出,SAC也是基于Actor-Critic算法的逻辑,即actor(玩家)随机表演,critic(评委)随机打分,互相制衡下追求更好的表现(reward)。
不同的是,SAC对参数的态度十分“温柔”,它会自动权衡预期收益(最大化回报)和探索 (最大化的不确定性),然后自动学习不是将其视为需要调整的“超参数”,从而获得最优策略。
这样带来的好处是,训练样本多样,还不需要频繁调整参数,学习效率高了很多。即使遇到最差的实验环境,也表现良好。
这就像是以前机器需要在人类亲妈的“呵护”之下,点灯熬夜穷经皓首地做奥数题,以期成为“数学神童”。如今学会了劳逸结合奋发图强,拿下高考高分就一本满足了。显然,后者才是大多数普通机器的榜样和人类家长应该有的期待嘛。
具体表现如何,有请来自“伯克利小学”的三位机器人同学现身说法:
第一个向我们走来的是Minitaur,一个带有八个驱动执行器的小型四足机器人。在前进时,往往借助控制器追踪四肢的摆动部位,观察好各种角度以平衡腿上的力度。如果没有有效的训练策略,很容易失去平衡而摔倒,摔多了钢筋铁骨也会坏的啊。
不过,在掌握了新的学习方法之后,由于训练时将数据的不确定性最大化,Minitaur不需要任何额外的学习,就可以驾驭绝大对数平衡性的干扰。
第二位是非常灵活的“三指手”同学,它的任务是用手旋转“阀门”,使彩色挂钩朝右。但阀门上安装了一个小型电机,受力会自动复位。因此,每转一次,阀门的初始位置都会被随机重置,使得机器必须重新感知当前的阀门方向。这个任务需要感知预测,并精准地控制9个伺服电机关键来完成,非常具有挑战性,但我们的“三指手”依然顺利完成了任务。
最后一位机器人同学虽然在玩乐高,但并没有从中得到多少乐趣。因为训练者要求它在堆叠积木的时候准确地对准螺柱以减少摩擦。
除了需要确定关节的位置和速度之外,还需要保证末端的力度,并且将复杂命令同时传送给7个关节。这和要求人类小孩“百步穿杨”有差别吗?
不过,掌握了SAC大法的机器并没有让人失望,只用3个小时就学会了如何搞定这个任务。而以往使用的PPO策略用了7.4小时才搞定。SAC是不是很棒棒?
在论文中,研究人员给SAC用了一个高调的定语:“state-of-the-art”(最先进的),可以说是实至名归了。
当然了,上述还都只是些比较概念化的实验,真正要将这种能力扩展到更具挑战性的现实任务中,还需要大量的优化迭代、开发编码调参等工作,不过可以预测的是,由于SAC的出现,机器人正在无限近地接近概念到实用的临界点。
有了这个最佳引路人,机器人终于可以少受点“虐待”,真正渗透进生活的细节了。
免责声明:此文内容为第三方自媒体作者发布的观察或评论性文章,所有文字和图片版权归作者所有,且仅代表作者个人观点,与 无关。文章仅供读者参考,并请自行核实相关内容。投诉邮箱:editor@fromgeek.com。
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。