谷歌大脑团队新尝试 用奇异向量典型相关分析解释深度神经网络

深度神经网络(DNNs)在视觉、语言理解和语音识别等领域取得了前所未有的进展。但这些成功也带来了新的挑战。与许多以前的机器学习方法不同的是,深度神经网络可以很容易地在分类中产生敌对的例子,在强化学习中出现灾难性遗忘(catastrophic forgetting)这样的大型状态空间,以及在生成模型中的模式崩溃。为了构建更好、更健壮的基于深度神经网络的系统,对这些模型进行解释是至关重要的。谷歌大脑团队想要一个关于深度神经网络的表现相似性的概念:我们能不能有效地确定两个神经网络所学习到的表现是相同的?

奇异向量典型相关分析(SVCCA),是一个奇异值(SV)分解和典型相关分析(CCA)的合并。谷歌大脑团队曾发表过一篇名为“奇异向量典型相关分析:关于深度学习动力学和解释能力的奇异向量典型相关分析”的论文,文章中引入了一个简单并且可以扩展的方法来解决这些问题。研究的两个具体的应用程序是比较不同网络所学习的表示,并解释了由在深度神经网络隐藏层学习的表示。此外,谷歌大脑团队正在开放源代码,以便研究社区能够对这种方法进行试验。

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

我们的设置的关键是将深度神经网络中的每个神经元都解释为一个激活向量(activation vector)。如下图所示,神经元的激活向量是它在输入数据上产生的标量输出。例如,对于50个输入图像,一个深度神经网络中的神经元将输出50个标量值,编码它对每个输入的响应。这50个标量值构成了神经元的激活向量。(当然,在实际操作中,我们使用了超过50个输入。)

这里有一个深度神经网络,有三个输入,x1,x2,x3。看一下深度神经网络内的神经元(右侧红色的圆圈),这个神经元会产生一个标量输出zi,对应于每个输入xi。这些值构成了神经元的激活向量。

通过这个基本的观察和进一步的阐述,我们引入了奇异向量典型相关分析,这是一种用于两组神经元的技术,并且输出了它们所学习的一致的特征图。关键的是,这种技术可以解释一些表面上的差异,比如神经元排列的置换(permutation),这对于比较不同的网络来说是至关重要的,并且可以检测到相似性,这种相似性比起其它更容易直接失败。

作为一个例子,考虑在CIFAR-10上训练两个卷积神经网络(net1和net2,见下图),这是一个中等规模的图像分类任务。为了使我们的方法的结果可视化,我们将神经元的激活向量与由奇异向量典型相关分析输出的对齐的特征进行比较。回想一下,神经元的激活向量是输入图像上的原始标量输出。图中的x轴是由类排序的图像(灰色的虚线表示类边界),y轴表示神经元的输出值。

我们在左图展示了net1和net2中两个最高的激活(最大的欧氏规范)神经元。检查最高的激活神经元是在计算机视觉中解释深度神经网络的一种流行方法,但是在这种情况下,net1和net2中最高的激活神经元没有明确的对应关系,尽管它们都接受过相同的任务。

然而,在应用了奇异向量典型相关分析(右图)之后,我们发现两个网络所学习的潜在表示确实有一些非常相似的特性。注意,表示对齐的特征图的前两行几乎是相同的,也就是第二高的对齐的特征图(底部的两行)。此外,右图中的这些对齐的映射也显示了与类边界的清晰的对应关系,例如,我们看到上面的两行对第8类给出了负输出,而下面的两行对第2类和第7类给出了正输出。

虽然你可以跨网络应用奇异向量典型相关分析,但也可以在同一时间内对相同的网络进行相同的处理,以便研究网络中不同层如何聚合到它们的最终表示。下面,我们展示了在net1中,训练(y轴)和训练结束时(x轴)层之间的层表示的图片。例如,在左上角的窗格中(标题为“0% trained”),x轴显示了在100%的训练中增加了深度的层,而y轴显示了在0%的训练中增加了深度的层。每一个(i,j)小方块告诉我们,我在100%的训练中所代表的层的表现是如何与第j层的训练相一致的。输入层位于左下角,并且(如预期的那样)在0%到100%之间是相同的。我们通过训练在几个点进行了比较,分别为0%、35%、75%和100%,用于在CIFAR-10上的卷积网络(上行)和残差网络(下行)。

图中显示了在CIFAR-10上的卷积网络和剩差网络的学习动态。注意,额外的结构也是可见的:由于批量规范层而在顶部行中的2×2方块,以及由于残差连接而在底部行中的棋盘图案。

我们发现了自下而上的收敛性的证据,首先,层与输入的聚合更接近,而层越高,收敛的时间就越长。这暗示了一种更快的训练方法——“冻结训练”(Freeze Training)。此外,这种可视化还有助于突出网络的属性。在最上面一行,有两个2×2方块。这些都对应于批处理层,它们与之前的层是相同的。在最后一行,在训练结束的时候,我们可以看到一个类似模式的棋盘图案,这是由于网络的残差连接与以前的层有更大的相似性。

到目前为止,我们已经把奇异向量典型相关分析应用到CIFAR-10上了。但是我们可以将预处理技术应用于离散傅里叶变换(Discrete Fourier transform),这种方法可以扩展到Imagenet大小的模型。我们将此技术应用于Imagenet Resnet,将潜在表示的相似性与对应于不同类的表示相比较:

  • Imagenet Resnet:https://arxiv.org/abs/1512.03385

奇异向量典型相关分析与不同类的潜在表示的相似之处

我们在Imagenet Resnet中使用不同的层,其中0表示输入,74表示输出,并比较隐藏层和输出类的表示的相似性。有趣的是,不同的课程以不同的速度学习:消防车类的学习速度比不同的犬种类的学习速度更快。此外,这两种犬类(一对哈士奇和一对西高地梗犬)以相同的速度学习,这反映了它们之间的视觉相似性。

我们上面提到的论文给出了我们迄今为止所探索的结果的更多细节,也涉及到不同的应用,例如通过投影到奇异向量典型相关分析的输出,以及冻结训练。有很多的后续研究,我们都很兴奋地使用奇异向量典型相关分析进行探索——转向不同类型的架构,比较不同的数据集。

我们希望大家打开下面这个代码的链接,它能鼓励很多人将奇异向量典型相关分析应用到他们的网络表达中,以理解他们的网络正在学习什么。

  • 代码:https://github.com/google/svcca

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法全栈工程师

《机器学习》笔记-贝叶斯分类器(7)

作者:刘才权 编辑:陈人和 前 言 如今机器学习和深度学习如此火热,相信很多像我一样的普通程序猿或者还在大学校园中的同学,一定也想参与其中。不管是出于好奇,还...

3666
来自专栏专知

深度学习和普通机器学习之间有何区别?

【导读】文章标题是个很有趣的问题,深度学习作为机器学习的子集,它和普通机器学习之间到底有什么区别呢?作者使用了一种很普通的方式来回答这个问题。 本质上,深度学习...

3705
来自专栏AI研习社

我搭的神经网络不 work 该怎么办!看看这 11 条新手最容易犯的错误

每个人在调试神经网络的时候,大概都遇到过这样一个时刻: 什么鬼!我的神经网络就是不 work!到底该怎么办! 机器学习博客 TheOrangeDuck 的作者,...

2924
来自专栏专知

【干货】理解深度学习中的矩阵运算

【导读】本文是作者Nikhil B撰写的“Terence Parr和Jeremy Howard的深度学习的矩阵运算”笔记。我们知道,深度学习是基于线性代数和微积...

4224
来自专栏数据派THU

教你简单解决过拟合问题(附公式)

作者:Ahmed Gad 翻译:韩海畴 校对:丁楠雅 本文带大家认识了什么是过拟合,并且示范了用正则化的方法来避免过拟合的问题。 ? 多项式回归&过拟合 你可...

3458
来自专栏机器之心

CVPR 2018 | Poster论文:处理多种退化类型的卷积超分辨率

1445
来自专栏ACM算法日常

第一篇:《机器学习之入门初探》

这是一篇帮助你了解和理解机器学习、神经网络、深度学习相关概念的文章,如果你对智能领域感兴趣并且想要未来投身AI方向的话,希望你可以耐下心来理解这些概念,以及我...

751
来自专栏大数据文摘

斯坦福深度学习课程第七弹:RNN,GRU与LSTM

1353
来自专栏大数据挖掘DT机器学习

Python实现:KNN分类算法

1、KNN分类算法 KNN分类算法(K-Nearest-Neighbors Classification),又叫K近邻算法,是一个概念极其简单,而分类效果又很优...

30113
来自专栏量子位

我搭的神经网络不work该怎么办!看看这11条新手最容易犯的错误

王瀚宸 王小新 编译自 TheOrangeDuck 量子位 出品 | 公众号 QbitAI ? 每个人在调试神经网络的时候,大概都遇到过这样一个时刻: 什么鬼!...

3349

扫描关注云+社区