ICLR 2023 | RevCol:给神经网络架构增加了一个维度!大模型架构设计新范式

news2024/11/23 0:19:44

点击蓝字 关注我们

关注并星标

从此不迷路

计算机视觉研究院

3ff7f06a6d373f3b67e792fd8ef45538.gif

33a1a96829a334e5bd7dc7992c4a1a70.gif

公众号ID计算机视觉研究院

学习群扫码在主页获取加入方式

1bf6e1a37f8b84f4f07e3c78eada30e4.png

论文地址:https://arxiv.org/pdf/2212.11696.pdf

项目代码:https://github.com/megvii-research/RevCol

计算机视觉研究院专栏

Column of Computer Vision Institute

提出了一种新的神经网络设计范式可逆Column网络(RevCol)。RevCol的主体由多个子网络的副本组成,分别命名为columns,子网络之间采用多级可逆连接。

7909757facaceebb4db494f61cc8f0bb.gif

01

总  述

这样的架构方案使RevCol的行为与传统网络大不相同:在前向传播过程中,RevCol中的特征在通过每一列时都会逐渐解开,其总信息会被保留,而不是像其他网络那样被压缩或丢弃。

实验表明,CNN风格的RevCol模型可以在图像分类、目标检测和语义分割等多项计算机视觉任务上取得非常有竞争力的性能,尤其是在参数预算大、数据集大的情况下。例如,在ImageNet-22K预训练后,RevCol-XL在ImageNet-1K上获得88.2%的准确度。给定更多的预训练数据,最大的模型RevCol-H在ImageNet-1K上达到90.0%,在COCO检测最小值集上达到63.8%的APbox,在ADE20k分割上达到61.0%的mIoU。

据所知,这是纯(静态)CNN模型中最好的COCO检测和ADE20k分割结果。此外,作为一种通用的宏架构方式,RevCol还可以引入到Transformer或其他神经网络中,这被证明可以提高计算机视觉和NLP任务中的性能。

e863fe5229d291e06c3e5d4c538ce500.gif

02

背景&动机

Information Bottleneck principle(IB)统治着深度学习世界。考虑一个典型的监督学习网络,如下图a所示:靠近输入的层包含更多的低级信息,而靠近输出的特征具有丰富的语义。

18417bbb35c347d75ac608fcc4d91520.png

换句话说,在逐层传播期间,与目标无关的信息被逐渐压缩。尽管这种学习范式在许多实际应用中取得了巨大成功,但从特征学习的角度来看,它可能不是最佳选择——如果学习到的特征被过度压缩,或者学习到的语义信息与目标任务无关,则下游任务的性能可能较差,特别是在源任务和目标任务之间存在显著的领域差距的情况下。研究人员付出了巨大的努力,使学习到的特征更加普遍适用,例如通过自监督的预训练或多任务学习。

在今天分享中,研究者主要关注另一种方法:建立一个网络来学习解耦表征。与IB学习不同,去解耦特征学习不打算提取最相关的信息,而丢弃不太相关的信息;相反,它旨在将与任务相关的概念或语义词分别嵌入到几个解耦的维度中。同时,整个特征向量大致保持与输入一样多的信息。这与生物细胞中的机制非常相似,每个细胞共享整个基因组的相同拷贝,但具有不同的表达强度。因此,在计算机视觉任务中,学习解耦特征也是合理的:例如,在ImageNet预训练期间调整高级语义表示,同时,在目标检测等下游任务的需求下,还应在其他特征维度上保持低级信息(如边缘的位置)。

上图(b)概述了主要想法:RevCol,它在很大程度上受到了GLOM大局的启发。网络由结构相同(但其权重不一定相同)的N个子网络(命名列)组成,每个子网络接收输入的副本并生成预测。因此,多级嵌入,即从低级到高度语义表示,存储在每一列中。此外,引入可逆变换以在没有信息损失的情况下将多级特征从第i列传播到第(i+1)列。在传播过程中,由于复杂性和非线性增加,预计所有特征级别的质量都会逐渐提高。因此,最后一列(图中的第N列)1(b))预测了输入的最终解耦表示。

4f1175086b6d15abb2d202a101f2a6d2.gif

03

新框架

接下来,我们将介绍RevCol的设计细节。上图b说明了顶层体系结构。请注意,对于RevCol中的每一列,为了简单起见,直接重用ConvNeXt等现有结构,因此在以下主要关注如何构建列之间的可逆连接。此外,在每个列的顶部引入了即插即用的中间监督,这进一步提高了训练收敛性和特征质量

MULTI-LEVEL REVERSIBLE UNIT

在新提出的网络中,可逆变换在不损失信息的情况下对特征解耦着关键作用,其见解来自可逆神经网络。其中,首先回顾了RevNet的一部代表作。如下图a所示,RevNet首先将输入x划分为两组,x0和x1。

45029add8a0081a7f84c44349a7a16fb.png

然后,对于后面的块,例如块t,它将前面两个块的输出xt−1和xt−2作为输入,并生成输出xt。块t的映射是可逆的,即xt−2可以由两个后验块xt−1和xt重构。形式上,正向和反向计算遵循方程†:

1a844edd9b8c693375a58d0d14c8501c.png

为了解决上面提及的问题,将上面等式概括为以下形式:

8bf4553cf4eb5ca32f320abe3e749609.png

因此,可以将上面方程重组为多列形式,如下图b所示。每列由一组内的m个特征图及其母网络组成。将其命名为多级可逆单元,这是RevCol的基本组成部分。

585874703883dc2e73b40d90f5742b8c.png

REVERSIBLE COLUMN ARCHITECTURE

  • 宏观设计

9ea712effd8b4e04f3eac7d9f2d687a3.png

上图2c阐述了框架设计。按照最近模型的常见做法,首先通过补丁嵌入模块将输入图像分割成不重叠的补丁。然后,将补丁馈送到每个子网络(列)中。列可以用任何传统的单列架构来实现,例如ViT或ConvNeXt。从每一列中提取四级特征图,以在列之间传播信息;例如,如果列是用广泛使用的层次网络实现的,可以简单地从每个阶段的输出中提取多分辨率特征。

对于分类任务,只使用最后一列中最后一级(第4级)的特征图来获取丰富的语义信息。

对于其他下游任务,如目标检测和语义分割,在最后一列中使用所有四个级别的特征图,因为它们包含低级和语义信息。

  • 微观设计

6b1f7a372e60f768aaa99999949ed603.png

每一个层级中,先用一个Fusion单元把不同尺寸的输入调整到同一个shape,后面再经过一堆ConvNeXt Blocks得到输出,这些就是公式中的Ft(·),然后再和Reversible operation的输入加和得到最终结果。

值得注意的是,把原本的ConvNeXt block中7x7的kernel size改成了3x3,大kernel的收益在Revcol上有限,但小kernel特别快。

bf74107d81a1d4f39698b2000600e0fa.gif

04

实验

4c476f1cc1c11cd5030ebd728e0724c3.png

除了2B参数的模型以外,还收集了168Million的私有数据集,weakly-label的标签用来预训练。XL模型(800M param),在22k下能达到88.2%,经过Megdata-168M的训练后能够涨到89.4%。Huge 224 pretrain,640x640 Finetune能够达到90.0%Top-1 Accuracy。这个模型的训练开销:预训练总共1600个ImageNet Epochs,训练一次使用80块A100,14天。

b274deb4a30d9efecd76c52e3a799e4c.png

4d5da96d74cc7c14e01719bbda505f66.png

© THE END 

转载请联系本公众号获得授权

ed065eae98e09cade5b8409e7ef03cd5.gif

计算机视觉研究院学习群等你加入!

ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于目标检测、目标跟踪、图像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的论文算法新框架,提供论文一键下载,并分享实战项目。研究院主要着重”技术研究“和“实践落地”。研究院会针对不同领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

b0feb63b3decf0d0ed0fda1f0e010111.png

往期回顾

01

|清华大学提出LiVT,解决不平衡标注数据

02

|Transformer工业部署落地!

03

|AI大模型落地不远了

04

|华为诺亚极简网络,靠13层就拿下83%精度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671876.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL进阶SQL语句

目录 1.select(显示表格中一个或数个字段的所有数据记录) 2.distinct(不显示重复的数据记录) 3.where(有条件查询) 4.and 、or(且、或) 5. in(显示已知的值的数据记…

Goby 漏洞发布|Weaver OA PluginViewServlet Authentication Bypass Vulnerability

漏洞名称:泛微OA办公系统 PluginViewServlet 认证绕过漏洞 English Name:Weaver OA PluginViewServlet Authentication Bypass Vulnerability CVSS core: 8.0 影响资产数:45034 漏洞描述: 泛微OA 是一款专业强大的多功能办公…

直播回顾:HVV经验分享与重保整体解决方案

6月15日,Coremail联合北京钛星数安科技有限公司举办【HVV经验分享与重保整体解决方案发布】直播分享会。 直播会上Coremail安全团队和钛星数安的刘平平老师为大家带来重保时期的防御实战经验,帮助企业充分做好重保的安全准备工作,安稳度过重保…

uniapp中如何给下拉框动态绑值

前言: 在项目中我们会经常遇到新增的功能,而新增的页面中就会有输入框、下拉框、文本域、日期选择框等等。那么在uniapp是如何给下拉框中调用接口动态绑值的呢?请往下看 💨 💗 uView官网:介绍 | uView 2.0…

kettle开发-Day39-超好用AI+算力组合-算力提升器

前言: 上一节我们提到采用标记新旧数据的数据状态来快速整理需对比的数据,再选择性插入更新来保证数据的完整性。强强联合,保证了数据的高效和可用。 但是日常中,也存在部分场景,我们表输入是没有唯一性主键的&#xf…

计算机服务器数据库中了Devos后缀勒索病毒怎么办,记住以下步骤!

近期,我接到许多企业的求助,企业的用友财务软件遭受了Devos后缀勒索病毒的攻击,导致企业的用友财务账套被加密,许多重要的数据都无法正常读取,给公司的正常运营和数据安全带来了严重威胁。一旦企业被devos勒索病毒攻击…

【计算机组成原理】RV32I指令集

目录 一、RISC-V架构概述 二、RV32I指令集概述 三、RV32I指令格式 四、21条运算指令 五、8条访存指令 六、8条转移指令 七、10条其他指令 八、RV32I的寻址方式 一、RISC-V架构概述 RISC-V指令集起源: 全新的、具有典型RISC特征的指令集架构,20…

css基础知识六:谈谈你对BFC的理解?

一、是什么 我们在页面布局的时候,经常出现以下情况: 这个元素高度怎么没了?这两栏布局怎么没法自适应?这两个元素的间距怎么有点奇怪的样子? 归根究底是元素之间相互的影响,导致了意料之外的情况&#…

5个可以白嫖PPT模板的网站,不允许你们不知道

本期分享5个超好用的免费PPT模板网站,真的免费,建议收藏! 菜鸟图库 https://www.sucai999.com/search/ppt/0_0_0_1.html?vNTYwNDUx 菜鸟图库网有非常丰富的免费素材,像设计类、办公类、自媒体类等素材都很丰富。PPT模板种类很多…

Linux文件基础IO的理解1

目录 一.Linux中文件的特性 二.C语言部分库文件相关函数 2.1在C语言的文件底层原理中: 2.打开与关闭函数 fopen:打开文件函数 2.1参数理解: fclose:关闭文件函数 实验案例: w方式: r方式的案例&…

华为OD机试之 阿里巴巴找黄金宝箱(V)(Java源码)

文章目录 阿里巴巴找黄金宝箱(V)题目描述输入描述输出描述示例代码 阿里巴巴找黄金宝箱(V) 题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子,每个箱子上面贴有一个数字。 阿里巴巴念…

【好书精读】网络是怎样连接的 之 客户端与服务器之间是如何收发数据

( 该图由AI制作 学习AI绘图 ) 目录 将 HTTP 请求消息交给协议栈 对较大的数据进行拆分 使用 ACK 号确认网络包已收到 根据网络包平均往返时间调整 ACK 号等待时间 返回 ACK 号的等待时间(这个等待时间叫超时时间) 使用窗口…

GreasyFork+Github

GreasyForkGithub 好长时间没用 GreasyFork 了,最近在刷 Spring Boot 的各种知识点,其中很大时间都在学习 baeldung.com 这个站点。不知道是因为最近刷的勤了还是怎么的,这个网站经常会弹出一个“让我关闭广告阻拦插件”的提示框&#xff0c…

CesiumJS使用详细,在vue中使用Cesium.js(WebGIS中的Cesium地图可视化应用)

简述:Cesium是一种基于WebGL开源的虚拟地球技术,可以用于构建高性能、跨平台的三维地球应用程序,它支持多种数据格式和地图服务,可以实现地球表面的高精度渲染、地形分析、数据可视化等功能。Cesium还提供了丰富的API和插件&#…

K 个一组翻转链表(leetcode 25)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路思路复杂度分析 5.实现示例参考文献 1.问题描述 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不…

Linux->线程互斥

目录 前言: 1 线程互斥 1.1 多线程并发问题 1.2 线程锁 1.3 锁的接口 2 线程安全与可重入函数 3 死锁 前言: 本篇文章主要讲解了线程互斥的实现方式,还有原理,并附上代码讲解。并且讲解了锁的概念,问题等。 1 线…

C++进阶—继承(上)简单特性

目录 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6. 继承与静态成员 1.继承的概念及定义 1.1继承…

OpenSSL生成SSL证书,受浏览器信任吗?

OpenSSL是用于传输层安全(TLS)协议的开源工具包,OpenSSL生成SSL证书能受到浏览器信任吗?OpenSSL生成SSL证书能不能用于网站HTTPS加密呢? OpenSSL是什么? OpenSSL是基于密码学的用于传输层安全(TLS)协议的开源工具包,可…

【U8+】取消用友U8软件登录界面记住密码功能

【需求描述】 由于用友U8结合远程软件使用, 并且为了简化操作,远程用户建立一个公用账户, 所有的U8用户都使用同一个远程用户登录, 但是各自有U8的账号,登录账套的时候,有操作员记录密码后,别的…

Springboot 核心注解和基本配置解读

目录 1. Springboot 入门与原理 1.1 Springboot 简介 1.1.1 什么是Springboot 1.1.2 Springboot 主要优点 1.2 Springboot 相关注解 1.2.1 元注解 1.2.1.1 Target 1.2.1.2 Retention 1.2.2 Configuration 1.2.3 Import 1.2.3.1 直接注入 1.2.3.2 实现 ImportSelector…