ResNet被全面超越了!是那个Transformer干的,依图科技开源“可大可小”T2T-ViT,轻量版优于MobileNet...

本文主要是介绍ResNet被全面超越了!是那个Transformer干的,依图科技开源“可大可小”T2T-ViT,轻量版优于MobileNet...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“CVer”,选择加"星标"置顶

重磅干货,第一时间送达

作者丨Happy    审稿|邓富城

转载自丨极市平台

极市导读

 

又一篇Transformer来了!本文在ViT方面进行了一次突破性探索,提出了首次全面超越ResNet,甚至轻量化版本优于MobileNet系列的T2T-ViT。 

Tokens-to-Token ViT: Training Vision Transformers from Scratch on ImageNet

代码链接:https://github.com/yitu-opensource/T2T-ViT

论文:https://arxiv.org/abs/2101.11986

本文是依图科技在ViT方面的一次突破性的探索。与之前ViT、Detr、Deit等不同之处在于:本文针对ViT的特征多样性、结构化设计等进行了更深入的思考,提出了一种新颖的Tokens-to-Token机制,用于同时建模图像的局部结构信息与全局相关性,同时还借鉴了CNN架构设计思想引导ViT的骨干设计。最终,仅仅依赖于ImageNet数据,而无需JFT-300M预训练,所提方案即可取得全面超越ResNet的性能,且参数量与计算量显著降低;与此同时,在轻量化方面,所提方法只需简单减少深度与隐含层维度即可取得优于精心设计的MobileNet系列方案的性能。强烈推荐各位同学研究一下该文。

前言

语言模型中主流的Transformer已经开始对CV任务开始了降维打击,比如目标检测中NETR,low-level任务中的IPT,图像分类任务中的ViT与DeiT等等。ViT方案首先将输入图像拆分为定长的tokens序列,然后采用多个Transformer层对其进行全局相关性建模并用于图像分类。但ViT背靠比ImageNet更大的训练取得了优于纯CNN的性能,但如果仅采用ImageNet的话,其性能反而不如CNN方案。

作者通过分析发现:(1) 输入图像的简单token化难以很好的建模近邻像素间的重要局部结构(比如边缘、线条等),这就导致了少量样本时的低效性;(2) 在固定计算负载与有限训练样本约束下,ViT中的冗余注意力骨干设计限制了特征的丰富性。可参考下图:

ResNet50可以逐步捕获到期望的局部结构(比如边缘、线条、纹理等),然而ViT的结构建模信息较差,反而全局相关性被更好的获取。与此同时,可以看到:ViT的特征中存在零值,这导致其不如ResNet高效,限制了其特征丰富性

为克服上述局限性,作者提出了一种新的Tokens-to-Token Vision Transformer,T2T-ViT,它引入了(1) 层级Tokens-to-Token变换通过递归的集成近邻Tokens为Token将渐进的将图像结构化为tokens,因此局部结构可以更好的建模且tokens长度可以进一步降低;(2) 受CNN架构设计启发,设计一种高效的deep-narrow的骨干结构用于ViT。

相比标准ViT,所提T2T-ViT的参数量与MACs可以减低200%,并取得2.5%的性能提升(注仅用ImageNet从头开始训练);所提T2T-ViT同样取得了优于ResNet的性能,比如,在ImageNet数据集上,T2T-ViT-ResNet50取得了80.7%的Top1精度。可参考下图。

总而言之,本文的主要贡献包含以下几个方面:

  • 首次通过精心设计Transformer结构在标准ImageNet数据集上取得了全面超越CNN的性能,而无需在JFT-300M数据进行预训练;

  • 提出一种新颖的渐进式Token化机制用于ViT,并证实了其优越性,所提T2T模块可以更好的协助每个token建模局部重要结构信息;

  • CNN的架构设计思想有助于ViT的骨干结构设计并提升其特征丰富性、减少信息冗余。通过实验发现:deep-narrow结构设计非常适合于ViT。

T2TViT方法简介

前面对ViT存在的问题以及本文的主要改进思路进行了简单的介绍,接下来我们将着重针对本文所提的T2T、deep-narrow骨干设计进行重点介绍与分析。

Tokens-to-Token

Tokens-to-Token(T2T)模块旨在克服ViT中简单Token化机制的局限性,它采用渐进式方式将图像结构化为token并建模局部结构信息;而Tokens的长度可以通过渐进式迭代降低,每个T2T过程包含两个步骤:Restructurization与SoftSplit,见下图。

Re-structurization

如上图所示,给定Tokens序列T,将通过自注意力模块对齐进行变换处理,可以描述为:

注:MSA表示多头自注意力模块,MLP表示多层感知器。经过上述变换后,Tokens将在空间维度上reshape为图像形式,描述如下:

注:Reshape表示将 转换为

Soft Split

正如上图所示,在得到重结构化图像I后,作者对其进行软拆分操作以建模局部结构信息,降低Tokens长度。为避免图像到tokens过程中的信息损失,将图像拆分为重叠块,也就是说:每个块将与近邻块之间构建相关性。每个拆分块内的Token将通过Concat方式变换为一个Token(即Tokens-to-Token),因此可以更好的建模局部信息。作者假设每个块大小为 ,重叠尺寸为s,padding为p,对于重建图像 ,其对应的输出Token 可以表示为如下尺寸:

注:每个拆分块尺寸为 。最后将所有块在空域维度上flatten为Token 。这里所得到的输出Token将被送入到下一个T2T处理过程。

T2T module

通过交替执行上述Re-structurization与Soft Split操作,T2T模块可以逐渐的减少Token的长度、变换图像的空间结构。T2T模块可以表示为如下形式:

对于输入图像 ,作者采用SoftSplit操作将其拆分为Token: 。在完成最后的迭代后,输出Token 具有固定IG长度,因此T2T-ViT可以在 上建模全局相关性。

另外,由于T2T模块中的Token长度要比常规形式的更大,故而MAC与内存占用会非常大。为克服该局限性,在T2T模块中,作者设置通道维度为32(或者64)以降低MACs。

T2T-ViT Backbone

由于ViT骨干中的不少通道是无效的,故而作者计划设计一种高效骨干以降低冗余提升特征丰富性。T2T-ViT将CNN架构设计思想引入到ViT骨干设计以提升骨干的高效性、增强所学习特征的丰富性。由于每个Transformer具有类似ResNet的跳过连接,一个最直接的想法是采用类似DenseNet的稠密连接提升特征丰富性;或者采用Wide-ResNet、ResNeXt结构改变通道维度。本文从以下五个角度进行了系统性的比较:

  • Dense Connection,类似于DenseNet;

  • Deep-narrow vs shallow-wide结构,类似于Wide-ResNet一文的讨论;

  • Channel Attention,类似SENet;

  • More Split Head,类似ResNeXt;

  • Ghost操作,类似GhostNet。

结合上述五种结构设计,作者通过实验发现:(1) Deep-Narrow结构可以在通道层面通过减少通道维度减少冗余,可以通过提升深度提升特征丰富性,可以减少模型大小与MACs并提升性能;(2) 通道注意力可以提升ViT的性能,但不如Deep-Narrow结构高效。

基于上述结构上的探索与发现,作者为T2T-ViT设计了Deep-Narrow形式的骨干结构,也就是说:更少的通道数、更深的层数。对于定长Token ,将类Token预期Concat融合并添加正弦位置嵌入(Sinusoidal Position Embedding, SPE),类似于ViT进行最后的分类:

T2T-ViT Architecture

上图给出了T2T-ViT的网络结构示意图,它包含T2T模块与T2T骨干两部分。上图给出了n=2的结构示意图(即n+1=3个soft split,n个Re-structurization)。每个Soft Split的块大小分别为[7,3,3],重叠为[3,1,1]。

为更好的与常见手动设计CNN进行对比,作者设计了不同复杂度的T2T-ViT模型,见上表。比如对标ResNet50的T2T-ViT-14,对标ResNet101的T2T-ViT-19,对标ResNet152的T2T-ViT-24,对标MobileNetV1、MoblieNetV2的T2T-ViT-7,T2T-ViT-10,T2T-ViT-12。

实验

为更好说明所提方案的有效性,将其与ViT进行了对比,结果见下表。从表中数据可以看到:相比ViT,所提方案具有更少的参数量、MAC,但取得了更高的性能

下表给出了所提方案与ResNet的对比。从中可以看到:在相同模型大小与MACs约束下,所提方案能够以1%-2.5%的性能优势超过ResNet

与此同时,本文还给出了所提方案与轻量化网络MobileNet系列的对比,见下表。可以看到:在轻量化网络层面,所提方案可以取得比MobileNet系列更好的性能。注:由于MobileNet系列采用了高效卷积(Depthwise)操作导致其计算量要比T2T-ViT稍低,而T2T-ViT的设计则更为简单,只需要调整深度、隐含层维度即可得到不同计算量的模型。

最后还给出了不同CNN结构设计思想在T2T-ViT的性能对比,见下表。

从上表可以看到:

  • 无论是SE还是Deep-Narrow结构有益于T2T-ViT,但Deep-Narrow结构设计更为有效;

  • 稠密连接会损害ViT和T2T-ViT的性能;

  • SE有助于提升ViT与T2T-ViT的性能;

  • ResNeXt结构与ViT与T2T-ViT的影响非常小,几乎可以忽略;

  • Ghost可以进一步压缩T2T-ViT的模型大小、降低MACs,但会造成性能的下降。

最后的最后,本文还对所提T2T模块与Deep-Narrow结构设计进行了消融分析,结果见上表。从中可以看到:(1) T2T模块比卷积更优,这是因为它可以同时建模全局相关性与结构信息;(2) 相比Shallow-Wide结构,Deep-Narrow结构可以带来2.9%的性能提升

全文到此结束,更多消融实验分析建议好看原文,笔者强烈建议对Transformer感兴趣的同学研究一下该文,文中不少思想值得各位思考与借鉴。

代码

开源的才是好工作,在paper放出来之前先开源的更是好工作。就在昨天,依图科技就将T2T-ViT相关code与预训练模型在github上进行了开源。

在CVer公众号后台回复:T2TViT,即可获得上述论文、code以及预训练模型下载链接。

CV资源下载

后台回复:Transformer综述,即可下载两个最新的视觉Transformer综述PDF,肝起来!

重磅!CVer-Transformer交流群成立

扫码添加CVer助手,可申请加入CVer-Transformer方向 微信交流群,可申请加入CVer大群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、Transformer、PyTorch和TensorFlow等群。

一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,才能通过且邀请进群

▲长按加微信群

▲长按关注CVer公众号

整理不易,请给CVer点赞和在看

这篇关于ResNet被全面超越了!是那个Transformer干的,依图科技开源“可大可小”T2T-ViT,轻量版优于MobileNet...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展

【科技明说 | 科技热点关注】 2024戴尔科技峰会在8月如期举行,虽然因事未能抵达现场参加,我只是观看了网上在线直播,也未能采访到DTF现场重要与会者,但是通过数十年对戴尔的跟踪与观察,我觉得2024戴尔科技峰会给业界传递了6大重要信号。不妨简单聊聊:从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展? 1)退出中国的谣言不攻自破。 之前有不良媒体宣扬戴尔将退出中国的谣言,随着2

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank 正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

开源分布式数据库中间件

转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代。如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷。 MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到“云”端

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验