不用LLM,遗传编程可控Python代码!谷歌DeepMind等提出全新ARZ框架|IROS 2023

2023-08-17 14:01 299 阅读 ID:1342
新智元
新智元

最近,来自谷歌、DeepMind等机构的研究人员,提出了一种基于AutoML-Zero的方法AutoRobotics-Zero,可以从零开始发现zero-shot策略。与仅优化模型参数的神经网络不同,ARZ可以构建具备完整表达能力的控制算法。

                                            论文地址:https://arxiv.org/pdf/2307.16890.pdf

这是一种使用AutoML-Zero的搜索方法,能够构建紧凑、可解释的机器人策略,可以快速适应环境的剧烈变化。

即使在随机选择的一条腿折断后,ARZ策略能够控制步态,让其继续行走。

而这一挑战任务,在2个流行的神经网络基线MLP+LSTM中,取得了失败结果。

甚至,ARZ使用的参数和FLOPS比基线少得多。

英伟达高级研究科学家Jim Fan表示,令人耳目一新的机器人技术!无需LLM,甚至无需神经网络:只需使用进化搜索控制机器人的Python代码。可解释,并且自适应。

全新ARZ框架

现实世界中的机器人,面临着不同类型的挑战,比如物理磨损、地形障碍等等。

如果仅是依靠将相同状态映射到,相同动作的静态控制器,只能暂且逃过这一劫。

但不能将万事万物都映射出来,而需要机器人能够根据不同变化的环境,来持续调整控制策略。

要实现这种能力,它们必须在没有外部提示的情况下,通过观察行动如何随时间改变系统状态,来识别环境变化,并更新其控制以做出响应。

当前,递归深度神经网络是支持快速适应的常用策略表示法。然而,它的问题在于,单一,参数过高,难以解释。

由此,谷歌等研究人员提出了基于AMLZ的AutoRobotics-Zero (ARZ)方法,以支持四足机器人适应任务中动态、自我修正的控制策略进化。

研究人员将这些策略表示为程序,而非神经网络。

他们演示了如何从零开始,仅使用基本数学运算作为构建模块,进化出适应性策略及其初始参数。

                                      自动发现Python代码,代表四足机器人模拟器的可适应策略

演化可以发现控制程序,这些程序在与环境交互的过程中,利用其感官-运动经验来微调其策略参数或即时改变其控制逻辑。

这就实现了在不断变化的环境条件下,保持接近最佳性能所需的自适应行为。

与AMLZ不同,研究人员为Laikago机器人设计了模拟器,在倒立摆任务(Cataclysmic Cartpole)中取得良好性能。为此,团队还放弃了AMLZ的监督学习范式。

研究表明,进化程序可以在其生命周期内进行自适应,而无需明确接收任何监督输入,比如奖励信号。

此外,AMLZ依靠的是人为应用三个已发现的函数,而ARZ允许进化程序中使用的函数数量,由进化过程本身决定。

为此,研究人员使用了条件自动定义函数(CADF),并展示了其影响。

通过这种方法,发现进化的适应性策略比先进解决方案要简单得多,因为进化搜索从最小的程序开始,并通过与任务领域的交互逐步增加复杂性。

因此,它们的行为具有很高的可解释性。

在四足机器人中,即使随机选择的一条腿上的所有电机都无法产生任何扭矩,ARZ也能进化出适应性策略,保持向前运动并避免摔倒。

相比之下,尽管进行了全面的超参数调整,并采用了最先进的强化学习方法进行训练,但MLP和LSTM基线仍无法在这种具有挑战性的条件下学习到稳健的行为。

由于模拟真实机器人却非常耗时,自适应控制缺乏高效且具有挑战性的基准,研究人员还创建了一个简易自适应任务,名为「倒立摆」。

                                                 倒立摆任务中轨道角度变化的示意图

总而言之,本论文开发了一种进化方法,用于从零开始自动发现适应性机器人策略。在每个任务中,得到的策略具有以下特点:

• 超越经过精心训练的MLP和LSTM基线;

• 表示为可解释的、符号化的程序;

• 使用的参数和操作比基线更少。

2种搜索算法:自然选择第一性原理

算法由两个核心函数组成:StartEpisode() 和 GetAction()。

StartEpisode() 会在与环境交互的每episode开始时运行一次。它的唯一目的是用进化常量初始化虚拟内存的内容。

这些内存在任何时间的内容,都可以被描述为控制程序的状态。研究人员的目标是发现,能够在与环境交互的同时,通过调整内存状态,或改变控制代码来适应环境的算法。

而这种适应性以及算法的决策策略,由 GetAction() 函数实现,其中每条指令都执行一个操作,比如「0=s7*s1 or s3=v1[i2]」。

同时,研究人员定义了一个更大的操作库,对程序的复杂度不设限制。

进化搜索被用来发现 GetAction() 函数中出现的操作序列和相关内存地址。

论文中,采用了2种进化算法:(a) 多目标搜索采用NSGA-II,(b) 单目标搜索采用RegEvo.

这两种搜索算法都,采用了达尔文自然选择原理的算法模型,对候选控制程序群体进行迭代更新。

进化搜索的一般步骤如下:

1. 初始化一组随机控制程序

2. 评估任务中的每个程序

进化控制算法的评估过程:单目标进化搜索采用均值episode奖励作为算法的适应度,而多目标搜索优化了两个适应度指标:均值奖励(第一个返回值),每个episode的均值步长(第二个返回值)

3. 使用特定任务的适应度指标选择有前途的程序

4. 通过交叉和变异改变选定的个体

                                          算法群的简化示例,通过交叉和变异产生新的算法群体

5. 在群(population)中加入新的项目,取代一定比例的现有个体

6. 返回第二步

就本研究而言,NSGA-II和RegEvo之间的最大区别在于它们的选择方法。

NSGA-II使用多种适应性指标,比如前向运动和稳定性,来识别有潜力的个体。

而RegEvo则根据单一指标(前向运动)进行选择。

两种搜索方法同时演化:(1) 初始算法参数(即浮点存储器中的初始值sX、vX、mX),由 StartEpisode() 设置;(2) GetAction() 函数和CADF的程序内容。

测试环境

研究人员考虑在两种不同的环境中来测试ARZ:一个是四足机器人真实模拟器,另一个是全新倒立摆。

在这两种情况下,ARZ策略必须处理过渡函数的变化,这通常会阻碍它们的正常功能。

这些变化可能是突然的,也可能是渐进的,而且没有传感器输入来指示何时发生变化或环境如何变化。

结果

断腿

与ARS+MLP和ARS+LSTM基线相比,ARZ(包括CADF)是唯一一个在四足机器人腿部折断的任务中,生成了可行控制策略的方法。

实际上,这个问题非常困难,因为找到一种能够保持平稳运动且对腿部折断具有鲁棒性的策略,需要重复20次进化实验。

                                               CADF 加快了进化速度,并产生了最佳的结果

从5个测试场景的轨迹可视化中可以发现,ARZ策略是唯一一个能够在所有情况下避免摔倒的控制器,尽管在前左腿折断的情况下,维持前行会有些困难。

                                               ARZ发现了唯一能够适应任何断腿情况的策略

相比之下,MLP策略在右后腿折断的情况下可以继续前行,但在其他动态任务中都会摔倒。而LSTM策略只能在所有腿都完好的静止任务中避免摔倒。

                                                     ARZ发现了唯一能持续避免摔倒的策略

简洁性和可解释性

研究人员提出的进化算法只用了608个参数和40行代码,每步最多执行2080个浮点运算(FLOPs)。

这与基线MLP/LSTM模型在每一步中使用的超过2.5k/9k个参数和5k/18k个FLOPs相比显得更为简洁。

从下图中可以看到,ARZ策略能够快速识别和适应多种独特的故障条件。

比如,当一条腿折断时,控制器的行为会瞬时发生改变,而该策略能够在发生变化时迅速做出调整。

                                                  当左前腿在途中折断时,ARZ策略发生的变化

倒立摆

在倒立摆中,研究人员证实ARZ与ARS+LSTM基线相比,在突然、剧烈变化的任务中能产生更好的控制效果。

如下,ARZ和LSTM都解决了适应任务,并且没有观察到从静态任务到动态任务的直接转移。

                                                       倒立摆连续变化任务的进化后测试结果

另外,在突变任务中,ARZ发现了唯一适用于所有突变的倒立摆任务的策略。

                                                          倒立摆突变任务的进化后测试结果

简单性和可解释性

在这里,研究人员对ARZ策略进行分解,以详细解释它是如何在不断变化的环境中,整合状态观测结果来计算最优行动的。

下图,展示了ARZ设置中发现的算法示例。

值得注意的是,解决这项任务并不需要CADF,因此为了简化程序分析,搜索空间中省略了CADF。

研究人员发现的是三个累加器,它们收集了观察值和行动值的历史记录,从中可以推断出当前的行动。

                                   在所有参数都不断变化的任务上,演化出有状态动作函数示例

该算法使用11个变量,每步执行25 FLOPs。

与此同时,MLP和LSTM算法分别使用了超过1k和 4.5k参数,每步分别耗费超过2k和9k FLOPs

讨论

使用ARZ在程序空间和参数空间中同时搜索,可以产生熟练、简单和可解释的控制算法。

这些算法可以进行零样本适应,也就是在环境发生根本性变化时迅速改变其行为,从而保持接近最优的控制能力。

· CADF和分心困境

在四足机器人领域,在搜索空间中包括有条件地调用自动定义函数(CADF)可以提高进化控制算法的表现能力。

在单个最佳策略中,CADF被用于将观测空间分成四个状态。然后,行动完全由系统的内部状态和这个离散化的观测决定。其中,离散化有助于策略去定义一种切换行为,从而克服分心困境。

相比之下,仅在人工设计的MLP或LSTM网络的参数空间中进行搜索,并不能产生能够适应多个变化事件的策略(例如,单条腿折断)。

· 适应未见任务动态

那么问题来了,在不知道未来可能会发生什么样的环境变化时,应该如何构建自适应控制策略?

在倒立摆任务中,ARZ的初步结果表明,在进化(训练)过程中注入部分可观测性和动态执行器噪声,可以作为非稳态任务动态的一般替代。

如果这个结论得到进一步证明,也就意味着我们能够在完全不了解任务环境动态的情况下,进化出熟练的控制策略,从而减轻对准确物理模拟器的需求。

参考资料:

https://arxiv.org/abs/2307.16890

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn