Hinton等人新研究:如何更好地测量神经网络表示相似性
https://www.toutiao.com/a6692998683081835012/
近期很多研究试图通过对比神经网络表示来理解神经网络的行为。谷歌大脑 Simon Kornblith、Geoffrey Hinton 等人的一项新研究引入了 centered kernel alignment (CKA) 作为相似性指数,并分析 CKA、线性回归、典型相关分析(CCA)等相关方法之间的关系,证明 CKA 优于其他相似性指数。
在机器学习的很多任务中,深度神经网络可以自动从数据中学习强大的特征表示。尽管深度神经网络在多种任务中取得了令人印象深刻的进展,但如何理解和描述神经网络从数据中学习到的表示仍未得到充分研究。之前的工作(例如 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 个神经元。
Hinton等人新研究:如何更好地测量神经网络表示相似性的更多相关文章
- Hinton等人最新研究:大幅提升模型准确率,标签平滑技术到底怎么用?
Hinton等人最新研究:大幅提升模型准确率,标签平滑技术到底怎么用? 2019年07月06日 19:30:55 AI科技大本营 阅读数 675 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
- Adam作者大革新, 联合Hinton等人推出全新优化方法Lookahead
Adam作者大革新, 联合Hinton等人推出全新优化方法Lookahead 参与:思源.路.泽南 快来试试 Lookahead 最优化方法啊,调参少.收敛好.速度还快,大牛用了都说好. 最优化方 ...
- 开学收好这 17 种工具 App,让你新学期学习更有效率
开学啦!不管是想勾搭学长还是想讨好学妹,相信同学们对新学期.新同学或者新学校都已经满怀期待了.但是,除了帅气逼人的学长和青春靓丽的学妹,你们可不能忘记上学的首要任务还是学习噢. 那么,为了帮助同学们更 ...
- iOS 10正式发布:十大新功能,更注重人性化
6月14日凌晨消息,苹果公司举行2016年WWDC全球开发者大会,介绍了watch OS.tv OS.OS X以及iOS 10系统的新特性. 据苹果介绍,iOS 10在锁屏.Siri.地图等十个各方面 ...
- Neuromation新研究:利用卷积神经网络进行儿童骨龄评估
近日,Neuromation 团队在 Medium 上撰文介绍其最新研究成果:利用卷积神经网络(CNN)评估儿童骨龄,这一自动骨龄评估系统可以得到与放射科专家相似或更好的结果.该团队评估了手骨不同区域 ...
- Tomcat 7 的七大新特性(更容易将Tomcat内嵌到应用去中去 )
Tomcat的7引入了许多新功能,并对现有功能进行了增强.很多文章列出了Tomcat 7的新功能,但大多数并没有详细解释它们,或指出它们的不足,或提供代码示例.本文将明确描述TOMCAT 7中七个最显 ...
- Azure 媒体服务换新锁,更安全更方便,新钥匙请收好!
不知道有多少人已经把家里的门锁换成了数字化的指纹锁?沿用了几百上千年的传统门锁,在技术的帮助下无疑变得更方便,不用带钥匙,还能远程控制和操作,最重要的是,终于不用担心「衣果(luǒ)着」出门扔垃圾,风 ...
- SQL-表的操作(创建表,删除表,更改列,插入新行,更改行的值,删除表中数据)
一,操作表及列 1.创建表: CREATE TABLE test (ID int PRIMARY KEY IDENTITY,Name varchar(20) ) 2.删除表 DROP TABLE t ...
- Java 8 新特性-Stream更优雅的处理集合入门
Java 8 新特性之--Stream 一. 简单介绍 Stream是Java 8提出了的一种新的对集合对象功能的增强.它集合Lambda表达式,对集合提供了一些非常便利,高效的操作,使得代码具有非常 ...
随机推荐
- ElasticSearch1:基本概念
ElasticSearch的基本概念 es基本概念: Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式 NRT:Nearly Real Time ...
- 黑马lavarel教程---9、缓存操作
黑马lavarel教程---9.缓存操作 一.总结 一句话总结: legend2项目中自己写的哪些文件操作都可以通过这里的缓存实现,简单方便 1.lavarel中如何使用后端主流的缓存如 Memcac ...
- springboot properties
Spring-boot中Conditional介绍 https://blog.csdn.net/tanga842428/article/details/78615070springBoot----@C ...
- OPERQUERY查询,关于效率,或者说正确用法
原文:https://blog.csdn.net/u013641136/article/details/50379596 做过一个项目,需要在SQLSERVER创建对ORACLE的DBLINK然后通过 ...
- linux centos6.5 环境下安装redis的过程
过程还是挺折磨人的!谢谢许正同学一直耐心给我指导,虽然他也很忙.废话不多说: 首先,确保linux虚拟机联网: vm虚拟机>设置>Network Adapter 设置>网络配置设置成 ...
- SAN LAN MAN WAN的区别
主要是范围不同 SAN: System Area NetworkLAN: Local Area NetworkMAN: Metropolitan Area NetworkWAN: Wide Area ...
- selenium操作cookie
1,登录网页,使用webdriver的get_cookies获取cookie,并保存json文件 2,读取json文件,遍历添加网站使用的每一个cookies的name,value. 使用add_co ...
- VBA锁定指定单元格
Then .Range("AF4").Value = pjno .Range("A1:AH56").Locked = False .Range("F6 ...
- Requests API
Requests API http://docs.python-requests.org/en/latest/ requests的具体安装过程请看: http://docs.python-reques ...
- Dubbo ==> 简介
一.架构发展过程 首先,我们先来看看上面的架构发展的线路图:单一应用架构 --> 垂直应用架构 --> 分布式服务架构 --> 流动计算架构 . 单一应用架构 在一些中小型的传统软件 ...