Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

AI眼中的世界什么样?谷歌&OpenAI新研究打开AI视觉的黑箱

近日,谷歌和 OpenAI 发布新研究,提出一种新方法 Activation Atlas,旨在映射计算机视觉系统用于理解世界的视觉数据,进一步打开 AI 视觉的黑箱。

AI 眼中的世界是什么样的?

这个问题已经困扰研究人员数十年了,近年来这个问题变得更加紧迫。机器视觉系统被部署到生活的各个方面,从医疗健康到自动驾驶。但从机器的视角去「看」世界,去理解为什么它把一个目标归类为行人,而把另一个归类为路标,仍是一个挑战。无法克服这个挑战可能会带来严重甚至致命的后果。有些人会说这已经造成不良影响了,比如自动驾驶方面的事故。

来自谷歌和非盈利实验室 OpenAI 的新研究希望通过映射这些系统用来理解世界的视觉数据,进一步打开 AI 视觉的黑箱。该方法被称为 Activation Atlas,它能够让研究人员分析各个算法的工作原理,不仅可以揭示算法识别的抽象形状、颜色和模式,还展示了它们如何将这些元素组合起来识别特定的目标、动物和场景。

神经网络已经成为图像相关任务的标配了,现已被部署到多个场景中,范围包括在图像库中自动标记照片、自动驾驶系统等。这些机器学习系统已经到处都是了,因为它们比人类不用机器学习直接设计的任何系统都更准确。但由于这些系统的关键细节是在自动训练过程中学到的,因此理解网络如何完成给定任务有时仍旧是个谜。

今日,谷歌与 OpenAI 的研究人员合作撰写并发布了《Exploring Neural Networks with Activation Atlases》。该文介绍了一种新技术,旨在帮助我们解答这个问题:图像分类神经网络从图像中「看到」了什么?激活值图集(Activation atlases)提供了一种观察卷积视觉网络的新方法,对网络隐藏层中的概念进行了一种全局、分层、人类可理解的概述。我们认为激活值图集揭示了一个机器学得的图像字母表——一系列简单的原子概念,它们被反复组合,形成更加复杂的视觉概念。我们还发布了一些 Jupyter notebook 来帮助大家创建自己的激活值图集。

  • 文章地址:https://distill.pub/2019/activation-atlas/

  • Jupyter notebook:https://github.com/tensorflow/lucid#activation-atlas-notebooks


InceptionV1 视觉分类网络其中一层的激活值图集详细视图。它显示了网络用来给图像分类的很多视觉检测器,如水果状纹理、蜂窝图案和纤维状纹理。

下面的激活值图集是根据卷积图像分类网络 Inceptionv1 构建的,该网络在 ImageNet 数据集上训练得到。通常,给分类网络展示一张图像,然后让网络根据预先决定的 1000 种类别给该图像分配标签,如「培根蛋面」(carbonara)、「呼吸管」(snorkel)、「煎锅」(frying pan)。为此,我们的网络渐进地通过约 10 个层评估图像数据,每层都由数百个神经元组成,这些神经元在不同类型的图像块上被不同程度地激活。某一层的某个神经元可能对狗耳朵做出积极反应,另一层的某个神经元可能对高对比度垂直线做出积极反应。

激活值图集是通过从一百万张图像中收集神经网络每个层中的内部激活反应制成的。这些激活由一组复杂的高维向量表示,并通过 UMAP 被投影为有用的 2D 布局。UMAP 是一种降维技术,能够保留原始高维空间的一些局部结构。

它负责组织激活向量,但我们还需要将其聚合成更易于管理的数量——全部激活层太多了,无法一目了然。为此,我们在创建的 2D 布局上绘制网格。对于网格中的每个单元格,我们将该单元格边界内的所有激活平均化,并使用特征可视化来创建图标表征(iconic representation)。

左:随机选取一百万张图像输入至网络中,每张图像收集一个随机空间激活。中:激活被传输至 UMAP,然后降成二维。然后把这些二维激活画下来,相似的激活画在相邻的位置。右:然后绘制一个网格,将网格中每个单元格内的所有激活平均化,对平均后的激活进行特征反演(feature inversion)。

下面是神经网络其中一层的激活值图集(注意,这些分类模型能够有 6 层甚至更多层)。它揭示了这层网络执行图像分类时学到的全部视觉概念。该激活值图集可能乍一看让人头晕——但还有很多呢!这种多样性反映了模型发展出来的的各种视觉抽象和概念。

Inception v1 多层网络中其中一层(mixed4c)的激活值图集概览。

在这张图中,我们可以看到检测器视角下不同类型的叶子和植物。

从不同检测器中看到的水、湖和沙洲。

人类眼中的不同类型建筑和桥梁。

正如之前所提到的,这个网络有很多层。我们可以看看在此之前的层级,然后看这些概念是如何随着层的加深而变得更加精细的(每层网络基于上一层网络的激活值计算当前层的激活值)。

在该层的上一层即 mixed4a 的激活图中,有一个模糊的「哺乳动物」区域。


在下一层即 mixed4b 的激活图中,动物和人已经分开了,中间还出现了一些水果和食物。

在 mixed4c 层中,这些概念变得更精细了,且被微分成较小的「半岛(peninsulas)」。

上面我们已经看到从层到层的全局结构演变了,但随着层层递进,这些概念开始变得越来越具体和复杂。如果我们聚焦于三层网络在具体分类中的激活图,如卷心菜,我们会看到下图:

左:与另外两个相比,前层的激活图看起来非常不具体。中:中间层的图像绝对可以看出是叶子,但却无法确定是哪种植物的叶子。右:最后一层中的图像非常具体,就是卷心菜。

另一个值得注意的现象是:随着层数变深,不仅概念变得精细,同时旧概念也可以组合成新概念。

在中间层 mixed4c(左和中)中,你可以看到沙子和水是明显不同的概念,它们都具有强烈的属性来分类为「沙洲」。而在后面的 mixed5b 层(右)中,这两个概念似乎融合成一个激活图了。

我们也可以在特定层为 ImageNet 1000 种类别创建激活值图集,而不是在特定层放大整个激活值图集的特定区域。这样将展示网络经常用来进行具体分类(如红色的狐狸)的概念和检测器。

当对「红色的狐狸」进行分类时,我们可以更清楚地看到网络的关注点在哪里。尖尖的耳朵、红色皮毛包围着的白色口鼻部、树木繁茂或白雪皑皑的背景。

通过检测器看到的不同大小、角度的「瓦屋顶」。

对于「野山羊」,通过检测器可以看到羊角和棕色的皮毛。还有可能找到这种羊的环境,如 rocky hillsides。


像瓦屋顶一样,检测器视角下的「洋蓟」纹理也有不同大小,还有针对紫色花朵的检测器。所以这检测的应该是一颗洋蓟的花朵。

这些激活值图集不仅展示了模型内微妙的视觉抽象,还揭示了概念上的误区。例如,看「大白鲨」的激活值图集时,我们不仅会看到水和三角形,还会看到类似棒球的东西。这暗示了该研究模型采取的一个捷径:它将棒球红色的缝合处与大白鲨的嘴混合在一起了。

我们可以使用棒球图像的缝合处来测试这一点,将模型对特定图像的分类从「灰鲸」切换成「大白鲨」。

我们希望激活值图集(Activation Atlases)会是一个有用的工具,有助于让机器学习变得更易理解和更具解释性。为了便于你使用,我们发布了一些 Jupyter Notebook,通过 colab 就能在你的浏览器上立即执行。它们是基于之前发布的 Lucid 工具构建的,该工具包含很多其它可解释性可视化技术的代码。

  • jupyter notebook:https://github.com/tensorflow/lucid#activation-atlas-notebooks

  • 工具地址:https://github.com/tensorflow/lucid

参考内容:

https://ai.googleblog.com/2019/03/exploring-neural-networks.html

https://www.theverge.com/2019/3/6/18251274/ai-artificial-intelligence-tool-machine-vision-algorithms

工程Google AIOpenAI数据可视化
3
相关数据
自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

特征可视化技术

用于解决神经网络广受诟病的黑箱问题的方法之一,通过可视化的方法来理解神经网络的运算机理,以解决可解释性问题。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

Jupyter技术

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。

暂无评论
暂无评论~