Hinton等人新研究:如何更好地测量神经网络表示相似性

在机器学习的很多任务中, 深度神经网络 可以自动从数据中学习强大的特征表示。尽管深度神经网络在多种任务中取得了令人印象深刻的进展,但如何理解和描述神经网络从数据中学习到的表示仍未得到充分研究。之前的工作(例如 Advani&Saxe (2017)、Amari et al. (2018)、Saxe et al. (2013))在理解神经网络训练过程的理论动态方面取得了一些进展。这些研究虽然很深刻,但却存在基础局限性,因为它们忽略了训练动态过程和结构化数据之间复杂的相互作用。事实上,神经网络表示会比损失函数提供更多机器学习算法和数据之间的交互信息。

谷歌大脑的这篇论文研究了测量深度神经网络表示相似性的问题。测量表示相似性的有效方法可帮助回答许多有趣的问题,包括:(1)基于不同随机初始化训练得到的相同架构深度神经网络是否学习相似的表示?(2)不同神经网络架构的各个层之间是否可以建立对应关系?(3)相同的神经网络架构从不同的数据集中学习的表示有多相似?

该论文的主要贡献有:

  • 讨论了相似性指数的不变性及其对测量神经网络表示相似性的影响。

  • 引入了 centered kernel alignment (CKA) 作为一种相似性指数,并分析 CKA、 线性回归 、典型相关分析(CCA)等相关方法之间的关系。

  • 证明了 CKA 能够确定基于不同随机初始化和不同宽度训练的神经网络的隐藏层之间的对应关系,而以前提出的相似性指数在这些场景下是不适用的。

  • 验证了网络越宽学习到的表示越相似,并且前几层的相似性比后几层更容易饱和。该研究证明了神经网络中的前几层而非后几层能从不同的数据集中学习到相似的表示。

问题描述

令 X∈R^(n×p_1) 表示 n 个样本的 p_1 个神经元的激活矩阵,Y∈R^(n×p_2) 表示相同的 n 个样本的 p_2 个神经元的激活矩阵。假设这些矩阵已经过预处理使得矩阵的每一列均值为零。在不失一般性的情况下,我们假设 p_1≤p_2。

为了可视化和理解深度学习中不同因素的影响,研究者设计和分析了标量相似性指数 s(X,Y),它可用于比较神经网络内和神经网络之间的表示相似性。

论文:Similarity of Neural Network Representations Revisited

论文地址:https://arxiv.org/pdf/1905.00414.pdf

最近一些工作试图通过比较层之间和不同训练模型之间的表示来理解神经网络的行为。该论文研究了基于典型相关分析(CCA)对比神经网络表示的方法,证明 CCA 属于一类测量多元相似性的统计方法,但是 CCA 和其他对可逆线性变换具备不变性的统计方法都无法测量维度高于数据点个数的表示之间的相似性。

该研究介绍了一个相似性指数,它可以测量表示相似性矩阵之间的关系,并且不受上面的这种限制。该相似性指数等价于 centered kernel alignment (CKA),并且也与 CCA 紧密相关。不同于 CCA,CKA 可以可靠地识别基于不同初始化训练的网络学习得到的表示之间的对应关系。

相似性指标的不变性是针对什么变换而言的?

相似性指标的不变性及其对测量神经网络表示相似性的影响是很重要的。该研究认为,相似性的直观概念和神经网络训练的动态过程都要求相似性指标对正交变换和各向同性缩放(isotropic scaling)是不变的,而不是可逆线性变换。

比较相似性结构(Similarity Structure)

与直接比较一个样本在两个表示中的多变量特征(比如通过回归的方法)不同,该研究的主要观点是:首先分别测量每个表示中的每对样本之间的相似性,然后比较相似性结构。在神经科学中,表示样本之间相似性的矩阵被称为表征相似性矩阵(Kriegeskorte et al., 2008a)。下文证明了,如果使用内积来测量相似性,那么表征相似性矩阵之间的相似性可以简化成成对特征相似性的另一个直观概念。

基于点积的相似性。下面是一个将样本之间的点积与特征之间的点积关联的简单公式:

Hilbert-Schmidt 独立性准则(HSIC)。从等式 1 可以推出,对于均值为 0 的 X 和 Y 有:

令 K_ij = k(x_i , x_j ) , L_ij = l(y_i , y_j ),其中 k 和 l 是两个核函数。HSIC 的经验估计是:

Centered Kernel Alignment. HSIC 对各向同性缩放不具备不变性,但可以通过归一化使其具有不变性。归一化后的指标称为 centered kernel alignment (Cortes et al., 2012; Cristianini et al., 2002):

相关的相似性指标

在测量神经网络表示之间的相似性的背景下,研究者简要回顾了线性回归、典型相关和其他相关方法。表 1 总结了实验中使用的公式、指标及其不变性。

表 1:各种相似性指标的总结。

Q_X 和 Q_Y 分别是 X 和 Y 的正交基。U_X 和 U_Y 分别是对 X 和 Y 做奇异值分解后按奇异值降序排列的左奇异向量。|| · ||∗ 表示核范数。T_X 和 T_Y 是截断单位矩阵,利用 T_X 和 T_Y 选出的 X 和 Y 的左奇异向量可以使累积方差达到某个阈值。

线性回归。线性回归是关联神经网络表示的一种简单方法。它可以将 Y 中的每个特征拟合为 X 中特征的线性组合。一个合适的汇总统计量是该拟合所能解释的方差比例:

典型相关分析(CCA)。典型相关分析是求两个矩阵的基,使得当原矩阵被投影到这些基上时,相关性最大。对于 1≤i≤p_1,第 i 个典型相关系数ρ_i 由下式给出:

SVCCA.当 X 或 Y 的条件数很大时,CCA 对扰动敏感。为了提高鲁棒性,奇异向量 CCA 方法 (singular vector CCA, SVCCA) 对 X 和 Y 的奇异值分解截断后使用 CCA。

Projection-Weighted CCA. Morcos 等人 (2018) 提出了一种不同的策略来降低 CCA 对扰动的敏感性,他们称这种方法为「投影加权典型相关分析」(PWCCA):

结论

该研究首先研究了一种基于 All-CNN-C 的类VGG卷积网络。图 2 和表 2 说明只有 CKA 方法通过了完整性检查,而其他方法则表现得很差。

图 2:CKA 揭示了基于不同随机初始化训练的 CNN 的不同层之间的一致关系,而 CCA、线性回归和 SVCCA 则无法揭示这种关系。

表 2:不同方法基于最大相似性识别基于不同初始化训练的 10 个结构相同的 10 层 CNN 网络中对应层的准确率,其中排除了 logits 层。

CKA 可以揭示神经网络表示中的异常。图 3 展示了具有不同深度的卷积网络各层之间的 CKA,其中卷积网络的各层分别重复 2、4 和 8 次。从中可以看出,深度加倍可以提高准确率,但是深度增加太多反而会降低准确率。

图 3:CKA 揭示深度过深的神经网络的表示会出现异常。上图:在 CIFAR-10 上训练的不同深度深度网络的各层之间的线性 CKA。每个小图的标题显示了每个网络的准确率。8 倍深度神经网络的后几层与最后一层类似。下图:在相同神经网络的各层上训练的 logistic 回归分类器的准确性与 CKA 一致。

CKA 还可用于比较在不同数据集上训练的网络。图 7 展示了在 CIFAR-10 和 CIFAR-100 上训练的模型在其前几层中生成了类似的表示。这些表示需要训练,而且这些表示与未经训练的网络生成的表示之间的相似性要低很多。

图 7:CKA 显示了在不同数据集(CIFAR-10 和 CIFAR-100)上训练的模型产生了类似的表示,这些表示与未经训练的模型产生的表示差异很大。左图显示了在 CIFAR-10 测试集上不同模型的同一层之间的相似性,而右图显示了在 CIFAR-100 测试集上的相似性。CKA 是每种类型的 10 个模型的均值(45 对)。

从可视化的角度看,RSM 方法比 CKA 汇总统计更有用,因为 RSM 方法不会将相似性汇总为单个数字,而是提供了更完整的 CKA 测量结果信息。图 8 展示了,对于较大的特征向量,XX^T 和 Y Y^T 作用相似,但是使之成立的子空间的秩远低于激活函数的维度。

图 8:基于随机初始化训练的两个 10 层神经网络的共享子空间主要由最大特征值对应的特征向量张成。每行表示不同的网络层。平均池化层只有 64 个神经元。