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表达式,对集合提供了一些非常便利,高效的操作,使得代码具有非常 ...
随机推荐
- @ConfigurationProperties实现配置注入到实体类
spring boot 使用@ConfigurationProperties 有时候有这样子的情景,我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,这时候,我 ...
- 索引有B+索引和hash索引,各自的区别
Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B+树索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,那为什么大家不都用Hash索引而还要使用B+树索引呢? ...
- Java 标准 IO 流编程一览笔录( 下 )
8.回推流:PushbackInputStream与PushbackReader PushbackInputStream/PushbackReader 用于解析InputStream/Reader内的 ...
- tomcat在浏览器输入用户名和密码后报错Tomcat Manager App--403 Access Denied You are not authorized to view this page
报错截图:Tomcat Manager App--403 Access Denied You are not authorized to view this page 解决办法: 1.关闭Tomcat ...
- 用java写一个两个任意长度字符串数字和的算法
package com.cn.test.string; public class StringTest { public static void main(String[] args) { Strin ...
- windows下手动安装composer
原文地址:http://www.cnblogs.com/JANCHAN/p/7735882.html 1.下载compser.phar 地址 https://getcomposer.org/downl ...
- html5验证自适应
// 移动端跳转 var OS = function() { var a = navigator.userAgent, b = /(?:Android)/.test(a), d = /(?:Firef ...
- <JavaScript>为什么0.1+0.2=0.30000000000000004
浮点数运算 你使用的语言并不烂,它能够做浮点数运算.计算机天生只能存储整数,因此它需要某种方法来表示小数.这种表示方式会带来某种程度的误差.这就是为什么往往 0.1 + 0.2 不等于 0.3. 为什 ...
- Redis高级特性及应用场景
Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...
- [spring]@Resource和@Autowired区别对比
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Sprin ...