0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ConvNeXt模型更新了!

OpenCV学堂 来源:机器之心 2023-01-12 11:51 次阅读

ConvNeXt 模型更新了!

经过几十年的基础研究,视觉识别领域已经迎来了大规模视觉表征学习的新时代。预训练的大规模视觉模型已经成为特征学习(feature learning)和视觉应用的基本工具。视觉表征学习系统的性能在很大程度上受到三个主要因素的影响:模型的神经网络架构、训练网络的方法以及训练数据。每个因素的改进都有助于模型整体性能的提高。

神经网络架构设计的创新在表征学习领域一直发挥着重要作用。卷积神经网络架构(ConvNet)对计算机视觉研究产生了重大影响,使得各种视觉识别任务中能够使用通用的特征学习方法,无需依赖人工实现的特征工程。近年来,最初为自然语言处理而开发的 transformer 架构因其适用于不同规模的模型和数据集,在其他深度学习领域中也开始被广泛使用。

ConvNeXt 架构的出现使传统的 ConvNet 更加现代化,证明了纯卷积模型也可以适应模型和数据集的规模变化。然而,要想对神经网络架构的设计空间进行探索,最常见方法仍然是在 ImageNet 上进行监督学习的性能基准测试。

另一种思路是将视觉表征学习的重点从有标签的监督学习转向自监督预训练。自监督算法将掩码语言建模引入视觉领域,并迅速成为视觉表征学习的一种流行方法。然而,自监督学习通常会使用为监督学习设计的架构,并假定该架构是固定的。例如,掩码自编码器(MAE)使用了视觉 transformer 架构。

有一种方法是将这些架构和自监督学习框架结合起来,但会面临一些具体问题。例如,将 ConvNeXt 与 MAE 结合起来时就会出现如下问题:MAE 有一个特定的编码 - 解码器设计,该设计针对 transformer 的序列处理能力进行了优化,这使得计算量大的编码器专注于那些可见的 patch,从而降低了预训练成本。但是这种设计可能与标准的 ConvNet 不兼容,因为后者使用了密集的滑动窗口。此外,如果不考虑架构和训练目标之间的关系,那么也就不清楚是否能达到最佳性能。事实上,已有研究表明用基于掩码的自监督学习来训练 ConvNet 是很困难的,而且实验证据表明,transformer 和 ConvNet 可能在特征学习方面存在分歧,会影响到最终表征的质量。

为此,来自 KAIST、Meta、纽约大学的研究者(包括ConvNeXt一作刘壮、ResNeXt 一作谢赛宁)提出在同一框架下共同设计网络架构和掩码自编码器,这样做的目的是使基于掩码的自监督学习能够适用于 ConvNeXt 模型,并获得可与 transformer 媲美的结果。

4651f8b2-90ba-11ed-bfe3-dac502259ad0.png

论文地址:https://arxiv.org/pdf/2301.00808v1.pdf

在设计掩码自编码器时,该研究将带有掩码的输入视为一组稀疏 patch,并使用稀疏卷积处理可见的部分。这个想法的灵感来自于在处理大规模 3D 点云时使用稀疏卷积。具体来说,该研究提出用稀疏卷积实现 ConvNeXt,然后在微调时,权重不需要特殊处理就能被转换回标准的密集网络层。为了进一步提高预训练效率,该研究用单个 ConvNeXt 替换 transformer 解码器,使整个设计完全卷积网络化。研究者观察到加入这些变化后:学习到的特征是有用的并且改进了基线结果,但微调后的性能仍然不如基于 transformer 的模型。

然后,该研究对不同训练配置的 ConvNeXt 的特征空间进行了分析。当直接在掩码输入上训练 ConvNeXt 时,研究者发现 MLP 层存在潜在的特征崩溃(feature collapse)问题。为了解决这个问题,该研究提出添加一个全局响应归一化层(Global Response Normalization layer)来增强通道间的特征竞争。当使用掩码自编码器对模型进行预训练时,这种改进最为有效,这表明监督学习中重复使用监督学习中的固定架构设计可能不是最佳方法。

465f2884-90ba-11ed-bfe3-dac502259ad0.png

基于以上改进,该研究提出了 ConvNeXt V2,该模型在与掩码自编码器结合使用时表现出了更好的性能。同时研究者发现 ConvNeXt V2 在各种下游任务上比纯 ConvNet 有明显的性能提升,包括在 ImageNet 上的分类任务、COCO 上的目标检测ADE20K 上的语义分割。

46835a74-90ba-11ed-bfe3-dac502259ad0.png

469ee46a-90ba-11ed-bfe3-dac502259ad0.png

46b5bc76-90ba-11ed-bfe3-dac502259ad0.png

46c13182-90ba-11ed-bfe3-dac502259ad0.png

方法介绍

全卷积掩码自编码器

该研究提出的方法在概念上很简单,是以完全卷积的方式运行的。学习信号通过对原始的视觉输入随机掩码来生成,同时掩码的比率需要较高,然后再让模型根据剩余的 context 预测缺失的部分。整体框架如下图所示。

46cebc8a-90ba-11ed-bfe3-dac502259ad0.png

框架由一个基于稀疏卷积的 ConvNeXt 编码器和一个轻量级的 ConvNeXt 解码器组成,其中自编码器的结构是不对称的。编码器只处理可见的像素,而解码器则使用已编码的像素和掩码 token 来重建图像。同时只在被掩码的区域计算损失。

全局响应归一化

大脑中有许多促进神经元多样性的机制。例如,侧向抑制可以帮助增强激活神经元的反应,增加单个神经元对刺激的对比度和选择性,同时还可以增加整个神经元群的反应多样性。在深度学习中,这种形式的侧向抑制可以通过响应归一化(response normalization)来实现。该研究引入了一个新的响应归一化层,称为全局响应归一化 (GRN),旨在增加通道间的对比度和选择性。GRN 单元包括三个步骤:1) 全局特征聚合,2) 特征归一化,3) 特征校准。如下图所示,可以将 GRN 层合并到原始 ConvNeXt 块中。

46e21302-90ba-11ed-bfe3-dac502259ad0.png

研究者根据实验发现,当应用 GRN 时,LayerScale 不是必要的并且可以被删除。利用这种新的块设计,该研究创建了具有不同效率和容量的多种模型,并将其称为 ConvNeXt V2 模型族,模型范围从轻量级(Atto)到计算密集型(Huge)。

为了评估 GRN 的作用,该研究使用 FCMAE 框架对 ConvNeXt V2 进行预训练。从下图 3 中的可视化展示和图 4 中的余弦距离分析,可以观察到 ConvNeXt V2 有效地缓解了特征崩溃问题。余弦距离值一直很高,表明在网络层传递的过程中可以保持特征的多样性。这类似于使用 MAE 预训练的 ViT 模型。这表明在类似的掩码图像预训练框架下,ConvNeXt V2 的学习行为类似于 ViT。

46f52122-90ba-11ed-bfe3-dac502259ad0.png

4719680c-90ba-11ed-bfe3-dac502259ad0.png

该研究进一步评估了微调性能,结果如下表所示。

47275232-90ba-11ed-bfe3-dac502259ad0.png

当配备 GRN 时,FCMAE 预训练模型可以显著优于使用 300 个 epoch 训练得到的监督模型。GRN 通过增强特征多样性来提高表征质量,这对于基于掩码的预训练是至关重要的,并且在 ConvNeXt V1 模型中是不存在的。值得注意的是,这种改进是在不增加额外参数开销,且不增加 FLOPS 的情况下实现的。

最后,该研究还检查了 GRN 在预训练和微调中的重要性。如下表 2 (f) 所示,无论是从微调中删除 GRN,还是在微调时添加新初始化的 GRN,性能都会显著下降,这表明在预训练和微调中 GRN 很重要。

473b4ea4-90ba-11ed-bfe3-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 解码器
    +关注

    关注

    9

    文章

    1132

    浏览量

    40691
  • 编码器
    +关注

    关注

    45

    文章

    3602

    浏览量

    134227
  • Transformer
    +关注

    关注

    0

    文章

    141

    浏览量

    5984

原文标题:ConvNeXt V2来了,仅用最简单的卷积架构,性能不输Transformer

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    车载大模型分析揭示:存储带宽对性能影响远超算力

    车载大模型的定义尚无,传统大模型即LLM的参数一般在70亿至2000亿之间,而早期的CNN模型参数通常不到1000万,CNN模型目前大多做骨干网使用,参数飞速增加。特斯拉使用META的
    的头像 发表于 11-09 10:36 416次阅读
    车载大<b class='flag-5'>模型</b>分析揭示:存储带宽对性能影响远超算力

    PerfXCloud 重大更新 端侧多模态模型 MiniCPM-Llama3-V 2.5 闪亮上架

    近日,PerfXCloud完成重大更新,上架了面壁小钢炮 MiniCPM 系列的端侧多模态模型 MiniCPM-Llama3-V 2.5,现已对平台用户免费开放体验!
    的头像 发表于 08-27 18:20 488次阅读
    PerfXCloud 重大<b class='flag-5'>更新</b>  端侧多模态<b class='flag-5'>模型</b> MiniCPM-Llama3-V 2.5 闪亮上架

    下载LM2901的LTSPICE模型进行仿真报错怎么解决?

    下载官网上面LM2901的LTSPICE模型进行仿真的问题,没有进行任何更改,运行总是报如下错误,怎么解决,谢谢
    发表于 07-29 07:41

    微软发布Windows 11的Build 26120.1252更新

    今日,微软面向其Dev频道的Windows Insider项目成员隆重发布Windows 11的Build 26120.1252(KB5038603)更新,此次更新标志着多项重要改进与优化的到来,旨在为用户带来更加顺畅与高效的
    的头像 发表于 07-16 14:42 579次阅读

    使用TensorFlow进行神经网络模型更新

    使用TensorFlow进行神经网络模型更新是一个涉及多个步骤的过程,包括模型定义、训练、评估以及根据新数据或需求进行模型微调(Fine-tuning)或重新训练。下面我将详细阐述这
    的头像 发表于 07-12 11:51 360次阅读

    PSpice学习笔记 - TI器件模型导入

    电路功能仿真是电路设计过程中非常重要的一环,由于大部分仿真软件都不会自动更新器件模型,因此,为保证仿真结果的准确性,有时候就需要使用者手动更新器件模型,下面就介绍一下如何在PSpice
    的头像 发表于 06-17 14:22 1174次阅读
    PSpice学习笔记 - TI器件<b class='flag-5'>模型</b>导入

    GRU模型实战训练 智能决策更精准

    上一期文章带大家认识一个名为GRU的新朋友, GRU本身自带处理时序数据的属性,特别擅长对于时间序列的识别和检测(例如音频、传感器信号等)。GRU其实是RNN模型的一个衍生形式,巧妙地设计两个
    的头像 发表于 06-13 09:22 1272次阅读
    GRU<b class='flag-5'>模型</b>实战训练 智能决策更精准

    【大语言模型:原理与工程实践】大语言模型的应用

    ,它通过抽象思考和逻辑推理,协助我们应对复杂的决策。 相应地,我们设计两类任务来检验大语言模型的能力。一类是感性的、无需理性能力的任务,类似于人类的系统1,如情感分析和抽取式问答等。大语言模型在这
    发表于 05-07 17:21

    【大语言模型:原理与工程实践】大语言模型的评测

    和产品化提供有力的数据支持。 对于生活闲聊类评测任务,模型的回答主要从人性化程度、内容质量和社交适应性三个方面进行考察。这些方面共同反映模型在日常对话中的自然度、流畅度和应变能力
    发表于 05-07 17:12

    【大语言模型:原理与工程实践】大语言模型的基础技术

    向量可以随着任务更新、调整。这类语言模型一般分为静态词向量语言模型(如Word2vec、GloVe)和动态词向量语言模型(如ELMo、GPT、BERT)。静态词向量语言
    发表于 05-05 12:17

    【大语言模型:原理与工程实践】揭开大语言模型的面纱

    维基百科、网页内容和书籍等,不仅掌握语言的语法、语义和上下文信息,还能生成结构连贯、语义合理的句子和段落。大语言模型的一个显著特点是其庞大的参数量,已达数亿甚至数十亿级别。这种规模赋予模型强大的表示和学习
    发表于 05-04 23:55

    【大语言模型:原理与工程实践】探索《大语言模型原理与工程实践》

    《大语言模型》是一本深入探讨人工智能领域中语言模型的著作。作者通过对语言模型的基本概念、基础技术、应用场景分析,为读者揭开了这一领域的神秘面纱。本书不仅深入讨论语言
    发表于 04-30 15:35

    微软Copilot全面更新为OpenAI的GPT-4 Turbo模型

    起初,Copilot作为Bing Chat AI助手推出,初期采用GPT-3.5模型,随后升级至GPT-4取得显著进步,如今再次更新至性能卓越的GPT-4 Turbo模型,这无疑将使得Copilot功能再上新台阶。
    的头像 发表于 03-13 13:42 689次阅读

    鸿蒙应用模型开发-更新SDK后报错解决

    更新SDK后提示 “@ohos.application.Ability”/“@ohos.application.AbilityStage”等模块找不到或者无相关类型声明 问题现象 更新SDK后报错
    发表于 02-18 17:17

    更新IAR 8.4后,在Make时报错的原因?怎么解决?

    请问,我更新IAR 8.4后, 在Make 时,出现 Error[Pe235]: variable \"__stdout\" was declared with a never-completed type
    发表于 01-15 07:13