谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

钛媒体  •  扫码分享

谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

图片来源@视觉中国

钛媒体注:本文来自微信公众号大数据文摘 (ID:BigDataDigest),编译:张秋玥、周家乐、陆震,钛媒体经授权发布。

神经网络到底是如何运作的?

虽然机器视觉系统在越来越多的领域得到应用,从医疗保健到自动驾驶汽车,但是要真的理解机器的眼睛到底是如何“看到”事物,为什么它将甲归类为行人,但将乙归类为路标,仍然是一个迷。

谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

今日,谷歌与OpenAI发布新研究,希望通过绘制这些系统用于理解世界的视觉数据,来进一步打开人工智能视觉领域的黑匣子。

此项研究被称为“激活地图集”(Activation Atlases),是一种神经元交互方式的最新可视化技术。

论文:hhttp://www.tmtpost.com/ttps://distill.pub/2019/activation-atlas

代码:https://github.com/tensorflow/lucid/#activation-atlas-notebooks

Demo:hhttp://www.tmtpost.com/ttps://distill.pub/2019/activation-atlasapp.html

该研究一经发布,就在全网引发热议。它能够像“显微镜”一样,帮助研究人员分析各种算法的工作原理。

不仅能够揭示它们识别的抽象形状、颜色与图案,还能够揭示它们如何将这些元素结合起来以识别特定的物体、动物与场景。

如果将之前的研究比作在算法的视觉字母表中显示单个字母,那么激活地图集则提供了整个字典,它能够显示字母是如何组合在一起制作实际词汇的。
谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

视觉分类网络的激活图集,揭示了许多完全被识别出的特征,如电子设备、建筑、食物、动物耳朵、植物和水样背景等等

激活地图集建立在特征可视化的基础上,是一种研究神经网络隐藏层究竟可以表示什么的技术。特征可视化的早期工作主要集中在单个神经元上。通过收集数以万计的神经元相互作用和可视化的样例,激活地图集将关注点从单个神经元转移到可视化这些神经元所共同代表的空间。

OpenAI的博客介绍称:激活地图集比预期的效果更好,似乎有力地表明神经网络的激活层对人类而言是有意义的。这能让我们更加乐观地认为,视觉模型能取得非常好的可解释性。
谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

从不同的训练样例中收集一百万个激活向量,将它们安排在二维空间中,使相似的激活向量紧密地结合在一起。然后,在每个单元的平均值上施加一个网格并使用特征可视化。

谷歌的Shan Carter是这项工作的首席研究员。Carter说:“拿'鲨鱼'这一图像类别为例,其中会有很多激活因素,比如'牙齿'和'水'。

这项工作并不一定是一项巨大科学突破,但它确实是更广泛的特征可视化这一研究领域中向前迈出的重要一步。佐治亚理工学院的博士生Ramprasaath Selvaraju(未参与这项工作)认为这项研究“非常令人着迷”,它结合了许多现有的想法来创造一项”非常有用“的新工具。

因为通常情况下,如果要部署一个关键的软件,程序员可以通过检查代码的所有执行路径,甚至进行形式化验证来确保安全。但是目前而言如果用到了神经网络,我们进行这种检查的能力将会受到很大的限制。

有了激活地图集,人类就可以发现那些存在于神经网络中而未曾被预料到的问题。例如,神经网络可能会依赖虚假相关性对图像进行分类,或者因为重复利用了不同类别间共有的某个特征而导致奇怪的错误。人类甚至可以利用这种理解来“攻击”模型,修改图像来欺骗它。
谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

部分依赖面条的存在来区分炒锅和煎锅。加入面条会有45%的可能欺骗模型。

在未来,这样的研究将有很多用途,比如帮助我们建立更高效和先进的算法,还能够通过让研究人员进入模型的内部来提高其安全性并消除偏误。“由于神经网络固有的复杂性,它们缺乏可解释性,”Selvaraju在采访中说。但是在未来,当这种网络经常被用于驾驶汽车以及引导机器人时,可解释性将非常重要。

OpenAI的Chris Olah也参与了这个项目,他说,“感觉有点像创造一个显微镜。至少,这就是我们所追求的目标。“
谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

激活地图集允许研究人员将视觉数据算法用于理解世界

激活地图集的工作原理

要了解激活地图集和其他功能可视化工具的工作原理,首先需要了解一下AI系统如何识别对象。

实现这一目标的基本方法是使用神经网络:一种与人类大脑大致相似的计算结构(虽然它在复杂性方面落后了无数倍)。在每个神经网络内部有像网状物一样连接的人造神经元层。像大脑中的细胞一样,这些细胞会响应刺激——这一过程被称为激活。重要的是,它们不仅仅能够被开启或关闭; 它们有一定的取值范围,能够为每次激活赋予特定值或“权重”。

要将一个神经网络变为真正有用的东西,你必须提供大量的训练数据。在视觉算法的情况下,这将意味着数十万甚至数百万被标记为特定类别的图像。在谷歌和OpenAI的研究人员为这项工作测试的神经网络的情况下,这些类别非常广泛:从羊毛到温莎领带,从安全带到加热器。
谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

神经网络使用互相连接的人工神经元层来处理数据。不同的神经元反映图像的不同部分。

当我们使用这些数据训练网络时,神经网络中的不同神经元会响应对应的图像。此规律会连接到图像的标签,这种联系允许网络“学习”事物的样子。一旦经过训练,你就可以向网络显示它以前从未见过的图片。神经元将会被新图片激活,将该图片与特定类别相匹配。恭喜!您刚刚训练了机器学习视觉算法。

如果这些解释听起来都简单到令人不安,那是因为,从很多方面而言,它就是这么简单。像许多机器学习程序一样,视觉算法本质上只是模式匹配。这给予了它们一定的优势(例如,只要你拥有必要的数据和计算能力,就可以直接进行训练算法)。但这也给了它们某些弱点,比如说它们很容易被之前从未见过的图像输入弄糊涂这一事实。

自研究人员在2010年初发现了神经网络在视觉任务方面潜力以来,他们一直在钻研机制,试图弄清楚这些算法到底是如何完成任务的。

有一项名为DeepDream的早期实验,这是2015年发布的计算机视觉计划,意图将任何图片变成了自身的幻觉版本。DeepDream的视觉效果肯定是有趣的(在某些方面,它们定义了所谓人工智能美学),但该程序也是一个像算法一样的早期尝试。Olah说:“在某些方面,这一切都始于DeepDream。”
谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

像这样的DeepDream图像都被机器学习算法设计得尽可能有趣

DeepDream也即将图像调整为尽可能有趣的算法。看起来它似乎是在图像中发现“隐藏”的图案,但它更像是有人在着色书中涂鸦:用眼睛、茎杆、螺纹和鼻子填充每一寸空白——尽可能地激发算法。

后来的研究采用了同一基本方法并对其进行了微调:首先看是什么激发了网络中的单个神经元、神经元群以及网络中不同层的神经元组合。如果说早期的实验就像Isaac Newton用钝针扎自己的眼睛来理解视觉一样太专注,其结果很偶然,那么最近的研究工作就像Newton用棱镜分解光线一样更有目的性。通过反复绘制神经网络每个部分被激活的视觉元素,最终得到神经网络核心的视觉索引图集。
谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

缩小或放大激活地图集

激活地图集展示算法的内部运作

激活地图集实际上向我们展示了关于算法的内部运作的什么内容呢?我们可以先看看谷歌和OpenAI的例子,这是为了了解名为GoogLeNet或InceptionV1的著名神经网络的内部结构是如何创建的。

例子:hhttp://www.tmtpost.com/ttps://distill.pub/2019/activation-atlas

你可以看到网络的不同部分怎么对不同的概念做出反应,以及这些概念被怎样地聚集在一起(例如,狗和鸟被完全分开)。你还可以看到网络的不同层如何代表不同类型的信息。较低层更为抽象,响应基本的几何形状,而较高层将这些解析为可识别的概念。

当你深入研究分类时,你会发现这才是相当有趣的地方。谷歌和OpenAI给出的一个例子是通气管和戴水肺的潜水员这两类之间的区别。

在下图中,你可以看到神经网络用于识别标签的各种激活。左边是与通气管高度相关的激活,右边是与戴水肺的潜水员密切相关的激活。中间是两类共享的激活,而边缘部分的激活则差异更加明显。
谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

与通气管(左)和戴水肺的潜水员(右)紧密相关的激活

你一眼就能看出一些明显的颜色和图案。顶部看起来像颜色鲜艳的鱼身上的斑点和条纹,底部则像面具。右边突出显示的是一个奇怪的识别,很像火车头。当研究人员发现这一点时,他们很困惑。是不是关于火车头的视觉信息对戴水肺潜水员的识别很重要?

Carter说:所以我们测试了下,我们想如果我们加入一张蒸汽火车的车头的图片,它会有助于识别吗?意想不到的是,它真的有用。”
谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

三张图片展示了如何再分类同一张图片。左边被识别为通气管;中间加入火车头之后识别为潜水员;当火车头的照片足够大时被识别为火车头。

该团队最终找到了原因:这是由于火车头的光滑金属曲线在视觉上接近于潜水员的空气罐。所以对于神经网络来说,这是潜水员和通气管之间的一个明显区别。为了节省区分这两类的时间,它就从其他地方借用了所需的视觉识别数据。

这个例子神奇地揭示了神经网络的工作方式。对于怀疑论者而言,它展示了神经网络的局限性。他们会说,视觉算法可能是有效的,但他们学到的信息实际上和人类理解世界的方式天差地别。这会让他们怀疑一些做法。例如,你只是在图片中故意加入几个像素,神经网络就可能认不出这张图片。

但对于Carter和Olah这类人来说,激活地图集和类似的工具所揭示的信息展示了这些算法所达到的惊人的深度和灵活性。例如,Carter指出,算法为了区分潜水员和通气管,它还将不同类型的动物与这两类做分析。

关注算法内部结构可以让他们更为准确有效

“深水中的动物,比如海龟,会被识别为水肺,水面上的,比如鸟,会被识别为通气管,”他说。他指出,这是从未让系统学习的信息,但它自己学习了这些。 “这有点接近对世界更深层次的理解。这让我很兴奋。“

Olah同意,“我发现在高分辨率下看这些图集令人震撼,我看到了这些网络的巨大潜力。”

他们二人希望通过开发这样的工具,能有助于推动人工智能整个领域的发展。通过了解机器视觉系统如何观看这个世界,理论上我们可以更加有效地构建它们并更细致地检查它们的准确性。

目前工具有限,Olah说我们可以给系统抛出测试数据来试着欺骗他们,但这种方法总是受到已知错误的限制。 他说:“但如果我们想投入精力的话,这给了我们一个揭露未知问题的新工具,这感觉就像每一代工具都能让我们更加理解这些网络的内部核心。”

相关报道:

hhttp://www.tmtpost.com/ttps://distill.pub/2019/activation-atlas

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

https://t.co/nLfd0vpED4

更多精彩内容,关注钛媒体微信号(ID:taimeiti),或者下载钛媒体App

谷歌联合OpenAI发布“神经元显微镜”,可视化神经网络运行机制

随意打赏

AI 神经网络深度学习算法openai图像识别算法
提交建议
微信扫一扫,分享给好友吧。