作者 | Mr Bear
编辑 | 陈大鑫
在近期一个名为《Learning to See the Physics World》的学术报告中,斯坦福大学计算机科学系助理教授吴佳俊对自己在学习理解物理世界方面的工作进行了概述(我们也可以将这类工作称为「物理场景理解」)。
“在AI研究中,我们会希望构建一种用于场景理解的人工智能系统。通过这种系统,我们不仅可以通过传统的计算机视觉方法识别出物体(例如,将图片分类为猫或狗)。我们还可以理解如下图所示的具有几何和物理性质的物体。
此外,如果智能体可以和场景进行交互,我们是否就能够更好地预测这些物体在未来的动态呢?对于生活在物理世界中的人类来说,我们可以毫不费力地与世界进行交互,我们也希望创造出具有相同能力的机器。”
吴佳俊本科毕业于清华姚班,之后在MIT相继获得硕士和博士学位,现在是斯坦福大学计算机科学系的助理教授,并且隶属于斯坦福视觉与学习实验室(SVL)和斯坦福AI实验室(SAIL)。他的博士生导师是麻省理工学院的Josh Tenenbaum教授和Bill Freeman教授。Josh Tenenbaum以对计算心理学和贝叶斯认知科学的贡献而闻名,而Bill Freeman的主要研究方向是计算机视觉、图形学和计算摄影学。吴佳俊的研究兴趣包括机器感知、推理及其与物理世界的相互作用,认为AI研究应该从人类认知中汲取灵感。
以下是报告原文,AI科技评论进行了不改变原意的整理。
1
像婴儿那样学习的机器
如下图所示,这是一个 6 个月大的婴儿,她正在玩「层层叠」游戏。显然,这个婴儿对于积木游戏的看法与成年人是不同的。
尽管她不明白游戏的规则,但是值得注意的是,她可以看到物体、触摸物体、感受物体,与物体进行交互,捡起物体,甚至将物体放进嘴巴。
从某种程度上来说,我们观察世界、与世界进行交互的能力从很小的时候就已经具备了。在我们的研究中,我们也希望构建出这种「像婴儿那样学习的机器」。
实际上,人类在婴儿时期已经知道了很多概念。在这里,我们仅仅试图复现婴儿的一部分能力,这种能力可以作用于各种各样的物体。如下图所示,对于婴儿来说,很多场景往往是崭新的。
当婴儿遇到图中的一大堆玩具或随机物品时,有许多物体是从未见过的。那么,对于任意从未见过的物体,我们应该如何构建一个机器,使其可以看到物体的形状和物理特性,预测该物体的行为,预测出这些物体之间会如何进行交互,人类如何与其进行交互呢?
诚然,神经网络是一种很好的解决方案。如下图所示,我们可以利用神经网络在自动驾驶场景下对视频进行分割,从而分割出画面中的树、车、道路、人等物体。早在 2017 年,神经网络就可以很好地完成这项任务了。
一方面,这种神经网络是十分强大的;然而另一方面,它们也具有一定的局限性,这是因为上述神经网络需要大量的训练数据,人类不得不首先标注出数据集中的大量汽车,才能够真正使神经网络将汽车分割出来。而且,我们一般只拥有二维数据,而缺少三维数据。此外,我们并没有试图将上述分割模型泛化到新的物体上,即我们使用训练集中的数据训练网络,而并没有试图分割或识别出之前没有见过的物体。

2
我的研究哲学
如果我们想要从二维场景推广到三维场景,想将模型从熟悉的物体泛化到少见的物体上,从被动感知走向精准操作,需要怎么做呢?
其中一种方式是将学习系统向上扩展(scale up),从而使其不仅仅能够学习语义,还能够学习外形、物理特征,以及动作行为。这种扩展方式非常依赖于数据,人们往往试图使用更大、更强的数据集。
然而,除了语义之外的标注信息都是很难获得的。举例而言,想要标注某个像素是否属于汽车或其它物体相对来说是较为容易的,但是想要标注某个汽车的三维几何形状就十分困难了。此外,汽车的「杨氏模量」(一种材料力学性质)等信息几乎是无法标注的。因此,我们需要研究如何对物体的大多数信息进行标注。
我们生活的世界存在着许多物理性质,有许多底层的物理模型控制着世界的运转方式。因此,我们可以尝试依靠这种物理模型解决上述数据标注问题。
如下图所示,人类可以根据底层的物理状态识别出每个像素点的意义,这些物理状态包括一些物体内在表征(例如,几何结构、外形、材质),外在表征(例如,位置、速度),以及一些对场景的描述(例如,光照条件、相机参数)。接着,人类会将所有这些信息整合起来生成图像以及对其的理解,这一过程在计算机图形学中被称为渲染。
可见,我们可以试图根据各种不同的状态生成相应的图像。随着时间的推移,这会形成一个动态的过程。在当前的状态下,如果施以某种动作,未来将会发生相应的事件。
当我们考虑重力时,可以根据该观测现象的物理模型推测出下一时刻将会发生什么。这种自顶向下的生成模型在计算机图形学和计算机游戏中十分流行。
这种物理模型是十分强大的,如下图所示,这是一段于 2010 年由开源软件 Blender 生成的视频,视频名为「Sintel」。这段视频说明了这个免费的开源软件的渲染算法的强大能力。通过使用这些渲染引擎、物理仿真技术、图形学引擎,我们可以生成自己的虚拟世界。通过该技术得到的画面十分逼真,我们可以看到许多精细的纹理、光照条件以及运动特征。
那么,我们为什么不试图复现这种方案,从而构建为整个世界构建物理模型呢?实际上,如果我们依赖于这种物理模型,也会遇到其它巨大的挑战。
例如,这些模型都是自顶向下的,它们并不能告诉我们如何解决自底向上的推断问题。
它们可以告诉我们如果对世界进行建模,如何生成一张图片,但是不会告诉你如何对某张图片中需要关注的事物进行推断(例如,根据观测结果对几何结构和物理性质进行推断等逆问题)。
传统意义上,人们认为可以将「视觉」视为「图形」的逆问题,我们只需要对该逆问题进行求解。而此类问题是非常复杂并且不可微的,那么我们是否可以通过 MCMC 采样等方式来解决该问题呢?然而,不幸的是,这类方法非常慢,并且难以扩展到物理世界的非常高维的状态上(尤其是在真实世界的应用中)。
此外,所有上述模型都是近似模型,它们仍然不够逼真。这些模型还都是确定性的,因此不能真正捕获真实世界所有的真实性和随机性。
因此,我研究的指导思想是:思考我们究竟应该构建怎样的模型,这种模型需要最小化,但是十分通用并且强大,具有很强的借鉴意义。我们可以将这样的模型与机器学习方法相结合,从而同时利用数据和模型的优势。
具体而言,我们试图从两个方面使用机器学习技术:
(1)「Learning to Invert」:既然我们难以将自顶向下的模型应用于自底向上的推断任务,那么我们可以通过学习来求解这些逆问题。通过将这些物理模型作为一种引导,指导我们应该使用怎样的学习目标,怎样的中间表征,怎样的训练数据,从而来反过来利用这些物理模型。
(2)「Learning to Augment」:由于这些近似模型往往运算很慢,并且是确定性模型。我们可以试图通过学习使它们更加准确、高效、随机。
综上所述,我的研究旨在探讨何为物理模型,「物理」究竟指的是什么。这与构建特定领域或特定应用的具体模型不同,而是在构建一种通用且真实的物理模型。此外,我们还应该思考如何改进一个模型,如何使用机器学习方法帮助我们实现这一目标。
接下来,我通过一系列具体的例子,介绍了如何将上述研究思路真正应用到具体的计算机视觉、计算机图形学、机器人等领域的应用中。
3
Learning to Invert
接下来,我们将讨论一种极度简化的问题。假设我们有一张图片,图像的中心有单个物体,我们的任务是根据这张二维图片重建出物体的三维结构。

在该问题中,物理模型是怎样的呢?从正向来看,这是一个图像形成的过程,我们之所以会看到图中的椅子,是因为它底层具有三维形状。
通过旋转右侧的椅子,我们可以看到椅子的三维形状,这种三维形状存在于三维空间中。在极度简化的情况下,假设三维空间中有一个光源,从光源发出的光照射到物体上并击中物体可见的表面。这样的光线可以反射回相机,在相机前的图像平面中就会出现一把椅子。
然而,我们并不能看到完整的三维几何形状。例如,假设椅子有第四条「腿」,但是我们只能看到椅子可见的面,因此只能看到椅子的三条腿,而不能看到第四条。
人类之所以知道椅子一定有四条腿,是因为根据我们的先验知识,我们知道椅子必须是稳定且对称的。我们看到过很多椅子,和这些椅子进行过交互,因此我们具有很强的先验知识。即使我们看到图中的椅子的可见表面上只有三条腿,我们也可以自动地通过想象补全椅子真正的三维结构(四条腿),从而使其对称、稳定。
如果这就是物理模型工作的方式,那么我们是否可以设计一种逆系统,该系统也具有相似的结构。在逆系统中,我们首先估计出一个可见的面,将其重参数化为一个深度图。接着,我们可以根据深度图或可见的面,并使用先验知识补全物体的形状。
在这里,第一步更多地是一种局部操作,我们试图提取出可以从图片中获取的具有特点的信息(例如从单张图片中提取的几何信息)。之后,我们就必须依赖于先验知识。我们之所以选择这种物理和可见表面的中间表征,是出于一些物理原因:当我们以这些可见表面作为条件时,输入的图像和输出的三维形状是条件独立的。
如果我们根据这种思想构建一个系统,我们可以包含深度估计和形状重建在内的两个模块化的网络。我们可以在大型三维形状数据集 ShapeNet 上训练该网络,随机地采样一些形状,并且以随机的姿态将其置于随机的背景中,从而在训练中渲染所有这些实例,然后在真实数据上对它们进行测试。
下图中有一些椅子,即使我们不对深度进行建模,如果我们将图像输入到网络中,也可以学习到椅子大致的结构(尽管会遗漏大量的细节信息)。通过对深度进行建模,这种小的改变为我们引入了一些中间表征,这些中间表征系统可以更加关注几何信息,并且学习到物体的结构。这项工作是我们于 2017 年的 NeurIPS 上发表的。
如下图所示,我们采用使用椅子、飞机、汽车(ShapeNet 数据集中最多的三类物体)训练的模型,然后使用桌子来测试该模型。上述物体都是很常见的物体,同时桌子和椅子都属于家具。
但事实上,当我们将桌子的图像输入给使用椅子、飞机、汽车训练的网络后,重建出的三维图像似乎更像一个飞机,而非一个桌子。
这是因为模型并没有真正学到「重建」意味着什么,模型本质上试图进行最近邻检索。因此,我们需要找到正确的先验,使模型可以展现出一定的外推能力。如果我们直接使用图中直接的实现方式,就会得到这种「四不像」的重建结果。
然而,并不只是我们这里展示的方法具有这种问题,对于如图中列出的各种使用不同表征的三维重建方法而言,都会遭受这种问题的困扰。在 CVPR 2019 上,Tatarchenko 等人在论文「What do single-view 3D reconstruction networks learn?」中对该问题进行了详细的探讨。
在图形渲染引擎的启发下,我们构建了如下图所示的「逆渲染」工作流程。如果我们想要将图形渲染引擎的物理模型反转过来,就需要思考该物理引擎究竟是如何工作的。在算法的第二阶段,形状补全网络会根据深度图补全三维形状。然而,尽管我们使用了可见表面,但是可见表面本身仍然是一个二维图像。因此,第二阶段的形状补全网络仍然会隐式地对深度进行反投影,而将深度反投影到三维上实际上是一个确定性的、完全可微的过程。
因此,我们知道如何将深度反向投影回三维形状。这一过程就好比每个图形渲染引擎都会实现的可见面的透视投影。我们可以写出该过程的公式,构建这个可微的过程。
既然如此,我们为什么还要让形状补全网络变得过参数化,来重新学习这个投影过程呢?实际上,无需重新学习这种确定性的映射。而且,因为这个映射是我们已知的物理事实,因此它广泛适用于所有的图像。
在这种情况下,我们不妨构建一个没有可学习参数的可微层来实现这个映射,从而可以将其嵌入到学习系统中进行端到端的训练。这样一来,这个学习系统会首先进行深度估计,然后将深度反向投影到部分表面或可见的表面上。在三维空间中,我们可以发现缺少了椅子的第四条腿,然后形状补全网络会专注于对形状的补全。
如下图所示,当我们再次使用椅子、飞机、汽车训练该模型,然后使用桌子测试它。只因为对深度进行了表征,并且加入了反向投影模块,就可以对未见过的物体的重建任务中取得很大的提升。
我们在更多的未曾见过的物体上进行了泛化性的测试。他们使用汽车、椅子、飞机训练该模型,然后使用书架、沙发对模型进行测试。如下图所示,对比基线模型在训练集的物体上有很好的性能。然而,当我们使用新的物体测试对比基线时,尽管该模型仍然试图学习一些知识,但是相比于我们提出的方法和真实情况,对比基线就会生成更多的伪影。我们的模型并不完美,还有很多诸如粗糙程度等问题,但它确实捕获了有关未曾见过的物体的一些重要概念。
此外,我们还在一些非刚性物体上进行了测试。在这里,我们仍然使用椅子、汽车、飞机训练模型,但是在输入中加入了深度信息。因此,我们仅仅评估形状补全网络的性能。从重建结果可以看出,尽管还是存在一些伪影,但是我们可以大致生成完整的形状,模型理解了物体在局部需要具有平滑性和闭合性。与真实情况相比,模型已经学到物体大致应该具有怎样的形状。
在我们进行的众多改进中,从定性的角度来看,最重要的因素是中间表征以及反向投影模块。
在计算机视觉领域,我们将其称为 2.5维草图,这一名称由 David Marr 在 40 年前就提出了,当初他通过这一概念解释人类视觉处理过程,此后也出现了大量相关的证据和论点。在人工智能领域,我们同样试图考虑一些物理性质。像透视投影这样的性质是十分通用的,可以应用于所有的图像和场景。那么,我们为什么不直接将这些物理性质引入学习系统中呢?以上就是「learning to invert」讨论的问题。
4
Learning to Augment
接下来,我们将介绍「Learning to Augment」的相关示例,这些中间表征可以使我们增强模型,并且在渲染时取得更好的效果。
在计算机图形学领域中,如果我们有形状、纹理、点的信息,我们就可以试图渲染图像。那么增强一个渲染过程意味着什么呢?在这里我们指的是生成新的形状,或者生成具有新纹理的形状。
具体而言,我们首先将生成对抗网络(GAN)拓展到了 3D 情况下。接着,我们用另外一种方式使用了投影模块:对于三维形状使用前向投影,从而计算出 2.5维面或物体的深度图。接着,我们可以应用一个 2D 的 GAN(例如,CycleGAN),从而将纹理应用于物体上,合成到 3D 形状中。
从某种意义上说,我们可以将其视为一种混合图形渲染。这是因为我们既需要三维形状、投影、2.5维面等图形渲染引擎所需的元素,也还有生成三维形状和二维图像的条件生成模型。我们可以对图像应用不同的形状、纹理编码。我们可以学习这两部分表征,而投影部分则是可微但没有可学习参数的。这样做的好处是,我们可以对表征进行解耦。在形状编码、纹理编码之外,我们也在投影中引入了对姿态的编码。我们可以改变其中一种方向的表征,在新的状态下生成图像。
此外,如果我们已经生成了一些形状,但是我们想知道其它车子的纹理附在我们合成的车的形状上会有什么效果,就可以通过解耦的表征完成这一工作。这种解耦表征和混合图形提供了很大的灵活性,这对于图形学是有益的,我们可以实现更灵活的图像合成和编辑。
5
结合「Learning to Invert」和「Learning to Augment」
我们可以将上述两种研究思路结合起来。给定一张图像,我们首先可以推理出可以感知物体三维形状的表征,接着我们可以进行一些变化,从而合成具有新形状的图像。
在如下图所示的城镇驾驶场景下,具有汽车、道路、树等物体。我们首先可以运行前文提到的逆图形工作流程。接着,为了对背景进行建模,我们可以加入一些额外的变化。值得注意的是,图中的天空、树等物体的几何性质十分难以描述,因此我们将其建模为二维分割结果。但是对于汽车这类我们感兴趣的物体,我们可以为其构建「半可解释表征」,通过这种表征,我们可以推理出汽车的几何特性、姿态、纹理。
假如我们想要知道在图像中央的车被移动到图像右侧的部分中,场景会发生怎样的变化,我们可以将这种对表征额外的改变传递给混合图形渲染部分,从而在保持背景、天气、纹理、形状等因素不变的情况下,重新合成车位于图像右侧的新图像。通过上述方式,我们可以实现灵活的逆图形和模型增强,通过计算机视觉系统识别物体、感知物体,并且合成、重新渲染图像。
至此,我们讨论了如何学习物理模型,以及如何设计逆模型和模型增强技术,将其应用于图形学领域。然而,我们所处的世界并不是静止的。如下图所示,我们可以识别出积木的几何特征、纹理、颜色、位置等信息,但是我们也有一种强烈的直觉:这个积木塔并不稳定,它将会倒塌。
那么,我们该如何使机器也能够有这种认识呢?这对于机器人应用是十分关键的。
直观地看,我们可以对状态进行感知,或者进行状态估计。然后,我们可以将估计出的状态表征输入给动力学系统,从而预测未来将发生什么,即重新渲染未来将发生的事。即使与神经网络相对比,这种直接的方式也是十分强大的。
对于如下图所示的图像,假设我们需要预测未来将会发生什么,我们可以直接使用神经网络预测像素点在未来的情况。通过与真实情况的对比,我们发现这样得到的预测结果还不错。实际上,这些模型可以获知有多少方块将会倒下,以及它们倒下的方向。
然而,这些模型完全是基于像素的,它们对于几何特征并没有形成概念。因此,长时间序列的预测将会较为模糊或混乱。相较之下,如果我们在物理模型中首先识别物体状态,然后进行物理预测和重渲染,长程预测结果就会学习到物体的一些概念,它也能获知有多少物体会倒下及其方向。
此外,这种物理表征使我们还可以完成其他的应用任务。如下图所示,我们看到了一个积木塔的输入图像。假设我们可以重建它,我们就可以有效地预测出「如果右侧刮来一阵风」或「如果我们戳一下积木塔顶部」将会发生什么。我们人类可以想象到上述情况下未来将发生的情况,我们也可以预测出需要施加怎样的稳定力来防止积木塔倒塌。
接着,我们对该模型进行了一定的更新,试图将其在真正的机器人上面实现。在给定单张图像的情况下,我们让机器人根据这张图像重新搭起图中的积木塔。这个机器人需要学习到这个场景由八个物体组成,而这八个物体由不同的几何外形、纹理、以及颜色。它们还需要学习到底层的物理性质。
如果我们想要重新搭起图中的积木塔,我们需要从底部开始,如果从顶部的蓝色盒子开始搭,那么蓝色的盒子就会落到地上。因此,系统需要通过学习或推理出这种以物体为中心的表征,并且对动作进行规划,从而使我们可以根据单张图像重新搭起积木塔。我们还在更多的示例上测试了该模型,其中有时也会失败,特别是由于单张图像的深度难以估计。
这是一种非常直观的处理方法,我们可以对静态感知模型进行扩展,并且使用重渲染模块来处理动态场景。
6
通过机器学习增强动力学引擎
但是,这种直观的方法也有一些不足之处。首先,物体可能拥有非常相似的外观,但却有非常不同的物理表现。如下图所示,我们有两个组合物体,每个组合物体(积木塔)由两个粘在一起的方块组成。
这两个积木塔有相似的外形,假如我们将它们置于地面上,并且对其施加相同的外力,它们的运动轨迹和表现将会有很大差异。这是由于具有相似外形的物体可能由非常不同的物理特性,例如它们可能由不同的材料制成。上面的积木塔可能由铝制成,而下面的积木塔可能由钢制成,下面的积木塔要重得多,这也正是它没有像上面的积木塔那样大幅度移动的原因。这些物理特性对动力学的影响很大,但是我们也很难通过单张图像感知这样的特性。
有时,物体外形之间的差异可能很细微,但是其物理性质的差异则非常大,且影响深远。因此,我们也需要试图通过机器学习求解一系列相关的逆问题,例如对几何性质、状态、动力学、物理性质的逆问题求解,从而可以对真正影响动力学的物理性质(尤其是密度、杨氏模量等)进行推理。
在这里,我们需要讨论动力学模型的第二个问题。如果我们将某个物体放置于平面上相同的某个点,并且试图多次推动它,我们会看到:即使我们试图对完全相同状态的物体施加完全一样的力,最终的结果也是随机、不确定的。这并不是由于物理性质造成的,而是由于非确定性。
实际上,现实世界中的某些因素是很难建模的,从而使动力学具有一定随机性。这些因素包括物体的微结构或微观摩擦力,以及表面的粗糙程度。我们很难对这些因素进行建模,也很难感知到它们。
此外,还有一些我们无法直接分析的因素。即使我们可以使用微分方程等手段对其进行分析,这些方法的计算也是相对低效的,我们无法实时对这些问题进行求解。对于这些难以通过物理模型建模的因素,我们似乎可以利用机器学习方法来增强物理模型,从而捕获更准确的信息,并且捕获随机性。
在如下图所示的动力学引擎中,我们将状态和动作作为输入,该引擎将预测未来将会发生什么。这种动力学引擎的好处是,人们已经对该问题研究了数十年,这些引擎往往性能良好,人们建立了一系列动力学方程。这些求解器可以对未来的状态进行非常准确的估计。但是正如前文所述,处于对计算效率的考量,这些引擎往往建立在简化的假设之上,这些引擎大多数也是确定性的。
另一方面,我们可以使用神经网络等学习器将当前的状态和动作作为输入,并且得到准确、概率性的输出。神经网络可以通过学习捕获非常复杂的分布,但它们的弊端是需要大量的训练数据。我们并不希望仅仅针对特定情况训练一个神经网络,而神经网络的泛化性能则是一个重大挑战,这是因为它们本质上记忆了最近邻的状态、动作、输出三元组。
如果我们将这两种方式结合起来,也许可以得到「1+1>2」的效果。此时,神经网络的输入不仅包括当前的状态和动作,我们还将动力学引擎的估计结果作为神经网络的额外输入。此时,神经网络就并不是从头开始学习了,它只需要学习细微的修正(即残差)。这种对动力学模型的增强方案使其更加准确,也可以捕获带噪声的分布。我们期望该模型可以具有更强的表达能力和概率性,神经网络在动力学引擎的帮助下也会具有更高的数据效率。
具体而言,我们通过条件变分循环神经网络实现了该学习器,它与其它的随机神经网络相类似,并且以额外的输入为条件。我们在推物体的场景下测试了该模型,实验使用的数据集包含超过一百万次的物体推动动作。如图 x 所示,红色点代表模型给出的预测值,而黄色点代表真实值。可见,我们的模型可以捕获随机性,以及两种可能的输出模式。与基线对比时,我们试图通过高斯过程对动力学建模。该实验中,模型效果也十分理想,但是只捕获了一种模式。与使用神经网络从头开始学习相比,数据效率更高。
接着,我们将这种引擎应用于机器人上,测试这种混合动力学模型如何帮助我们完成一些操作。如下图所示,我们将该引擎与模型预测控制问题相结合,机器人试图解决一个高度欠驱动的问题:使用机械臂推动图中左边的圆盘(中心点为蓝色),再通过该圆盘将右侧中心点为红色的圆盘推到图中绿色的目标点处。机械臂可以利用学到的模型成功地将圆盘推至目的地。
除此之外,还有一些通过学习改进动力学模型的方式。有时,动力学系统是已知的,我们可以将公式写出来并且实现这种物理引擎。然而,在某些情况下,即使我们可以写出物理学公式,仍然存在很大的挑战。例如,有时我们想要表征粒子系统模型,即非刚性的柔体(例如,可变形物体和流体)。我们可以使用学习的方式(尤其是层次化的图神经网络),对粒子之间的相互作用做近似。这样一来,我们就可以对下图中蓝色流体和绿色刚体的交互进行仿真。这也是一种使用学习来增强动力学模型的方式。
综上所述,我们希望构建一种「像婴儿那样学习的机器」对于具有不同形状、不同类别的新物体,这种机器需要能够感知物体的形状和物理性质,预测其行为,并且于该物体进行交互。
我们采用了物理世界中的物理性质的启发或基于图形引擎、动力学引擎的表征,并将其与机器学习方法相结合,从而对逆问题进行求解并且增强了这些物理模型。
我的研究还涉及其他方面。例如,人类的感知能力不只有视觉,听觉和触觉等知觉可以帮助我们构建更好的模型,从而实现更好的操作。
7
触觉-视觉数据的物理建模
视觉信息有时是非常强大的,但是有时它也存在固有的模糊性。如下图所示,假设我们使用某种物理模型试图根据二维图像得到 2.5 维面再重建出三维形状,得到的重建结果似乎还不错。但是由于视觉特征固有的模糊性,我们很难获知这个瓶子的厚度。但是,如果我们能够利用触觉-视觉数据构建的物理模型,就不仅仅可以「看到物体,还能感觉到物体。
在这里,我们利用一些触觉点阵获取的信号可以提供 2.5 维面的局部信息。与通过图像得到的全局 2.5 维表征不同,通过触觉得到的信息是更为局部也更加准确的。我们可以通过触觉来精修估计的结果,从而解决由于视觉数据的内在模糊性造成的问题。由于触觉和视觉本质上都得到了 2.5 维面的表面信息,因此我们可以很容易地将其融合起来。
8
形状抽象
除了构建「像婴儿那样学习的机器」,我们还试图讨论在感知能力之外,机器可以建立多少的抽象概念。
此时,我们不仅要利用单纯的对于非结构化空间的感知,还要推导出表征中的层次化的抽象概念。如下图所示,假设我们需要重建一些未曾见过的类别的物体。运用我们刚刚讨论的方法,重建结果可能可以大致恢复桌子的形状,但它的顶部可能会出现奇怪的三角形形状,这与我们人类的直觉大相径庭。
对于人类来说,我们有很强的先验知识,认为桌子应该是圆形对称的。而我们的模型却只能重建出这种奇怪的三角形,并且出现粗糙的表面。另一方面,从输入图像的单一视角来看,我们重建出的物体与输入图像已经十分相似了,因此输入图像中关于圆形桌面的约束信息非常少。
为了解决这个问题,我们提出不仅仅要进行形状重建,还要进行形状抽象。对于物体的形状(尤其是人造的物体)而言,它们往往具有某种程序化的结构或抽象。在计算机图形学领域中,人们在过程化建模中大量使用这种方法。例如,椅子的四条腿应该是相同的,它们具有一些重复的常规布局。因此,我们试图设计对于家具形状这一特定领域的特定编程语言。我们不仅需要表征物体的体素、隐式函数等非结构化空间,还需要通过一种更加结构化的方式进行表征,我们将其称为「形状程序」
通过上述方式,我们可以利用较强的先验知识以某种规则的方式重建物体。然而,这一过程也对模型的性能进行了折中。通过对形状的假设,我们也损失了一些模型的表达能力,非结构化的物体具有更多的形状变化。因此,如何将这种基于学习的表达能力更好地与人类关于规则的先验知识融合起来是十分有趣的。
9
动作抽象
在本次演讲中,我们首先讨论了如何通过逆图形根据图像推测出状态。实际上,我们可以将这一问题外推到使用逆感知推测状态。
因此,我们可以根据多种感知的观测结果求解逆问题。同时,我们不仅仅需要表征物体的状态,还需要进行一些隐式的推理过程。我们希望知道什么是合适的抽象层次,是否可以根据数据学习到这些信息,以及可以通过这些信息对于视觉表征进行更加智能化的理解。这样的抽象过程并不仅仅适用于静态的物体和场景,这些抽象和概念的层次也存在于人类的行为中。
如下图所示,一个五岁的孩子正在玩「层层叠」游戏,相较于本文开头的婴儿,这个孩子可以玩的更好。值得注意的是,他不仅仅会玩这个游戏,而且他在玩游戏时,在不同状态下采取的行为是有所区别的。
实际上,他采用了视觉和触觉来估计状态,从而判断有些积木块是不能移动的。而通过触摸某些积木块,他又发现有些积木块是可以移动的,因此他采取了完全不同的动作:将它们抽出来。
这是一种抽象推理的过程,它不仅仅被应用于静止的物体和形状上,还可以根据物体的状态被应用于动作或动力学模型。对于某些物体而言,我们不需要触摸它们,而对于另外一些物体我们需要推动它们才能将游戏继续进行下去。这种层次化的抽象有助于引导我们对于动力学模型的学习,帮助我们进行对物体的操作。
受到这一启发,我们设计了一种层层叠机器人(Jenga Robot),他们使用视觉和触觉感知器来识别物体的状态,然后判断出那些积木块可以被推动,进而使用学习到的动力学模型和模型预测控制与物体进行交互,从而进行层层叠游戏。
10
结语
在本次演讲中,吴佳俊介绍了他关于学习物理模型的逆问题的研究(例如,根据原始二维图像估计出三维形状的感知模型,逆动力学模型,以及如何推理出物体的物理性质)。此外,他还介绍了如何逆向推理过程,从而根据原始状态生成一些层次化的抽象概念。
另一方面,吴佳俊介绍了如何通过学习来增强这些物理模型。此时,我们不仅希望发现一些抽象概念,不仅仅希望识别出立方体或圆柱体。我们还希望理解这些抽象概念究竟意味着什么,特别是在某种环境下,我们为什么关心这些立方体或圆柱体。当我们认为某个物体是立方体时,我们应该如何知道「立方体」指的是一种形状而不是纹理或颜色。同时,增强这种动力学模型有助于我们对操作进行规划,并且增强对于图形的感知,从而进行图像的生成、编辑和操作。
如果我们希望从构建「像婴儿那样学习的机器」走向「智能机器」,我们需要思考什么是物理世界的物理模型。
事实上,现在许多机器学习方法都是针对一些特定的问题,而不能够很好的泛化。我们所提出的物理模型并不针对于具体的物体,它是一种通用且最小化的模型。
例如,「投影」是一种在物理上十分通用的小型结构,它适用于所有我们看到的图像。如果我们想要推理出物体的三维结构,就可以使用透视投影法。这是因为,对于存在于某个面上的物体,透视投影都是适用的。这种通用的小型结构有助于提升模型的泛化性能。在构建这些模型之外,我们希望通过学习发现这些模型的不足之处,这一过程包含求解逆问题,以及更好地增强这些模型。

由于微信公众号试行乱序推送,您可能不再能准时收到AI科技评论的推送。为了第一时间收到AI科技评论的报道, 请将“AI科技评论”设为星标账号,以及常点文末右下角的“在看”。

继续阅读
阅读原文