Toy Models of Superposition¶
Sep 14, 2022 · 原文: https://transformer-circuits.pub/2022/toy_model/index.html
如果人工神经网络的单个神经元恰好对应输入中清晰可解释的特征,那将非常方便。例如,在一个"理想"的 ImageNet 分类器中,每个神经元只会在出现特定视觉特征时激活,比如红色、朝左的曲线或狗的鼻子。从经验上看,在我们研究过的模型中,确实有一些神经元能清晰地对应到特征。但特征与神经元的对应并不总是这么清晰,尤其是在大型语言模型中,神经元对应干净特征的情况实际上相当罕见。这引出了许多问题:为什么神经元有时与特征对齐、有时却不对齐?为什么有些模型和任务中有大量这样干净的神经元,而在另一些模型和任务中却极为罕见?
在本文中,我们使用玩具模型(toy model)——在带有稀疏输入特征的合成数据上训练的小型 ReLU 网络——来研究模型如何以及在什么情况下表示的"特征数会超过自身维度数"。我们把这种现象称为叠加(superposition)\cite{arora2018linear,goh2016decoding,olah2020zoom}。当特征稀疏时,叠加能够实现超越线性模型的压缩,代价是需要非线性过滤的"干涉"。
考虑这样一个玩具模型:我们把五个重要性各不相同的特征1嵌入二维空间进行训练,之后加上一个 ReLU 用于过滤,并改变特征的稀疏程度。当特征稠密时,模型学会表示最重要的两个特征所构成的正交基(类似于主成分分析可能给出的结果),另外三个特征则未被表示。但如果让特征变得稀疏,情况就变了:

这张图和另外几幅图都可以用我们 Github 仓库 中的 玩具模型框架 Colab 笔记本 复现。
模型不仅可以通过容忍一定的干涉把额外的特征以叠加方式存储起来,我们还将证明,至少在若干有限的情形下,模型能够在叠加中执行计算。(具体来说,我们将展示模型可以把计算绝对值函数的简单电路放入叠加之中。)这让我们提出一个假说:我们在实践中观察到的神经网络,在某种意义上是在带噪地模拟一个更大的、高度稀疏的网络。换句话说,我们训练出来的模型或许可以被认为是在"做同样的事"——与一个想象中的、大得多的模型一样,表示完全相同的特征,只是不存在干涉。
特征叠加并不是一个新想法。此前已有不少可解释性论文考虑过它 \cite{arora2018linear,goh2016decoding,olah2020zoom,elhage2022solu},它与数学中研究已久的压缩感知课题 \cite{donoho2006compressed} 密切相关,也与神经科学 \cite{thorpe1989coding} 和深度学习 \cite{bengio2013representation} 中的分布式表示、稠密编码和群体编码等思想紧密相连。那么,本文的贡献又是什么呢?
对于可解释性研究者来说,我们的主要贡献是:在一个相对自然的设定下,直接证明叠加确实会出现在人工神经网络中,这暗示它也可能在实践中发生。也就是说,我们展示了一个案例:把神经网络解释为在叠加中具有稀疏结构,这不仅仅是一种有用的事后解释,而就是模型的"真实情况"(ground truth)。我们提出了一个关于这种现象何时发生、为何发生的理论,揭示了叠加的相图。这解释了为什么神经元有时是"单语义的"(monosemantic)——只对单个特征作出响应,有时又是"多语义的"(polysemantic)\cite{olah2017feature}——对许多互不相关的特征作出响应。我们还发现,至少在玩具模型中,叠加展现出复杂的几何结构。
但我们的结果可能还有更广泛的意义。我们找到了初步证据,表明叠加可能与对抗样本和 grokking(顿悟)有关,还可能为混合专家(mixture of experts)模型的性能提供一种理论解释。更广泛地说,我们研究的玩具模型具有出乎意料的丰富结构:它表现出相变、基于均匀多胞形的几何结构、训练过程中类似"能级"的跳跃,以及与物理学中的分数量子霍尔效应在性质上相似的现象,等等引人注目的现象。我们最初研究这个课题是为了理解更大模型中清晰可解释的神经元,但结果发现,这些玩具模型本身就出奇地有趣。
我们玩具模型的关键结果¶
在我们的玩具模型中,我们证明了:
- 叠加是一种真实存在的、可观测的现象。
- 单语义和多语义的神经元都可以形成。
- 至少某些种类的计算可以在叠加中完成。
- 特征是否以叠加方式存储,由一个相变决定。
- 叠加会把特征组织成二边形、三角形、五边形和四面体等几何结构。
我们的玩具模型只是简单的 ReLU 网络,因此似乎可以公允地说,神经网络至少在若干情形下表现出这些性质;但哪些结论能推广到真实网络,还非常不清楚。
定义与动机:特征、方向与叠加¶
在我们的工作中,我们常常把神经网络视为将输入的特征表示为激活空间中的方向。这并非一个无关紧要的主张。神经网络表示应当具有什么样的结构,这一点并不显然。当我们说出"词嵌入有一个性别方向"或"视觉模型有曲线检测神经元"这样的话时,我们其实是在对网络表示的结构作出强有力的断言。
尽管如此,我们相信这种"线性表示假说"既有重要的经验发现作为支撑,也有理论上的论证。可以把这看作两个相互独立、稍后将详细探讨的性质:
- 可分解性:网络表示可以用相互独立、可单独理解的特征来描述。
- 线性:特征由方向表示。
如果我们希望对神经网络进行逆向工程,就需要可分解性这样的性质。正是可分解性让我们无需把整个模型装进脑子里就能对模型进行推理!但仅仅可分解还不够:我们还需要能够以某种方式接触到这种分解。为此,我们需要识别出表示中的各个特征。在线性表示中,这相当于确定激活空间中的哪些方向对应输入的哪些独立特征。
有时,识别特征方向非常容易,因为特征似乎就对应着神经元。例如,InceptionV1 早期层中的许多神经元都清晰地对应着特征(例如曲线检测神经元 \cite{cammarata2020curve})。为什么我们有时能得到这种极其有用的性质,有时却不能?我们猜想,实际上有两股相反的力量在驱动这一现象:
- 特权基(privileged basis):只有某些表示拥有特权基,它会促使特征与基方向对齐(即与神经元对应)。
- 叠加(superposition):线性表示可以用我们称为叠加的策略表示比维度更多的特征。这可以看作神经网络在模拟更大的网络。它会把特征推向不与神经元对应的方向。
叠加在以往的工作中已被提出过 \cite{arora2018linear,goh2016decoding,olah2020zoom,elhage2022solu},在某些情况下,假定某种类似叠加的存在已被证明有助于发现可解释的结构 \cite{arora2018linear,goh2016decoding}。然而,据我们所知,此前还没有人明确证明过特征叠加会发生在神经网络中(\cite{cheung2019superposition} 证明的是一个密切相关的现象——模型叠加)。本文的目标就是改变这一现状:证明叠加的存在,并探索它与特权基的相互作用。如果叠加确实发生在网络中,它将深刻影响哪些可解释性研究方法是有意义的,因此明确的证明似乎至关重要。
本节的目标是阐明这些想法的来由,并对其进行详细展开。
值得一提的是,本节中的许多想法与其他可解释性研究路线(尤其是解耦(disentanglement))、神经科学(分布式表示、群体编码等)、压缩感知以及其他许多工作路线中的思想都有密切联系。本节将着重阐明我们对该问题的观点。我们将在相关工作(Related Work)一节中详细讨论这些其他研究路线。
经验现象¶
当我们谈论"特征"以及它们如何被表示时,这归根结底是围绕若干观察到的经验现象来构建理论。在描述我们如何概念化这些结果之前,我们先简单描述一些促使我们思考的主要结果:
- 词嵌入——Mikolov 等人 \cite{mikolov2013linguistic} 的一个著名结果发现,词嵌入似乎具有与语义属性对应的方向,从而可以进行诸如
V("king") - V("man") + V("woman") = V("queen")这样的嵌入向量算术(但另见 \cite{levy2014linguistic})。 - 潜空间——生成对抗网络(GAN)中也发现了类似的"向量算术"和可解释方向的结果(例如 \cite{radford2015unsupervised})。
- 可解释神经元——有大量研究发现了看似可解释的神经元(在循环神经网络(RNN)中 \cite{karpathy2015visualizing,radford2017learning};在卷积神经网络(CNN)中 \cite{zhou2014object,netdissect2017};在 GAN 中 \cite{bau2020understanding}),它们会对某种可理解的属性作出激活响应。这些工作也受到了一些质疑 \cite{morcos2018importance,donnelly2019interpretability}。作为回应,有几篇论文致力于对少数特定神经元给出极其详尽的刻画,希望能决定性地确立一些真正检测可理解属性的神经元实例(尤其是 Cammarata 等人 \cite{cammarata2020curve},也包括 \cite{schubert2021highlow,goh2021multimodal})。
- 普遍性——在不同网络中都能找到许多对相同属性作出响应的同类神经元 \cite{li2015convergent,olah2020zoom,schubert2021highlow}。
- 多语义神经元——与此同时,也有许多神经元看起来并不对输入的任何可解释属性作出响应;尤其是许多多语义神经元 \cite{olah2017feature},它们似乎会对互不相关的输入混合作出响应。
因此,我们倾向于认为神经网络表示由一系列以方向表示的特征组成。我们将在接下来的几节中展开这一想法。
什么是特征?¶
我们使用"特征"一词,源于我们观察到的神经元(或词嵌入方向)所响应的输入的可解释属性。这类被观察到的属性种类繁多!2 我们希望用"特征"一词涵盖所有这些属性。
但即便有了这样的动机,要为特征给出一个令人满意的定义仍然相当困难。与其给出一个我们自己都确信无疑的单一定义,我们考虑三种可能的工作定义:
- 特征作为任意函数。一种做法是把特征定义为输入的任意函数(如 \cite{ilyas2019adversarial} 中所做的那样)。但这似乎并不完全契合我们的动机。我们观察到的这些特征有些特别之处:它们在某种意义上似乎是对数据进行推理的基本抽象,同样的特征会在不同模型中稳定地形成。特征似乎也是可辨识的:猫和汽车是两个特征,而猫+汽车、猫-汽车在某种重要意义上更像是特征的混合,而不是特征本身。
- 特征作为可解释属性。我们描述的所有特征对人类来说都惊人地容易理解。有人或许会尝试据此下定义:特征就是输入中存在的人类可理解的"概念"。但似乎有必要为那些我们可能不理解的特征留出余地。如果 AlphaFold 发现了某种对预测蛋白质折叠很重要的化学结构,那很可能一开始并不是我们能理解的东西!
- 足够大模型中的神经元。最后一种做法是把特征定义为输入的这样一种属性:足够大的神经网络会可靠地专门用一个神经元来表示它。3 例如,曲线检测器似乎会可靠地出现在各种足够复杂的视觉模型中,因此它是一个特征。对于那些我们目前只在多语义神经元中观察到的可解释属性,我们希望足够大的模型会专门用神经元来表示它们。这个定义略显循环,但避免了前两种定义的问题。
我们在撰写本文时,心中采用的是最后一种定义——"足够大模型中的神经元"。但我们并不特别执着于它,而且实际上认为,不急于锁定某个定义可能很重要。4
特征即方向¶
正如我们在前面几节中提到的,我们通常认为特征由方向表示。例如,在词嵌入中,"性别"和"王权"似乎就对应着方向,从而可以进行 V("king") - V("man") + V("woman") = V("queen") 这样的算术 \cite{mikolov2013linguistic}。可解释神经元的例子同样属于"特征即方向"的情形,因为神经元激活的程度对应于表示中的一个基方向。
如果特征对应激活空间中的方向,我们就称神经网络表示是线性的。在线性表示中,每个特征 \(f_i\) 都有一个对应的表示方向 \(W_i\)。多个特征 \(f_1, f_2…\) 以值 \(x_{f_1}, x_{f_2}…\) 激活时,由 \(x_{f_1}W_{f_1} + x_{f_2}W_{f_2}...\) 表示。需要说明的是,被表示的特征几乎肯定是输入的非线性函数;只有从特征到激活向量的映射才是线性的。注意,某个表示是否是线性的,取决于你认为哪些是特征。
我们不认为神经网络在经验上似乎具有线性表示是一种巧合。神经网络由线性函数与非线性函数交错构建而成。在某种意义上,线性函数占据了绝大部分计算(例如以 FLOPs 衡量)。线性表示是神经网络表示信息的天然格式!具体来说,它有三个主要好处:
- 线性表示是某一层可能实现的显而易见算法的自然输出。如果让一个神经元对某个特定的权重模板进行模式匹配,那么刺激与模板匹配得越好,神经元激活就越强;匹配得越差,激活就越弱。
- 线性表示使特征"可线性访问"。一个典型的神经网络层是线性函数后接非线性函数。如果上一层中的某个特征以线性方式表示,下一层的神经元就可以"选中它",并让它持续地兴奋或抑制该神经元。如果特征以非线性方式表示,模型就无法一步做到这一点。
- 统计效率。把特征表示为不同的方向,可能让具有线性变换(如神经网络的权重)的模型实现非局部泛化,从而提高其相对于只能局部泛化的模型的统计效率。这一观点在 Bengio 的一些著作中得到了特别强调(例如 \cite{bengio2013representation})。一个更易理解的论证可以在这篇博客文章中找到。
如果使用多层,就可以构造非线性表示,并从中检索信息(不过,即使这些例子也可以被看作具有更奇特特征的线性表示)。我们在附录中给出了一个例子。然而,我们的直觉是:非线性表示对神经网络来说通常是低效的。
人们或许会认为,线性表示最多只能存储与其维度数量一样多的特征,但事实并非如此!我们将看到,我们称之为“叠加”(superposition)的现象,会让模型在线性表示中存储更多的特征——可能多得多。
关于这一特征观与“特征是多维流形”的观念如何相容的讨论,参见附录“多维特征呢?”(What about Multidimensional Features?)。
特权基与非特权基¶
即使特征被编码为方向,一个自然而然的问题也随之而来:是哪一些方向?在某些情况下,考虑基方向似乎是有用的,但在另一些情况下则不然。为什么会这样?
当研究者研究词嵌入时,分析基方向是没有意义的:没有理由认为某个基维度会与其他任何可能的方向有所不同。理解这一点的一个方式是:设想对词嵌入施加某个随机线性变换 \(M\),并对后续的权重施加 \(M^{-1}\)。这样得到的模型与原来完全等价,但基维度却完全不同。这就是我们所说的非特权基(non-privileged basis)。当然,在没有特权基的情况下研究激活值也是可能的,只是你需要以某种方式找出值得研究的有趣方向,例如取“man”与“woman”的差向量,在词嵌入中构造出一个性别方向。
但许多神经网络层并非如此。通常,架构中的某些因素会让基方向变得特殊,例如施加激活函数。这“打破了对称性”,使这些方向变得特殊,并可能促使特征与基维度对齐。我们称这种基为特权基(privileged basis),并把这些基方向称为“神经元”。这些神经元往往对应于可解释的特征。

从这个角度看,只有当神经元处于特权基之中时,追问它是否可解释才有意义。事实上,我们通常把“神经元”一词保留给位于特权基中的基方向。(更详细的讨论见此处。)
注意,拥有特权基并不能保证特征会与基对齐——我们会看到,它们常常并不对齐!但特权基是让这个问题得以成立的最低条件。
叠加假说¶
即使存在特权基,神经元也常常是“多语义的”(polysemantic)——对多个互不相关的特征作出响应。对此的一种解释是叠加假说\cite{goh2016decoding,arora2018linear,olah2020zoom}。粗略地说,叠加的思想是:神经网络“希望表示的特征数量超过其神经元的数量”,因此它们利用高维空间的一个性质,来模拟一个拥有多得多的神经元的模型。

数学中的若干结果暗示,类似的情况或许确实可行:
- 几乎正交的向量(Almost Orthogonal Vectors)。虽然在一个 \(n\) 维空间中最多只能有 \(n\) 个正交向量,但在高维空间中却可以有多达 \(\exp(n)\) 个“几乎正交”(余弦相似度 \(<\epsilon\))的向量。参见 Johnson–Lindenstrauss 引理。
- 压缩感知(Compressed sensing)。一般来说,把一个向量投影到低维空间后,人们无法重建原始向量。但如果已知原始向量是稀疏的,情况就不同了:在这种情况下,通常可以恢复原始向量。
具体来说,在叠加假说中,特征被表示为神经元输出向量空间中几乎正交的方向。由于特征只是几乎正交,一个特征激活时,看起来就像是其他特征也在轻微激活。容忍这种“噪声”或“干涉”是有代价的。但对于特征高度稀疏的神经网络来说,这一代价或许会被“能够表示更多特征”的收益所压倒!(关键在于,稀疏性会大幅降低代价:稀疏特征很少同时激活、彼此干涉;而非线性激活函数则创造了滤除少量噪声的机会。)

一种理解方式是:小神经网络或许能够带噪地“模拟”一个稀疏的更大的模型:

虽然我们一直围绕神经元来描述叠加,但它同样可以出现在无特权基的表示中,例如词嵌入。叠加的含义很简单:特征比维度多。
小结:特征性质的一个层级¶
本节的思想,可以归结为神经网络表示可能具有的四个递进渐严的性质。
- 可分解性(Decomposability):可分解的神经网络激活值可以分解为一个个特征,每个特征的意义不依赖于其他特征的取值。(这一性质归根结底最为重要——参见分解在对抗维数灾难(curse of dimensionality)中的作用。)
- 线性(Linearity):特征对应于方向。每个特征 \(f_i\) 都有一个对应的表示方向 \(W_i\)。多个特征 \(f_1, f_2…\) 分别以取值 \(x_{f_1}, x_{f_2}…\) 激活这一状态,由 \(x_{f_1}W_{f_1} + x_{f_2}W_{f_2}...\) 表示。
- 叠加与不叠加(Superposition vs Non-Superposition):若 \(W^TW\) 不可逆,则该线性表示呈现叠加;若 \(W^TW\) 可逆,则不呈现叠加。
- 基对齐(Basis-Aligned):若所有 \(W_i\) 都是 one-hot 基向量,则该表示是基对齐的;若所有 \(W_i\) 都是稀疏的,则该表示是部分基对齐的。这要求存在一个特权基。
前两者(可分解性与线性)是我们推测普遍成立的性质;后两者(非叠加与基对齐)则是我们相信只会偶尔出现的性质。
演示叠加¶
如果认真对待叠加假说,一个自然的首要问题就是:神经网络真的能够带噪地表示比其神经元数量更多的特征吗?如果不能,叠加假说就可以放心地弃之一旁了。
线性模型的直觉会告诉我们这不可能:线性模型最多只能存储主成分。但我们将会看到,仅仅加入一点点非线性,就能让模型的行为发生根本性的改变!这将是我们对叠加的第一次实证演示。(这同时也是一个生动的教训:即使是最简单的神经网络,也可能极其复杂。)
实验设置¶
我们的目标是探究:神经网络能否把高维向量 \(x \in R^n\) 投影为低维向量 \(h\in R^m\),然后再将其恢复。5

特征向量(\(x\))¶
我们先描述高维向量 \(x\):它是我们理想化的、解耦(disentangled)的大模型的激活值。我们把每个元素 \(x_i\) 称为一个“特征”,因为我们设想,在这个假想的大模型中,特征与神经元完全对齐。在视觉模型中,一个特征可能是 Gabor 滤波器、曲线检测器或垂耳检测器;在语言模型中,它可能对应一个指代某位名人的词元,或是一个作为某种特定描述成分的从句。
由于我们并没有关于特征的任何 ground truth(真值),我们需要为 \(x\) 构造合成数据,从建模的角度模拟我们认为特征所具有的各种重要性质。我们作出三个主要假设:
- 特征的稀疏性(Feature Sparsity):在自然世界中,许多特征似乎是稀疏的,也就是说它们很少出现。例如在视觉中,图像中的大多数位置并不包含水平边缘、曲线或狗头\cite{olah2020zoom};在语言中,大多数词元并不指代 Martin Luther King,也不属于描述音乐的从句的一部分\cite{elhage2022solu}。这一思想可以追溯到关于视觉与自然图像统计的经典工作(参见如 Olshausen, 1997 中“Why Sparseness?”一节\cite{olshausen1997sparse})。因此,我们将为特征选择一种稀疏分布。
- 特征多于神经元(More Features Than Neurons):模型可能表示的潜在有用特征数量极其庞大。6 在真实模型中,特征与神经元之间的这种失衡,似乎是神经网络表示中一个核心的张力所在。
- 特征的重要性各不相同(Features Vary in Importance):并非所有特征对给定任务的用处都相同。有些特征比其他特征更能降低损失。对于以区分不同犬种为核心任务的 ImageNet 模型来说,垂耳检测器可能是它能拥有的最重要的特征之一;相比之下,另一个特征可能只能极其轻微地提升性能。7
具体而言,我们的合成数据定义如下:输入向量 \(x\) 是合成数据,旨在模拟我们认为任务真实底层特征所具有的性质。我们把每个维度 \(x_i\) 视为一个“特征”。每个特征都有一个关联的稀疏度 \(S_i\) 和重要性 \(I_i\)。我们以概率 \(S_i\) 令 \(x_i=0\);否则,它在 \([0,1]\) 上均匀分布。8 在实践中,我们主要关注所有特征具有相同稀疏度(\(S_i = S\))的情形。
模型(\(x \to x'\))¶
我们实际上会考虑两个模型,其动机如下。第一个是“线性模型”(linear model),这是一个广为人知、不呈现叠加的基线;第二个是“ReLU 输出模型”(ReLU output model),这是一个非常简单、却呈现叠加的模型。两个模型只在最后的激活函数上有所不同。
| 线性模型 | ReLU 输出模型 |
|---|---|
| \(h \approx Wx\) | \(h \approx Wx\) |
| \(x' \approx W^Th + b\) | \(x' \approx \text{ReLU}(W^Th+b)\) |
| \(x' \approx W^TWx + b\) | \(x' \approx \text{ReLU}(W^TWx + b)\) |
为什么选择这些模型?
叠加假说认为,高维模型中的每个特征都对应于低维空间中的一个方向。这意味着我们可以把降维投影表示为线性映射 \(h=Wx\)。注意,每一列 \(W_i\) 对应于低维空间中表示特征 \(x_i\) 的那个方向。
为了恢复原始向量,我们将使用同一矩阵的转置 \(W^T\)。这样做的好处是避免了“低维空间中的哪个方向才真正对应于某个特征”这一歧义。它看起来也相对符合数学原理9,并且在经验上有效。
我们还加入了一个偏置。动机之一是:这允许模型把未表示的特征设为其期望值。但我们稍后会看到,能够设置负偏置对叠加之所以重要,还有另一组原因——粗略地说,它允许模型丢弃少量的噪声。
最后一步是决定是否加入激活函数。事实证明,这一步对叠加是否出现至关重要。在真实的神经网络中,当模型实际利用特征进行计算时,总会有一个激活函数,因此在最后加入一个激活函数似乎是合理的做法。
损失函数¶
我们的损失函数是均方误差,并按上述特征重要性 \(I_i\) 加权:
基本结果¶
我们的第一个实验很简单:训练几个稀疏度水平不同的 ReLU 输出模型,并将结果可视化。(我们也会训练一个线性模型——只要优化得足够好,线性模型的解与稀疏度水平无关。)
主要问题是如何将结果可视化。最简单的做法是可视化 \(W^TW\)(一个特征×特征矩阵)和 \(b\)(一个长度为特征数的向量)。注意,特征按重要性从高到低排列,因此结果呈现出相当漂亮的结构。下面是一个小模型(\(n=20; ~m=5;\))在这种可视化下的示例,该模型的行为符合“预期的线性模型式”方式——只表示与自身维度数量一样多的特征:

但我们真正关心的,是叠加这一被假设的现象——模型是否会以非正交的方式存储“额外特征”?有没有更直接的方式来考察它?嗯,一个问题就是:模型到底学会了表示多少个特征。对任意特征而言,它是否被表示,取决于 \(||W_i||\)——即其嵌入向量的范数。
我们还希望了解:某个特征是否与其他特征共用维度。为此,我们计算 \(\sum_{j\neq i} (\hat{W_i}\cdot W_j)^2\),即将所有其他特征投影到 \(W_i\) 的方向向量上。如果该特征与其他特征正交,这个值将为 \(0\)(下图中的深蓝色)。另一方面,如果值 \(\geq 1\),则意味着存在一组其他特征,它们对 \(W_i\) 的激活强度可以与特征 \(i\) 本身相媲美!
我们可以用这种方式可视化之前看过的模型:

既然我们有了可视化模型的方法,就可以真正开始做实验了。我们首先考虑只含少量特征的模型(\(n=20; ~m=5;~ I_i=0.7^i\)),这样便于直观地看到发生了什么。我们考虑一个线性模型,以及若干个在不同特征稀疏度水平的数据上训练的 ReLU 输出模型:

正如我们的标准直觉所预期的那样,线性模型总是学会最重要的前 \(m\) 个特征,这与学习前几个主成分类似。在稠密特征(\(1-S=1.0\))上,ReLU 输出模型的行为与线性模型相同;但随着稀疏度增加,我们看到叠加出现了。模型通过让特征彼此不再正交来表示更多特征。它从不那么重要的特征开始,逐渐影响到最重要的特征。最初,模型把这些特征排列成对跖对(antipodal pairs)——一个特征的表示向量恰好是另一个特征的表示向量的相反数;但随着表示的叠加特征越来越多,我们观察到它逐渐过渡到其他几何结构。我们将在后面的“叠加的几何形态”(The Geometry of Superposition)一节中进一步讨论特征的几何结构。
对于具有更多特征和更多隐藏维度的模型,结果在定性上是相似的。例如,考虑一个具有 \(m=20\) 个隐藏维度、\(n=80\) 个特征的模型(考虑到特征更多,重要性提高到 \(I_i=0.9^i\)),我们观察到的基本上就是上面可视化的一个缩放版本:

数学理解¶
在上一节中,我们观察到一个令人惊讶的实验结果:在模型的输出上加上一个 ReLU,就允许出现一种截然不同的解——叠加——而这种现象在线性模型中是不会出现的。
出现叠加的模型在数学上仍然相当简单。我们能否从解析上理解叠加为什么会发生?更进一步,为什么仅仅加入一个非线性,情况就会与线性模型如此不同?事实证明,我们可以得到一个相当令人满意的答案:我们的模型受两种相互竞争的力的平衡所支配——特征收益(feature benefit)与干涉(interference)——这一直觉在后续的讨论中会很有用。我们还会发现它与化学中著名的汤姆孙问题(Thomson problem)之间的联系。
我们先从线性情形说起。这方面前人工作已经研究得很透彻!如果想知道线性模型为什么不会表现出叠加,一个现成的答案是:线性模型本质上就是在做 PCA(主成分分析)。但这个答案并不完全令人满意:如果我们暂时抛开关于线性函数的一切知识与直觉,叠加究竟为什么不可能发生?
更深入的理解来自 Saxe 等人 \cite{saxe2014exact} 的结果,他们研究了线性神经网络的动力学——也就是没有激活函数的神经网络。这类模型归根结底是线性函数,但由于它们是多个线性函数的复合,其动力学可能相当复杂。他们论文的核心结论是:神经网络的权重可以被看作是在优化一个简单的闭式解。我们可以把他们的设置稍作调整,使其更接近我们的线性情形,10 从而得到下面的方程:

Saxe 的结果揭示,在所考虑的模型中,本质上存在两种相互竞争的力控制着学习动力学。首先,模型通过表示更多的特征可以获得更低的损失(我们称之为"特征收益")。但另一方面,如果它表示的数目超过了它能够正交容纳的数量,特征之间的"干涉"反而会让损失变差。11 事实上,正是这一点使得线性模型永远不值得表示比其维度更多的特征。12
对于 ReLU 输出模型,我们能否获得类似的理解?具体来说,我们想理解 \(L=\int_x ||I(x-\text{ReLU}(W^TWx+b))||^2 d\textbf{p}(x)\),其中 \(x\) 的分布满足 \(x_i=0\) 的概率为 \(S\)。
对 \(x\) 的积分按照 \(((1\!-\!S)+S)^n\) 的二项式展开,分解为每种稀疏模式对应的一项。我们可以把稀疏度相同的项合并在一起,将损失重写为 \(L = (1\!-\!S)^n L_n +\ldots+\) \((1\!-\!S)S^{n-1} L_1+ S^n L_0\),其中每个 \(L_k\) 对应于输入为 \(k\)-稀疏向量时的损失。注意当 \(S\to 1\) 时,\(L_1\) 和 \(L_0\) 占主导。\(L_0\) 项对应零向量上的损失,它只是对正偏置的惩罚,即 \(\sum_i \text{ReLU}(b_i)^2\)。因此真正有意思的是 \(L_1\)——即 \(1\)-稀疏向量上的损失:

这个新方程与化学中著名的汤姆孙问题有几分相似。具体来说,如果我们假设各特征重要性相同,并且有固定数量的特征满足 \(||W_i|| = 1\)、其余特征满足 \(||W_i|| = 0\),且 \(b_i = 0\),那么特征收益项就是常数,干涉项则变成一个广义的汤姆孙问题——我们只是在球面上用一种略微不寻常的能量函数来摆放点。(在后面几节中重新展开实验研究时,我们将会看到这个类比能带来丰硕的成果!)
另一个有趣的性质是,在 1-稀疏情形下,ReLU 使得负干涉变得没有代价。这解释了为什么我们此前见到的那些解都倾向于只保留负干涉(只要可能)。此外,使用负偏置可以把小的正干涉基本上转化为负干涉。
那么对应于不那么稀疏的向量的那些项呢?我们把显式写出这些项的工作留给读者,但主要思想是:存在着多种相互叠加的复合干涉,而"活跃特征"也会受到干涉的影响。在后面的一节中我们将会看到,特征常常会组织成稀疏的干涉图,使得与某个特征相互干涉的特征只有少数几个——有趣的是,这会降低复合干涉发生的概率,并使 1-稀疏损失项相对于其他项更加重要。
叠加:一种相变¶
上一节的结果似乎表明,训练模型时一个特征可能面临三种结局:(1) 特征可能根本没被学到;(2) 特征被学到,并以叠加方式表示;(3) 模型用专门的维度来表示该特征。这三种结局之间的转变看起来是突变的。也许这里存在某种相变。13
要更好地理解这一点,一个办法是探索物理中的"相图"在这里是否也有对应物——它可以帮助我们判断一个特征预计会处于这三种状态中的哪一种。虽然我们之前的实验已经能看出一些端倪,但由于许多特征同时在变化、而且可能存在交互效应,很难真正把其中的机制单独分离出来。因此,我们设计了下面的实验来更好地隔离这些效应。
作为初步实验,我们考虑只有 2 个特征、但隐藏层只有 1 个维度的模型。我们仍然使用 ReLU 输出模型,\(\text{ReLU}(W^T W x - b)\)。第一个特征的重要性为 1.0。在一个轴上,我们把第二个"额外"特征的重要性从 0.1 变化到 10;在另一个轴上,我们把所有特征的稀疏性从 1.0 变化到 0.01。然后我们绘制出第二个"额外"特征处于哪种状态:没被学到、以叠加方式被学到、还是被学到并正交地表示出来。为了降低噪声,我们对每个点训练十个模型并对结果取平均,同时丢弃损失最高的那个模型。
我们可以把它与一个理论上的"玩具模型的玩具模型"进行比较,在这个模型中,不同权重配置的损失可以表示为重要性和稀疏性的闭式函数。把 2 个特征存进 1 个维度,有三种自然的做法:\(W=[1,0]\)(忽略 \([0,1]\),丢掉额外特征)、\(W=[0,1]\)(忽略 \([1,0]\),丢掉第一个特征,把专门的维度让给额外特征),以及 \(W=[1,-1]\)(以叠加方式存储两个特征,代价是无法表示 \([1,1]\)——即两个特征同时出现的组合)。我们把最后这种解称为"对跖解"(antipodal),因为两个基向量 \([1, 0]\) 和 \([0, 1]\) 被映射到了相反的方向。事实证明,我们可以解析地求出这些解的损失(细节见这个 notebook)。

正如预期的那样,稀疏性是叠加出现的必要条件,但我们看到它与特征的相对重要性以一种有趣的方式相互作用。而最有趣的是,在经验图和理论图中都观察到了真正的相变!最优权重配置在幅度和叠加方式上都发生了不连续的变化。(在理论模型中,我们可以解析地确认这是一阶相变:各函数之间发生了交叉,导致最优损失的导数出现不连续。)
我们也可以对"把 3 个特征嵌入 2 个维度"提出同样的问题。这个问题仍然只有一个"额外特征"(现在是第三个)可供我们研究,我们要问的是:当它的重要性相对于另外两个特征变化、同时稀疏性也改变时,会发生什么。
对于理论模型,我们现在考虑四种自然的解。我们可以通过回答"\(W\) 忽略了哪个特征方向?"来描述这些解。例如,\(W\) 可能干脆不表示额外特征——我们把它记作 \(W \perp [0, 0, 1]\);\(W\) 也可能忽略另外两个特征之一,即 \(W \perp [1, 0, 0]\)。但有趣的是,利用叠加构造对跖对有两条路可走:我们可以让"额外特征"与另外两个特征之一组成对跖对(\(W \perp [0, 1, 1]\)),也可以让另外两个特征处于叠加之中、把专门维度让给额外特征(\(W \perp [1, 1, 0]\))。这些解的闭式损失的细节见这个 notebook。我们没有考虑最后一种解——把所有特征都放进一个联合叠加里,即 \(W \perp [1, 1, 1]\)。

这些相图表明,在编码特征的不同策略之间确实存在相变。不过,我们将在下一节看到,这个初步视角没有捕捉到的结构要复杂得多。
叠加的几何形态¶
我们已经看到,叠加可以让模型表示额外的特征,而且随着稀疏性的提高,额外特征的数量还会增加。在本节中,我们将更详细地研究这一关系,并发现一个出人意料的几何故事:特征似乎会组织成五边形、四面体之类的几何结构!在某种程度上,本节描述的结构"精致得不像是真的",我们认为它至少有一部分很可能只是我们所研究的玩具模型的特有现象。但这似乎仍然值得研究,因为如果其中任何一点能推广到真实模型,可能会为理解真实模型的表示提供很大的助力。
我们首先研究均匀叠加(uniform superposition),即所有特征完全相同的情况:彼此独立、重要性相同、稀疏性也相同。事实证明,均匀叠加与均匀多胞形(uniform polytopes)的几何之间存在着令人惊讶的联系!之后,我们将转而研究非均匀叠加(non-uniform superposition),即特征彼此不同的情况。事实证明,至少在某种程度上,非均匀叠加可以理解为均匀叠加的一种形变。
均匀叠加¶
如上所述,我们的研究从均匀叠加开始,即所有特征具有相同重要性和稀疏性的情况。稍后我们会看到,这种情况其实有一些出人意料的结构;但研究它还有一个更基本的理由:与非均匀情形相比,它更容易分析,而且实验中需要操心的变量也更少。
我们想知道,当特征稀疏性 \(S\) 变化时会发生什么。由于所有特征同等重要,不失一般性地14,我们假设每个特征的重要性为 \(I_i = 1\)。我们将研究一个具有 \(n=400\) 个特征、\(m=30\) 个隐藏维度的模型,但事实证明,特征数量和隐藏维度数量的具体取值关系不大。特别地,只要输入特征数 \(n\) 远大于隐藏维度数,即 \(n \gg m\),输入特征数取多少并不重要。同样,只要我们关心的是学到的特征数与隐藏特征数的比值,隐藏维度的具体数量就无关紧要——把隐藏维度数翻倍,只是让模型学到的特征数也翻倍而已。
衡量模型学到多少特征的一个便捷方法是看 Frobenius 范数 \(||W||_F^2\)。由于特征被表示时 \(||W_i||^2\simeq 1\),未被表示时 \(||W_i||^2\simeq 0\),这个量大致就等于模型学会表示的特征数。方便的是,这个范数与基的选择无关,因此在稠密区间 \(S=0\) 下依然表现良好——此时特征基不享有任何特权,模型转而用任意方向来表示特征。
我们绘制 \(D^* = m / ||W||_F^2\),可以把它理解为"每个特征所占的维度数":

令人惊讶的是,我们发现这条曲线在 \(1\) 和 \(1/2\) 处"粘滞"。(这隐约让人想起分数量子霍尔效应——参见例如这张图。)为什么会这样?仔细检查后发现,\(1/2\) 这个"粘滞点"对应一种精确的几何排布:特征以"对跖对"的形式出现,每一对中的两个特征恰好互为相反数,从而可以把两个特征塞进每一个隐藏维度。看起来对跖对是如此高效,以至于模型在很大一片稀疏性区间内都优先使用这种排布。
事实证明,对跖对只是冰山一角。藏在这条曲线下面的,是许多极其具体的特征几何构型。
特征维度¶
在上一节中,我们看到存在一个粘滞区间,在这个区间里模型某种意义上"每个特征只占半个维度"。这是模型所表示特征的一个平均统计性质,但它似乎在暗示着什么有趣的东西。有没有办法让我们理解某个特定特征到底得到了"几分之几的维度"?
我们把第 \(i\) 个特征的维度 \(D_i\) 定义为:
其中 \(W_i\) 是与第 \(i\) 个特征相关联的权重向量列,\(\hat{W_i}\) 是该向量的单位化版本。
直观地说,分子表示给定特征被表示的程度,而分母通过把每个特征投影到其所在维度上,衡量"有多少个特征共享了它所在的维度"。在对跖情形下,参与对跖对的每个特征的维度都是 \(D = 1 / (1+1) = 1/2\),而未被学到的特征的维度为 \(0\)。经验上,当特征在某种意义上被"高效打包"时,所有特征的维度之和似乎恰好等于嵌入维数。
现在,我们可以把上面的图按特征逐个拆开来看。这会暴露出多得多的"粘滞点"!为了帮助我们更好地理解这一点,我们打算画一张散点图,并附上一些额外的标注信息:
- 我们先从上一节的线图出发。
- 我们把每个稀疏度水平下模型中各个特征的"特征维度"散点图叠绘在这条线上。
- 特征维度会聚集在若干特定的分数值处,因此我们为这些位置画线。(事实证明,每个分数值都对应一种特定的权重几何结构——我们稍后会讨论这一点。)
- 我们用一种"特征几何图"来可视化几个模型的权重几何结构:每个特征是一个节点,边的权重基于特征嵌入向量点积的绝对值。因此,不彼此正交的特征之间会连边。
我们来看一下得到的图,然后试着弄清楚它向我们展示了什么:

那些聚集在特定分数处的点到底是怎么回事??我们很快就会看到,模型喜欢创造特定的权重几何结构,并且会在不同的构型之间跳来跳去。
在上一节中,我们建立了把叠加视为相变的理论。但在这张图上,介于 0(没有学到特征)与 1(为特征专门分配一个维度)之间的一切都是叠加。叠加就是特征具有分数维度时发生的事情。也就是说——叠加并非只有一种形态!
我们该如何把它与我们最初对相变的理解联系起来?我们通常认为水只有三种相:冰、液态水和水蒸气。但这是一种简化:实际上冰有许多种相,常常对应不同的晶体结构(例如六方冰与立方冰)。与之隐约相似的是,神经网络中的特征在"叠加"这个总类别之下似乎也有许多其他的"相"。
为什么会出现这些几何结构?¶
在上面的图中,我们发现存在若干条清晰的线,分别对应维度:¾(四面体)、⅔(三角形)、½(对跖对)、⅖(五边形)、⅜(四方反棱柱)和 0(特征未被学到)。我们相信原本还应该有一条对应 1(特征拥有专属维度)的线,只是因为在稠密区间里,基特征与其他方向无法区分。
其中几种构型可能会让人立刻想到著名的汤姆孙问题的解。(特别是,四方反棱柱远不如立方体有名,它们之所以值得一提,主要是因为作为汤姆孙问题的解,在分子几何中扮演着重要角色。)正如我们之前看到的,在一种非常真实的意义上,可以把我们的模型理解为在求解汤姆孙问题的一个广义版本。当模型选择表示某个特征时,该特征就会被嵌入为 \(m\) 维球面上的一个点。
理解这里正在发生什么的第二个线索是:对于均匀多面体形式的汤姆孙解(例如四面体),图中存在对应的线;但在我们预期看到非均匀解的地方,线似乎发生了分裂(例如,代表三角双锥的 ⅗ 线并没有出现,取而代之的是 ⅔ 处的点——三角形——与 ½ 处的点——对跖点——并存)。在均匀多面体中,所有顶点具有相同的几何性质,因此如果把特征嵌入为均匀多面体,每个特征的维度都相同。但如果把特征嵌入为非均匀多面体,不同特征与其他特征之间的干涉就会有多有少。
特别是,许多汤姆孙解都可以理解为较小均匀多胞形的连积(tegum product)——一种通过把两个多胞形嵌入相互正交的子空间来构造新多胞形的运算。(在前面那些特征几何的图可视化中,两个子图不连通当且仅当它们位于不同的连积因子中。)因此,我们应该预期这些解的维度实际上对应于其底层因子——那些均匀多胞形——的维度。

这还提示了另一个可能的原因,解释为什么我们观察到的是三维汤姆孙问题的解,尽管我们实际上在研究该问题的高维版本。正如许多三维汤姆孙解是二维解与一维解的连积一样,高维解或许也常常是一维、二维和三维解的连积。
连积中各因子的正交性有着有趣的推论。就叠加而言,它意味着跨连积因子不可能存在任何"干涉"。这或许正是玩具模型所偏好的:让许多特征同时相互干涉,对模型来说可能非常不利。(参见我们此前数学分析中的相关讨论。)
插叙:多胞形与低秩矩阵¶
到这里,值得明确指出:多胞形与对称、正定、低秩矩阵(即形如 \(W^TW\) 的矩阵)之间存在一一对应关系。这种对应关系是上一节结果的基础,而且对思考叠加问题普遍有用。
从某种意义上说,这种对应关系是平凡的。如果有一个形如 \(W^TW\) 的秩为 \(m\) 的 \(n\!\times\!n\) 矩阵,那么 \(W\) 就是一个 \(n\!\times\!m\) 矩阵。我们可以把 \(W\) 的各列解释为 \(m\) 维空间中的 \(n\) 个点。这件事开始变得有趣的地方在于,它清楚地表明 \(W^TW\) 是由几何驱动的。特别是,我们可以看到非对角项如何由这些点的几何决定。
换句话说,多胞形与叠加策略之间存在精确的对应关系。例如,在二维空间里把三个特征放入叠加的每一种策略都对应一个三角形,而每一个三角形也都对应这样一种策略。从这个角度看,如果三个特征具有同等重要性和同等稀疏性,最优策略是等边三角形,就不那么令人意外了。

这种对应关系反过来也成立。假设我们有一个形如 \(W^TW\) 的秩为 \((n\!-\!i)\) 的矩阵。我们可以用 \(W\) 没有表示的维度来刻画它——也就是说,哪些方向与 \(W\) 正交?例如,如果矩阵的秩为 \((n\!-\!1)\),我们可能会问:\(W\) 没有表示的是哪个单一方向?如果我们假设在"不表示某些向量"这一约束下,\(W^TW\) 会尽可能接近恒等矩阵,那么这个问题就特别有信息量。
事实上,给定这样一组正交向量,我们可以从 \(n\) 个基向量出发,把它们投影到与给定向量正交的空间,从而构造出一个多胞形。例如,如果我们从三维空间出发,然后按 \(W \perp (1,1,1)\) 投影,就会得到一个三角形。更一般地,令 \(W \perp (1,1,1,...)\) 会得到正 \(n\)-单纯形。这很有趣,因为它在某种意义上就是"最小可能的叠加"。假设所有特征同等重要、同等稀疏,那么最好的不表示方向就是完全稠密的向量 \((1,1,1,...)\)!
非均匀叠加¶
到目前为止,本节一直聚焦于均匀叠加的几何,即所有特征同等重要、同等稀疏且彼此独立的情形。模型本质上是在求解汤姆孙问题的一个变体。由于所有特征都相同,对应于均匀多面体的解获得了特别低的损失。在本小节中,我们将研究非均匀叠加——特征在某种意义上不再均匀的情形。它们的重要性或稀疏性可能各不相同,或者具有某种相关结构,使它们不再彼此独立。这会扭曲我们之前看到的均匀几何。
在实践中,真实神经网络中的叠加似乎很可能是非均匀的,因此发展对它的理解似乎很重要。遗憾的是,目前我们距离非均匀叠加几何的完整理论还很远。因此,本节的目标仅仅是强调我们观察到的几个比较引人注目的现象:
- 重要性或稀疏性不同的特征会随着不均衡的加剧使多胞形发生平滑形变,直到某个临界破裂点,它们会突然跳变到另一个多胞形。
- 相关特征倾向于彼此正交,常常形成于不同的连积因子中。因此,相关特征可能构成一个正交的局部基。当它们无法正交时,则倾向于并排摆放。在某些情况下,相关特征会合并为单个特征:这暗示着"类叠加行为"与"类 PCA 行为"之间存在某种相互作用。
- 反相关特征在必须叠加时倾向于处于同一个连积因子中。它们偏好负干涉,最理想的情况是互为对跖。
下面我们尝试用一些有代表性的实验来演示这些现象。
扰动单个特征¶
最简单的非均匀叠加是只改变一个特征,让其他特征保持均匀。作为实验,我们考虑在 \(m=2\) 维中表示 \(n=5\) 个特征的情形。在均匀情形下,重要性 \(I=1\)、激活密度 \(1-S=0.05\),我们会得到一个正五边形。但如果我们改变其中一个点——这里我们让它变得更稀疏或更稠密——就会看到五边形为了适应新的取值而发生拉伸。如果让它更稠密、激活更频繁(黄色),其他特征会远离它,给它腾出更多空间。另一方面,如果让它更稀疏、激活更少(蓝色),它占用的空间更小,其他点会向它靠拢。
如果让它足够稀疏,就会发生相变:它从五边形坍缩为一对二角形,其中较稀疏的那个点落在零处。这一相变对应于两种不同几何的损失曲线发生交叉。(这一观察让我们能够直接确认,这确实是一阶相变。)
为了可视化这些解,我们对它们进行规范化,通过旋转让它们以一致的方式相互对齐。

这些结果似乎表明,至少在有些情况下,非均匀叠加可以被理解为均匀叠加的形变、以及在均匀叠加各种构型之间的跳变,而不是一个完全不同的机制。既然均匀叠加具有大量可理解的结构,而现实世界中的叠加几乎可以肯定是非均匀的,这个结果看起来非常有前景!
五边形解之所以不在单位圆上,是因为模型会削弱正干涉的影响:设置一个轻微的负偏置来截断噪声,并把权重设为 \(||W_i|| = 1 / (1-b_i)\) 以作补偿。与单位圆的距离可以解释为主要由正干涉的量所驱动。
给复现者的一条提示:用二维隐藏空间优化使这个问题更容易研究,但实际的优化过程对梯度下降来说相当困难——甚至比三维情形还要难得多。要得到干净的结果,需要对每个模型多次拟合,并取损失最低的那个解。不过,这也有一个好处:如上所述,把次优解画在散点图上,可以让我们看到不同几何的损失曲线,从而对相变获得更深入的理解。
相关与反相关特征¶
当特征之间存在相关性时,会出现更复杂的非均匀叠加形式。这对理解现实世界中的叠加似乎至关重要——在现实世界里,许多特征都是相关的或反相关的。
例如,一个非常实际的问题是:我们是否应当预期多语义神经元在不同模型之间把相同的特征分到一组。如果分组是随机的,那么通过跨模型比较,就可以用它来检测多语义神经元!然而,我们将会看到,相关结构强烈影响着哪些特征会在叠加中被分到一起。
这种行为似乎相当微妙,相关特征在叠加中的表现存在一种"偏好次序"。理想情况下,模型会正交地表示相关特征——把它们放在互不交互的独立连积因子中。当这一点做不到时,它倾向于尽可能让它们靠在一起——也就是说,相关特征之间宁可正干涉也不要负干涉。最后,当空间不足以表示全部相关特征时,模型会把它们坍缩,转而表示它们的主成分!反过来,当特征反相关时,模型反而偏好让它们相互干涉,尤其是负干涉。下面我们用几个实验来演示这一点。
探索相关与反相关特征的实验设置¶
在本节中,我们将反复提到"相关特征组"和"反相关特征组"。
相关特征组。我们的相关特征组可以看作是共同出现的特征的"束"。可以想象一个高度理想化的图像分类器里可能发生的情形:可能有一束用于识别动物的特征(毛皮、耳朵、眼睛),还有另一束用于识别建筑的特征(墙角、窗户、门)。来自同一束的特征很可能同时出现。在数学上,我们通过把"相关特征组中所有特征是否为零"的取值捆绑在一起来实现这一点。回忆一下,我们最初定义的合成分布是:特征以概率 \(S\) 取零,否则在 [0,1] 之间均匀分布。这里我们只是让同一个采样结果来决定它们是否为零。
反相关特征组。还可以想象一类反相关特征:它们极不可能同时出现。为了模拟这一点,我们让反相关特征组中每次最多只有一个特征处于激活状态。具体地,整个特征组以概率 \(S\) 全部为零;若未被整体置零,则在组内随机挑选一个特征,让它从 [0,1] 均匀采样,其余特征为零。
相关与反相关特征的组织方式¶
在最初的调查中,我们只是训练了一批带有相关与反相关特征的小型玩具模型,观察会发生什么。为了便于研究,我们限定在 \(m=2\) 的情形,这时可以把权重直观地可视化为二维空间中的点。一般来说,这类解可以理解为单位圆上的一组点。为了让解便于比较,我们会对解进行旋转和翻转,使它们相互对齐。

局部近似正交基¶
事实证明,模型把相关特征排列成正交的倾向其实是一种相当强的现象。特别是,对于较大的模型,它似乎会产生一种"局部近似正交基":尽管模型整体处于叠加状态,但单独考察每个相关特征组时,组内特征是(近乎)正交的,可以认为几乎没有叠加。
为了研究这一点,我们训练了一个带两组相关特征的更大的模型,并可视化 \(W^TW\)。

如果这一结果在真实神经网络中成立,那么它意味着我们或许可以作出一种"局部非叠加"(local non-superposition)假设:对于某些子分布,我们可以假设其中激活的特征并未处于叠加状态。这可能是一个强有力的结果,让我们能够放心地使用 PCA 等方法——在叠加的语境下,这些方法通常未必有充分的理论依据。
相关特征的坍缩¶
最有趣的性质之一,是主成分分析(PCA)与叠加之间似乎存在一种权衡。如果有两个相关特征 \(a\) 和 \(b\),而模型只有表示其中一个的容量,那么模型会表示它们的主成分 \((a+b)/\sqrt{2}\)——一个比两者中任何一个都更能影响损失的稀疏变量——而忽略第二个主成分 \((a-b)/\sqrt{2}\)。
作为实验,我们考虑六个特征,将它们组织成三组相关对。每一组相关对中的两个特征用同一种颜色表示(红、绿、蓝)。相关性是这样构造的:两个特征总是同时激活——要么同时为零,要么同时非零。(它们激活时取的具体非零值彼此并不相关。)
当我们改变特征的稀疏性时,发现在极稀疏的区间,叠加如期出现:特征排列成六边形,相关特征并排相邻。随着稀疏性降低,特征逐渐"坍缩"进它们的主成分。在极稠密的区间,解变得与 PCA 等价。

这些结果似乎在暗示:PCA 与叠加在某种意义上是一对相互权衡的互补策略。特征的相关性越强,PCA 就越是更好的策略;特征越稀疏,叠加就越是更好的策略。当特征既稀疏又相关时,两种策略的混合似乎就会发生。如果能更深入地理解这一权衡空间,那将会很有价值。
从连续等变特征的角度来思考这一点也很有意思,例如那些以不同旋转形式出现的特征。
叠加与学习动力学¶
本文的重点是叠加如何为完全训练好的神经网络的功能做出贡献;但作为一个小小的插曲,追问我们的玩具模型——以及由此产生的叠加——在训练过程中如何演化,也是一件有趣的事。
这些模型之所以是研究学习动力学的特别有趣的案例,有几个原因。首先,与大多数神经网络不同,完全训练好的模型会收敛到一种简单但非平凡的结构,这与一条正在涌现的证据线索相呼应:神经网络的学习动力学或许具有我们能够理解的几何权重结构。可以期待,理解了最终结构之后,我们就能更容易地理解训练过程中的演化。其次,叠加暗示着惊人地离散的结构(竟然是正多胞形!)。我们会发现,其背后的学习动力学也同样惊人地离散,这延续了一条正在形成的证据趋势:神经网络的学习可能并不像看上去那么连续。最后,由于叠加对可解释性有重要影响,理解它如何在训练过程中涌现将很有价值——我们应当预期模型在训练早期就使用叠加,还是它只在训练后期、当模型难以再容纳更多特征时才出现?
遗憾的是,在本文的范围内,我们无法对这些问题进行它们应得的细致研究。作为替代,我们将只讨论我们注意到的几个特别引人注目的现象,把更细致的研究留给未来的工作。
现象 1:离散的"能级跳变"¶
我们注意到的最引人注目的现象或许是:特征数量庞大的玩具模型,其学习动力学似乎被"能级跳变"(energy level jumps)主导——特征会在不同的特征维度数之间跳跃。(回忆一下,特征维度数是指一个维度中专门用于表示该特征的那部分比例。)
让我们考虑上一节研究均匀叠加的几何时所用的问题设置:大量重要性相同、稀疏性相同的特征。正如我们之前看到的,这些特征最终会排列成少数几个具有分数维度数的多胞形。
一个自然而然的问题是:在训练过程中,这些特征维度数会发生怎样的变化。让我们挑一个所有特征都收敛为二边形(digon)的模型来观察。在第一张图中,每条彩色线对应单个特征的维度数。第二张图展示了同一时间段内损失曲线的变化。

注意,一些特征的维度数会在不同数值之间"跳跃"并互换位置。与此同时,损失曲线也会发生骤降(第一次跳跃时降幅非常小,第二次跳跃时降幅更大)。
这些结果让我们怀疑:在更大的模型中,损失曲线看似平滑的下降,实际上是由许多次特征在不同构型之间的小跳跃组成的。(关于机制突然变化的类似结果,参见 Olsson 等人的归纳头相变 \cite{olsson2022context},以及 Nanda 和 Lieberum 关于模算术中相变的结果 \cite{nanda2022grokking}。更广泛地说,还可以考虑顿悟(grokking)现象 \cite{power2022grokking}。)
现象 2:学习即几何变换¶
我们的许多玩具模型解都可以理解为对应某种几何结构。当只有 \(m=3\) 个隐藏维度时,这一点尤其容易观察和研究,因为我们可以直接把特征嵌入可视化为三维空间中的点,构成一个多面体。
事实证明,至少在有些情况下,通向这些结构的学习动力学可以被理解为一连串简单而独立的几何变换!
这一现象的一个特别有趣的例子,出现在上一节研究的相关特征情境中。考虑在 \(m=3\) 个维度内以叠加方式表示 \(n=6\) 个特征的问题。如果这 \(6\) 个特征由 \(2\) 组、每组 \(3\) 个相关特征组成,我们会观察到一种非常有趣的模式:学习过程以若干截然不同的阶段推进,这些阶段在损失曲线上清晰可见,每个阶段对应一种不同的几何变换:

(尽管最后一个解——一个八面体,其中来自不同相关组的特征按对跖点对(antipodal pairs)排列——似乎是一个很强的吸引子,上面可视化的学习轨迹似乎只是吸引模型的少数几条不同轨迹之一。不同轨迹在步骤 C 处出现分歧:有时模型从一开始就直接被拉入反棱柱(antiprism)构型,有时则把特征组织成对跖点对。这大概取决于步骤 B 结束时模型最接近哪一种特征几何。)
我们在这里观察到的学习动力学,似乎与先前在简单模型上的发现直接相关。\cite{hu2020surprising} 发现,两层神经网络在训练的早期阶段倾向于学习问题的线性近似。虽然我们数据生成过程的技术细节与他们的定理假设并不完全吻合,但同样的基本机制很可能在起作用。在我们的情形中,可以看到玩具网络先学习一个线性 PCA 解,然后再转向更好的非线性解。第二个相关发现来自 \cite{saxe2019mathematical}:他们研究层次化特征集,其数据生成过程与我们考虑的相似。他们凭经验发现,某些网络(非线性网络和深层线性网络)会以与我们观察到的非常相似的方式"拆分"嵌入向量。他们还基于底层动力系统给出了理论分析。一个关键区别是,他们关注的是拓扑——涌现特征表示的分支结构——而不是几何。尽管存在这一区别,他们的分析似乎很有可能推广到我们的情形。
与对抗鲁棒性的关系¶
虽然我们最关心叠加对可解释性的影响,但它与对抗样本之间似乎也存在联系。稍微想一想就会发现,这种联系其实相当直观。
在没有叠加的模型中,第一个特征的端到端权重为:
但在有叠加的模型中,它看起来像这样:
\(\epsilon\) 项(它们完全是叠加"干涉"的产物)为攻击者攻击最重要的特征提供了一条显而易见的途径。注意,即使在无限数据的极限下,这一点依然成立:拟合无限稀疏数据的最优行为,就是利用叠加表示更多的特征,而这会让模型易受攻击。
为了验证这一点,我们生成了 L2 对抗样本(允许的最大 L2 攻击范数为平均输入范数的 0.1)。我们最初用梯度下降生成攻击,但发现对于极其稀疏的样本——ReLU 神经元有 99% 的时间处于零区间——攻击很难奏效,这实际上是梯度掩蔽(gradient masking)所致 \cite{papernot2016towards}。于是我们发现,更好的做法是解析地推导对抗攻击:考虑每个特征的最优 L2 攻击(\(\lambda (W^TW)_i / ||(W^TW)_i||_2\)),然后选取其中对模型性能损害最大的那一个。
我们发现,随着叠加的形成,模型对对抗样本的脆弱性急剧上升(增幅超过 3 倍),而且脆弱性的高低与每个维度的特征数量(即特征维度数的倒数)密切相关。

我们不愿贸然推测叠加在多大程度上造成了实际中的对抗样本。已有一些不借助叠加的有说服力的理论,解释对抗样本为何出现(例如 \cite{gilmer2018adversarial})。但值得注意的是,如果有人想为"叠加最大主义立场"(superposition maximalist stance)辩护,那么确实可以看到,许多与对抗样本相关的有趣现象都可以由叠加预测出来。如上所述,叠加可以用来解释对抗样本为何存在。它还能预测:对抗鲁棒的模型性能会更差,因为要让模型变得鲁棒,就必须放弃叠加、表示更少的特征;对抗鲁棒性更强的模型可能更可解释(例如参见 \cite{engstrom2019adversarial});最后,它甚至可以说预测了对抗样本的可迁移性(例如参见 \cite{liu2016delving})——前提是叠加中特征的排列在很大程度上受特征之间相关或反相关关系的影响(参见前文的相关结果)。未来的工作或许可以探究"叠加是对抗样本的重要成因"这一假说究竟能走多远,这也许会很有趣。
除了观察到叠加会使模型易受对抗样本攻击之外,我们还简短地实验了对抗训练,想看看能否把这一关系反过来用于减少叠加。为了保持训练效率合理,我们使用了针对随机特征的解析最优攻击。我们发现这确实减少了叠加,但要完全消除叠加,攻击必须大到不合理的程度(输入 L2 范数的 80%),这似乎并不令人满意。或许更强的对抗攻击效果会更好。我们没有进一步探索这一点,因为对抗训练增加的成本和复杂性,让我们更愿意优先考虑其他攻克叠加的途径。
特权基中的叠加¶
到目前为止,我们一直在没有特权基的模型中探索叠加。我们可以任意旋转隐藏激活,只要把所有权重一起旋转,模型行为就完全相同。也就是说,对于任意权重为 \(W\) 的 ReLU 输出模型,我们都可以取任意正交矩阵 \(O\),并考虑模型 \(W' = OW\)。由于 \((OW)^T(OW) = W^TW\),得到的将是完全相同的模型!
没有特权基的模型很优雅,也可以作为某些没有特权基的神经网络表示的趣味类比——比如词嵌入,或 transformer 的残差流。但我们也(或许主要是)想理解那些由神经元施加了特权基的神经网络表示,例如 transformer 的 MLP 层或卷积网络的神经元。
本节的目标是探索能给我们带来特权基的最简单的玩具模型。实现这一点至少有两条途径:给隐藏层添加一个激活函数,或者对隐藏层施加 L1 正则化。我们将专注于添加激活函数的做法,因为我们最想理解的表示是带有神经元的隐藏层,例如 transformer 的 MLP 层。
这样就得到了如下"ReLU 隐藏层"模型:
我们将在与之前相同的数据上训练这个模型。
从可解释性的角度看,给隐藏层加上 ReLU 从根本上改变了模型。关键在于:此前模型中的 \(W\) 难以解释(回忆一下,我们可视化的是 \(W^TW\) 而不是 \(W\)),而 ReLU 隐藏层模型中的 \(W\) 可以直接解释,因为它把特征连接到与基对齐的神经元上。
稍后我们会对此展开更详细的讨论,这里先给出线性隐藏层模型与 ReLU 隐藏层模型所得权重的对比:

回忆一下:我们把输入中的基元素视为"特征",把中间层中的基元素视为"神经元"。因此 \(W\) 是从特征到神经元的映射。
我们在上图中看到的是:特征正以结构化的方式与神经元对齐!许多神经元干脆就专门用来表示一个特征!(正是这一关键性质,说明了为什么以神经元为中心的可解释性方法——例如原始 Circuits 系列中的大部分工作——在某些情况下能够奏效。)
让我们更详细地探索这一点。
以神经元为视角可视化叠加¶
拥有特权基为可视化我们的模型开辟了新的可能。如上所见,我们可以直接检视 \(W\)。我们还可以制作逐神经元的堆叠条形图:对每个神经元,把它的权重可视化为相互堆叠的一列矩形:
- 堆叠图中的每一列可视化 \(W\) 的一列。
- 每个矩形代表一个权重条目,其高度对应权重绝对值。
- 每个矩形的颜色对应它所作用的特征(即它位于 \(W\) 的哪一行)。
- 负值绘制在 x 轴下方。
- 矩形的排列顺序无关紧要。
随着模型变大,这种堆叠图可视化会很有用。它也让多语义神经元一目了然:多语义神经元无非就是拥有不止一个权重。

现在,我们来可视化一个 ReLU 隐藏层玩具模型,其参数为 \(n=10;~ m=5; I^i = 0.75^i\),并让特征稀疏性水平变化。我们之所以选择如此小的模型(只有 5 个神经元),一方面是为了便于可视化,另一方面是为了规避这个玩具模型的一些问题——这些问题我们稍后会讨论。
不过我们发现,这些小型模型更难优化。对于图中展示的每个模型,我们都训练了 1000 个模型,并可视化其中损失最低的一个。尽管典型的解通常与展示的最低损失解相近,但挑选最低损失解能揭示出更多关于特征如何与神经元对齐的结构。它还揭示出:存在某些稀疏值区间,在该区间内,所有在对应稀疏度数据上训练的模型,其最优解都具有相同的权重配置。
解的可视化如下,既展示了原始的 \(W\),也给出了神经元堆叠条形图。在堆叠条形图中,我们根据特征是否处于叠加状态为其着色,并根据神经元是否存储了多个特征,将其标记为单语义或多语义。神经元顺序是手工排定的(因为顺序本身是任意的)。

最值得关注的是,随着稀疏性的增加,神经元会从单语义转向多语义。单语义神经元确实存在于某些区域!多语义神经元则存在于另一些区域。而且它们可以共存于同一个模型中!此外,虽然还不太清楚该如何形式化地描述这一点,但它看起来很像是一种神经元层面的相变,与我们之前看到的特征层面相变遥相呼应。
研究多语义解的结构也很有意思,这些解出人意料地结构化,并且与神经元对齐。特征通常对应神经元的集合(单语义神经元可以看作特征只对应单元素集合的特例)。多语义神经元本身也存在结构:它们从单语义开始,到只表示少数几个特征,再到逐渐表示更多特征。不过,这些发现有多少能推广到真实模型,目前还不清楚。
ReLU 隐藏层玩具模型模拟恒等映射的局限¶
遗憾的是,本节描述的玩具模型有一个显著弱点,这限制了它展示有趣结果的区域。问题在于:模型并不能从 ReLU 隐藏层中获益——除了限制模型编码信息的方式之外,它没有任何作用。只要有机会,模型就会绕过它。例如,如果给隐藏层加偏置,模型会把所有偏置设为正值,把神经元推入行为线性的正区域。如果去掉偏置,但给模型足够多的特征,它又会通过对许多特征取平均来模拟一个偏置。只有在被逼无奈时,模型才会使用 ReLU 激活函数——这是研究这个玩具模型的一个重要减分项。
我们将在下一节引入一个没有这个问题的模型,但我们仍想先把这个模型当作一个更简单的案例来研究。
叠加中的计算¶
到目前为止,我们已经证明神经网络可以把稀疏特征存储在叠加中,然后再把它们恢复出来。但我们实际上认为,叠加的能力不止于此——我们认为神经网络可以完全在叠加中执行计算,而不只是把它当作存储。这个模型还会给我们一个更系统的方式来研究特权基——即特征与基维度对齐的情形。
为了探索这一点,我们考虑一种新的设定:把输入层和输出层设想为某个假想的解耦模型(disentangled model)的层,而隐藏层是一个更小的层,代表我们所观察到的、可能使用叠加的模型。然后,我们将尝试计算一个简单的非线性函数,并探索它能否利用叠加来完成计算。由于模型将拥有(并且必须使用)隐藏层的非线性,我们还将看到特征与特权基对齐的现象。

具体来说,我们将让模型计算 \(y=\text{abs}(x)\)。绝对值是一个很值得研究的函数,因为用 ReLU 神经元计算它有一种非常简单的方式:\(\text{abs}(x) = \text{ReLU}(x) + \text{ReLU}(-x)\)。这种简单的结构让我们很容易研究隐藏层被用来执行计算时的几何形态。
由于这个模型需要 ReLU 来计算绝对值,它不会像上一节的模型那样存在试图回避激活函数的问题。
实验设置¶
输入特征向量 \(x\) 仍然是稀疏的,每个特征 \(x_i\) 以概率 \(S_i\) 取值为 \(0\)。不过,由于我们希望模型计算绝对值,为了让这个任务不平凡,需要允许特征取非正值。因此,当特征非零时,其值现在从 \([-1,1]\) 上均匀采样。目标输出 \(y\) 为 \(y=\text{abs}(x)\)。
沿用上一节的设定,我们考虑"ReLU 隐藏层"玩具模型变体,但不再把两个权重绑定为相同:
损失仍然与之前一样,是按特征重要性 \(I_i\) 加权的均方误差。
基本结果¶
在这个模型中,研究单个特征如何被嵌入就没那么直截了当了:由于隐藏层上有 ReLU,我们不能只研究 \(W_2^TW_1\);又因为 \(W_2\) 和 \(W_1\) 现在是独立学习的,我们也不能只研究 \(W_1\) 的列。我们相信,稍加处理、把"正特征"和"负特征"分开考虑,就能找回早期模型的大部分简洁性,但我们打算转而聚焦另一个视角。
正如我们在上一节看到的,隐藏层有了激活函数之后,按神经元来可视化权重就变得有意义了。我们可以直接可视化 \(W\),也可以像之前那样把它画成神经元堆叠图。我们还可以把它可视化为一张图(graph),这在理解计算时有时会很有帮助。

我们来看看,当我们训练一个拥有 \(n=3\) 个特征、\(m=6\) 个隐藏层神经元的模型执行绝对值运算时,会发生什么。在不使用叠加的情况下,模型需要两个隐藏层神经元才能对一个特征实现绝对值。
得到的模型——除了输入和输出权重的缩放这一细微问题之外15——完全按预期实现了绝对值。对于每个输入特征 \(x_i\),它构造一个"正侧"神经元 \(\text{ReLU}(x_i)\) 和一个"负侧"神经元 \(\text{ReLU}(-x_i)\),然后把它们相加来计算绝对值:

叠加与稀疏性¶
我们已经看到——正如预期——我们的玩具模型能够学会实现绝对值。但它能否利用叠加,为更多的特征计算绝对值呢?为了检验这一点,我们训练了拥有 \(n=100\) 个特征、\(m=40\) 个神经元、特征重要性曲线为 \(I_i = 0.8^i\) 的模型,并改变特征稀疏性。16
关于可视化有几点说明:由于我们主要感兴趣的是理解叠加和多语义神经元,我们将展示权重绝对值的堆叠权重图。特征按叠加状态着色。为了让图示更易读,神经元按其多语义程度(依据图像目测判断)以淡色着色。神经元顺序按各自最大特征的重要性排序。

与我们在 ReLU 隐藏层模型中看到的情况非常相似,这些结果表明:在适当的条件下,激活函数会创造出一个特权基,使特征与基维度对齐。在稠密区域,最终每个神经元只表示一个特征,我们可以直接从神经元激活值中读出特征值。
然而,一旦特征变得足够稀疏,这个模型也会使用叠加来表示超过其神经元数量的特征。这一结果值得注意,因为它表明神经网络甚至可以对以叠加方式表示的数据执行计算。17 请记住,模型必须使用隐藏层的 ReLU 才能计算出绝对值;即使每个神经元编码的都是多个特征的混合,梯度下降依然设法找到了能有效逼近该计算的解。
聚焦中间的稀疏性区域,我们还发现了几个额外的定性行为,它们令人着迷地让人联想到在真实的全尺寸神经网络中观察到的现象:

首先,我们发现,在某些区域中,模型的大部分神经元会编码纯粹的特征,但其中一小部分会高度多语义。这与我们之前在 ReLU 输出模型中看到的相变相似。不过,在那种情况下,相变是针对特征的:更重要的特征不会被放入叠加。而在本实验中,神经元本身没有任何内在的重要性,但我们看到,表示最重要特征(位于左侧)的神经元倾向于保持单语义。
我们发现,这与视觉模型中的一些先前工作有着引人联想的相似之处:那些工作发现,某些层包含"基本纯净"的特征神经元,但也有部分神经元以不同的尺度表示额外特征。
我们还注意到,许多神经元似乎与一个"主"特征(primary feature)相关联——该特征由相对较大的权重编码——同时与该神经元相连的还有一个或多个"次"特征(secondary feature),它们以幅度更小的权重编码。如果我们观察这样一个神经元在一系列输入样本上的激活值,会发现该神经元的较大激活几乎全部与"主"特征的出现有关,而幅度较低的激活则多语义得多。
耐人寻味的是,这一描述与研究人员在先前关于语言模型的工作 \cite{elhage2022solu} 中的发现高度吻合——当我们考察神经元在数据集上的最强激活时,许多神经元看起来是可解释的,但进一步研究就会发现,它们也会为其他含义或模式而激活,且幅度通常更低。虽然这只是提示性的,但我们的玩具模型能够重现更大神经网络的这些定性特征,这令人振奋地暗示:这些模型正在阐明普遍现象。
非对称叠加母题¶
如果神经网络能在叠加中执行计算,一个自然的问题就是:它们究竟是如何做到的?从权重的角度看,这在机制上是什么样子?在本小节中,我们将(大体上)剖析一个这样的模型,看到一个有趣的非对称叠加母题(motif)。(我们是在原始电路系列文章的意义上使用"母题"一词的,这一用法受到系统生物学中该词用法的启发 \cite{alon2019introduction}。)
我们试图理解的模型如下左图所示,以神经元权重堆叠图的形式可视化,颜色对应特征。这个模型只进行了有限程度的叠加,许多权重可以理解为只是在按预期方式实现绝对值。
然而,有几个神经元在做别的事情……

这些其他的神经元实现了两个非对称叠加与抑制的实例。每个实例由两个神经元组成:

其中一个神经元执行非对称叠加。在普通叠加中,人们可以用相等的权重存储特征(例如 \(W=[1,-1]\)),然后使用相等的输出权重(\(W=[1,1]\))。而在非对称叠加中,人们用不同幅度的权重存储特征(例如 \(W=[2,-\frac{1}{2}]\)),然后使用互为倒数的输出权重(例如 \(W=[\frac{1}{2}, 2]\))。这会使一个特征对另一个特征产生强烈干涉,同时避免另一个特征干涉第一个特征!
为了避免这种干涉的后果,模型用另一个神经元在可能产生正干涉的情况下强烈抑制该特征。这实质上把正干涉(可能大幅增加损失)转化成了负干涉(由于输出层的 ReLU,其后果有限)。

还有一些其他权重无法用这个模式解释。(我们认为它们实际上是一些小的条件偏置。)但这种非对称叠加与抑制模式似乎是主要机制。
叠加的战略图景¶
尽管叠加在科学上很有趣,但我们的兴趣很大程度上源于一个务实的动机:我们认为,叠加与"利用可解释性对 AI 系统的安全做出论断"这一挑战密切相关。特别是,它对我们所看到的最有前景的路径构成了明确的挑战——无论是声称神经网络不会执行某些有害行为,还是捕捉"未知的未知"(unknown unknowns)类安全问题。这是因为叠加与识别并枚举模型中所有特征的能力紧密相连,而枚举所有特征的能力,将是就模型行为做出论断的一个强大原语。
在本节开头,我们将说明为什么在某种意义上"解决叠加"(solving superposition)等价于许多可能对安全有用的强可解释性性质。接下来,我们将描述应对"解决叠加"可以采取的三种高层次策略。最后,我们再介绍一些其他的战略性考量。
安全、可解释性与"解决叠加"¶
我们希望有一种方法,能让我们确信模型永远不会做出某些行为,例如"蓄意欺骗"或"操纵"。如今,尚不清楚怎样才能证明这一点,但我们相信,一个有前景的工具是识别并枚举所有特征的能力。能够对神经网络计算的基本单元施加全称量词,是朝着"断言某些类型的电路不存在"迈出的重要一步。18 它似乎也是应对"未知的未知"的有力工具,因为在某种意义上,它提供了一种完整覆盖网络行为的方式。
这与叠加有什么关系?事实证明,枚举特征的能力与叠加密切相关。理解这一点的一个方式是设想一个拥有特权基、不使用叠加的神经网络(比如早期 InceptionV1 中发现的单语义神经元,参见 \cite{olah2020zoom}):特征直接对应神经元,你可以通过枚举神经元来枚举特征。19 这种联系反过来也成立:如果一个人有能力枚举特征,他就可以利用特征方向进行压缩感知,以(高概率)把叠加模型的激活"展开"成更大的、无叠加模型的激活。
因此,我们把任何能够让我们枚举特征——等价地说,展开激活值——的方法称为"叠加的解法"(solution to superposition)。任何解法都在考虑之列:从直接构建没有叠加的模型,到事后识别哪些方向对应哪些特征,不一而足。我们稍后会讨论这个可能性空间。
我们以特征枚举为出发点论证了"解决叠加"的意义,但值得一提的是,它还等价于(或构成)人们可能关心的许多其它可解释性性质的(必要)前提:
- 分解激活空间。任何可解释性议程最根本的挑战,都是战胜维度灾难。对机制可解释性而言,这最终归结为我们能否把激活空间分解为可独立理解的组件,就像计算机程序的内存可以分解为变量一样。识别出特征,我们才能以特征为单元来分解模型。
- 用纯特征描述激活值。叠加最明显的受害者之一,是我们无法用纯特征来描述激活值。当特征与基相对对齐时,我们可以取一个激活值——比如视觉模型中"狗头"的激活值——把它分解为各个底层特征,如耷拉的耳朵、短金毛和口鼻。(参见 Building Blocks 中的"语义字典"界面 \cite{olah2018the}。)解决叠加后,我们对每个模型都能做到这一点。
- 理解权重(即电路分析)。神经网络的权重通常只有在连接的是可理解的特征时才能被理解。最初的电路系列文章中的全部电路分析(尤其参见 \cite{voss2021visualizing}),从根本上说都只是因为权重连接的是非多语义的神经元才成为可能。要让这一方法普遍适用,我们需要解决叠加。
- 即便是最基本的方法,在叠加面前也会变得危险。受到叠加损害的并不只是复杂的可解释性方法;即便是人们可能考虑的最基本方法也会变得不可靠。例如,如果人们担心语言模型表现出操纵性行为,可能会问:某个输入是否与其它欺骗性行为示例的表征存在显著的余弦相似度。遗憾的是,叠加意味着余弦相似度可能具有误导性,因为不相关的特征开始以彼此点积为正的方式被嵌入。不过,如果我们解决了叠加,这就不是问题了——要么我们得到一个特征与神经元对齐的模型,要么我们有一种方法,利用压缩感知(compressed sensing)把特征映射到一个彼此不再有正点积的空间。
三条出路¶
从很高的层面看,解决叠加似乎有三条可能的路径:
- 构建没有叠加的模型。
- 寻找一个过完备基(overcomplete basis),用来描述特征在有叠加的模型中是如何被表示的。
- 混合方法:对模型做出改动,并不直接解决叠加,而是让第二阶段的分析更容易找到描述叠加的过完备基。
我们的感觉是,如果不在意模型是否具备竞争力,这三条路径都是可行的。例如,我们相信对于本文描述的玩具模型,任何一条路径都能实现。然而,一旦开始考虑真正的神经网络,更不用说现代大语言模型,所有这些路径都开始显得非常困难。我们将在接下来的小节中逐一概述每条路径面临的挑战。
话虽如此,在把注意力转向挑战之前,值得先指出一个亮点。你或许曾以为叠加是永远无法彻底消除的东西,但事实似乎并非如此。我们的所有结果似乎都表明,叠加和多语义性都是具有尖锐转变的相(phase)。也就是说,对每个模型而言,都可能存在一个既无叠加也无多语义性的区域。问题在很大程度上只是:消除或以其它方式解决叠加的代价是否过高。
路径一:构建没有叠加的模型¶
在本文描述的玩具模型中消除叠加其实相当容易,代价只是损失更高。只需对隐藏层激活值施加一个 L1 正则项(即把 \(\lambda ||h||_1\) 加到损失上)。这其实有一个很好的解释:它相当于消灭低于某个重要性阈值的特征,尤其是那些不与基对齐的特征。把这一做法推广到真实神经网络并不容易,但我们预计是可以做到的。(这种方法与试图利用稀疏性来促使词嵌入与基对齐的工作类似。)
然而,模型似乎很可能从叠加中获益匪浅。粗略地说,特征越稀疏,每个神经元能塞入的特征就越多。而语言模型中的许多特征似乎非常稀疏!例如,语言模型认识一些公众知名度有限的人,比如本文的几位作者。想必我们出现的频率远低于每百万词元一次。因此,叠加可能实际上让模型变大了许多。
这一切描绘出这样一幅图景:消除叠加或许相当可行,但这样做会付出巨大的性能代价。对于神经元数量固定的模型,叠加是有帮助的——可能帮助很大。
但这一结论只有在把约束理解为神经元数量时才成立。也就是说,一个有 \(n\) 个神经元的叠加模型,其性能很可能与一个有 \(kn\) 个神经元的、大得多的单语义模型相当。但神经元并不是根本的约束:flops(浮点运算次数)才是。在最常见的模型架构中,flops 与神经元数量存在严格的对应关系,但情况未必总是如此;在更广阔的可能性空间中,叠加是否最优就远没有那么清楚了。
改变 flops-神经元关系的一类模型是混合专家(Mixture of Experts, MoE)模型(参见综述 \cite{fedus2022review} )。直觉是:大多数神经元服务于特定的情境,大部分时间并不需要激活。例如,德语专用的神经元不需要在法语文本上激活;哈利·波特神经元不需要在科学论文上激活。因此,MoE 模型把神经元组织成块(block)或专家(expert),它们只在一小部分时间里激活。在给定样本中只有 \(1/k\) 的神经元激活、且它们必须按块激活的约束下,这实际上让模型在相近的 flops 预算下拥有 \(k\) 倍的神经元。换句话说,只要稀疏性以某种特定方式组织,MoE 模型就能把神经元的稀疏性转化为免费的 flops。
这条路能走多远还不清楚,尤其是考虑到棘手的工程约束。但存在一个明显的下界——它可能过于乐观,但值得想一想:如果模型只在神经元激活上花费 flops,并把所有未激活神经元的算力都回收回来,会怎样?在这样的世界里,叠加似乎不太可能是最优的:你总能用同样的代价,把一个多语义神经元拆分为每个特征各一个的专用神经元——除非在那些干涉本来就会损害模型的情况下。我们初步调查了按"每次激活频率带来的损失降低"来比较的各种类型的叠加,结果似乎表明,按这些标准衡量叠加并非最优,尽管在渐近意义上它可以变得与专用特征维度一样好。换一种方式理解:叠加利用的是神经元稀疏性与底层特征稀疏性之间的差距;MoE 吃掉的是同一个差距,因此我们应该预期 MoE 模型中的叠加更少。
需要说明的是,MoE 模型已经被研究得很充分,我们不认为这会改变关于它们能力的论证。(如果说有什么影响的话,叠加倒是提供了一个理论,解释为什么 MoE 模型在最初看起来如此有说服力的情况下,却未被证明在能力上更有效!)但如果目标是构建没有叠加的、有竞争力的模型,MoE 模型就变得值得思考了。我们并不认为它们一定就是正确的前进方向——我们在这里的目标,是把它们当作一个例子,说明为什么我们认为:可能存在构建有竞争力的无叠加模型的方法,这一想法仍然是有道理的。
路径二:寻找过完备基¶
与构建无叠加模型相反的策略是:取一个普通的、存在叠加的模型,事后找出一个过完备基,描述特征是如何嵌入的。这看起来是一个相对标准的稀疏编码(sparse coding)(或字典学习)问题:我们想取神经网络各层的激活值,弄清哪些方向对应哪些特征。20 一些先前的工作已经探索过这种方法 \cite{goh2016decoding,arora2018linear}。
这种方法的好处是,我们不必担心是否会损害模型性能。另一方面,许多其它事情变得更难了:
- 不再容易知道需要枚举多少个特征。单语义模型每个神经元表示一个特征;但寻找过完备基时,还多了一个挑战:确定该用多少个特征。
-
解不再融入表层计算结构。神经网络可以从表层结构——神经元、注意力头等——以及隐含浮现的虚拟结构(例如虚拟注意力头 \cite{nelhage2021mathematical})来理解。用过完备基描述的模型拥有"虚拟神经元":表层结构与虚拟结构之间又多了一道鸿沟。
-
这是一个不同的、重大的工程挑战。认真尝试用稀疏编码解决真实神经网络的叠加,意味着一个巨大的稀疏编码问题。对于真正的大语言模型,起点将是一个约数百万(神经元)×数十亿(词元)的矩阵,然后要尝试做极度过完备的分解——或许要把它分解成大一千倍甚至更多。这是一项重大的工程挑战,与机器学习实验室为之做好准备的常规分布式训练挑战不是一回事。
- 干涉不再朝有利于你的方向使劲。如果你试图训练没有叠加的模型,特征之间的干涉会推动训练过程减少叠加。如果你改为事后解码叠加,那么叠加的多少已经被训练过程"固化"进去,目标函数中没有哪一部分在朝有利于你的方向使劲。
路径三:混合方法¶
除了纯粹在训练时处理叠加、或纯粹在事后处理叠加的方法,或许还可以采取"混合方法",把两者混合起来。例如,即使无法构建没有叠加的模型,也许可以产出叠加更少的模型,这样的模型随后更容易解码。21 另外,架构上的改动或许能让大型模型中的过完备基寻找变得更容易、或在计算上更可行——这与试图减少叠加是两回事。
其它考虑¶
相变是希望所在。彻底消除叠加是一个现实的希望吗?人们很容易想象这样一个世界:叠加只能被渐近地减少,永远无法被完全消除。虽然本文的结果似乎表明,叠加很难消除,因为它实际上非常有用,但叠加对应相变这一点带来的结论是:存在一个叠加完全不存在区域。如果我们能找到办法把模型推入无叠加区域,那么叠加似乎很可能被彻底消除。
任何无叠加模型都会是强大的研究工具。我们认为,大部分研究风险在于能否造出性能良好的无叠加模型,而不是能否造出无叠加模型本身。当然,我们最终需要的是性能良好的模型。但一个性能不佳的无叠加模型,仍然可以成为研究普通模型中叠加现象的非常有用的研究工具。目前,研究模型中的叠加很困难,因为我们没有关于特征究竟是什么的基准真相(ground truth)。(这也是本文描述的玩具模型可以被研究的原因——我们确实知道特征是什么!)如果我们有一个无叠加模型,也许就能把它当作基准真相,用来研究普通模型中的叠加。
局部基是不够的。前面在考虑非均匀叠加的几何形态时,我们观察到模型常常形成局部正交基:共同出现的特征彼此正交。这提示了一种策略:在足够狭窄的子分布上局部地理解模型。然而,如果我们的目标是最终对模型安全做出有用的陈述,我们就需要适用于完整分布(以及分布外)的机制性解释。局部基似乎不太可能提供这些。
讨论¶
叠加在多大程度上存在于真实模型中?¶
我们为什么对玩具模型感兴趣?我们相信,它们是研究我们怀疑真实神经网络中可能存在的叠加现象的有效代理。但我们怎么知道它们是否真的是有用的玩具模型呢?我们最好的验证方式,是看它们的预测是否与关于多语义性的经验观察一致。就我们所知,确实一致。具体来说:
- 多语义神经元确实存在。我们的第三个模型中形成了多语义神经元,正如在广泛的各种神经网络中所观察到的那样。
- 神经元有时"可被干净地解释",有时"多语义",而且常常出现在同一层里。我们的第三个模型同时表现出多语义和非多语义神经元,而且往往同时出现。这与真实神经网络的情况类似:同一层中常常混合着多语义和非多语义神经元。
- InceptionV1 的深层中有更多多语义神经元。经验上,InceptionV1 中多语义神经元的比例随深度增加。一个自然的解释是:随着特征变得越来越高层,它们检测的刺激变得越来越罕见、因而越来越稀疏(例如在视觉中,高层的"耷拉的耳朵"特征不如低层 Gabor 滤波器的边缘常见)。我们模型的一个主要预测是:叠加和多语义性随稀疏性的增加而增加。
- Transformer 中靠前的 MLP 神经元极其多语义。我们的经验是,Transformer 语言模型中第一个 MLP 层的神经元往往极其多语义。如果第一个 MLP 层的目标是区分同一个词元的不同含义(例如 "die" 在英语、德语、荷兰语和南非荷兰语中的不同意思),这样的特征会非常稀疏,而我们的玩具模型会预测出大量的多语义性。
这并不意味着我们玩具模型的方方面面都反映了真实神经网络。我们的直觉是,我们观察到的某些现象(叠加、单语义与多语义神经元之分,或许还有与对抗样本的关系)很可能会推广到真实模型,而其他现象(尤其是几何形态与学习动力学方面的结果)则远不那么确定。
开放问题¶
本文已经证明,叠加假说在特定的玩具模型中成立。但要说有什么收获的话,我们留下的疑问反而比开始时更多了。在最后一节中,我们回顾一些我们认为最重要的问题:我们知道了什么,又希望未来的工作澄清什么?
- 是否存在能捕捉叠加的统计检验?
- 我们能否控制叠加和多语义性的发生?换句话说,我们能否改变相图,使特征不落入叠加相区?从实用角度看,这似乎是最重要的问题。对激活值做 L1 正则化、对抗训练以及更换激活函数,看起来都颇有希望。
- 是否存在具有闭式解的叠加模型?Saxe 等人 \cite{saxe2014exact} 证明,为线性神经网络构造漂亮的闭式解是可能的。我们针对 \(n=2; m=1\) 的 ReLU 输出模型在这方面取得了一些进展(Tom McGrath 在他的评论中又推进了一步),但若能更一般地解决这个问题就好了。
- 这些玩具模型有多真实?就叠加而言,它们在多大程度上捕捉到了真实模型的重要性质?我们又该如何判断?
- 我们能估计真实模型的特征重要性曲线或特征稀疏性曲线吗?如果认真对待我们的玩具模型,那么理解这个问题最关键的性质就是特征重要性和稀疏性曲线。有没有办法为真实模型估计它们?(很可能需要训练不同规模或不同正则化程度的模型,观察损失与神经元稀疏性,再尝试推断出一些结论。)
- 我们是否应该预期,只要规模足够大,叠加就会消失?要让这种情况成立,特征重要性曲线和稀疏性需要满足哪些假设?或者反过来说,我们是否应该预期叠加在已表示特征中始终占固定比例,甚至随规模增大而增加?
- 我们测量的是不是最有理论依据(principled)的量?例如,叠加/多语义性最有理论依据的定义是什么?
- 多语义神经元有多重要?如果模型中 X% 的神经元是可解释的、1-X% 是多语义的,那么理解了这 X% 的可解释神经元,我们又该相信自己到底理解了多少?(另见上文提出的"特征打包原则"(feature packing principle)。)
- 我们应该预期有多少特征以叠加方式存储?上一节对此已有简要讨论。压缩感知的结果似乎应当能为我们提供有用的上界,但若能理解得更清楚——也许还能得到更紧的界——就更好了!
- 我们在特征/神经元中观察到的明显相变,与压缩感知中的相变是否有联系?
- 叠加与非鲁棒特征有什么关系?Gabriel Goh 的一篇有趣的论文(archive.org 备份)从数据主成分的角度探索了线性模型中的特征。它聚焦于主成分特征在"有用性"与"鲁棒性"之间的权衡,但似乎也可以把它与特征的可解释性联系起来。如果相信叠加假说,这一视角会发生多大变化——那些有用但不鲁棒的特征,会不会只是叠加的产物?
- 神经网络在多大程度上能对叠加中的特征"进行有用的计算"?绝对值问题代表的是叠加中计算的普遍情形,还是特例?哪一类计算适合在叠加中进行?这是否要求计算本身具有稀疏结构?
- 如果特征不是独立的,叠加会如何变化?如果特征反相关,叠加能否更高效地打包特征?
- 模型能否有效地使用非线性表示?我们怀疑模型倾向于不使用它们,但进一步的实验或许能提供有力的证据。见关于非线性压缩的附录。例如,可以研究瓶颈极小的多层编码器-解码器自编码器在随机不相关数据上所使用的表示。
相关工作¶
可解释特征¶
我们的工作受到探索神经网络中自然出现的特征的研究的启发。许多模型至少会形成一些可解释特征。词嵌入具有语义方向 (see )。RNN 中存在可解释神经元的证据 (e.g. ),卷积神经网络也有(一般性综述参见例如 (see generally e.g. ; individual neuron families )),在某些有限的情况下,transformer 语言模型同样如此(详见我们此前论文中的讨论)。然而,这些工作也发现了许多无法被解释为单一概念的"多语义"神经元 \cite{olah2017feature}。
叠加¶
据我们所知,人工神经网络中最早提到叠加的文献是 Arora 等人的工作 \cite{arora2018linear}:他们提出,具有多个不同词义的词的词嵌入,可能是其各个含义对应向量的叠加。Arora 等人进一步把这一思想扩展为:叠加中存在许多稀疏的"话语原子"(atoms of discourse)。Goh \cite{goh2016decoding} 将这一思想推广到其他类型的嵌入向量,并做了更详细的探索。
与此并行的是,对具有特权基的模型中单个神经元的研究开始直面那些会对无关输入作出响应的"多语义"神经元 \cite{olah2017feature}。一个自然的假说是:这些多语义神经元通过其他神经元激活值的组合来消歧。这条思路最终演变成了针对电路的"叠加假说" \cite{olah2020zoom}。
与上述工作都不同,Cheung 等人 \cite{cheung2019superposition} 探索了一个略有不同的想法,可以称之为"模型级"叠加:神经网络的参数能否表示多个完全独立的模型?他们的研究动机是灾难性遗忘,但与本文研究的问题似乎相当相关。模型级叠加可以看作高度相关特征集上的特征级叠加,类似于我们上文考虑的"近似正交基"实验。
解耦¶
学习解耦表示的目标源自 Bengio 等人那篇关于表示学习的有影响力的立场论文 \cite{bengio2013representation}:"我们希望表示能够解耦变化的各个因素……学习把各种解释性来源分开的表示。"此后,受这一目标驱动发展出了一支文献,倾向于专注于创造在其潜空间中分离出主要变化因素的生成模型。这项研究与叠加相关的问题有所交集,但在许多方面又颇为不同。
具体来说,解耦研究常常探索能否训练一个 VAE 或 GAN,使其基维度与人们用来描述问题的主要特征(如旋转、光照、性别……视情况而定)相对应。早期工作往往聚焦于预先已知特征的半监督方法,但完全无监督的方法大约从 2016 年开始发展 \cite{higgins2016beta,chen2016infogan,kim2018disentangling}。
换句话说,解耦的目标可以描述为:对默认旋转不变的表示施加一个强特权基。这有助于我们触及多语义性与叠加的问题在哪些方面与解耦略有不同。试想,当我们处理的是神经元而非嵌入时,我们默认就拥有一个特权基。它因模型而异,但许多神经元确实会清晰地响应特征。这意味着多语义性是作为一种异常行为出现的,而叠加则是用来解释它的假说。于是问题就不再是如何施加特权基,而是如何消除叠加这一访问特征的根本障碍。
当然,如果叠加假说成立,解耦与叠加之间仍有诸多联系。一方面,叠加很可能也发生在生成模型的潜空间中,尽管我们并没有研究这个领域。如果真是这样,叠加或许就是解耦困难的主要原因。叠加或许能让生成模型比没有叠加时高效得多。换句话说,解耦通常假设只需少数几个重要的潜变量就能解释数据。显然存在这样的变量,比如物体的朝向——但如果大量稀疏、罕见、单独看来并不重要的特征合在一起却非常重要呢?叠加将是模型表示这类特征的天然方式。22 另一方面,可以设想,解耦文献中的思想有助于构建抵抗叠加的架构——通过创造一个更强的特权基。
压缩感知¶
我们考虑的玩具问题与压缩感知(compressed sensing)领域研究的问题相当相似,该领域也被称为 compressive sensing(压缩传感)和稀疏恢复(sparse recovery)。不过,两者之间有一些重要区别:
- 压缩感知通过通用技术求解优化问题来恢复向量,而我们的玩具模型必须使用神经网络层。压缩感知算法原则上比我们的玩具模型强大得多。
- 压缩感知用非零项的个数作为稀疏性的度量,而我们用每个维度为零的概率作为稀疏性。两者并非毫无关联:测度集中(concentration of measure)意味着我们的向量以高概率只有有限个非零项。
- 压缩感知要求嵌入矩阵(通常称为测量矩阵)具有某种"不相干"(incoherent)结构 \cite{donoho2001uncertainty},例如受限等距性质 \cite{candes2005decoding} 或零空间性质 \cite{cohen2009compressed}。我们的玩具模型学习嵌入矩阵,并且常常干脆忽略许多输入维度,以便更容易恢复其他维度。
- 我们玩具模型中的特征有不同的"重要性",这意味着模型常常宁愿更准确地恢复"重要"特征,代价是根本无法恢复"不那么重要"的特征。
总的来说,我们的玩具模型是在用比压缩感知算法更弱的方法求解一个类似的问题,尤其是因为其计算模型受限得多(仅一次线性变换加一个非线性),而压缩感知算法可以使用任意计算。
因此,压缩感知的下界——它给出仍能实现恢复时嵌入维度的下界——可以解释为对我们玩具模型中叠加量的一个上界。特别地,在各种压缩感知设定下,当且仅当 \(m = \Omega(k \log (n/k))\) \cite{kashin2007remark,wainwright2007information,ba2010lower} 时,才能从一个 \(m\) 维投影中恢复 \(n\) 维 \(k\) 稀疏向量。尽管这种联系并非一目了然,我们还是在附录中把其中一个结果应用到了玩具模型上。
乍看之下,这个界似乎允许把数量随 \(m\) 呈指数增长的特征打包进 \(m\) 维嵌入空间。然而在我们的设定中,使所有向量至多有 \(k\) 个非零项的整数 \(k\) 由固定的密度参数 \(S\) 决定,即 \(k = O((1 - S)n)\)。因此,我们的界实际上是 \(m = \Omega(-n (1 - S) \log(1 - S))\)。也就是说,特征数量与 \(m\) 成线性关系,但受稀疏性调节。23 如果我们希望消除叠加这一现象,这可是个好消息!不过,这些界也允许叠加量随稀疏性急剧增加——希望这只是证明技巧的产物,而非减少或消除叠加的固有障碍。
我们的玩具模型与压缩感知之间一个惊人的平行之处,是两者都存在相变。24 在压缩感知中,如果考虑由向量的稀疏性和维度定义的二维空间,会存在尖锐的相变:在一个相区中向量几乎必然能被恢复,而在另一个相区中几乎必然不能 \cite{donoho2005neighborly,blanchard2009compressed}。如何把这些压缩感知中的相变——它们针对的是整个向量的恢复,而非某个特定分量——与我们观察到的特征和神经元的相变联系起来,这一点并不显而易见。但这种相似性很值得警惕。
另一条有趣的研究路线尝试用神经网络构建实用的稀疏恢复算法 \cite{mousavi2015deep,metzler2017learned,bora2017compressed}。虽然出于分析目的,我们认为把玩具模型看作一种稀疏恢复算法是有用的——这样我们可以套用稀疏恢复的下界——但我们并不指望玩具模型对稀疏恢复问题本身有什么用处。不过,或许存在一个令人兴奋的机会,可以把我们对叠加现象的理解与这些技术及其他技术联系起来。
稀疏编码与字典学习¶
稀疏编码研究为稠密数据寻找稀疏表示的问题。可以把它想成压缩感知,只是把稀疏向量投影到低维空间的矩阵也是未知的。这一主题有许多不同的名称,包括稀疏编码(神经科学中最常见)、字典学习(计算机科学中)和稀疏框架设计(数学中)。关于一般性介绍,我们请读者参阅 Michael Elad 的教科书 \cite{elad2010sparse}。
经典的稀疏编码算法采用期望最大化方法(包括 Olshausen 等人的早期工作 \cite{olshausen1997sparse}、MOD 算法 \cite{engan1999method} 和 k-SVD 算法 \cite{aharon2006k})。最近,基于梯度下降和自编码器的新方法开始在这些思想的基础上发展起来 \cite{Gregor2010LearningFA,Barello2018SparseCodingVA}。
在我们看来,稀疏编码之所以引人入胜,是因为它很可能是"通过发现哪些方向与特征相对应来'解决叠加'"这一目标最自然的数学表述。25 但我们在实践中真能用这些方法解决叠加吗?已有工作尝试用稀疏编码寻找稀疏结构 \cite{arora2018linear,goh2016decoding}。最近,Sharkey 等人 \cite{sharkey2022interim} 在本文最初发表之后跟进的一项研究已经取得初步成功:用稀疏自编码器把特征从玩具模型的叠加中提取出来。总的来说,以这种方式使用稀疏编码和字典学习,我们还只处于非常初步的探索阶段,但情况看起来相当乐观。更多讨论见「Approach 2: Finding an Overcomplete Basis」(方法 2:寻找过完备基)一节。
神经编码与表示的理论¶
我们的工作探索的是人工"神经元"中的表示。神经科学家也在生物神经元中研究类似的问题。关于一组神经元如何编码信息,存在多种理论。一个极端是局部编码(local code):每个刺激都由一个单独的神经元表示。另一个极端是最大稠密度的分布式编码(maximally-dense distributed code):神经元群体的信息论容量被完全利用,群体中的每个神经元在表示每个输入时都扮演着不可或缺的角色。
将我们的工作与神经科学文献相比较时遇到的一个挑战是:"分布式表示"(distributed representation)一词似乎含义不一。考虑一个过度简化的例子:一群神经元,每个神经元取活跃或不活跃的二元值;刺激集含十六个项目——四种形状各配四种颜色(例子借自 \cite{thorpe1989coding})。"局部编码"会有一个"红色三角形"神经元、一个"红色正方形"神经元,依此类推。那么,表示可以在什么意义上变得更"分布式"呢?一种意义是独立地表示独立特征——例如四个"形状"神经元和四个"颜色"神经元。第二种意义是用比神经元更多的项目——即用四个神经元上的二元编码来表示 2^4 = 16 个刺激。在我们的框架中,这两种意义分别对应可分解性(decomposability)与叠加(superposition):前者把刺激表示为独立特征的组合,后者表示的特征数超过神经元数,代价是特征共现时会产生干涉。
可分解性并不必然意味着每个特征都有自己的神经元。更可能的情况是:每个特征对应激活空间中的一个"方向"26,配以标量"激活值"(在生物神经元中即发放率)。只有当存在特权基时,模型才有动力发展出"特征神经元"。对生物神经元而言,人们常假设代谢方面的考量会诱导出特权基,从而形成"稀疏编码"(sparse code)。如果神经系统的能量消耗随发放率线性或亚线性增长,那么这一点是可以预期的。27 此外,神经元是生物神经网络实现非线性变换的基本单位,因此如果一个特征需要被非线性变换,"特征神经元"正是实现这一点的好办法。
任何使用正交特征向量的可分解线性编码,从线性读出(linear readout)的角度看都是功能等价的。因此,一种编码可以既是"最大程度分布式的"——即每个神经元都参与表示每个输入,使每个神经元都极度多语义——同时其特征数又不超过其维数。在这种观念下,一种编码完全可以既是充分"分布式的",又完全没有叠加。
我们的工作与所接触到的神经科学文献之间有一个显著差异:我们把"特征以一定概率共现"的可能性作为一个核心概念来考量。28 "最大稠密度分布式编码"在项目从不共现的情况下最有意义;如果网络每次只需表示一个项目,它能容忍极其极端的叠加程度。相比之下,一个有可能需要同时表示所有项目的网络,只要采用没有叠加的编码,就能在项目之间互不干涉地做到这一点。特征高共现的一个例子是感受野(receptive field)中的空间频率编码:这些视觉神经元需要能够表示白噪声,而白噪声在所有频率上都有能量。共现有限的一个例子可以是针对离散目标的运动"够取"(reach)任务:目标之间相距足够远,每次只能够到一个。
神经科学中的一个假说是:高度压缩的表示可能在脑区之间的长距离通信中发挥重要作用\cite{ganguli2012compressed}。按照这一理论,脑区内部使用稀疏表示进行计算,然后将其压缩,以便通过少量轴突传输。我们在绝对值玩具模型上的实验表明,即使在具有中等程度叠加的编码下,网络也能进行有用的计算。这提示我们:所有神经编码——而不仅仅是那些用于高效通信的编码——都可能在一定程度上是"压缩"的;脑区内的编码未必需要解压成完全稀疏的编码。
值得注意的是,"分布式表示"一词在深度学习中也有人使用,并且在那里同样存在含义上的歧义。我们的理解是,一些有影响力的早期工作(如 \cite{bengio2013representation})主要想表达的是"独立特征被独立表示"这种可分解性的含义,但我们认为另一些工作想暗示的东西与我们所称的叠加类似。
其他联系¶
论文原版发表后,许多读者慷慨地提请我们注意本文与前人工作的其他联系。我们对这些工作的理解还不够深入,无法给出详细评述,但下面提供简要的概述:
- 向量符号架构(Vector Symbolic Architectures)与超维计算(Hyperdimensional Computing)(综述见 \cite{schlegel2022comparison,kleyko2021survey})是理论神经科学中关于神经系统如何操纵符号的模型。其中关于准正交向量与"维度之福"如何使计算成为可能,有许多核心思想与我们的叠加概念密切相关。
- 框架(Frames)(综述见 \cite{kovacevic2007life})是数学基(basis)概念的一种推广。叠加在低维空间中编码特征的方式,至少在有些情况下可以被看作框架。特别是,"梅赛德斯-奔驰框架"(Mercedes-Benz Frame)等价于我们有时观察到的三角形几何叠加。
- 虽然我们在上文讨论了压缩感知与稀疏编码,但值得注意的是,这只是关于"稀疏向量如何编码进低维稠密向量"这一研究方向的一小部分,还有大量工作不属于这些主题的范畴。
评论与复现¶
受最初的 Circuits Thread 和 Distill 的讨论文章实验 启发,作者邀请了几位此前与我们讨论过初步结果的外部研究者对本工作发表评论。他们的评论如下。
复现与即将发表的论文¶
Kshitij Sachan 是 Redwood Research 的研究实习生。
Redwood Research 受 Anthropic 工作的启发,一直在研究多语义性的玩具模型。我们计划单独发表我们的结果,在研究过程中我们复现了本文的许多实验。具体来说,我们复现了"演示叠加"和"叠加:一种相变"两节中的所有图(不同稀疏度下 relu 模型的可视化以及相图),以及"叠加的几何形态——均匀叠加"中的图。我们发现,相图的形态在很大程度上取决于激活函数,这表明在这个玩具模型中,某些激活函数比其他激活函数诱发更多的多语义性。
原作者回应:Redwood 对叠加相变的进一步分析大大推进了我们对这一问题的理解——我们非常期待他们的分析公之于世。我们也感谢他们对我们的基本结果的独立复现。
更新:上一条评论中提到的 Redwood 的研究《Polysemanticity and Capacity in Neural Networks》(Alignment Forum、Arxiv)已经发表了!他们研究了一个略有不同的玩具模型,并得到了一些非常有趣的结果。亮点包括:在解析层面推进了对该玩具模型一个变体的理解、从约束优化的角度理解叠加,以及分析不同激活函数所起的作用。

复现与进一步的结果¶
Tom McGrath 是 DeepMind 的研究科学家。
本文的结果是一项重要贡献——它们确实推进了我们对一个现象的理论理解,而这一现象可能对可解释性研究乃至更一般地对网络表示的理解都至关重要。令人惊讶的是,如此简单的设定竟能产生如此丰富的现象。我们复现了"演示叠加"和"叠加:一种相变"两节的实验,并且有一个小小的额外结果要贡献。
对于基础 ReLU 输出玩具模型在 \(n=2\)、\(m=1\) 的情形(忽略偏置项),可以精确求解期望损失。推导在数学上很简单,但有些冗长:其"诀窍"在于 (1) 用 δ 函数表示输入分布中的稀疏部分,(2) 用积分区域的限制来替换 ReLU:
这一替换使积分变得解析可解,从而让我们能够绘制完整的损失曲面并直接求解损失极小值。下面展示一些示例损失曲面:

尽管这些损失曲面(图 1a、1b)中有许多的极小值在性质上与"叠加:一种相变"一节所用到的某个网络权重相似,我们还发现了一个新的相,其中 \(W_1\simeq W_2 \simeq \frac{1}{\sqrt{2}}\):两个权重相似而非对跖(antipodal)。这种"混淆特征"(confused feature)区域出现在稀疏度较低且两个特征都很重要时(图 1c)。(这与"叠加的几何形态——相关特征的坍缩"中描述的行为略有相似,但此处特征并不相关!)此外,尽管我们找到的解在性质上常常与"叠加:一种相变"中使用的权重相似,但它们在数值上可能不同,如图 1a 所示。从图 1a 到图 1b 的转变是连续的:随着稀疏度改变,极小值在权重空间中平滑移动。这解释了相图中三重点(triple point)附近的"模糊"区域。
如图 1c 所示,某些稀疏度与相对特征重要性的组合会导致损失曲面出现两个极小值(在考虑了对称性 \((W_1, W_2) \to (-W_1, -W_2)\) 之后)。如果这一模式对更大的 \(n\) 和 \(m\) 也成立(我们看不出有什么理由不成立),那么它或许能解释"离散的'能级跳变'"现象——解在极小值之间跳变。在某些情况下(例如参数接近相变所需的临界值时),全局极小值的吸引域可能远小于局部极小值。对跖解与混淆特征解之间的转变似乎是不连续的。
原作者回应:对 \(n=2, m=1\) 情形的这种闭式分析非常精彩。我们之前没有意识到,在没有相关特征的情况下,\(W_1\simeq W_2 \simeq \frac{1}{\sqrt{2}}\) 竟然可以是一个解!对"模糊行为"的澄清以及关于局部极小值的观察也很有趣。更一般地说,我们非常感谢你们对核心结果的独立复现。
复现¶
Jeffrey Wu 和 Dan Mossing 是 OpenAI 对齐团队的成员。
我们对这些多语义性玩具模型感到非常兴奋。这项工作处在一个罕见的交汇点:它既可能对训练更可解释的模型非常重要,又非常简单优雅。结果出乎意料地容易复现——我们几乎没费什么周折就复现了与"演示叠加——基本结果"、"几何形态——特征维度"和"学习动力学——离散的'能级跳变'"几节中相似的图。
原作者回应:我们非常感谢你们对基本结果的复现。我们的一些发现连我们自己都相当惊讶,这次的复现让我们更有信心:这些发现并非我们实现中的某个独特怪癖或缺陷所致。
复现¶
Spencer Becker-Kahn 是未来人类研究所(Future of Humanity Institute)的高级研究员,也是 SERI 机器学习对齐理论学者。
在看过初步结果后,我独立复现了"演示叠加——基本结果"中的一些关键图,并利用非常小的玩具模型,制作了一系列与"几何形态——特征维度"和"叠加与学习动力学"中浮现的概念图景一致的图。
另见 Twitter 帖子。
在玩具模型中工程化单语义性¶
Adam Jermyn 是一位专注于 AI 对齐与可解释性的独立研究者。他此前是熨斗研究所(Flatiron Institute)计算天体物理中心的研究员。Evan Hubinger 是 MIRI 的研究员。Nicholas Schiefer 是 Anthropic 的技术人员,也是原论文的作者之一。
受本文结果以及引入 SoLU 激活函数的前一篇论文的启发,我们一直在研究:修改模型架构或训练过程能否减少玩具模型中的叠加。在独立复现了其中若干结果之后,我们朝这个方向做了以下扩展:
- 一个改进的玩具模型,试图更准确地刻画非玩具情形:稀疏特征被投影到维度更少的模型非稀疏输入中。
- 一种"多神经元"架构,给模型足够的容量以彻底避免多语义性。
- 一种训练与初始化方法,能真正让这些玩具模型变得单语义。
- 对这些模型中容易出现的多语义神经元进行了系统探索,这为我们的训练方法探索提供了指引。
至少在有些极限情况下,这表明单语义性或许不需要付出代价。详细结果见我们的论文《Engineering Monosemanticity in Toy Models》(Alignment Forum、ArXiV)。
分数维度与"压力"¶
Tom Henighan 和 Chris Olah 是原论文的作者。
在"特征维度"一节中,我们发现当特征数量超过嵌入维度容易表示的数目时,特征会组织成规整的多胞形。
我们对此做了进一步简短的探究,发现竞争表示的特征数量会显著影响这一现象。当存在更大的"压力"——即更多特征竞争表示时,往往会出现更规整的结构。在稀疏度较高时尤其如此。此外,训练时间更长似乎也会产生更规整的结构。
要真正理解这一现象,还需要更多的研究。

复现¶
Marius Hobbhahn 是蒂宾根大学(University of Tuebingen)的博士生。
我复现了《Toy Models of Superposition》论文第 2 节("演示叠加")中的"基本结果"以及整个第 7 节("特权基中的叠加")。我的所有发现都与论文中描述的一致。我还复现了后续论文《Superposition, Memorization, and Double Descent》中的大部分发现。
我的复现细节见我的文章《More Findings on Memorization and Double Descent》。
用稀疏自编码器提取特征¶
Lee Sharkey、Dan Braun 和 Beren Millidge 是 Conjecture 的研究员。
本文的结果及其描绘的战略图景,启发了我们的初步后续工作——这项工作旨在解决题为「Approach 2: Finding an overcomplete basis」(方法 2:寻找过完备基)一节中描述的一些挑战。
在转向研究真实神经网络(我们并不确定其 "ground truth"(真值)特征是什么)的激活之前,我们先研究了一个玩具示例。我们生成了一组玩具 ground truth(真值)特征,并用它们的稀疏组合构造了一个数据集。我们发现,一个在隐藏激活上施加 \(L_1\) 惩罚的单层稀疏自编码器(sparse autoencoder, SAE)学到的特征几乎与真值特征完全一致。这令人鼓舞,因为它表明:只要神经网络确实拥有特征,一个相对简单的方法就应该能够把它们恢复出来。
对于玩具数据集,我们知道真值特征的数量。但我们最终想要数清真实神经网络所使用的特征个数,而那里的特征数量是未知的。我们探索了三种对玩具数据集中的特征进行计数的方法:a) 统计自编码器中的死亡神经元;b) 考察自编码器的损失;c) 比较不同规模的自编码器学到的特征。我们找到了一些迹象,表明这些方法或许能够用来统计真实神经数据中处于叠加(superposition)状态的特征数量。
我们还将这一方法应用到了一个小型语言模型的真实激活上。我们最初的初步调查没有得出确切的结论,可能是因为所用的自编码器规模太小或训练不足。截至撰写本文之时,相关调查仍在进行中。
Othello 中的线性表示¶
Neel Nanda 是机制可解释性领域的外部研究者。以下是他博客文章 Actually, Othello-GPT Has A Linear Emergent World Representation(《实际上,Othello-GPT 拥有线性的涌现世界表示》)的概述。
我在此描述的是本文所提出的线性表示假说(linear representation hypothesis)的一次自然实验——该假说认为,特征对应于神经网络中的方向。
背景:Martin Wattenberg(本文作者之一)及其同事最近发现,如果训练一个 transformer 语言模型来预测合成 Othello 棋局中的下一个词元(token)(其中每一步都是随机选择的合法着法),它会涌现出一个关于棋盘状态的内部模型(尽管它只被训练来预测下一步棋!)。他们证明,棋盘状态(每个格子是空、黑还是白)可以被一个单隐层 MLP 探针以很高的精度恢复出来。他们还进一步表明,可以利用这个世界模型对模型的残差流进行因果干预:选定另一个棋盘状态,然后用梯度下降修改残差流,使探针指示出这个新的棋盘状态——即使被编辑出的棋盘状态在合法的 Othello 对局中根本无法达到,模型也会在新棋盘状态下输出合法着法!
预注册假说:探针实验与因果干预共同提供了强有力的证据,表明模型已经学会表示与棋盘上每个格子状态相对应的特征。然而值得注意的是,线性探针却无法恢复棋盘状态。既然线性特征应当能够被单层探针恢复,而因果干预又表明模型既计算也使用了棋盘状态,这看起来就像是反对线性表示假说的有力证据。
然而,Chris Olah(本文作者之一)认为,如果模型使用的是另一组不同的特征,它仍然可能在线性表示这些特征——探针和因果干预捕捉到的也许正是这组不同的特征。这就形成了对该假说的一种非正式的预注册预测,而这一预测与当时的证据相悖。
结果:我独立地得出了与 Chris 相同的结论,并研究了这个会下 Othello 的模型。我发现,模型确实形成了一个关于棋盘状态的涌现模型,该模型是线性表示的,并且可以用线性探针提取出来。但由于模型既要下黑子也要下白子,它把每个格子的状态表示成"己方颜色"还是"对方颜色"。此外,我还发现了间接证据,表明模型确实使用了这些特征:我们可以利用探针给出的方向对残差流进行线性干预,编辑模型所表示的棋盘状态,而模型会在新的棋盘状态下走出合法着法。
我认为这些结果意义重大:本文的结果曾为反对线性表示假说提供证据,该假说确实面临被证伪的真实风险;而假说做出了与证据指向相反的非平凡预测,这些预测最终被证明是正确的。这既是"神经网络存在对模型具有预测力的底层原理"这一观念的概念验证,也是一次支持线性表示假说的自然实验。
我认为,对 Othello 下棋模型还有进一步的解释工作可做,可以用来检验本文中的其他假说,以及我们关于神经网络和 transformer 的更广泛的概念框架——例如,在其 MLP 层中寻找单语义神经元与叠加神经元。这个模型既足够复杂、既有趣味,又能揭示 transformer 学习算法的原理;同时,任务的算法性质以及探针的存在又表明,寻找电路是可行的。我在一篇后续文章中详细阐述了我认为有前景的未来工作方向。
杠杆得分与特征维度¶
Fred Zhang 是加州大学伯克利分校电子工程与计算机科学系(EECS)理论组的博士生。
在「叠加的几何」(Geometry of Superposition)一节中,论文定义了特征维度(feature dimensionality)的概念:
其中 \(W_i\) 是第 \(i\) 个特征,\(\hat{W_i}=W_i / \| W_i \|_2\) 是其归一化版本。为简化记号,我们假设共有 \(n\) 个特征,每个都是 \(d\) 维实向量。
在这一定义之后,论文评论道:"从经验上看,当特征在某种意义上被'高效打包'时,所有特征的维度之和似乎等于嵌入维度的数量。"在这篇评论中,我指出这一观察结果的一个自然的理论解释。论证要借助矩阵近似中的杠杆得分(leverage score)概念。我先给出定义,再解释它如何与特征维度联系起来。
在概念层面,杠杆得分衡量的是矩阵的一行在构成矩阵行空间时的重要性。例如,如果某一行与所有其他行正交,它的杠杆得分就是 1,意味着它极其重要。这很自然:删除它会降低矩阵的秩,并彻底改变行空间。形式化地说,若 \(W\) 是一个 \(n\) 行 \(d\) 列矩阵(可以把它想象成一个又高又瘦的矩阵,即 \(n > d\)),那么第 \(i\) 行 \(W_i\) 的杠杆得分为
注意到分母项等于 \(\| Wx \|_2^2\)。因此,\(W_i\) 的杠杆得分就是 \(\langle W_i, x\rangle^2\) 对 \(|| Wx ||^2\)(在所有可能的方向 \(x\) 上)所能做出的最大贡献。这是一个介于 0 和 1 之间的小数。还可以观察到,它确实具有这样的良好性质:如果 \(W_i\) 与所有其他行正交,\(\tau_i\) 就等于 1,因为分母求和中的各项除第 \(i\) 项外均为 0。
关于这一定义,有三点简短的说明:
- 它与 Chris Olah 在《Superposition, Memorization, and Double Descent》(叠加、记忆与双重下降)的后续工作中、针对《MNIST 的数据维度》(Data Dimensionality of MNIST)所写评论里提出的最大数据维度(maximal data dimensionality)概念一致。
- 杠杆得分还有其他等价定义;参见此处的第 3.3 节。
- 杠杆得分源于数值线性代数。众所周知,按与杠杆得分成正比的方式对行进行采样,会得到一个近似于原矩阵的近乎方形的矩阵,而原矩阵可能是非常高的矩阵。正式表述见 https://arxiv.org/abs/1411.4357 的定理 17。
回到我的主要论点:关于杠杆得分,另一个很好的性质是它们之和等于矩阵的秩。在上述又高又瘦的情形中,它们加起来等于 \(d\)(如果矩阵是满秩的)。有鉴于此,本文做出如下经验观察就很自然了:如果向量被"高效打包",\(D_i\) 之和就大致等于嵌入维度 \(d\)。具体来说,"高效打包"的一种形式化表述是:这些向量大致处于各向同性位置(isotropic position),即沿任何方向 \(x\) 的方差 \(\langle W_j, x\rangle^2\) 都接近于 \(1\)。换言之,嵌入向量的协方差结构接近于单位矩阵。(从几何上看,这意味着它们分布得很均匀。例如,当向量构成正单纯形时就是如此,正如本文实验中所发生的那样。)于是,在上述杠杆得分的定义中,对于任意 \(x\),分母中的每一项求和都是 1。因此,要使分子最大化,只需取 \(x\) 为 \(W_i\) 本身——这恰好恢复了特征维度 \(D_i\) 的定义。这样,在这种分布得很均匀的情形下,这两个概念大致相同,且它们之和都等于 \(d\)。
脚注¶
参考文献¶
- [arora2018linear]: Arora, Sanjeev, Li, Yuanzhi, Liang, Yingyu, Ma, Tengyu, Risteski, Andrej, “Linear algebraic structure of word senses, with applications to polysemy”, Transactions of the Association for Computational Linguistics, 2018
- [goh2016decoding]: Gabriel Goh, “Decoding The Thought Vector”, 2016
- [olah2020zoom]: Olah, Chris, Cammarata, Nick, Schubert, Ludwig, Goh, Gabriel, Petrov, Michael, Carter, Shan, “Zoom In: An Introduction to Circuits”, Distill, 2020
- [elhage2022solu]: Elhage, Nelson, Hume, Tristan, Olsson, Catherine, Nanda, Neel, Henighan, Tom, Johnston, Scott, ElShowk, Sheer, Joseph, Nicholas, DasSarma, Nova, Mann, Ben, Hernandez, Danny, Askell, Amanda, Ndousse, Kamal, Jones, And, Drain, Dawn, Chen, Anna, Bai, Yuntao, Ganguli, Deep, Lovitt, Liane, Hatfield-Dodds, Zac, Kernion, Jackson, Conerly, Tom, Kravec, Shauna, Fort, Stanislav, Kadavath, Saurav, Jacobson, Josh, Tran-Johnson, Eli, Kaplan, Jared, Clark, Jack, Brown, Tom, McCandlish, Sam, Amodei, Dario, Olah, Christopher, “Softmax Linear Units”, Transformer Circuits Thread, 2022
- [donoho2006compressed]: Donoho, David L, “Compressed sensing”, IEEE Transactions on information theory, 2006
- [thorpe1989coding]: Thorpe, Simon J., “Local vs. Distributed Coding”, Intellectica, 1989
- [bengio2013representation]: Bengio, Yoshua, Courville, Aaron, Vincent, Pascal, “Representation learning: A review and new perspectives”, IEEE transactions on pattern analysis and machine intelligence, 2013
- [olah2017feature]: Olah, Chris, Mordvintsev, Alexander, Schubert, Ludwig, “Feature Visualization”, Distill, 2017
- [cammarata2020curve]: Cammarata, Nick, Goh, Gabriel, Carter, Shan, Schubert, Ludwig, Petrov, Michael, Olah, Chris, “Curve Detectors”, Distill, 2020
- [cheung2019superposition]: Cheung, Brian, Terekhov, Alexander, Chen, Yubei, Agrawal, Pulkit, Olshausen, Bruno, “Superposition of many models into one”, Advances in neural information processing systems
- [mikolov2013linguistic]: Mikolov, Tom{\'a}{\v{s}}, Yih, Wen-tau, Zweig, Geoffrey, “Linguistic regularities in continuous space word representations”, Proceedings of the 2013 conference of the north american chapter of the association for computational linguistics: Human language technologies, 2013
- [levy2014linguistic]: Levy, Omer, Goldberg, Yoav, “Linguistic regularities in sparse and explicit word representations”, Proceedings of the eighteenth conference on computational natural language learning
- [radford2015unsupervised]: Radford, Alec, Metz, Luke, Chintala, Soumith, “Unsupervised representation learning with deep convolutional generative adversarial networks”, arXiv preprint arXiv:1511.06434
- [karpathy2015visualizing]: Karpathy, Andrej, Johnson, Justin, Fei-Fei, Li, “Visualizing and understanding recurrent networks”, arXiv preprint arXiv:1506.02078
- [radford2017learning]: Radford, Alec, Jozefowicz, Rafal, Sutskever, Ilya, “Learning to generate reviews and discovering sentiment”, arXiv preprint arXiv:1704.01444
- [zhou2014object]: Zhou, Bolei, Khosla, Aditya, Lapedriza, Agata, Oliva, Aude, Torralba, Antonio, “Object detectors emerge in deep scene cnns”, arXiv preprint arXiv:1412.6856
- [netdissect2017]: Bau, David, Zhou, Bolei, Khosla, Aditya, Oliva, Aude, Torralba, Antonio, “Network Dissection: Quantifying Interpretability of Deep Visual Representations”, Computer Vision and Pattern Recognition
- [bau2020understanding]: Bau, David, Zhu, Jun-Yan, Strobelt, Hendrik, Lapedriza, Agata, Zhou, Bolei, Torralba, Antonio, “Understanding the role of individual units in a deep neural network”, Proceedings of the National Academy of Sciences, 2020
- [morcos2018importance]: Morcos, Ari S, Barrett, David GT, Rabinowitz, Neil C, Botvinick, Matthew, “On the importance of single directions for generalization”, arXiv preprint arXiv:1803.06959
- [donnelly2019interpretability]: Donnelly, Jonathan, Roegiest, Adam, “On Interpretability and Feature Representations: An Analysis of the Sentiment Neuron”, European Conference on Information Retrieval, 2019
- [schubert2021highlow]: Schubert, Ludwig, Voss, Chelsea, Cammarata, Nick, Goh, Gabriel, Olah, Chris, “High-Low Frequency Detectors”, Distill, 2021
- [goh2021multimodal]: Goh, Gabriel, Cammarata, Nick, Voss, Chelsea, Carter, Shan, Petrov, Michael, Schubert, Ludwig, Radford, Alec, Olah, Chris, “Multimodal Neurons in Artificial Neural Networks”, Distill, 2021
- [li2015convergent]: Li, Yixuan, Yosinski, Jason, Clune, Jeff, Lipson, Hod, Hopcroft, John E, others, “Convergent learning: Do different neural networks learn the same representations?”, FE@ NIPS
- [ilyas2019adversarial]: Ilyas, Andrew, Santurkar, Shibani, Tsipras, Dimitris, Engstrom, Logan, Tran, Brandon, Madry, Aleksander, “Adversarial examples are not bugs, they are features”, Advances in neural information processing systems
- [lakatos1963proofs]: Lakatos, Imre, “Proofs and refutations”, 1963
- [olshausen1997sparse]: Olshausen, Bruno A, Field, David J, “Sparse coding with an overcomplete basis set: A strategy employed by V1?”, Vision research, 1997
- [candes2005decoding]: Candes, Emmanuel J, Tao, Terence, “Decoding by linear programming”, IEEE transactions on information theory, 2005
- [saxe2014exact]: Andrew M. Saxe, James L. McClelland, Surya Ganguli, “Exact solutions to the nonlinear dynamics of learning in deep linear neural networks”, 2014
- [olsson2022context]: Olsson, Catherine, Elhage, Nelson, Nanda, Neel, Joseph, Nicholas, DasSarma, Nova, Henighan, Tom, Mann, Ben, Askell, Amanda, Bai, Yuntao, Chen, Anna, Conerly, Tom, Drain, Dawn, Ganguli, Deep, Hatfield-Dodds, Zac, Hernandez, Danny, Johnston, Scott, Jones, Andy, Kernion, Jackson, Lovitt, Liane, Ndousse, Kamal, Amodei, Dario, Brown, Tom, Clark, Jack, Kaplan, Jared, McCandlish, Sam, Olah, Chris, “In-context Learning and Induction Heads”, Transformer Circuits Thread, 2022
- [nanda2022grokking]: Nanda, Neel, Lieberum, Tom, “A Mechanistic Interpretability Analysis of Grokking”, 2022
- [power2022grokking]: Power, Alethea, Burda, Yuri, Edwards, Harri, Babuschkin, Igor, Misra, Vedant, “Grokking: Generalization beyond overfitting on small algorithmic datasets”, arXiv preprint arXiv:2201.02177
- [hu2020surprising]: Hu, Wei, Xiao, Lechao, Adlam, Ben, Pennington, Jeffrey, “The surprising simplicity of the early-time learning dynamics of neural networks”, Advances in Neural Information Processing Systems
- [saxe2019mathematical]: Saxe, Andrew M, McClelland, James L, Ganguli, Surya, “A mathematical theory of semantic development in deep neural networks”, Proceedings of the National Academy of Sciences, 2019
- [papernot2016towards]: Papernot, Nicolas, McDaniel, Patrick, Sinha, Arunesh, Wellman, Michael, “Towards the science of security and privacy in machine learning”, arXiv preprint arXiv:1611.03814
- [gilmer2018adversarial]: Gilmer, Justin, Metz, Luke, Faghri, Fartash, Schoenholz, Samuel S, Raghu, Maithra, Wattenberg, Martin, Goodfellow, Ian, “Adversarial spheres”, arXiv preprint arXiv:1801.02774
- [engstrom2019adversarial]: Engstrom, Logan, Ilyas, Andrew, Santurkar, Shibani, Tsipras, Dimitris, Tran, Brandon, Madry, Aleksander, “Adversarial robustness as a prior for learned representations”, arXiv preprint arXiv:1906.00945
- [liu2016delving]: Liu, Yanpei, Chen, Xinyun, Liu, Chang, Song, Dawn, “Delving into transferable adversarial examples and black-box attacks”, arXiv preprint arXiv:1611.02770
- [alon2019introduction]: Alon, Uri, “An introduction to systems biology: design principles of biological circuits”, 2019
- [olah2018the]: Olah, Chris, Satyanarayan, Arvind, Johnson, Ian, Carter, Shan, Schubert, Ludwig, Ye, Katherine, Mordvintsev, Alexander, “The Building Blocks of Interpretability”, Distill, 2018
- [voss2021visualizing]: Voss, Chelsea, Cammarata, Nick, Goh, Gabriel, Petrov, Michael, Schubert, Ludwig, Egan, Ben, Lim, Swee Kiat, Olah, Chris, “Visualizing Weights”, Distill, 2021
- [fedus2022review]: Fedus, William, Dean, Jeff, Zoph, Barret, “A Review of Sparse Expert Models in Deep Learning”, arXiv preprint arXiv:2209.01667
- [nelhage2021mathematical]: Elhage, Nelson, Nanda, Neel, Olsson, Catherine, Henighan, Tom, Joseph, Nicholas, Mann, Ben, Askell, Amanda, Bai, Yuntao, Chen, Anna, Conerly, Tom, DasSarma, Nova, Drain, Dawn, Ganguli, Deep, Hatfield-Dodds, Zac, Hernandez, Danny, Jones, Andy, Kernion, Jackson, Lovitt, Liane, Ndousse, Kamal, Amodei, Dario, Brown, Tom, Clark, Jack, Kaplan, Jared, McCandlish, Sam, Olah, Chris, “A Mathematical Framework for Transformer Circuits”, Transformer Circuits Thread, 2021
- [higgins2016beta]: Higgins, Irina, Matthey, Loic, Pal, Arka, Burgess, Christopher, Glorot, Xavier, Botvinick, Matthew, Mohamed, Shakir, Lerchner, Alexander, “beta-vae: Learning basic visual concepts with a constrained variational framework”
- [chen2016infogan]: Chen, Xi, Duan, Yan, Houthooft, Rein, Schulman, John, Sutskever, Ilya, Abbeel, Pieter, “Infogan: Interpretable representation learning by information maximizing generative adversarial nets”, Advances in neural information processing systems
- [kim2018disentangling]: Kim, Hyunjik, Mnih, Andriy, “Disentangling by factorising”, International Conference on Machine Learning, 2018
- [donoho2001uncertainty]: Donoho, David L, Huo, Xiaoming, others, “Uncertainty principles and ideal atomic decomposition”, IEEE transactions on information theory, 2001
- [cohen2009compressed]: Cohen, Albert, Dahmen, Wolfgang, DeVore, Ronald, “Compressed sensing and best 𝑘-term approximation”, Journal of the American mathematical society
- [kashin2007remark]: Kashin, Boris S, Temlyakov, Vladimir N, “A remark on compressed sensing”, Mathematical notes, 2007
- [wainwright2007information]: Wainwright, Martin, “Information-theoretic bounds on sparsity recovery in the high-dimensional and noisy setting”, 2007 IEEE International Symposium on Information Theory, 2007
- [ba2010lower]: Do Ba, Khanh, Indyk, Piotr, Price, Eric, Woodruff, David P, “Lower bounds for sparse recovery”, Proceedings of the twenty-first annual ACM-SIAM symposium on Discrete Algorithms, 2010
- [donoho2005neighborly]: Donoho, David L, “Neighborly polytopes and sparse solution of underdetermined linear equations”
- [blanchard2009compressed]: Blanchard, Jeffrey D, Cartis, Coralia, Tanner, Jared, “Compressed sensing: How sharp is the RIP”, SIAM Rev., accepted
- [mousavi2015deep]: Mousavi, Ali, Patel, Ankit B, Baraniuk, Richard G, “A deep learning approach to structured signal recovery”, 2015 53rd annual allerton conference on communication, control, and computing (Allerton), 2015
- [metzler2017learned]: Metzler, Chris, Mousavi, Ali, Baraniuk, Richard, “Learned D-AMP: Principled neural network based compressive image recovery”, Advances in Neural Information Processing Systems
- [bora2017compressed]: Ashish Bora, Ajil Jalal, Eric Price, Alexandros G. Dimakis, “Compressed Sensing using Generative Models”, Proceedings of the 34th International Conference on Machine Learning, 2017
- [elad2010sparse]: Elad, Michael, “Sparse and redundant representations: from theory to applications in signal and image processing”, 2010
- [engan1999method]: Engan, Kjersti, Aase, Sven Ole, Husoy, J Hakon, “Method of optimal directions for frame design”, 1999 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings. ICASSP99 (Cat. No. 99CH36258), 1999
- [aharon2006k]: Aharon, Michal, Elad, Michael, Bruckstein, Alfred, “K-SVD: An algorithm for designing overcomplete dictionaries for sparse representation”, IEEE Transactions on signal processing, 2006
- [Gregor2010LearningFA]: Karol Gregor, Yann LeCun, “Learning Fast Approximations of Sparse Coding”, International Conference on Machine Learning
- [Barello2018SparseCodingVA]: G. Barello, Adam S. Charles, Jonathan W. Pillow, “Sparse-Coding Variational Auto-Encoders”, bioRxiv
- [sharkey2022interim]: Lee Sharkey, Dan Braun, Beren Millidge, “[Interim research report] Taking features out of superposition with sparse autoencoders”, 2022
- [yi2019firingrate]: Yi, Guosheng, Grill, Warren, “Average firing rate rather than temporal pattern determines metabolic cost of activity in thalamocortical relay neurons”, Scientific reports, 2019
- [plate2003distributed]: Plate, Tony, “Distributed representations”, 2003
- [ganguli2012compressed]: Ganguli, Surya, Sompolinsky, Haim, “Compressed Sensing, Sparsity, and Dimensionality in Neuronal Information Processing and Data Analysis”, Annual Review of Neuroscience, 2012
- [schlegel2022comparison]: Schlegel, Kenny, Neubert, Peer, Protzel, Peter, “A comparison of vector symbolic architectures”, Artificial Intelligence Review, 2022
- [kleyko2021survey]: Kleyko, Denis, Rachkovskij, Dmitri A, Osipov, Evgeny, Rahimi, Abbas, “A Survey on Hyperdimensional Computing aka Vector Symbolic Architectures, Part I: Models and Data Transformations”, ACM Computing Surveys (CSUR), 2021
- [kovacevic2007life]: Kovacevic, Jelena, Chebira, Amina, “Life beyond bases: The advent of frames (Part I)”, IEEE Signal Processing Magazine, 2007
-
这里的"重要性"指均方误差损失上的一个标量乘数。 ↩
-
在视觉领域,这些特征涵盖从低层神经元——如曲线检测器\cite{cammarata2020curve}和高低频检测器\cite{schubert2021highlow}——到更复杂的神经元,如定向狗头检测器或汽车检测器\cite{olah2020zoom},再到对应名人、情绪、地理区域以及更多\cite{goh2021multimodal}的极为抽象的神经元。在语言模型中,研究人员发现了诸如男-女方向、单数-复数方向等词嵌入方向\cite{mikolov2013linguistic},发现了用于消歧多语言中出现的词语的低层神经元、抽象得多的神经元,以及帮助生成特定词语的"动作"输出神经元\cite{elhage2022solu}。 ↩
-
这个定义比看上去更微妙。具体来说,如果存在足够大的模型规模,使得某个东西能够获得一个专属神经元,那么它就是特征。这就造就了一种类似"epsilon-delta"的定义。我们目前的理解——正如我们将在后面几节看到的——是任意大的模型仍然可能有很大一部分特征处于叠加之中。然而,对于任何给定的特征,只要特征重要性曲线不是平坦的,它最终应当会获得一个专属神经元。这个定义有助于说明某个东西是特征——曲线检测器就是特征,因为你能在超过某个最小规模的一系列模型中找到它们——但对于更常见的情形(我们只是假设存在或在叠加中观察到的特征),这个定义就没什么用了。 ↩
-
Lakatos 的一本名著\cite{lakatos1963proofs}说明了定义的不确定性有多么重要,以及重新思考定义在研究语境中常常是多么关键。 ↩
-
这个实验设置也可以看作一个重建 \(x\) 的自编码器。 ↩
-
一个具有足够通用性的视觉模型,或许会受益于表示它可能看到的每一种动植物物种和每一种人造物品。一个语言模型或许会受益于表示每一个曾在文字中被提及的人。这些还只是可能特征的冰山一角,但数量似乎已经超过任何模型所拥有的神经元。事实上,大型语言模型确实被证明知道一些知名度很低的人——这样的人的数量大概超过了它们拥有的神经元数。这一点在神经科学讨论"祖母细胞"(grandmother neurons)的合理性时是常见的论据,但对人工神经网络而言似乎更有说服力。 ↩
-
出于计算方面的原因,本文不会重点关注这一点,但我们常常设想存在无穷多个特征,其重要性渐近地趋近于零。 ↩
-
让特征均匀分布的这种选择是任意的。指数分布或幂律分布也同样自然。 ↩
-
回忆一下,若 \(W\) 是正交矩阵,则 \(W^T = W^{-1}\)。虽然 \(W\) 不可能真正做到正交,但我们在压缩感知中形成的直觉是,在 Candes 与 Tao\cite{candes2005decoding} 的意义上,它将"几乎正交"。 ↩
-
我们令模型为 \(x' = W^TWx\),但像 Saxe 等人的工作那样,让 \(x\) 保持高斯分布。 ↩
-
顺便说一句,把线性模型中的干涉量 \(\sum_{i\neq j}|W_i \cdot W_J|^2\) 与压缩感知中的相干性(coherence)概念 \(\max_{i\neq j}|W_i \cdot W_J|\) 加以对比是很有意思的。我们可以把它们看作同一个向量的 \(L^2\) 范数和 \(L^\infty\) 范数。 ↩
-
要证明叠加在线性模型中永远不是最优的,可以求解损失梯度为零的条件,或参考 Saxe 等人的工作。 ↩
-
这里,我们在"不连续变化"的广义上使用"相变"(phase change),而不是"在系统尺寸趋于无穷的极限下出现的间断"这一更技术性的含义。 ↩
-
将所有特征的重要性按同一比例缩放,只会等比缩放损失,并不会改变最优解。 ↩
-
注意,模型在学习 \(W_1\) 时存在一个自由度:我们可以把任意隐藏单元的 \(W_1\) 对应行乘以 \(\alpha\)、\(W_2\) 对应列乘以 \(\alpha^{-1}\),从而得到同一个模型。为了保证可视化的一致性,我们在可视化之前对每个隐藏单元重新缩放,使得来自 \(W_1\) 的、指向该神经元的最大幅值权重为 \(1\)。 ↩
-
选择这些具体数值是为了说明我们感兴趣的现象:神经元越多,绝对值模型学得越容易;但我们希望把数值保持得足够小,以便可以轻松地可视化。 ↩
-
你可能会问:我们能否通过考察损失来量化叠加实现额外计算的能力?遗憾的是,这并不容易做到。当我们改变任务、使其变得更稀疏时,叠加便会出现。因此,叠加程度不同的模型之间的损失并不具有可比性——它们衡量的是不同任务上的损失! ↩
-
归根结底,我们想说的是:模型没有实现某类行为。通过逐一枚举所有特征,可以轻易断言某个特征不存在(例如"不存在'欺骗行为'特征"),但这并不是我们真正想要的。我们预期,需要表征世界的模型会表征那些令人不快的行为。不过,我们或许能够构建更微妙的主张,例如"所有'欺骗行为'特征都不参与电路 X、Y 和 Z"。 ↩
-
叠加还使得在没有特权基的模型中寻找可解释方向变得更加困难。在没有叠加的情况下,可以尝试类似 Gram–Schmidt 正交化过程的做法:逐步识别出可解释的方向,然后把它们移除,使后续特征更容易被识别。但在有叠加的情况下,即使知道某个方向是特征方向,也不能简单地将其移除。 ↩
-
更正式地说,给定一个隐藏层激活矩阵 \(H \sim [d,m] \approx[h_0, h_1, …]\),其中激活 \(h \sim [m]\) 是在 \(d\) 个刺激上采样得到的;如果我们相信底层存在 \(n\) 个特征,就可以尝试寻找矩阵 \(A\sim [d,n]\) 和 \(B \sim [n,m]\),使得 \(A\) 是稀疏的。 ↩
-
特别是,我们似乎应当预期:哪怕不做任何架构改动,仅通过类似 L1 正则化的手段,就能在几乎不影响性能的前提下至少稍微减少一点叠加。请注意,模型所处的叠加水平应当使得损失对叠加量的导数为零——否则它们就会使用更多或更少的叠加。因此,至少应该存在一定的余量,让我们可以在不影响模型性能的情况下减少叠加量。 ↩
-
一个更微妙的问题是,GAN 和 VAE 通常假设其潜空间服从高斯分布。稀疏潜变量非常不符合高斯分布,但中心极限定理意味着,许多这样的变量叠加在一起会逐渐看起来更接近高斯分布。因此,某些生成模型的潜空间实际上可能迫使模型使用叠加! ↩
-
请注意,这有一个简洁的信息论解释:\(\log(1 - S)\) 是某个维度非零的惊奇度(surprisal),再乘以非零数量的期望值。 ↩
-
请注意,在压缩感知的情形中,相变出现在维度数趋于无穷的极限下——对于有限维空间,相变发生得很快,但并非不连续的。 ↩
-
有趣的是,这与神经科学中通常对稀疏编码的理解正好相反。神经科学通常认为生物神经元对其输入进行稀疏编码,而我们感兴趣的是把它反方向应用——寻找叠加在神经元上的特征。 ↩
-
我们在分布式编码文献中尚未遇到与这一假说精确对应的专门术语,尽管"激活空间中的方向"这一概念在文献中很常见——这或许是因为我们孤陋寡闻。我们将这一假说称为线性(linearity)。 ↩
-
实验证据似乎支持这一点\cite{yi2019firingrate} ↩
-
神经科学文献中一个相关但不同的概念是"绑定问题"(binding problem)\cite{plate2003distributed}:例如,一个红色三角形恰好是一个形状与一种颜色的共现,这本身并非表征难题;但如果一个分解式编码需要同时表征一个蓝色正方形,绑定问题就出现了——哪个形状特征该与哪个颜色特征配对?我们的工作不涉及绑定问题,只是将其视为"蓝色""红色""三角形""正方形"的共现。 ↩