前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >广度网络和深度网络学到的东西是一样的吗?

广度网络和深度网络学到的东西是一样的吗?

作者头像
McGL
发布2021-05-08 10:47:53
8230
发布2021-05-08 10:47:53
举报
文章被收录于专栏:PyVisionPyVision

作者:Thao Nguyen@Google Research 编译:McGL

要提高神经网络性能并使其适配可用计算资源,一个常见做法是调整结构的深度和宽度。实际上流行的神经网络系列,包括 EfficientNet、 ResNet 和 Transformers,都是由一组灵活深度和宽度的结构组成。但是除了对准确率的影响之外,目前对于这些结构设计的基本选择如何影响模型的理解是很有限的,例如对其内部表征(internal representations)的影响。

在论文《Do Wide and Deep Networks Learn the Same Things? Uncovering How Neural Network Representations Vary with Width and Depth》中,我们从隐藏表征和最终输出的视角,对来自同一结构系列的广度和深度网络之间的相似性进行了系统的研究。在非常宽或非常深的模型中,我们在其内部表征中发现了一个特征性的(characteristic)块结构,并建立了这种现象与模型过参数化之间的联系。模型之间的比较表明,那些没有块结构的在相应的层表征之间显示出显著的相似性,而那些包含块结构的则呈现出高度不同的表征。同一测试集上,广度和深度模型内部表征的这些特性,反过来又转化为类别和示例层面上错误的系统性的区别。

>>> 用CKA比较表征相似性

我们利用我们之前开发的中心内核对齐(Centered Kernel Alignment/CKA)技术扩展了之前的表征分析工作,这种技术提供了一种鲁棒的、可扩展的方法来确定任意一对神经网络层所学习的表征之间的相似性。CKA 采用两层的表征(即激活矩阵)作为输入,并输出介于0(完全不相似)和1(相同的表征)之间的相似性评分。

我们将 CKA 应用到一系列不同深度和宽度的 ResNets 上,在通用的基准数据集(CIFAR-10、 CIFAR-100 和 ImageNet)上进行训练,并使用表征热图来展示结果。每个热图的 x 轴和 y 轴表示考虑的模型层,从输入到输出,每个条目(i,j)表示第 i 层和第 j 层之间的 CKA 相似性得分。

我们使用 CKA 来计算单个模型(即 network 1和 network 2是相同的)和跨模型(即 network 1和 network 2用不同的随机初始化进行训练,或者具有不同的结构)中所有层对的表征相似性。

下面这个例子,是当我们在一个深度为26,宽度 multiplier 为1的 ResNet 中比较每个层和每个其他层的表征时产生的热图。在这里使用的设计惯例中,声明的深度只是指网络中卷积层的数量,但是我们分析了所有层,并且宽度 multiplier 应用于每个卷积中的滤波器数量。请注意热图中的棋盘格模式,这是由结构中的跳过连接(层之间的捷径)造成的。

>>> 块结构的出现

从更深或更广的网络的表征热图中凸显出来的是出现了大量具有高度相似表征的连续层,这些层在热图中显示为黄色正方形(即 CKA 分数较高的区域)。这种现象,我们称之为块结构,暗示着里面的层可能并不像我们期望的那样有效地逐步改进网络的表征。实际上,我们展示了任务性能在块结构内部变得停滞不前,并且可以在不影响最终性能的情况下删除一些层。

块结构—— 一大组具有高度相似表征的相邻层,随着宽度或深度的增加而出现。每个热图面板显示了单个神经网络中所有层之间的 CKA 相似性。虽然它的大小和位置可能因为不同的训练而不同,但块结构是一个稳定的现象,每次都会出现在较大的模型上。

通过附加实验,我们发现块结构与模型的绝对大小的关系要小于模型的大小与训练数据集的大小的关系。随着我们减少训练数据集的规模,块结构开始出现在更浅和更窄的网络中:

随着网络宽度的增加(沿着每一行向右)和数据集规模的减少(沿着每一列向下) ,相对模型容量(相对于给定的任务)被有效地膨胀了,块结构开始出现在更小的模型中。

通过进一步的分析,我们也能够证明块结构源于保持和传播其底层表征的主要主成分。详情请参阅我们的论文:https://arxiv.org/abs/2010.15327

>>> 比较模型间的表征

进一步,我们研究了深度和宽度对不同随机初始化和不同体系结构的模型表征的影响,发现块结构的存在在这种情况下也产生了显著的差异。尽管体系结构不同,没有块结构的宽和深模型确实表现出表征相似性,相应的层在模型中大体上具有相同的比例深度。然而,当存在块结构时,它的表征对于每个模型都是唯一的。这表明,尽管具有相似的总体性能,每个具有块结构的宽度或深度模型从输入到输出都学到了独特的映射。

对于较小的模型(例如,ResNet-38 1×) ,不同初始化的 CKA (非对角线)与单个模型中的 CKA (非对角线)非常相似。相比之下,更宽和更深的模型(例如,ResNet-38 10× ,ResNet-164 1×)的块结构内的表征在不同的训练过程中有很大的不同。

>>> 广度和深度模型的错误分析

在探讨了广度和深度模型的学习表征的性质之后,我们接下来要理解它们如何影响输出预测的多样性。我们训练了很多不同体系结构的网络,并确定每个体系结构配置容易出错的测试集示例。

在 CIFAR-10 和 ImageNet 数据集上,具有相同平均准确率的广度和深度模型仍然显示了示例级预测在统计上的显著差异。同样的观察结果也适用于 ImageNet 上的类别级错误,广度模型在识别与场景相对应的类别方面显示出小小的优势,深度网络在消费品识别方面相对更准确。

在 ImageNet 上模型间每类的差异,宽度增加(y轴),深度增加(x轴)。橙色的点反映了两组 ResNet-83(1×) 50个不同的随机初始化之间的差异。

>>> 总结

在研究深度和宽度对内部表征的影响时,我们发现了一种块状结构现象,并证明了它与模型容量的关系。我们还展示了广度和深度模型表现出的类和示例层面的系统性输出差异。想了解这些结果的全部细节和其他见解请查看这篇论文:https://arxiv.org/abs/2010.15327!我们对这些发现提出的许多有趣的开放性问题感到兴奋,比如块结构是如何在训练过程中产生的,这种现象是否发生在图像分类之外的领域,以及这些对内部表征的洞察如何能够对应模型的效率和泛化能力。

原文: https://ai.googleblog.com/2021/05/do-wide-and-deep-networks-learn-same.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PyVision 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • >>> 用CKA比较表征相似性
  • >>> 块结构的出现
  • >>> 比较模型间的表征
  • >>> 广度和深度模型的错误分析
  • >>> 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档