一条狗,即使是之前从未见过的品种、颜色,我们也能一眼认出它。
对周遭任何变化的感知是人类与生俱来的能力。
但是人工智能系统就不一样了,即使级别SOTA,能完成无数人类完成不了的任务,但也有很多对人类来说轻而易举的事情,它却搞不定,比如,让金毛换个角度:正面、侧面、前面、后面,人工智能可能会识别地很挣扎。
深度学习模型擅长解释像素和标签之间的统计模式,但却很难通过许多潜在的自然变化正确识别对象。
那是扫雪机在路上扫雪吗?还是一辆校车侧翻了?
上图是根据M.A. Alcorn等人的 "Strike(with)a pose: Neural networks are easily fooled by strange poses of familiar objects"绘制,显示了一个深度神经网络将一辆公共汽车错误地分类为扫雪车。
人类可以瞬间知道,但是颜色、大小和透视等因素使情况复杂化,增加了人工智能模型的预测难度。
Facebook AI一直在探索如何更好地捕捉自然变化,在这方面,传统解决方案有很大局限性,即所谓的解纠缠(disentanglement)。我们最近还提出了等变化移位算子(equivariant shift operator)的概念,这是一种替代解的概念证明,可以帮助模型理解通过模拟最常见的变换,物体可能会发生怎样的变化。
目前,Facebook AI在这方面的工作主要是理论性的,但是对于深度学习模型,特别是计算机视觉潜力巨大: 增加了可解释性和准确性,即使在小数据集上训练也有更好的性能,并提高了泛化能力。Facebook AI希望这些贡献能够使计算机视觉向前推进一步,更好地理解视觉世界的复杂性。
现行方法的局限
目前的解纠缠方法试图通过将模型中的每个因子编码到模型内部表示的一个单独的子空间中,来学习模型中对象的基本变换。
例如,解纠缠可能将狗图像的数据集编码为姿态、颜色和品种子空间。
这种方法在识别刚性数据集的变化因素方面很有优势,比如一个单一的 MNIST 数字或者一个单一的对象,比如一把椅子,但是我们已经发现,在多个分类中,解纠缠的表现很差。
想象一下多个旋转的形状,比如三角形和正方形。解纠缠模型试图将物体的形状和方向这两个变化因素分离成两个变化因素。
下图说明了传统的解纠缠是无法在多个形状的数据集中孤立旋转的。我们期望高亮显示的形状会旋转,但是由于解纠缠失败,形状仍然是固定的。
解纠缠还带来了拓扑缺陷,这是一系列众多变换中的另一个问题。拓扑缺陷违背连续性——深度学习模型的本质属性。如果没有连续性,深度学习模型可能很难有效地学习数据中的模式。
想象一下正三角形的旋转。旋转120度的正三角形与原来的三角形无法区分,导致在方向空间中有相同的表示。然而,通过在三角形的一个角上加一个无穷小的点,表示变得可辨别,违反了连续性。附近的图像映射到相距较远的图像。Facebook AI的研究还表明,拓扑缺陷出现在非对称形状和许多其他常见的变换中。
利用等变化算子揭示变化因子
有一个数学分支「群论」可以教我们应用等变化算子的很多知识。它表明,一个直观的方式来理解变化因素是将他们模拟为一组转换。例如,一个三角形的旋转有一个组的结构: 90度旋转和30度旋转结合起来产生120度旋转。
Facebook AI利用这些想法来识别传统解纠缠的缺点,并确定如何训练等变化算子来解纠缠。我们提出了一个等变化算子,称为移位算子。这是一个矩阵,其块体模仿了常见变换的组结构--旋转、平移和重缩放。然后在原始图像和它们的转换上训练一个人工智能模型。
这样就会发现,即使在包含多个类的数据集中,移位算子也能成功地学习变换--这正是传统解纠缠经常失败的条件。