谷歌大脑发布神经网络的「核磁共振」,并公开相关代码
神经网络的可解释性一直是所有研究人员心头的一团乌云。传统的尝试进行可解释性研究的方法是通过查看网络中哪个神经元被激发来来理解,但是即使我们知道“第538号神经元被激发了一点点”也毫无意义,并不能帮助我们理解神经元在网络中的意义。为了解决这样的问题 Google Brain的一些研究人员开发了神经网络特征可视化方法。
2015 年上半年的时候,谷歌大脑的人员就尝试将神经网络理解图像并生成图像的过程进行可视化。随后他们开源了他们的代码 DeepDream。这个方法出乎他们意料的是,竟然促成了一个小小的艺术运动,很多人通过可视化神经网络的技术生成了各种魔幻的作品。
去年在在线期刊 Distill 上,谷歌大脑的研究人员再次使用这项技术将单个神经元在网络中是如何工作的进行了可视化,这项工作让我们可以看到在网络中间的各个神经元如何一步步检测到图像中的各个事物,并且让我们看到随着网络层次的加深图像如何越来越复杂。雷锋网曾经在下面这篇文章中详细介绍过
《 谷歌的新CNN特征可视化方法,构造出一个华丽繁复的新世界 》
但是去年的这项工作漏掉了一项重要的事情:
这些神经元如何像网络那样连接起来的?
继去年发布神经网络特征可视化方法之后,今天 Google Brain 在神经网络的可视化上又进了一步。Google Brain 将这项工作称为「神经网络的核磁共振成像」,我们知道核磁共振技术是生理学家可视化大脑工作机理的最有用的工具之一。
Google Brain 在 Distill 发布的「The Building Blocks of Interpretability」这篇文章中,
作者探讨了如何将特征可视化与其他可解释性技术相结合,进而可以了解网络如何一步步做出决策的。这让我们能够「站在神经网络之中」看着网络如何一步步做出决策的整个过程。
目前作者已经公开其全部代码 Lucid,并放出 colab notebooks 以方便任何人使用 Lucid 来重现他们的文章。
雷锋网 AI 科技评论将 Google Brain 在 Distill 上的研究内容全文翻译如下:
可解释性的基石
前言
研究神经网络可解释性的技术往往都是单独研究的。这篇论文里,作者们提出了强有力的可视化界面,让读者得以把各种技术结合在一起;不仅如此,现在还可以探索合并后的空间的复杂结构。
比如,尝试把特征可视化(一个神经元在寻找什么)和归因(它对输出的影响如何)结合起来,我们可以开始探究网络是如何把拉布拉多和豹猫区分开的。
从网络中发现,识别狗时有好几个检测软塌塌的耳朵的检测器发挥了重要作用;而检测猫时就换成了尖耳朵的检测器
背景
随着神经网络越来越成功,新的需求也随之而来,那就是解释它们是如何做出决定的:包括基础性的研究证据说明它们在真实世界中的表现如何,如何检测模型的偏倚,以及纯粹为了科研目标。为了达到这些目标,我们不仅需要构建足够深入的抽象,而且也需要以丰富的可视化形式把它们表现出来。然而,目前关于可解释性的绝大多数研究都并没有做出很好的成果。(几个很有价值的是 Visualizing Representations: Deep Learning and Human Beings,Understanding neural networks through deep visualization(arXiv:1506.06579),Using Artificial Intelligence to Augment Human Intelligence)
整个机器学习社区的主要精力都花在了开发更强有力的新方法上,比如特征可视化(feature visualization)、归因(attribution)以及降维,以便理解和推理神经网络的行为。然而,这些技术都是各自沿着不同的研究路径在前进,相应需要的把成果具体化、实例化的研究却被忽略了。另一方面,人机交互研究社区已经开始探索为神经网络设计丰富的用户界面,不过他们对机器学习领域的抽象方法并没有多少接触。对于如何使用这些抽象结果,目前都还是以相对标准的方法。所以最终我们看到的就是过于简单的界面(比如显著性映射图或者相关的抽象神经元),其中有许多的值是留着未解释的。更糟糕的是,有很多关于可解释性的技巧并没有完全实施到抽象中来,因为研究者们并没有遇到什么压力来让结果更通用化和组合化。
在这篇文章中,作者们把现有的各种可解释性方法看作基础的、可以相互组合的基础结构,在它们基础之上构建丰富的用户界面。他们发现这些互相独立的技巧也能够以统一的形式组合起来,在最后得到的界面中发挥补充性作用。更重要的是,这种统一的形式可以让我们系统地探索可解释性界面的整个空间,让我们得以评估它们是否达到了特定目标。下文中将展示各种样式的界面,从中展示网络检测发现了什么,并且解释网络对物体的理解是如何逐步生成的,同时还把其中涉及到的信息保持在适合人类理解的尺度下。比如,我们将会看到一个看到了拉布拉多犬的网络是如何检测它软塌塌的耳朵的,以及这种检测行为是如何影响网络的分类结果的。
这篇文章的研究基于的模型是谷歌 GoogLeNet,选用它展现作者们的界面构建想法的原因是因为其中的神经元有强于一般网络的语义性。虽然这篇文章中作者们采用的是精心选择的任务和网络结构,其中的基础抽象手段和组合它们的方式还是可以用在其它领域的神经网络中。
让隐藏层有意义
近期关于可解释性的大部分工作都涉及神经网络的输入和输出层。 可以说,这主要是由于这些层具有明确的含义:在计算机视觉中,输入层代表输入图像中每个像素的红、绿、蓝通道的值,而输出层由类标签以及它们相关的概率。
然而,神经网络的强大之处是在于它们的隐藏层 —— 在每一层,网络都会发现新的输入表示。 在计算机视觉中,我们使用神经网络在图像中的每个位置运行相同的特征检测器。我们可以将每个图层的学习表示看作一个三维立方体。立方体中的每个单元格都是一个激活,或者神经元激活的数量。x轴和y轴对应图像中的位置,z轴是正在运行的通道(或检测器)。
图中用于计算机视觉任务的神经网络的不同的隐含层如何组成了激活值的“立方体”。对立方体的不同分割方法可以把激活值具体到单个神经元、单个空间位置或者单个通道
理解这些激活是很困难的,因为我们通常将它们作为抽象向量来工作:
通过特征可视化,我们可以将这个抽象矢量转换成更有意义的“语义字典”。
根据可视化结果,似乎可以认为网络中有一些检测器,分别对应软塌塌的耳朵、凸鼻子、猫头、毛茸茸的腿、草地等等。
为了制作一个语义词典,我们将每个神经元激活与该神经元的可视化进行配对,并根据激活的大小对它们进行排序。 激活与特征可视化的结合改变了我们与潜在数学对象的关系。 激活现在映射到图标表示,而不是抽象的索引,其中许多表现形式类似于人类的思想,如“松软的耳朵”、“狗鼻子”或“毛皮”。
语义词典的强大功能不仅仅是因为它们摆脱了无意义的索引,还因为它们用典型的例子表达了神经网络的学习抽象。通过图像分类,神经网络学习一组视觉抽象,因此图像是表示它们的最自然的符号。如果我们使用音频,更自然的符号很可能是音频剪辑。这很重要,因为当神经元看起来符合人类的想法时,很容易将它们缩减为单词。
但是,这样做是一项有损失的操作 —— 即使对于熟悉的抽象,网络也可能学到了更深的细微差别。例如,GoogLeNet具有多个「松软耳朵」检测器,它们可以检测到耳朵的下垂度,长度和周围环境略有不同。也可能存在视觉熟悉的抽象概念,但我们缺乏良好的自然语言描述,例如,在太阳浮于水面的地方拍摄特定的光线。此外,网络可能会学习到对我们来说异乎寻常的新抽象概念 —— 在这里,自然语言会使我们完败!一般来说,规范化的例子是一种更自然的方式来表示神经网络学习的外来抽象,而不是原生的人类语言。
通过为隐藏层带来意义,语义字典为我们现有的可解释性技术设置了可组合的构建块。正如我们将看到的,就像它们的基础向量一样,我们可以对它们应用降维。在其他情况下,语义词典允许我们进一步推进这些技术。例如,除了我们目前使用输入和输出层执行的单向归因外,语义词典还允许我们将特定的隐藏层归属到特定的隐藏层。原则上,这项工作可以在没有语义词典的情况下完成,但是结果意味着什么还不清楚。
网络看到了什么?
语义词典让我们能够对某个激活进行细致的考察,即每一个单个神经元能够检测到什么。建立了这种表示之后,我们同样也可以将一个激活向量作为整体来考虑。这里不再是将单个神经元可视化,而是将在给定空间范围内处于 fire 状态的神经元组合进行可视化。(具体来说就是,我们优化图像,以最大化激活点与原始激活向量的点积)
将这种技术应用于所有的激活向量,使我们不仅可以看到网络在每个位置检测到的内容,而且还可以了解网络对整个输入图像的理解程度。
mixed4d 层激活可视化
另外,通过跨层(例如「mixed3a」,「mixed4d」)的工作,我们还可以观察到网络对输入的理解是如何发展的:从检测早期图层中的边缘,到后期更复杂的形状以及物体的部分。
同一幅猫狗图像,不同层的神经元对同一个区域的激活可视化
不过,前面的这些可视化忽略了一个关键的信息——激活的量级大小。我们通过按照激活矢量的大小来缩放每个单元的面积,就可以指出网络在该位置检测到特征的强度了:
如何组装概念?
特征可视化帮助我们回答了「网络能够检测到什么」这个问题,但是它并没有回答网络如何组装这些单独的部分来达成后面的决策,或者为什么会做出这些决策。
归因(Attribution)是一组通过解释神经元之间的关系来回答这些问题的技术。现在市场上有各种各样的归因方法,但到目前为止却似乎没有一个能够给出明确的、正确的答案;事实上,我们甚至有理由认为我们目前的所有答案都不太正确。尽管如此,就本文而言,确切的归因方法并不重要,所以我们作为案例,使用一种最简单的方法——线性逼近关系。这种方法可以很容易地用其他任何技术来代替,所以未来对归因的改进也会相应地改善基于它们的界面。
关于归因方法有很多重要的研究,但就本文而言,确切归因方法并不重要。我们使用一种相当简单的方法,线性逼近关系,但很容易用其他任何技术来替代。未来对归因的改进,当然会相应地改善基于它们的界面。
显著图的空间归因
最常见的归因界面称为显著图(saliency map)——一种简单的热图,突出显示输入图像中最能引起输出分类的像素部分。我们发现这种方法存在两个缺陷。
首先,不清楚个别像素是否应该是归因的主要单元。这里每个像素的含义与其他像素极为纠缠,即使对简单的视觉变换(例如,亮度,对比度等)也会有很差的鲁棒性,此外单个的像素还远离高级概念(如输出类)。其次,传统的显著图是一种非常有限的界面类型——它们一次只能显示一个类的属性,并且不允许你更深入地探究单个点。由于它们没有明确地处理隐藏层,因此很难全面探索隐藏层的设计空间。
作为一种改进,我们将归因视为另一个用户界面的构建块(building block),并将其应用于神经网络的隐藏层。这样做了之后,我们同时也改变了我们的问题,我们不再问特定像素的颜色是否对「拉布拉多猎犬」的分类很重要,而是问在这个像素位置检测到的高级别想法(例如「松软的耳朵」)是否重要。这种方法与类激活映射(CAM)方法类似,但由于它们将结果解释回输入图像,因此它们错过了以网络隐藏层的丰富行为进行交互的机会。
越向后的层的归因结果看起来有越强的语义性。就像我们期待的那样,归因的结果就是软塌塌的耳朵、凸鼻子、猫头之类的我们熟悉的局部特征
令人惊讶的是,mixed4d 层中下方的凸鼻子特征和网球的特征有不少重合之处,这个特征之后也为“网球”和“拿着苹果的奶奶”这样的识别结果提供了支持
上图的界面为我们提供了较为灵活的归因关系。首先,我们从每个隐藏层的每个空间位置向所有 1,000 个输出类显示属性。为了将这个 1000 维的向量可视化,我们使用降维来产生多向显著图。在我们多尺度的激活网格上叠加这些显著图,从而提供归因空间的信息。激活网格能够将语义词典建立的视觉词汇属性固定下来。在某个像素上悬停,我们可以看到这个空间位置最有助于哪些类别的输出。
也许最有趣的是,这个界面允许我们交互式地查看隐藏层之间的归因。悬停时,额外的显著图会遮盖隐藏层,这在某种意义上就相当于「将光线照入黑箱」。这种层到层的归因或许将成为界面设计促进传统意义上可解释性抽象概括的一个主要例子。
通过这个图,我们开始考虑更高层次概念的归因。但是在某个特定位置上,会同时检测到许多概念,通过这个界面很难将它们分开。如果还继续关注空间位置,那么这些概念将仍然纠缠在一起。
通道归因
显著图通过对隐藏层的空间位置归因,隐式地切割了我们的激活立方体。在这种切割中聚合了所有的通道(Channel),因此我们无法确定每个位置上的哪个特定检测器对最终输出分类贡献最大。
当然还有另一种切割激活立方体的方法,那就是对通道的切割,而不是对空间位置的切割。这样做的结果就是,我们可以进行通道归因——每个检测器对最终输出的贡献到底有多大?(这种方法类似于Kim等人的同时期工作,他们对学习的通道组合进行了归因。)
这个图与我们前面看到的类似:我们进行层到层的归因,但这次是通过通道而不是空间位置。我们再一次使用语义词典中的图标来表示对最终输出分类有贡献的通道。将鼠标悬停在单个通道上会显示覆盖在输入图像上的激活热图。
图例还同时更新显示其对输出类的归因(即此通道支持的top类是什么?)。点击一个通道可以让我们深入了解层到层的归因,让我们显式地确定较低层中哪些是最有贡献的通道,或者较高层中哪些是最受支持的通道。
虽然这些图侧重于层到层的归因,但将注意力集中在单个隐藏层上仍然很有价值。 例如,先行图(teaser figure)可以让我们评估为什么某个类会更有优势。
从以上的讨论中,我们可以看到空间位置归因和通道归因在揭示网络模型方面的强大功能,特别是当我们将两者组合在一起的时候。但不幸的是,这类方法有两个显著的问题。一方面,它会给我们反馈大量的信息,由于长尾效应,这可能需要人工几个小时的审查才能弄明白哪些对输出只有轻微的影响;二是,这两种聚合方法会有大量的丢失,这可能会导致错过重要的情节。当然,我们可以通过对单个神经元进行工作来避免有损聚合,或者根本就不聚合,但这反过来又会出现第一个问题。
以人类为尺度
在前面章节中,我们考虑了三种将激活状态的立方体进行分割的方法:空间激活、通道、单个神经元。每一种方式都存在缺点。如果只使用空间激活或通道,会忽略掉整个情节中非常重要的部分。例如,「松软耳朵」探测器(floppy ear detector)帮助我们将图像分类为一只拉布拉多犬,当与那些没有利用到的地方相结合时,情节会有趣得多。你可以深入到神经元的层面来讲述整个情节,但是成千上万的神经元中包含太多信息了。即使是数百个通道,在分裂成单个神经元之前,也包含着太多信息!
只是想要在神经网络中制造有用的界面,还不足以让事情变得有意义。我们应根据人类需要,而不是依据大量无用信息。这样做的关键是找到更有意义的方法将激活分解,有充分的理由相信存在这样的分解。通常,许多通道或空间位置将以高度相关的方式协同工作,最有用的方法是将其视为一个单元。其他通道或位置几乎没有活动,在高级概述上可以被忽略。所以,如果我们有正确的工具,那就应该能够找到更好的分解手段。
有一个叫矩阵因子分解(matrix factorization)的研究领域,研究分解矩阵的最优策略。通过将立方体压成空间位置和通道的矩阵,我们可以应用这些技术来获得更有意义的神经元组群。这些组群不会像我们之前看到的组那样自然地随着立方体排列整齐,它们将是空间位置和通道的组合。此外,这些组群是用来解释网络在特定图像上的行为,在另一个图像上重用相同的分组是无效的,每个图像都需要计算一组独特的组。
除了之前那样把隐层中的神经元自然地分为单个神经元、空间位置、不同通道之外,作者们也考虑更灵活地跨越部分空间位置和通道把神经元分成不同的组
源于这个因子分解的组将是用户使用界面的原子。不幸的是,任何分组本质上都是将事物减少到人类规模与保存信息之间的折衷,因为任何聚合都是有损的。矩阵因子分解可以让我们挑选出针对特定内容优化的组,这比之前的自然分组要好。
用户界面的目标应该会影响矩阵因子分解优化的优先级。例如,如果想要优先考虑网络检测到的东西,我们就希望因子分解能充分地描述激活。相反,如果想要优先考虑改变网络行为的因素,我们希望因子分解能充分描述梯度。最后,如果想要优先考虑是什么导致了现在的行为,我们希望因子分解能充分地描述归因。当然,我们可以在这三个目标之间实现平衡,而不是仅仅只优化一个目标。
下图中,我们已经构建了一些组,我们利用非负矩阵因子分解,按优先级来分解激活。请注意大量神经元被简化成一小套组群的过程。
通过非负的矩阵分解,作者们把总数目很大的神经元分为一个个小组,让它们简明地总结出整个网络的运行状况。右图小方块的不同颜色对应了下方不同的特征分别占不同空间的激活值的主要成分
该图只关注单个层,但是,正如我们前面看到的,查看多个层以了解神经网络是如何将低级检测器聚合到高级概念中是很有用的。
我们优化了之前构造的组,以理解独立于其他层的单个层。为了同时理解多个层,我们希望每一层的因子分解都是「兼容的」——将早期层的组自然地组合到后面的层组中。这里我们也可以进行因子分解优化。
绿线表示正影响,红线表示负影响
在这一节中,我们认识到对激活立方体的分割方法是一个重要的接口决策。我们不再执着于于自然的切割,而是构建更优化的神经元组合。这些改进的分组更有意义,也更人性化,让了解网络的行为不再那么乏味。
我们这次的可视化方法只是基于提供更好的原子来理解神经网络,探索潜在可能性的一个开始。例如,当我们专注于创建更少指示来解释独立案例时,最近发现了有意义的「全局」指示,这是令人兴奋的工作——这样的依据在尝试一次理解多个例子或对比模型时尤其有用。
解释界面空间
本文中提到的界面思想将功能可视化和归因等模块儿结合在一起。编写这些模块儿不是一个随意的过程,而是遵循基于界面目标的结构。例如,如果界面强调网络所能识别的内容,则优先考虑其认知将如何发展,或者专注于让事情发展在人类可控范围内。为了评估这些目标,并理解这种权衡,我们需要能够系统地考虑可能的替代方案。
我们可以将界面视为各个元素的集合。
每个元素使用特定的呈现风格(例如,特征可视化或传统信息可视化)来显示特定类型的内容(例如,激活或归因)。该内容存在于由网络给定层如何分解为原子而定义的底层上,并且可以通过一系列操作(例如,将其过滤或将其投影到另一底层上)进行转换。例如,我们的语义词典使用特征可视化来显示隐藏层神经元的激活。
表达这种思维方式的一种方法是使用常规语法,但我们发现它对视觉化思考空间是有帮助的。我们可以将网络的底层(我们展示的那些层,以及如何将它们分开)作为网格,将网格的内容和风格绘制为点和连接。
这个设置为我们提供了一个框架,开始逐步探索可解释界面的空间。例如,让我们再次考虑我们的先行图(teaser figure)。其目标是帮助我们比较输入图像的两种潜在分类。
在这篇文章中,我们只是抓住了可能性的表面。我们的模块儿有很多可供探索的组合,并且设计空间为我们提供了一种系统化的方法。
而且,每个模块儿都代表了一大类技术。我们的界面只采用一种方法,但正如我们在每节中看到的,还有许多功能可视化,归因和矩阵分解的替代方法。下一步就是尝试使用这些替代技术和研究方法来改进它们。
最后,这不是一套完整的模块。随着新的发现,研究员们扩大了空间。例如,Koh&Liang 提出了解数据集示例对模型行为影响的方法。我们可以将数据集示例作为我们设计空间中的另一个底层,从而成为与其他基础块儿完全组合的另一个模块儿。
在这样做的时候,我们可以想象界面不仅允许我们检查「数据集示例」对最终输出分类的影响(如 Koh 和 Liang 提出的),而且可以观察「数据集示例」如何影响隐藏层的特征以及它们如何影响这些功能与输出之间的关系。例如,如果我们考虑我们的「拉布拉多猎犬」(Labrador retriever)图像,我们不仅可以看到哪些「数据集示例」对模型分类的影响最大,而且可以看到哪些「数据集示例」最能引起「松软耳朵」检测器触发,以及哪个数据集对探测器影响最大,增加了「拉布拉多猎犬」的分类。
尽管今天大多数模型都经过了优化简单目标函数的训练,而我们希望模型在现实世界中做的许多事情都是微妙的,并且很难用数学来描述。为这些微妙目标去训练模型的一个非常有用的方法是从人类的反馈中学习。然而,即使有了人类的反馈,如果模型的有问题的方面在人类反馈的训练体系中没有表现出强烈的意图,那么仍然很难训练模型让它以我们想要的方式行事。
人们对模型决策过程的反馈,可通过可解释界面进行推动,这可能是解决这些问题的有力解决方案。它可以让我们训练模型,不仅是为了做出正确的决定,也是是为了正确的可解释性。(然而,这里存在危险:我们正在优化我们的模型,以便我们的界面中查找我们想要的方式;如果不小心,这可能会导致模型愚弄我们)
另一个可能性是比较多个模型界面。例如,我们可能想要了解一个模型在训练期是如何演变的,或者当你把它迁移到新任务时,模型会如何变化。或者,可能想了解整个模型家族是如何相互比较的。现有的工作主要侧重于比较模型的输出行为,但最近的工作也开始探索比较它们的内部表示。这项工作的挑战之一是我们可能想要对齐每个模型的原子; 如果我们有完全不同的模型,我们能找到它们之间最相似的神经元吗?再聚焦,我们能开发接口,让我们一次性评估模型的大型空间吗?
这些界面有多大可信度?
为了让这些提供解释性的界面发挥出效果,我们就需要相信它们给出的故事和结论是可靠的。对于目前我们用的这一组技术和架构,作者们认为其中有两点是有疑虑的。
-
对于不同的输入图像,神经元们的意义是相对固定的吗,并且特征可视化这个过程对这些意义的表达是准确的吗?语义字典,以及在语义字典基础上建立的界面,都是建立在前面的问题有肯定答案的基础上的。
-
归因的结果是合理的吗?我们目前有的归因方法都是可以信任的吗?
有许多更早的研究都发现神经网络中的「方向」从语义角度讲是有意义的。其中有一个非常有力的例子,就是可以做「语义算数」,比如「皇帝」-「男人」+「女人」=「皇后」。在前一篇关于特征可视化的文章中作者们就基于 GoogLeNet 深入探索了这个问题,发现其中的多数神经元都可以对应某个有意义的想法。然而除了这部分神经元之外,作者们也发现了有很多神经元并没有非常确定的意义,其中有一些神经元会同时会对几种突出的特征产生响应(比如同时对汽车和猫)。对于这种状况,上述提出的界面也有自然的方法可以处理:可以用差异化的特征可视化结果发掘神经元可以接受的各种不同的含义,或者对语义字典做一些调整,让其中的部件之间更加去耦合。当然了,就像模型可以被欺骗一样,这些组成了可视化的特征也可以被欺骗,包括对于对抗性样本的情况。在作者们看来,思考研究特征的时候并不需要它们是完美无缺的,现在就已经可以起到很大作用。实际上,检测器「走火」的情况可能会更值得仔细琢磨。
对于归因方法,近期有研究表明许多目前所用的方法都不是很可靠。有的人可能会问,既然一个函数的输出是它的输入的非线性互动产生的结果,那么归因的设想怎么会有根本性问题呢。这种互动有可能展现出的一种问题就是「路径依赖」。对这个问题的自然的回答是在用户界面中显式地展现出这个信息:这个归因结果的路径依赖程度有多高。然而,我们还有更深入的担忧,就是这种路径依赖性是否是归因结果的主要成因。很显然,对于相邻的层来说,由于它们之间的连接映射很简单(近乎于线性),所以这并不是个问题。但同时相关联的输入也会带来一些技术问题,所以作者们相信归因方法还是站得住脚的。并且,即便对于相聚较远的层,作者们的经验也是高级别特征与输出结果之间的归因的稳定性也要比高级别特征与输入之间的稳定性更好。所以作者们认为在这里路径依赖并不是一个重要影响因素。
模型行为是非常复杂的一件事,受到目前的基础技术的限制,现在所能揭示出的只有其中的部分视角。关于可解释性的未来研究的一个重要方向将会是开发新的技术,借助它们覆盖到模型行为的更多方面。不过,即便有了这些改进,作者们也认为让人们对这些方法建立起信心的关键因素应当是展现出的界面不会误导人们。接触到和界面上显示出的显式信息的同时,不应该引发用户对模型产生不正确的隐式推断。作者们认为这篇文章中展示出的界面毋庸置疑在这方面还有提高的空间。基础研究,在机器学习和人机交互的交叉口部分的基础研究,必须要想办法解决这些问题。
对于可解释性的种种应用,作者们认为很大程度上需要相信他们的方法有效、可靠。这一方面是因为不考虑可解释性的风险很高(比如在安全和医疗领域),另一方面也是因为人们已经有了这样的想法,想要训练一个带有可解释性反馈的模型,就可以在对抗性训练的过程中使用所提的可解释性方法。
结论 & 未来研究
关于如何和枚举性的算法互动,还有非常大的设计空间,作者们相信和神经网络互动的设计空间也同样地大。为了构建出强有力的、值得信任的关于可解释性的用户界面,研究者们面前还有很多的工作要做,不过一旦做出了全面的成果,可解释性必将成为人类指导构建公平、安全、协调的 AI 系统的有力方法。
via GoogleBlog & Distill ,雷锋网 (公众号:雷锋网) AI 科技评论编译
相关文章:
谷歌的新CNN特征可视化方法,构造出一个华丽繁复的新世界
。