谷歌推出理解神经网络的新方法SVCCA | NIPS论文+代码

夏乙 编译自 Google Research Blog 量子位 出品 | 公众号 QbitAI

Google Research官方博客今天发文介绍了他们的一篇NIPS论文,提出了快速对两种表示进行比较的方法SVCCA,同时还开源了代码。

以下内容来自Google Research博客对这篇论文的介绍,量子位编译整理:

深度神经网络(DNN)在图像、语言理解和语音识别等领域都取得了史无前例的进展,但也带来了新的挑战。

和以前的机器学习方法相比,DNN在分类时更容易受到对抗样例(adversarial examples)的影响,在强化学习中更容易出现灾难性遗忘(catastrophic forgetting),在生成建模中更容易发生模式崩溃(mode collapse)。

为了构建更好的更强大的基于DNN的系统,模型的可解释性也非常重要。我们特别希望DNN有一个“表示相似性”的概念:我们能不能有效地确定两个神经网络所学到的表示是相同的?

在论文SVCCA: Singular Vector Canonical Correlation Analysis for Deep Learning Dynamics and Interpretability中,我们提出了一个简单、可扩展的方法,来解决这些问题。

我们看到这种方法有两个专门的应用,一是比较不同网络所学习到的表示,二是解释DNN中隐藏层学习到的表示。另外,我们还开源了代码供同行们尝试。

我们设置的关键是将DNN中每个神经元解释为一个激活向量,如下图所示,神经元的激活向量是它基于输入数据产生的标量输出。

当DNN的输入分别为x1、x2、x3时,其中一个神经元的变化

例如,对于50个输入图像,DNN中的一个神经元会输出50个标量值,其中编码着它对每个输入的响应程度。这50个标量值组成了这个神经元的激活向量。(当然,在实际操作中,我们所用的输入远超50个。)

基于这种基本观察和一些其他构想,我们提出了奇异向量典型相关分析(Singular Vector Canonical Correlation Analysis,简称SVCCA),一种采集两组神经元,然后输出从两者中学习到的对齐特征映射的技术。关键的是,这种技术对神经元排列(对比较不同网络至关重要)等表面差异做出了说明,并且可以在其他直接比较方法不管用的情况下检测相似性。

比如说,我们在中型图像分类数据集CIFAR-10上训练两个卷积神经网络net1和net2,然后为了将这种方法的结果可视化,我们将神经元的激活向量与SVCCA的对齐特征输出进行比较。回想一下,一个神经元的激活向量是基于输入图像的原始标量输出。

可视化结果如下图所示,红色表示net1,绿色表示net2;横轴是按类别排列的图像,类别边界用灰色虚线表示,纵轴是神经元的输出值。

上面左图展示了net1和net2中的最高激活(最大欧式范数)神经元。检查最高激活神经元一直是计算机视觉中解释DNN的一种常用方法,但是在上图所示的情况下,虽然net1和net2用相同的任务进行了训练,但两个网络中最高激活神经元没有明确的对应关系。

但是,在应用了SVCCA之后,如上面右图所示,我们可以看到两个网络学习到的潜在表示确实有一些非常相似的特征。注意最上面两行所显示的对齐特征映射,它们几乎是完全相同的,下面两行显示的第二高对齐特征映射也是。而且,右图这些对齐映射和类边界也显示出明确的对应关系,比如说我们可以看到,最上面一对输出在(从左往右数)第8类图像上为负,下面一堆对于第2类和第7类的输出为正。

SVCCA不仅可以用来在不同网络之间作比较,也可以用在同一个网络的不同时间段上,来研究网络中的不同层是如何收敛到最终表示的。

下图就显示了在net1各层的表示相似性随着时间而变化的情况。纵轴表示训练中的层,横轴表示训练完成的层。

在左上角“0% trained”图中,横轴表示训练完成时net1层增加的深度,纵轴表示0%训练时增加的深度,每个小方块(i,j)表示100%训练的i层和0%训练的j层的表示,有多大的相似度。其中左下角的小方格是输入层,在0%和100%训练时表示完全相同,正和我们预期一致。

我们对CIFAR-10上训练的卷积神经网络和残差网络进行了可视化,选取了训练到0%、35%、75%和100%几个点进行比较。上图第一行是卷积神经网络,第二行是残差网络。

研究证实了神经网络是自下而上收敛的,接近输入的层先收敛,层数越高收敛时间越长。这也引出了一种更快的训练方法:冻结训练。

另外,这种可视化还有助于突出显示网络的属性。在第一行,有几个2×2的块,对应着批量标准化层,和之前的层在表示上是相同的。在第二行,训练快结束时,我们可以看到类似棋盘格的样式出现,这是由于网络的残差连接与先前的层有更大相似性。

截至目前,我们的努力集中在将SVCCA用于CIFAR-10,但通过应用离散傅里叶变换的预处理技术,我们可以将这种方法扩大到用于ImageNet那种规模的模型上去。

当我们把这种技术用到ImageNet训练的ResNet上时,可以看出潜在表示与不同类别对应的表示之间的相似性:

SVCCA还有更多细节和其他应用,比如通过投射到SVCCA输出来压缩DNN、节约计算力的深度神经网络训练方法冻结训练等等,可以看Google的论文。

接下来对于SVCCA也有一些excited的探索,比如用到不同类型的架构上、不同数据集之间的比较、更好的可视化对齐方向等等。

最后附上论文和代码地址:

SVCCA: Singular Vector Canonical Correlation Analysis for Deep Learning Dynamics and Interpretability

论文地址:https://arxiv.org/abs/1706.05806

代码地址:https://github.com/google/svcca

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2017-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CVer

[计算机视觉论文速递] 2018-03-30

通知:这篇文章有9篇论文速递信息,涉及目标检测、图像分割、目标跟踪、三维重建和立体匹配等方向 PS:由于时间问题,本文没有附上相应图示,还请见谅 前文回顾 Te...

400140
来自专栏机器之心

回归、分类与聚类:三大方向剖解机器学习算法的优缺点(附Python和R实现)

选自EliteDataScience 机器之心编译 参与:蒋思源、晏奇 在本教程中,作者对现代机器学习算法进行一次简要的实战梳理。虽然类似的总结有很多,但是它们...

45250
来自专栏专知

【360人工智能研究院与NUS颜水成团队】HashGAN:基于注意力机制的深度对抗哈希模型提升跨模态检索效果

【导读】近日,中山大学、新加坡国立大学和奇虎360人工智能研究院团队提出了一种具有注意机制的对抗哈希网络(adversarial hashing network...

50750
来自专栏企鹅号快讯

干货!这里有一份神经网络入门指导,请收下!

图片来源于网络 翻译 | 林椿眄 编辑 | Donna 本周,我们为您准备了一份数据科学家Ben Gorman撰写的神经网络指导。这份指导包含了他具体的学习思路...

20170
来自专栏机器之心

入门 | 从VGG到NASNet,一文概览图像分类网络

选自towardsdatascience 作者:Lars Hulstaert 机器之心编译 了解图像分类的不同网络架构是一项非常艰巨的任务。本文将讨论目前可在 ...

39740
来自专栏人工智能

马里兰大学帕克分校提出对“损失函数”进行“可视化”,以提高神经网络的训练能力

原文来源:arxiv 作者:Hao Li、Zheng Xu、Gavin Taylor、Tom Goldstein 「雷克世界」编译:嗯~阿童木呀、KABUDA ...

23670
来自专栏目标检测和深度学习

目标检测入门(二):模型的评测与训练技巧

文章结构 ? 检测模型的评测指标 目标检测模型本源上可以用统计推断的框架描述,我们关注其犯第一类错误和第二类错误的概率,通常用准确率和召回率来描述。准确率描述了...

72060
来自专栏机器之心

资源 | 1460万个目标检测边界框:谷歌开源Open Images V4数据集

这些边界框大部分由专业的标注人员手工绘制,以确保准确性和一致性。数据集中的图像非常多样化,通常包含存在多个目标的复杂场景(平均每张图像 8.4 个)。此外,数据...

28430
来自专栏杨熹的专栏

浅谈 GBDT

在 Xgboost 那篇文章 (Kaggle 神器 xgboost) 中提到了 Gradient Boosted Decision Trees,今天来仔细看看 ...

38460
来自专栏新智元

无监督,无需匹配样本!英伟达提出基于GAN的无监督图到图迁移框架

【新智元导读】英伟达研究人员发表论文,提出图像到图像的无监督学习。实现方式值得一看。 大多数现有的图像到图像(image-to-image)迁移框架是基于监督学...

36790

扫码关注云+社区

领取腾讯云代金券