本文主要是介绍来自Google Research:宽模型和深模型学到的是相同的东西吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”
因公众号更改了推送规则,记得读完点“在看”~下次AI公园的新文章就能及时出现在您的订阅列表中
作者:Thao Nguyen, AI Resident, Google Research
编译:ronghuaiyang
导读
提高模型容量可以从宽度和深度着手,但是,宽模型和深模型学到的是相同的东西吗?用各自适用的场景吗?
论文链接:https://arxiv.org/abs/2010.15327
提高神经网络性能并使其适应可用计算资源的一个常见做法是调整体系结构的深度和宽度。事实上,流行的神经网络家族,包括EfficientNet, ResNet和Transformers,由一套灵活的深度和宽度的架构组成。然而,除了对准确性的影响之外,对于这些结构设计的基本选择如何影响模型的理解有限,比如对其内部表示的影响。
在“Do Wide and Deep Networks Learn the Same Things? Uncovering How Neural Network Representations Vary with Width and Depth”这篇文章中,我们通过其隐藏表示和最终输出,对来自同一结构的宽网络和深度网络之间的相似性进行了系统研究。在非常宽或非常深的模型中,我们在它们的内部表征中发现了一个典型的块结构,并在这种现象和模型过参数化之间建立了联系。模型之间的比较表明,没有块结构的模型在相应层的表示之间表现出显著的相似性,而包含块结构的模型表现出高度不同的表示。当在相同的测试集上对宽和深模型进行评估时,内部表示的这些属性反过来转化为在类和样本级别上的不同的系统性错误。
比较表示相似性与CKA
通过利用我们先前开发的Centered Kernel Alignment (CKA)技术,我们扩展了之前的分析表示的工作,该技术提供了一个健壮的、确定任意一对神经网络层所学习的表示之间的相似性的可扩展的方法。CKA将两层的表示(即激活矩阵)作为输入,并输出0(完全不相似)和1(相同的表示)之间的相似性得分。
我们在ResNets家族上应用CKA,使用不同的深度和宽度,在常见的基准数据集上训练(CIFAR-10和ImageNet),并使用表示热图来说明结果。考虑模型的层中每个热图的x和y轴,从输入到输出,每一项(i, j)是层i和层j之间的CKA相似度评分。
我们使用CKA计算单个模型(即网络1和网络2相同时)和跨模型(即网络1和网络2使用不同的随机初始化训练,或具有完全不同的架构时)中所有层对的表示相似性。下面是我们在一个深度26,宽度乘法器1的ResNet中比较每一层和其他每一层的表现时产生的热图的一个例子。在这里使用的设计约定中,规定的深度仅指网络中卷积层的数量,但我们分析了现有的所有层,宽度乘法器适用于每个卷积中滤波器的数量。请注意热图中的checkerboard模式,它是由体系结构中的跳跃连接(层之间的直接连接)引起的。
Block结构的出现
在更深或更宽网络的表示热图中,最突出的是出现了一组具有高度相似表示的连续层,这些层在热图中以黄色方块的形式出现(即具有高CKA分数的区域)。这种现象,我们称之为“block结构”,表明底层在逐步细化网络表示方面可能没有我们预期的那么有效。实际上,我们证明了在block结构中任务性能变得停滞不前,并且可以在不影响最终性能的情况下修剪一些底部的层。
块结构,一个大的,连续的层集具有高度相似的表示-随着宽度或深度的增加而出现。每个热图平面上显示了单个神经网络中所有层对之间的CKA相似性。虽然它的大小和位置在不同的训练中可能会有所不同,但块结构是一种稳健的现象,在较大的模型中始终如一地出现。通过附加的实验,我们表明,相比于模型的相对于训练数据集的大小,块结构与模型的绝对大小的关系较小。随着我们减小训练数据集的大小,块结构开始出现在更浅更窄的网络中:
通过进一步的分析,我们还可以证明,块结构来自于保留和传播其底层表示的主要主成分。
跨模型比较表示
进一步,我们研究了深度和宽度对不同随机初始化和不同架构的模型表示的影响,并发现块结构的存在在这种情况下也有显著的不同。尽管有不同的架构,但没有块结构的宽和深的模型彼此表现出相似的表示,相应的层在模型中大致具有相同的比例深度。然而,当块结构存在时,它的表示对于每个模型是唯一的。这表明,尽管具有类似的总体性能,但每个带有块结构的宽或深的模型从输入到输出都有一个唯一的映射。
对于较小的模型(例如ResNet-38 1×),不同初始化的CKA(对角线外)非常类似于单个模型中的CKA(对角线上)。相比之下,更广泛和更深层次模型(如ResNet-38 10×, ResNet-164 1×)的块结构内的表示在训练运行中是非常不同的。宽和深模型的误差分析
在探索了广域和深度模型的学习表示的属性之后,我们接下来将转向理解它们如何影响输出预测的多样性。我们训练了不同体系结构的网络群体,并确定每个体系结构配置倾向于在哪个测试集样本上出错。
在CIFAR-10和ImageNet数据集上,具有相同平均精度的宽和深模型在样本级的预测方面仍然显示出统计上的显著差异。对于ImageNet上的类级别错误,同样的观察也成立,宽模型在识别自然场景对应的类方面表现出较小的优势,而深度网络在商品上相对更准确。
在ImageNet上,每类模型的宽度(y-轴)或深度(x-轴)都有所增加。橙色的点反映了ResNet-83 (1×)两组50种不同的随机初始化之间的差异。结论
在研究深度和宽度对内部表征的影响时,我们发现了块结构现象,并证明了它与模型容量的联系。我们还表明,宽模型和深模型在类和样本级别上显示出系统输出差异。
—END—
英文原文:https://ai.googleblog.com/2021/05/do-wide-and-deep-networks-learn-same.html
请长按或扫描二维码关注本公众号
喜欢的话,请给我个在看吧!
这篇关于来自Google Research:宽模型和深模型学到的是相同的东西吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!