来自Google Research:宽模型和深模型学到的是相同的东西吗?

2024-06-21 08:08

本文主要是介绍来自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),并使用表示热图来说明结果。考虑模型的层中每个热图的xy轴,从输入到输出,每一项(ij)是层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:宽模型和深模型学到的是相同的东西吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080661

相关文章

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe