人工智能的世界是什么样的?
几十年来,研究人员一直对此感到困惑。现在,人们更加想知道这个问题的答案。尤其是,从医疗保健到自动驾驶汽车,越来越多的生活领域开始应用机器视觉系统。而且这些领域直接和人的生命息息相关。
但是让机器眼睛真正“看到”谁是行人谁是路标,仍然是一个挑战。做不到这些可能会产生严重甚至致命的后果。
现在,谷歌和著名人工智能研究机构 OpenAI 的一项新研究有望改变这种情况。他们正通过绘制一些系统来感知世界的视觉数据,从而进一步打开人工智能视觉的黑匣子。这种被称为“Activation Atlases”的方法让研究人员可以分析各种算法的工作原理,不仅揭示了他们识别的抽象形状、颜色和图案,还揭示了他们如何将这些元素结合起来识别特定的物体、动物和场景,堪称在计算机视觉领域又一次重要的打开黑箱的尝试。
“这感觉像是创造了一个显微镜。”这项工作主要负责人、来自谷歌的 Shan Carter 如此说道。
图丨用 Activation Atlas 处理 GoogLeNet 视觉算法的一系列模板(图片:Google / OpenAI)
如果将先前的研究比作视觉算法字母表中的单个字母,那么 Activation Atlases 则更接近于整个字典,它显示了字母是如何组合在一起构成实际单词的。
这项工作不一定是一个巨大的突破,但它在“特征可视化(feature visualization)”这一更广泛的研究领域中向前迈出了一步。佐治亚理工学院的博士生 Ramprasaath Selvaraju 没有参与这项工作,他表示,这项研究“非常令人着迷”,它结合了许多现有的想法,创造了一个新的“非常有用”的工具。
Selvaraju 表示,在未来,这样的工作将有很多用途,它可以帮助我们建立更高效、先进的算法,还能让研究人员进入内部来提高算法的安全性并消除算法偏见。Selvaraju 说:“由于神经网络固有的复杂性,它们缺乏可解释性”。但他表示,在未来,当神经网络经常用于驾驶汽车和引导机器人时,这种解释性将是必要的。
OpenAI 的 Chris Olah 也参与了这个项目,他说:“至少,这就是我们所追求的目标。“
图丨 Activation Atlases 能让研究人员描绘算法用于理解世界的视觉数据。(来源:OpenAI / Google)
激活神经元
要了解 Activation Atlases 和其他功能可视化工具的工作原理,首先需要了解一下 AI 系统是如何识别对象的。
AI 系统识别对象的基本方法是使用神经网络:一种与人类大脑大致相似的计算结构(它在复杂性方面远远落后于人脑)。在每个神经网络内部是一层像网状物一样连接的人造神经元。像人类大脑中的细胞一样,这些神经元会响应刺激,这一过程称为激活。重要的是,它们不仅可以开启或关闭,它们还会在光谱上注册,并为每次激活赋予特定值或“比重”。
要将神经网络变为有用的东西,用户必须提供大量的训练数据。以视觉算法为例,这将意味着数十万甚至数百万的图像,而且每个图像都要标记有特定的类别。而谷歌和 OpenAI 的研究人员测试的神经网络,训练数据则更加广泛:几乎所有东西都有涉及。
图丨神经网络使用一层相互连接的人工神经元来处理数据。不同的神经元对图像的不同部分起作用(来源:OpenAI / Google)
当神经网络处理数据时,神经网络中的不同神经元会因响应不同图像而亮起,并通过这种模式连接到图像的标签。正是通过这种关联,神经网络才能“学习”事物的样子。神经网络经过训练后,用户就可以向它展示以前从未见过的图片,并且能激活神经元,然后将用户的输入与特定类别相匹配。
但是,像许多机器学习程序一样,视觉算法本质上只是模式匹配而已。这给了它们一定的优势(例如,只要你拥有必要的数据和计算能力,就可以直接进行视觉算法训练)。但它们也有某些弱点,例如它们很容易被之前从未见过的输入陷入混乱。
研究人员在 2010 年初发现了神经网络在处理视觉任务方面的潜力,他们一直在完善相关研究,试图弄清楚神经网络是如何做的。
早期的一项实验是 DeepDream 程序,这是 2015 年发布的计算机视觉程序,它能将任何图片变成幻觉版本。DeepDream 的视觉效果肯定是有趣的,比如在某些方面,它定义了人工智能美学,但该程序也是算法的早期尝试。“某种程度来说,这一切研究都始于 DeepDream 程序,”Olah 说。
图丨像 DeepDream 这样的图像让机器学习算法尽可能有趣(来源:OpenAI / Google)
DeepDream 所做的是将图像调整为尽可能有趣的算法。这就像是软件在图像中发现“隐藏”的图案,又更像是有人在着色书中涂鸦:用眼睛,画笔,螺纹和颜料填充每一寸画纸。
后来的研究采用了同样的基本方法,并对其进行了微调:首先针对神经网络中的单个神经元,并弄清楚是什么激发了它们,然后是神经元群,之后是神经网络中不同层的神经元的组合。如果早期的实验是偶然但专注的,那么最近的工作更有针对性。通过绘制神经网络的每个部分中激活的视觉元素,积少成多,最终就得到了整个图集:神经网络的视觉索引。
(来源:OpenAI / Google)
机器的视角
但是,Activation Atlases 实际上向我们展示了算法内部运作方式的什么内容?你可以先在谷歌和 OpenAI 的例子中进行理解,它们能为我们展示著名的 GoogLeNet(也叫 InceptionV1)神经网络的内部世界。
测试地址:https://distill.pub/2019/activation-atlas/
滚动鼠标,您可以看到神经网络的不同部分如何响应不同的概念,以及这些概念如何聚集在一起。(例如,狗和鸟类在不同的地方)你还可以看到神经网络的不同层代表不同类型的信息。较低级别的神经层相对抽象,响应基本的几何形状,而较高级别的神经层将解析可识别的概念。
当你深入研究个别分类时,就会变得有趣。谷歌和 OpenAI 给出的一个例子是“潜水管”和“潜水员”之间的区别。
在下图中,你可以看到神经网络用于识别这些标签的各种激活活动。左边是与“潜水管”密切相关的激活响应,右边是与“带水肺的潜水员”密切相关的激活响应。中间的激活响应在两个类之间共享,而条纹上的那些则有更多的差异。
图丨与“潜水管”(左)和“带水肺的潜水员”(右)相关的激活响应。(来源:OpenAI / Google)
我们可以一目了然地看出一些明显的颜色和图案。在顶部,看起来像鱼的鲜艳斑点和条纹,而在底部,有看起来像是面具的形状。但右侧突出显示了一种不寻常的激活响应,与蒸汽机车密切相关的激活响应。研究人员对此感到困惑,为什么这些关于机车的视觉信息对识别潜水员很重要?
“所以我们测试了它,”Carter 说。“我们想,'好吧,如果我们输入一个蒸汽机车的图片,是不是会识别为带水肺的潜水员图片分类或潜水员分类图片?'现在看来确实如此。”
图丨三个图像显示了如何重新分类相同的图片。在左边,它被确定为潜水员分类; 中间,随着机车图片的增加,它变成了带水肺的潜水员分类; 当机车足够大时,它变成了机车分类。(来源:OpenAI / Google)
该团队最终找到了原因:这是因为机车的光滑金属曲线在视觉上类似于潜水员的空气罐。因此,对于神经网络来说,这是带水肺的潜水员和潜水员之间的一个明显区别。为了节省区分这两个类别的时间,它只是从其他地方借用了所需的识别视觉数据。
这种例子出人意外地揭示了神经网络的运作方式。而对于怀疑论者,它揭示了这些系统的局限性。他们表示,视觉算法可能是有效的,但他们学到的信息实际上与人类如何理解世界无关。这使他们容易受到某些诡计的影响。例如,如果将一些精心挑选的像素投射到图像中,可能就足以使算法对其进行错误分类。
但对于 Carter、Olah 和其他研究人员来说,Activation Atlases 和类似工具所揭示的信息显示了这些算法的惊人深度和灵活性。例如,Carter 指出,为了使算法区分带水肺潜水员和潜水员,它还将不同类型的动物与这两个类别联系起来。
“在深水中像海龟一样的动物,被分为 scuba 类,地面上出现的鸟类一样,被分为 snorkel 类,”他说。他指出,这是系统从未指导学习的信息。相反,它是自学的。“这有点像是神经网络对世界更深刻的理解。这真的很令人兴奋。“
研究人员希望通过开发这样的工具,将有助于推动人工智能整个领域的发展。通过了解机器视觉系统如何看待世界,理论上我们可以更有效地构建它们并更彻底地检查它们的准确性。
“现在的人工智能是一个有局限的工具箱,”Olah 说。他表示,我们可以在系统上用测试数据来试图欺骗它们,但这种方法总是受到我们的认知限制。“Activation Atlases 给了我们探索未知问题的新工具,感觉每一代人工智能工具都让我们更接近真正理解这些神经网络中正在发生的事情。”