当前位置: 首页 > 科技观察

是时候普及机器人素质教育了

时间:2023-03-21 18:40:52 科技观察

每次看到人类训练机器人,总有一个问题让我很困惑,那就是在如此残酷的环境中培养出来的技能,在现实世界中还能用到多少次?就像从背后用力踢它,让它倒地再爬起来;让两个机器人在地上疯狂地打斗摩擦;机器人,先不说屏幕“不忍直视”,坏了不要钱修?后来才明白,这跟现在的技术路线有关系。深度学习需要大量的实践和训练,才能不断优化算法,直到机器人能够应对现实世界中的各种情况。理论上来说,只要时间足够长,预算不限,猴子也可以用电脑来写文艺作品,何况是计算能力不可思议的机器。但这与我们普通人有什么关系呢?我们能否在有生之年使用(并负担得起)可靠的解决问题的机器人助手?而谷歌大脑研发的强化学习算法——softactor-critic(SAC),据说在现实世界的机器人学习方面,或许有望改变训练机器人的古老思维。今天我们就来说说SAC将如何改变机器人的“成功之路”?为什么想要一个力拓机器人这么难?在介绍SAC的新算法之前,有必要先说明一下是不是一定要有更好的机器人算法呢?也就是说,这个算法能改变什么?这应该从机器人在现实世界中遇到的挑战来回答。首先,目前的训练方式决定了机器掌握新技能的速度还远远不够。传统的机器学习算法每次执行新任务都需要调整原型设计的参数,有的还需要重新收集数据进行训练,这使得新机器技能所需的总时间迅速增加;其次,现实场景中无数的机器事故都可能导致机器出现故障。机器在实际使用时,无论出现什么问题,比如断电、网络延迟等,机器都会以“死机”来应对危机。如果每次都需要“重启”才能复工,应用机器人的价值何在?以上都是效率问题,而传统训练方式带来的成本困境让研究人员感到头秃。无论是培训人员的操作人为制造bug,还是执行器在各种复杂环境下的高频抖动,都会给硬件带来极大的磨损。这是机器人吗?这是碎钞机!当然,人类还没有想到办法。比如让机器人玩游戏,设计模拟环境。这些努力大大降低了对真实训练的依赖,但归根结底还是无法替代真实环境的多样性和随机性。最重要的是要创建一套为现实世界的机器人“量身定做”的算法。现实世界中的机器人需要什么样的算法?那么,这样的一套算法应该具备哪些属性呢?至少需要几个关键要素:1.良好的样本复杂性。提供给算法的训练样本越多,机器获取数据标签的时间成本越低,返回的误差越小,在强化学习中的表现越好;2.没有敏感的超参数。为了提高机器学习的性能和效果,往往需要对超参数进行优化,但在真实环境中,自然是参数调整越少越好。该算法需要最小化调整超参数的需要;3.异步采样。在现实世界中,难免会出现数据流终止、推理延迟等问题。为保证机器在“重启”阶段能够保持一定的连续性和稳定性,需要保证数据采集和训练量最小化。在一个单独的线程中。4、动作流畅。为了防止大的移动或振动损坏硬件,与时间相关和连贯的探索变得尤为重要。简单总结一下,如果我们相信机器人在未来的现实世界中是不可或缺的,那么要求他们花费很长的时间、大量的投入、无数的障碍来掌握这样的技能显然是不明智的。如何让它进行有取舍和现实意义的训练呢?SAC应声而出。SAC成功的秘诀在于说了这么多,真正的高手终于出现了。所以。SAC到底是什么?SAC代表Softactor-critic。从名字上不难看出,SAC也是基于Actor-Critic算法的逻辑,即Actor(玩家)随机表演,Critic(评委)随机打分,相互追求更好的表现(奖励)制衡。不同的是,SAC对参数的态度非常“温和”。它会自动权衡预期回报和探索深度,然后自动学习不要将其视为需要调整的“超参数”,从而获得最优策略。这样做的好处是训练样本多样,不需要经常调整参数,学习效率高很多。即使在最恶劣的实验环境下,也表现出色。就好比过去机器需要在人类妈妈的“呵护”下,开着灯熬夜做奥数题,希望成为“数学神童”。既然学会了劳逸结合努力学习,高考拿个高分就心满意足了。显然,后者是大多数普通机器的榜样,也是人类父母应该期待的。具体表现如何?三位来自“伯克利小学”的机器人同学应邀现身:第一个来到我们面前的是Minitaur,一个带有八个驱动执行器的小型四足机器人。前行时,多用控制器跟踪四肢摆动部位,观察各个角度,平衡腿部用力。如果没有有效的训练策略,很容易失去平衡摔倒,而且摔得太多还会把加固的铁架弄断。但掌握了新的学习方法后,由于训练时数据的不确定性最大化,Minitaur不需要任何额外的学习来控制绝对对数平衡的干扰。二是非常灵活的“三指手”同学。它的任务是用手转动“阀门”,使彩色挂钩朝向右侧。但是阀门上安装了一个小马达,用力后会自动复位。因此,每转一圈,阀门的初始位置随机复位,使机器必须重新感知当前的阀门方向。这个任务需要对9个伺服电机按键进行感知预测和精确控制才能完成,难度很大,但我们的“三指手”还是顺利完成了任务。最后一个机器人同学在玩乐高,不过玩的不开心。因为教练员要求它在叠积木时准确对齐双头螺栓以减少摩擦力。除了要确定关节的位置和速度,还要保证末端的强度,同时向7个关节传递复杂的指令。这和叫人家小孩“百步穿阳”有区别吗?不过,掌握了SAC方法的机器并没有让人失望,只用了3个小时就学会了如何处理这个任务。过去使用的PPO策略需要7.4小时才能完成。SAC不是很好吗?在论文中,研究人员为SAC使用了一个高调的属性:“state-of-the-art”,可以说是实至名归。当然,以上只是一些概念性的实验。要真正将这种能力扩展到更具挑战性的现实世界任务中,需要进行大量的优化迭代、编码参数的开发和其他工作。但可以预见的是,得益于SAC的出现,机器人正在接近从概念到实用的转折点。有了这份指南,机器人终于可以少受“虐”,真正深入生活细节。