最近,一款调制奶茶的机器人火了,娴熟的手法虽然狂野,却又不乏精致。收尾时“抖三抖”戳中了广大网友的萌点,大家纷纷表示,这是一款会过日子的机械臂,抖的那几下简直为奶茶注入了“灵魂”!
这款小粉机器人的家族,都有着认真负责的基因。
沙雕中透露着可爱,认真工作的机器最帅。
ABB机器人打铁
机器学习正在改变不同行业的许多领域。深度学习算法,使得计算机视觉和自然语言处理等技术发生了巨大变化,各生活领域都弥漫着AI的酷炫气息。当然,生产领域也不例外。
格力机器人装配空调
四台发那科机器人焊接
在具体生产领域,机器人很大程度上已经可以完成一些重复性工作。有专家预言:未来人工智能将会发生重大变化的一个领域是机器人领域。
而事实上,创造智能机器人根本没有预想中那么容易。真正的智能机器人必须感知世界并了解环境,它们必须能够自主推理并实现目标,使用驱动手段执行计划。
当我们想从桌子上拿一杯水时,可能希望对手的运动轨迹有一个大概的了解。这时,大脑需要发送一个非常长且复杂的序列电信号,通过神经系统引起肌肉的收缩,通过感觉系统来观察这些电信号的影响(即观察手是如何移动的),大脑再使用这种反馈来补偿误算。这个过程称为反馈控制,是机器人设计师和机器人研究人员面临的挑战之一。机器人不仅需要规划机械臂应如何穿过空间来抓取物体,还必须指定需要施加到其电机上的电压,以便实现适当的扭矩和力,从而实现目标。
反馈控制具有非常丰富的理论,几乎在生活的每个方面都有许多应用。电梯、汽车、飞机、卫星和无数其他日常物品依靠控制算法来调节其内部操作的某些方面。控制理论为控制工程师提供了为许多关键系统设计的稳定可靠的控制算法工具,这些方法通常依赖于对系统基本动态的充分理解。
在机器学习时代,一种直接的方法是从实验收集的数据中学习动力学模型。例如,在研发一个带有简单抓紧器的机器人手臂时,手臂的状态由每个关节的角度和角速度组成,我们可以在关节内建立每个电机的电压。这些电压会影响机械臂的状态,可以将其视为一个功能:
这意味着动态可以被认为是将状态动作映射到状态的函数。通过学习,我们可以使用像神经网络这样的模型来近似它:
其中θ代表神经网络的参数。此过程通常也在基于模型的强化学习算法中完成,其中使用动态学习模型来加速学习策略的过程。令人失望的是,这通常会失败,并且除了在使用预测时出现的复合错误现象之外,学习模型往往很难概括为之前没有见过的状态。学习模型未能很好地概括的原因之一在于许多神经网络架构是非常通用的函数逼近器,因此只有有限的能力来推广到看不见的现象。
神经网络和归纳偏差
让我们用一个简单的例子来形象化。假设我们从类似线性线的函数中采样点,并尝试将学习模型拟合到此函数。
如果我们尝试使用简单的前馈神经网络来估算这些数据,可能会在数据采样值的范围内获得可靠的性能。如果我们做得很好,可能会在某种程度上做得更好甚至超出范围。但是,任何使用神经网络的人都知道,如果训练网络的输入值范围从0到1(如上图所示)并尝试预测1000之类的输出,就会得到完整而彻底的垃圾输出。但是,如果不使用神经网络而是使用线性近似作为模型,仍然可以获得相当不错的性能,甚至远远超出训练输入范围。这是因为我们的数据是从嘈杂的线性线中采样的,并且使用线性近似减少了模型的假设空间,我们必须首先搜索那些最好的候选者。神经网络是一种更为通用的模型,可以近似任意结构的函数,但这并不意味着它是工作的最佳选择。
当卷积神经网络用于图像处理时,观察到类似的现象。原则上,前馈神经网络可以近似任何函数,包括图像分类器,但这可能需要大量的模型和令人难以置信的大量数据。卷积网络(或CNN)通过利用问题中固有的结构,例如相邻像素之间的相关性以及神经网络中对移位不变性的需要,更有效地执行这些任务。
图形网络
回到近似机器人系统动力学的问题,这个问题的传统神经结构的一个共同特征是它们将系统视为单个组件。例如,在对机器人手臂进行建模时,可以将神经网络的输入作为包含手臂的所有角度和角速度的向量。
这是系统在通用RL基准测试中建模的标准方式,通常在策略优化任务中运行良好。但是当试图学习机器人手臂的动力学时,这是不够的,因为机器人手臂不仅仅是角度和角速度的矢量。机器人手臂具有结构,它由几个关节构成,这些关节共享相同的基础物理,并以与组装方式有关的方式相互作用。
考虑到这一点,我们希望神经网络架构能够以这种方式处理系统。事实证明,我们可以通过对图形数据进行操作的特殊神经网络来实现这一点。
谷歌DeepMind的研究人员在2018年发表了一篇题为《关系归纳偏差,深度学习和图形网络》的论文。 在论文中,他们引入了一种新的神经网络结构,称为图形网络,并表明它可以用于非常精确地模拟物体之间相互作用时发生的不同物理现象,例如多体重力系统中的行星,刚性之间的相互作用。身体颗粒甚至句子和分子。可以在图形数据上运行的神经网络的概念早于本文,但图形网络架构概括了许多以前的图形神经网络(GNNs)变体并扩展了它们。
这种方法的一个明显局限性是我们需要了解系统结构,以便将其建模为图形。在某些情况下,我们可能没有这方面的知识,但在我们做的许多其他情况下,利用这些知识可以使我们的学习问题更容易。
那么这些图形网络如何工作呢?简而言之,图中的DeepMind公式由常规节点和边以及全局向量组成。在网络的每一层中,每个边缘都使用它开始的节点和结束的节点进行更新。之后,使用其中的边的聚合更新每个节点,然后使用所有节点和边更新全局向量。
这个过程可以在论文的上图中看到,通过将它们的特征连同它们的发送器和接收器节点以及使用前馈神经网络来更新边缘特征向量,从而更新第一边缘。之后,通过获取其功能以及所有传入边缘的聚合并在其上应用另一个NN来更新节点。最后,所有节点和边的集合与全局向量一起使用,另一个NN用于更新全局向量特征。
模型预测控制与学习模型
在同时发表的另一篇名为《图形网络作为推理和控制的可学习物理引擎》的论文中,DeepMind研究人员使用图形网络来模拟和控制不同机器人系统,无论是在 模拟环境还是在物理系统中。他们将这些不同的机器人系统建模为图形,并使用数据来学习动力学模型。下面是来自论文的图表案例:
通过这种方式对系统进行建模,作者对未来状态进行了非常准确的预测,这些状态可以很好地推广到参数变化的系统,例如更长的躯干或更短的腿。
在许多应用中,使用的强大控制方法是模型预测控制(MPC)。在MPC中,控制器使用动力学的线性模型来提前计划固定数量的步骤,并采用相对于轨迹的分析成本函数的导数来使用梯度下降来优化它。例如,假设有一个机器人手臂的线性模型,我们希望它遵循一个理想的轨迹,怎样才能找到这样做所需的动作?
假设成本函数是这种形式:
这意味着在每一步,我们都希望将想要遵循的参考轨迹与实际轨迹之间的距离最小化,并且还希望将能量消耗最小化,这是第二项所做的(假设a是我们在电机中使用的电压)。
使用拥有动态线性模型的事实,我们可以再次将其写为:
由于成本函数和模型都是可微分的,我们可以根据行动集取这个成本函数的导数,并使用梯度下降迭代地优化它。
使用更复杂的动态图形网络模型可以做同样的事情。它对于动作也是可区分的,我们可以以类似的方式执行模型预测控制。
事实证明,这非常有效,并且使用学习模型的控制在许多情况下工作,以及使用这些模拟机器人系统背后的真实物理模型进行控制。这是向复杂机器人系统学习动力学模型和控制策略的能力迈出的一大步,具有对不确定性的鲁棒性和系统物理参数的灵活性。