编译 | Mr Bear
编辑 | 丛 末
随着深度学习研究步入深水区,人们逐渐从简单地应用 CNN 转向对其内在视觉机理与可解释性的探究。本文是一篇来自 OpenAI 研究团队的实验性论文,从数据、可视化、归因分析等方面全面分析了 CNN 神经元中的曲线检测机制,是一篇利用神经科学原理研究深度学习技术的精彩范例。
图 1:上图中径向辐射的调谐曲线可视化了 InceptionV1 的四类曲线中的曲线神经元如何激活不同方向上的人工合成渲染的曲线。
早在 2013 年,Zeiler 和 Fergus 的论文「Visualizing and understanding convolutional networks」就已经提出了视觉模型中的曲线检测器。在神经科学领域中,研究人员也对相似的神经元进行了深入的研究。
本文作者认为,解释性机器学习研究社区存在疑虑的问题包括:神经网络表征是否由有意义的特征组成,即是否可以追踪到可以清晰地表征的图像特征?一方面,许多论文展示了一些看似有意义的特征,如眼睛探测器、头部探测器、汽车单侧器等等。然而也有许多人怀疑这些成果只在文献中才部分成立。与此同时,也有人担心看似十分有意义的特征实际上可能并不是它们在论文中表现出来的那样。
一些论文指出,神经网络的强大之处主要是检测纹理或不易察觉的模式,而不是前面所描述的那些「有意义」的特征。并且,即使存在一些有意义的特征,它们也有可能在网络中并没有扮演特别重要的角色。比如说一个人观察到一个看起来像狗头探测器的东西,那么它实际上可能只是一个探测与狗头相关的特殊纹理的探测器。
这种分歧真的很重要。如果每个神经元都是有意义的,并且它们的连接形成了有意义的回路,我们相信这将开辟一条通往完全的逆向工程和可解释性神经网络的道路。当然,大家都知道并不是所有的神经元都是有意义的,但是我们已经看到了走通这条道路的曙光。
作者认为,可以借助曲线检测器在这一问题上取得很好的进展。曲线检测器似乎是从边缘检测 Gabor 滤波器(研究社区普遍认为它形成了第一个卷积层的结果)又适当地前进了一步。此外,我们可以用它很容易地生成人为合成的曲线,这为严谨的研究提供了许多可能性。
该模型实现的曲线检测底层算法相当复杂。如果本文能够说服怀疑论者至少相信曲线检测器存在的合理性,那么这似乎是向前迈进了一大步。同样地,如果本文能呈现一个更精确的分歧点,也可以促进社区之间的对话。
1
曲线神经元简介
在介绍详细的实验之前,我们先从宏观上来看看3b 层中的 10 个神经元是如何工作的(注:3b 为神经层的编号,下文中的3a、4a 都为神经层的编号):
图 2:通过特征可视化技术创建的每个神经元的理想曲线,我们使用优化方法来寻找超强的刺激。
每个曲线检测器都实现了相同算法的一个变体:它响应各种各样的曲线,优先响应方向特定的曲线,并随着方向的变化逐渐降低激活程度。曲线神经元对亮度、纹理、和颜色等表面特性具有不变性。
图 3:神经元的最大激活归一化结果。
曲线探测器的激活是很稀疏的,它们只对 ImageNet 上 10% 的空间位置有反应。当它们的激活值很大时,它们响应的是具有相似方向和曲率的曲线,进而可视化它们的特征。
图 4:数据集中激活3b层中 379 号神经元(以下统用 3b:379指代)的图像都包含与理想曲线相似的曲线。
曲线探测器这种看似有意义的特征是存在的,这十分值得我们回顾和反思。神经网络并没有使用显式的刺激来形成有意义的神经元。也就是说,我们并没有将这些神经元优化成曲线探测器!相反,我们训练 InceptionV1 将图像分类。在这个过程中,许多有关曲线的抽象的层被移除掉了,曲线探测器在梯度下降过程中被破坏。
此外,在经典的计算机视觉领域中,在各种各样的自然图像中检测曲线是一个有待解决的问题。InceptionV1 似乎学到了一种灵活而通用的解决方案,它使用 5 个卷积层来实现这种方案。
我们认为,之所以会存在「神经元是否检测到了特定的刺激」这样的分歧,部分原因是由于正在进行各种各样的论证。根据实证经验,我们很容易证明:当曲线探测器被强烈激活时,刺激结果是一条明显的曲线。不过,其它的一些观点可能更具争议:
- 因果关系:曲线探测器真正探测到的是曲线的特征,而不是另一种与曲线相关的刺激。我们相信我们的特征可视化和可视化归因实验建立了一种因果关系,因为「逆向运行」网络可以产生一条曲线。
- 泛化能力:曲线探测器对各种曲线刺激作出响应。它们可以应对很大范围内的半径变化,并且对颜色、亮度、纹理等属性具有很强的不变性。我们相信,我们显式地测试了对这些合成刺激的不变性,这是最令人信服的证据。
- 纯度:曲线检测器的意义是单一的,它们没有有意义的次要功能。导致曲线探测器激活较弱的图像(如边缘或夹角),是 InceptionV1 用来实现曲线检测的算法的自然扩展。我们相信,我们将数据集中的样本分类为不同的激活值量级并可视化其归因的实验表明:我们很少需要曲线检测器的次要功能。
- 曲线族:曲线神经元会协同工作,共同涵盖各个方向的曲线。
2
特征可视化
特征可视化技术通过优化找出一个最大化给定目标的神经网络。特征可视化技术之所以强大,原因之一是它能够向我们揭示因果关系。由于我们首先接收随机噪声作为输入,然后再优化像素而不是优化生成式的先验,我们可以确信,结果图像中的任何属性对目标都有贡献。
图 5:通过特征可视化技术创建的每个神经元的理想曲线,我们使用优化方法来寻找超强的刺激。
在观察特征可视化结果时,最重要的是忽略曲线的形状。你可能注意到了,在上图中,曲线的每一侧都有明亮的、色调相反的颜色,这反应了曲线探测器的一种偏好:在曲线的边界处会出现颜色变化。最后,如果你仔细观察,你会发现一些垂直于曲线边界的小线条。我们将曲线检测器对这种小垂直线的弱偏好称为「梳毛」(Combing)。
特征可视化可以帮助我们找到最大限度激活神经元的图像,但是这些超强刺激是否能代表神经元的行为呢?
当我们看到一个特征可视化结果时,我们经常会想象神经元对于与其性质相似的刺激产生强烈的响应,并且随着表现这些视觉特征的刺激减弱而逐渐变弱。但我们可以想象在非极端激活的情况下神经元的行为是完全不同的,或者在这种情况下,神经元对杂乱的极端刺激反应微弱,但对次级刺激也反应微弱。
如果我们想了解神经元实际上是如何工作的,我们应该直接观察他对数据集中图像的实际反映。
3
数据集分析
由于一些实验需要大量的工作量,当我们研究数据集时,我们将重点关注3b:379的曲线。不过,本节的核心思想将适用于 3b 层中的所有曲线检测器。
当我们研究使用 ReLU 的网络时,我们会发现观察预激活(pre-activation)值的分布是很有帮助的。由于 ReLU 仅仅将原点左侧的部分截去,因此很容易推断出后激活(post-activation)值,但它也向我们展示了在另一种情况下,神经元的输出与激活结果有多么接近。我们发现3b层379 号神经元的预激活均值约为 -200。在整个数据集中,由于负值会被 ReLU 激活函数截断为 0,只有 11% 的情况下会激活。
如果我们观察一下概率的对数,我们会发现激活机制遵循一个指数分布,这对应于图中的一条直线。结果,由于概率密度的衰减服从
而不是与高斯函数同阶的
,我们预计这里的概率服从一个长尾分布。
图 6:通过观察 3b:379 激活的 pre-ReLU 值,我们发现正值和负值都遵循了一个指数分布。由于所有的负值都会被 ReLU 截断到 0,3b:379 的激活是稀疏的。在整个数据集中,只有 11% 的刺激会引起激活。
为了定性地理解这种分布的不同部分,我们可以通过激活、随机采样使得 3b:379 进行不同程度的图像,来渲染一些图像。这些图像显示出了一些模式。引起最强激活的图像中有与神经元特征可视化结果类似的曲线。引起较弱的正激活的图像是不完整的曲线,它们要么过于平直、要么方向不对,或者有其它的缺陷。导致 pre-ReLU 激活值在 0 点附近的图像往往是直线或没有弧度的图像(尽管有些图像的曲线方向大约偏离了 45 度)。最后,引起最强负激活的图像中有与神经元的理想曲线方向偏离角度超过 45 度的曲线。
图 7:(1)当激活值在(400,800)的区间内时,神经元的输出为曲线,即具有最强的激活的图像有与神经元的理想曲线相似的朝向和曲率。(2)当激活值在(0,400)的区间内时,神经元的输出为不完整的曲线,即具有弱激活的图像与神经元的理想曲线相似,但是并不完全相同。(3)当激活值在(-300,0)的区间内时,神经元的输出为直线或无关的图像,即激活值在 0 附近的图像往往包含纹理或直线。(4)当激活值在(-800,-400)的区间内时,神经元的输出为反向的曲线,即强烈抑制曲线神经元的图像包含具有朝向相反的曲线。
上图中的图片揭示了一系列广泛的激活模式,但是它们可能会对人产生一些误导。当我们将图像中与感受野大小相同的图块裁剪出来时,神经元对其的激活值仅仅是一个数字,所以我们不能确定图像中的那一部分让我们得到了这个数字。因此,我们可能会被虚假的相关性所误导。例如,由于许多引发对 3b:379 最强的激活的图像都是时钟,我们可能认为神经元检测到的是时钟,而不是曲线。
想要了解为什么一幅图像会激活一个神经元,我们可以使用特征可视化技术来将进行图像对神经元的归因分析。
4
可视化归因分析
我们用于研究神经元的大多数工具(包括特征可视化),都可以通过归因分析的方式,在特定图像的上下文中使用。
关于如何在神经网路中做归因分析,还有大量的工作需要做。这些方法试图描述哪些像素或之前的神经元造成了当前分析的神经元的激活。通常,对于复杂非线性函数来说,关于哪些归因方法是有条理的、这些归因方法是否可靠等问题都存在很大的分歧。但是对于线性函数而言,归因分析被广泛认可,而大多数方法都会得到相同的答案。在关于
的线性函数中,成分 x_i 对于输出的贡献是
。而描述每个成分的贡献的归因向量(或张量)可以写作
。
由于神经元的预激活函数和偏置值使其前一层中的神经元的线性函数,我们可以使用这种被广泛认可的归因方法。具体而言,3b 中曲线检测器的预激活值是 3a 的线性函数。描述前一层中所有神经元如何影响给定的神经元的归因张量是激活值与权值的点积。
我们通常使用特征可视化技术来创建一个激活单个神经元的超强刺激,但是我们也可以使用它来激活神经元的线性组合。通过将特征可视化应用于归因张量,我们创建了能够最大化激活 3a 中的神经元(这些神经元使得 3b:379 被激活)的刺激。此外,我们将使用归因张量的绝对值,它显示了使神经元被激活/抑制的特征。这对于观察影响曲线神经元的曲线相关视觉特征是有益的,即使有时这些特征是起抑制作用。
综合以上方法,我们得到的可视化归因方法可以表示为:
,其中 W 是给定神经元的权重,
是之前的隐藏层的激活值。直积上,我们发现使用灰度值和透明度对这些归因可视化方法进行参数化是十分有用的,这可以使可视化结果更容易被非专业人员理解。
图 8:可视化归因分析结果。
尽管上述可视化结果用到的图像来自于 3a,但它已经足以证明归因分析是一种强大且灵活的工具,我们可以将其用来以各种方式研究神经元回路。例如,我们可以对图像在各个 InceptionV1 3b 之前的几层中的神经元族之间流动的方式可视化下来,从前到后可视化每一族曲线神经元的图像的激活向量和归因向量。每个激活向量都会显示一族神经元看到了图像中的什么内容,每个归因向量都会告诉我们神经元对激活 3b:379 有多大贡献。
5
与人类分类结果的比较
本文作者之一 Nick Cammarata 手动地将超过 800 张图片标记为四组:曲线、不完整曲线、无关图像、反向曲线。我们从 3b:379 的激活中,以 100 个为一组,随机抽取了固定数目的图像组合。在进行标注时,Nick 只能看到图像的像素,而不能看到其它的信息(例如神经元的激活或归因可视化结果)。它在标注的时候用到了以下的标签:
- 曲线:图像中有一条与神经元的特征可视化结果方向相似的曲线。这条曲线的宽度在图像中占很大的比例。
- 不完整曲线:图像中包含与神经元的特征可视化结果相似的曲线,但是至少有一个重大缺陷(线条太平直、有一个破坏了弧度的折角、方向有所偏离)。
- 无关图像:图像中并不包含曲线。
- 反向曲线:图像中有一条与神经元的特征可视化结果方向偏差大于 45 度的曲线。
手动标记完成后,我们对比了 3b:379 的图像激活和人工标注结果。在下面的堆叠图中,我们可以看到不同的标签可以明显地被划分到不同的激活模式中。
图 9:橙色代表反向曲线,浅黄色代表无关图像,浅蓝色代表不完整曲线,蓝色代表曲线。在我们手工标注的约 850 张图像组成的数据集中,不同的 3b:379 激活值对应的条件概率。
尽管如此,仍然有许多导致神经元被激活的图像没有被分类为「曲线」或「不完整曲线」。当我们可视化 3b:379 的归因结果时,我们会发现许多图像包含细微的曲线部分。
图 10:数据集中激活 了 3b:379 但被人类标记为「无关图像」的数据示例,它们往往都包含细微的曲线,我们通过可视化图像对曲线神经元的归因向量来揭示这种模式。在这些例子中,似乎 3b:379 是一个超越人类的曲线检测器。
激活谱上不同的点分别有多重要?
虽然 3b:379 在被强烈激活时似乎对于曲线刺激具有很强的选择能力,但是它却很少被激活。在大多数情况下,它并不会被激活,即使被激活往往激活程度也很微弱。
下图为所有的 ImageNet 示例的激活值的概率密度,不同颜色的曲线对应于我们手工标记数据集中每个激活值(x 轴)代表的类。
图 11:尽管我们从手动标注数据集中均匀地对激活值进行采样,但是被分类为曲线的图像也很少。而 3b:379 的激活值服从一个指数分布。
如上图所示,我们甚至看不到神经元被强烈激活的情况。随着激活值增加,概率密度呈指数级衰减,所以这种激活是非常罕见的。
现在,我们还不清楚观察概率密度函数是否是研究神经元的正确方法。绝大多数情况下,神经元并没有被激活:事实上这很重要吗?如果一个神经元很少被激活,那么它对于理解神经元在网络中的作用又有多重要呢?
另一种衡量激活谱不同部分重要性的方法是思考其「期望值贡献」——
。这种测量的方法可以被认为是给出了对激活值影响神经元输出的模式以及扩展网络行为的近似。
图 12:对不同激活的期望值的贡献,上图显示出了每个激活值对神经元输出的影响。由于曲线在数据集中很少见,若神经元激活对于期望值的贡献往往更大。
当我们之前观察概率密度函数时,有人可能会怀疑 3b:379 是否真的是有意义的曲线探测器(即使当它被强烈激活时,它对曲线刺激是高度选择性的)。但由于这种强烈激活的情况几乎在概率密度函数图中看不见,它怎么会起很大的作用呢?然而,对期望值的贡献表明,即使用保守的方法,曲线和不完美曲线的贡献也占 55% 。
到目前为止,我们的实验表明,3b: 379 的激活,似乎大致相当于人类判断图像是否包含曲线。此外,可视化这些图像的归因矢量的实验告诉我们,这些图像之所以被激发是因为图像中的曲线,而我们并没有被欺骗性的相关信息所愚弄。
但是这些实验还不足以支撑曲线神经元能够检测曲线图像的说法。由于曲线图像在数据集中出现的频率较低,使得利用曲线图像进行系统的研究变得十分困难。我们接下来的几个实验将直接关注这一点,研究曲线神经元对合理曲线图像空间的反应。
6
联合调谐曲线
我们的前两个实验表明,每个曲线检测区针对不同方向的曲线会做出反应。下一个实验将帮助我们验证他们是否真的能够检测到相同特征旋转之后的不同版本,并且描述每个单元对方向变化的敏感程度。
我们通过创建一个「联合调谐曲线」(Joint Tuning Curve)来进行实验,该实验说明了如果我们将自然数据集中会激活特定曲线检测器的示例进行旋转,所有曲线检测器将如何反应。
每个神经元最主要的方向周围都会有一个高斯函数一样的突起,当每个神经元停止激活时,另一个神经元会被激活,它们合在一起就包含了所有的曲线方向。
图 13:旋转数据集中的示例后,神经元的反映示意图。在上图中,我们收集了最大限度激活神经元你的数据集示例,将它们以一度为一个单位,旋转 0 到 360 度,记录其激活值。我们将收集到的激活值进行评议,从而对齐每个神经元的响应点,最后对曲线取平均来创建一个典型的响应曲线。
虽然调谐曲线对于测量自然图像不同扰动状态下的神经元激活非常有用,但是我们在这些图像上所能做的扰动种类是有限的。
7
人为合成曲线
尽管数据集给我们提供了几乎所有可以想象到的曲线,但是它们并没有诸如方向或半径之类的标注数据,这使得回答那些需要系统地测量视觉属性响应(曲率、方向、颜色等)的问题变得很困难。我们手动画了一条曲线(并进行标注)从而深入研究这些问题。使用这样人为合成的刺激是研究视觉神经科学的一种常见方法,我们发现它对人工神经网络的研究也十分有帮助。本节中的实验在很大程度上受到了类似的研究曲线探测生物神经元的实验的启发。
由于数据集表明曲线对于方向和曲率最为敏感,因此我们将使用这两个属性作为曲线渲染器的参数。下面的热力图有助于我们以清晰的方式了解是什么导致了神经元的激活。
图 14:创建如最上方一行人为合成的刺激曲线有助于研究神经元的表现。我们可以观察哪些刺激激活了 3b:379。
如上图所示,引起最强激活的曲线图像的激活值高于数据集中的平均激活值 24 个标准差。它们具有与神经元的特征可视化结果相同的方向与曲率。
图 15:人为合成图像的激活热力图。
为什么我们会在上图中看到细长的三角形?
这种三角形的几何结构表明,曲线探测器在曲率较高的曲线上响应的方向范围更广。而这种细长的条束表明,方向或者曲率的微笑变化可以引起激活值的剧烈变化,这说明曲线探测器是脆弱、不鲁棒的。不幸的是,在各个神经元族中都普遍存在该问题,我们在第二层 conv2d1 的 Gabor 族中就发现了这个问题。
除了测试方向和曲率,我们还可以测试其它的变量,比如曲线形状的填充度,或它们是否有颜色。对数据集的分析显示,曲线探测器对于光照、颜色这种装饰性的特征具有不变性,我们可以通过人为合成的刺激验证这一点。
图 15:曲线对于填充度和颜色具有不变性。
8
人为合成夹角
我们的合成曲线实验和数据集分析都表明,虽然曲线对方向很敏感,但是它们对曲线半径有很大的容忍度。在极端情况下,曲线神经元对很窄的方向区间内的边缘有部分响应,这些边缘可以看作是无限半径的曲线。这可能使我们认为曲线神经元实际上对许多具有正确方向的形状作出响应,而不是特定的曲线。虽然我们不能系统地绘制所有可能的形状,但我们认为夹角是研究这一假设的一个很好的测试案例。
图 16:在上图中,y 轴代表半径,x 轴代表方向。
上图中的激活形成了两种明显不同的线段,它们的连接部位激活最强烈。每一条线段都是组成与曲线切线对齐的夹角的两条线段的其中之一。该夹角和具有与神经元的特征可视化结果相匹配的方向曲线最相近。右侧较弱的激活原因相同,而角度刺激的抑制部分面向外侧而不是内侧。
图 17:夹角与曲线切线匹配情况。
在下面的例子中,我们展示了一系列的刺激,它们从夹角过渡到曲线。每一列最强中烈的激活比之前的每列更强,因为更圆的刺激更接近曲线,导致曲线神经元的激活更强烈。此外,当每个刺激变得更加圆时,他们的「激活三角形」填充度越来越高,从原始的夹角刺激过渡到一个平滑的弧线。
图 18:我们从左到右分别展示了从夹角过渡到曲线的刺激,刺激逐渐变得更加圆润。我们看到每个神经元的最大激活一步步递增,随着由两条线段组成的夹角逐渐变化为一个圆弧,激活三角形逐渐被填充。
9
辐射状径向调谐曲线
图 19:径向调谐曲线,给定合成刺激的正激活值,对曲率做平均,得到夹角的激活值。围绕一个中心园,用与夹角大小对应的激活值对应的半径围出一个封闭的曲线空间。我们可以围绕同一个圆渲染多个神经元的激活曲线空间,从而直观地理解曲线检测层如何响应合成刺激。
10
InceptionV1 的曲线族
到目前为止,我们一直在观察 3b 层中的曲线神经元。但是 InceptionV1 实际上包含四个连续层的曲线神经元,3b 则是其中的第三层。
图 20:InceptionV1 网络示意图。
1、conv2d2
「conv2d2」(简称「2」)是 InceptionV1 中的第三个卷积层。它包含两种类型的曲线检测器:同心曲线和梳毛边。
同心曲线是一种小型的曲线检测器,它偏向于检测出同一方向上的多条半径越来越大的曲线。我么认为这一特征对于改进 3a 和 3b 曲线探测器有一定的作用(因为他们能够容忍较大的半径变化范围)。
图 21:同心曲线刺激示意图。
梳毛边可以检测从一条较大的线上垂直延伸出的几条线,这些延伸出来的线又可以检测曲线,从而成为一种曲线检测器。这些神经元被用来构建较为靠后的层中的曲线检测器(我们将其称为梳毛效应)。
通过观察 conv2d2 中的激活模式,我们发现曲线对一定连续范围内的刺激作出响应,但是对于另外一边 180 度内的刺激来说,它们的激活较弱。我们将这个现象称为「次级回波」(secondaty range echoes)。
图 22:conv2d2 中的激活模式。
2、3a
由 3a 层形成的非同心曲线检测器在某些方面与 3b 中的曲线检测器相类似。一个不同之处是,3a 的曲线存在回波。
图 23:3a 层中的激活模式。
3、3b
本文重点关注 3b 层的曲线检测器,它们有干净的激活模式,不存在回波。3b 的径向调谐曲线顶部有两个较大的「缺口」,底部有一个较小的「缺口」。其中一个原因是,该模型具有「双曲线检测器」,它会对两个不同方向的曲线做出相应,并帮助填补缺口。
图 24:3b 层中的激活模式。
4、4a
在4a 中,网络构造了许多复杂的形状,如螺旋线和边缘检测器,它也是第一个构造三维几何的层。它有几个曲线探测器,但我们更相信它们对应于特定的世界中的物体,而不是抽象的形状。许多这样的曲线都可以在4a 的 5x5 分支中找到,这个分支似乎专门检测三维几何形状。
图 25:4a:406 神经元响应的刺激。
图 26:4a 层的激活模式。
10
再利用曲线探测器
我们研究曲线神经元是为了更好地理解神经网络,而不是因为我们对曲线本身感兴趣。但是在研究过程中,我们意识到曲线检测对于航空影像、自动驾驶汽车和医学研究等领域是非常重要的,并且在每个领域都有大量关于曲线检测的经典计算机视觉文献。我们已经建立了一个利用曲线神经元族来完成几个不同的与曲线相关的计算机视觉任务的技术原型。
其中一个任务是「曲线提取」,这个任务旨在突出图像中属于曲线的一部分的像素。可视化这些曲线神经元的归因结果,就可以被看作一种曲线提取的过程。在这里,我们将其与常常用于检测 X 光片中的血管的 Canny 边缘检测算法进行对比。
图 27:「Curve tracing and curve detection in images」中曲线提取的示例。
归因可视化能够清晰地区分和显示直线和曲线,并且显示较少的视觉伪影。然而,它表现出一种强烈的梳毛效应ーー从被追踪的边缘散发出不想要的垂直线。我们不确定这些线在实际应用中的危害程度,但我们认为可以通过编辑曲线神经元的回路来消除它们。
1、样条参数化
我们可以通过改变优化的内容来访问该空间中更多的部分。到目前为止,我们一直在优化像素,但我们也可以创建一个可微的渲染曲线的参数化过程。通过从归因到输入,再到其中的样条节点的反向传播,我们可以「追踪曲线」,得到能够最好地拟合描述图像中的曲线的样条的函数。
图 28:样条参数化过程。
2、样条闭合性
图 29:即使曲线有明显的遮挡,我们的样条也可以追踪曲线。此外,我们还可以利用属性构造复杂的闭合规则。例如,如果样条线与特定对象或纹理重叠,我们可以对其进行强烈的惩罚,从而抑制样条线将被这些特征遮挡的视觉曲线连接起来。
细微的曲线:
图 30:由于曲线神经元对于大量自然视觉特征是鲁棒的,我们的曲线追踪算法可以被用于图像中的细微的曲线。
复杂的形状:
图 31:复杂形状中的曲线追踪。
3、算法整合
图像分割看似与上述算法毫不相关。我们可以通过一种无监督的方法使用非负矩阵分解(NMF)实现它。我们可以利用样条参数化机制来追踪图像中不同物体的曲线,从而可视化这些因素的归因。
图 32:从左到右分别为原图、曲线追踪结果、追踪到的非负矩阵分解成分。
我们可以同时分解大量蝴蝶图像来寻找网络中对蝴蝶做出相应的一组神经元,而不是分解单个图像的激活。对激活进行因子分解和普通图像分割的一个很大的区别是我们得到的是一组神经元而不是像素。这些神经元组通常可以用来寻找图像中的蝴蝶。通过使用可微样条参量化进行组合,我们可以得到一个单一的优化结果,我们可以应用到任何图像上,从而自动地找出蝴蝶,并给出适合它们的样条公式。
图 33:我们追踪了 23 张蝴蝶图像,上面是 15 张我们最喜欢的实验结果。
11
梳毛现象
曲线检测器的一个奇怪之处在于,它们似乎对垂直于曲线的小线条响应很大。
许多模型的曲线检测器似乎都发生了梳毛效应。实际上,生物神经网络中也存在一些较弱的证据:一个研究小组在猕猴视觉皮层的 V4 区域进行了一个类似于特征可视化的实验,他们发现一个带有向外凸出的线条的圆形是激活程度最高的刺激之一。
图 34 :普遍存在的梳毛现象。
一种解释该现象的假设是:现代世界中许多重要的曲线都有垂直的线条,例如车轮的辐条或中报边缘的刻度。
图 35:现代社会中垂直于曲线的线条。
一个相关的假设是,在某些情况下,梳毛效应可能使曲线检测器能够被用于毛皮检测。另一个假设是,在具有向前延伸的垂直线时,曲线具有更高的「对比度」。回想一下,在数据集分析的例子中,最强的 Pre-ReLU 负激活是反向的曲线。如果一个曲线探测器想要看到曲线和它周围的空间之间方向的强烈变化,它可能会认为垂直线比纯色更具对比度。
12
结语
与神经科学等领域相比,人工神经网络使细致的研究变得容易。我们可以读写神经网络中的每一个权重,使用梯度来优化刺激,并分析数据集中数十亿真实的激活模式。通过构建这些工具,我们可以进行大量的实验,从不同的角度观察一个神经元。
本文提到的许多研究路线引出了研究神经元新技术,如合成刺激或使用回路编辑技术来对神经元的行为进行消融实验。其它的方法只与某些神经元族有关,例如等方差模体或手动训练的「人工神经网络」,它重新实现了曲线检测器。
如果我们更广泛的目标是完全的神经网络逆向工程,那么仅仅研究一个神经元族似乎就需要付出如此多的努力。然而,根据我们在不同深度上研究神经元族的经验,我们发现很容易理解神经元族的基础。例如OpenAI 显微镜就可以展示了可视化、数据集示例,并且很快就能在几秒钟内显示出权重。由于特征可视化显示了强有力的因果行为证据,而数据集示例显示了神经元在实践中的响应,这些都是神经元行为的强有力证据。
尽管我们往往能一眼就了解神经元族的主要功能,但是随着对神经元族进行更加深入的研究,研究人员会发现其更深层次的美。