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