没有合适的资源?快使用搜索试试~ 我知道了~
RepMLPNet:具有重新参数化局部性的视觉MLP
5780RepMLPNet:具有重新参数化局部性的分层视觉MLP0丁晓晗 1 * 陈宏浩 2 张翔宇 3 韩俊功 4 丁贵光 1†01 北京信息科学与技术国家研究中心(BNRist);清华大学软件学院,中国北京 2中国科学院自动化研究所 3 MEGVII科技 4英国阿伯里斯特威斯大学计算机科学系,SY23 3FL,英国0dxh17@mails.tsinghua.edu.cn chenhonghao2021@ia.ac.cn zhangxiangyu@megvii.com0jungonghan77@gmail.com dinggg@tsinghua.edu.cn0摘要0与卷积层相比,全连接(FC)层更擅长建模长距离依赖关系,但在捕捉局部模式方面效果较差,因此在图像识别中通常不受青睐。在本文中,我们提出了一种名为局部注入(LocalityInjection)的方法,通过将并行卷积核的训练参数合并到FC核中,将局部先验融入FC层。局部注入可以被视为一种新颖的结构重新参数化方法,因为它通过转换参数等效地转换结构。基于此,我们提出了一个名为RepMLPBlock的多层感知器(MLP)块,它使用三个FC层来提取特征,并提出了一个名为RepMLPNet的新型架构。这种分层设计使RepMLPNet与其他同时提出的视觉MLP有所区别。由于它产生不同级别的特征图,因此它适用于下游任务,如语义分割。我们的结果表明:1)局部注入是MLP模型的通用方法;2)与其他MLP相比,RepMLPNet在准确性和效率之间具有有利的平衡;3)RepMLPNet是第一个能够无缝转换为Cityscapes语义分割的MLP。代码和模型可在https://github.com/DingXiaoH/RepMLP上获得。01. 引言0图像的局部性(即像素与其邻居的关联性大于与远处像素的关联性)使得卷积层更适合处理。0*本工作得到中国国家自然科学基金(编号61925107,U1936202,62021002)和北京人工智能学院(BAAI)的支持。本工作是丁晓晗和陈宏浩在MEGVII科技实习期间完成的。† 通讯作者。0神经网络(CNN)在图像识别中取得了成功,因为卷积层只处理局部邻域。在本文中,我们将这种归纳偏差称为局部先验。0此外,我们还希望具备建立长距离依赖关系的能力,本文将其称为全局容量。传统的CNN通过深层卷积层堆叠来建模长距离依赖关系。然而,重复的局部操作可能导致优化困难。一些先前的工作使用基于自注意力的模块增强全局容量,但它们没有局部先验。例如,由于缺乏局部先验,ViT需要大量的训练数据(JFT-300M中的3×10^8张图像)才能收敛。另一方面,全连接(FC)层也可以直接建模任意两个输入点之间的依赖关系,只需将特征图展平为向量,线性映射到另一个向量,然后将结果向量重新整形为特征图。然而,这个过程也没有局部性。没有这样一个重要的归纳偏差,同时提出的MLP通常需要大量的训练数据(例如JFT-300M)、更多的训练周期(300或400个ImageNet[8]周期)或特殊的训练技术(例如DeiT风格的蒸馏方法)才能从头开始学习归纳偏差。否则,它们可能无法达到与传统CNN相媲美的性能水平。0我们希望得到一个对小数据友好、可以使用普通训练方法进行训练、在视觉识别中有效的MLP模型。为此,我们在方法论、组件和架构三个方面做出了贡献。05790卷积0FC10ReLU0(�,�,�,�)0FC30(�,1,1,1)(�,1,3,3)0局部性0注入0训练时的RepMLP块 推理时的RepMLP块0参数化层(FC、卷积、BN)0特征图0特征作为向量0平均池化0BN0全局感知器0局部感知器0�,�,�,�)0(���,��)0� = 00卷积 �= 10�,�,�,�)0通道感知器0sigmoid0通道逐元素相乘0�,�,�,�)0�,�,�,�)0BN0BN0(�,�,�,�)0FC20加0FC10ReLU0(�,�,�,�)0FC30平均池化0全局感知器0�,�,�,�)0(���,��)0�,�,�,�)0通道感知器0sigmoid0通道逐元素相乘0�,�,�,�)0�,�,�,�)0(�,�,�,�)0FC20图1.RepMLP块,其中n、c、h、w是批量大小、输入通道数、特征图的高度和宽度,s是共享集合的数量,p是填充。此示例假设n=1,c=4,s=2。1)全局感知器在所有空间位置上聚合信息并建立通道之间的关系。2)同时,输入特征图被分成s个共享集合,并输入通道感知器,通道感知器将特征图重新整形为向量,线性映射到输出向量,然后再将其重新整形。3)局部感知器与通道感知器使用小的卷积核接收相同的输入以捕捉局部模式。本示例使用1×1和3×3的卷积核,因此填充应分别为p=0和1,以保持特征图的大小不变。通过批归一化(BN)[22],局部感知器和通道感知器的输出相加。最后,通过合并全局感知器的输出,我们将全局信息和通道信息结合起来。训练后,通过局部注入,卷积层被吸收到FC3核中,使得训练时的块等价地转换为一个包含三个全连接层的块,并用于推理。0通过将卷积层与全连接层等价合并,我们可以加速推理过程。这样做可以获得一个结构上与正常训练的全连接层完全相同但具有局部性的特殊矩阵参数化的全连接层。局部注入将训练时的结构(全连接层+卷积层)转换为推理时的(单个全连接层),通过对参数进行等价变换,可以看作是一种新颖的结构再参数化技术。换句话说,我们将归纳偏置等价地融入训练好的全连接层中,而不是让它从头开始学习。这种等价变换的关键是将任意卷积核转换为全连接核(即Toeplitz矩阵)。在本文中,我们提出了一种简单、与平台无关且可微分的方法(第3节)。基于局部注入,我们提出了RepMLP块作为MLP的构建块。图1展示了一个训练时的RepMLP块,其中包含了全连接层、卷积层和批归一化层,可以等价地转换为一个只包含三个全连接层的推理时块。架构方面,我们展示了一个分层设计。0有利于视觉理解[20, 27,34]。因此,我们提出了由RepMLP块组成的分层MLP架构。换句话说,随着特征图尺寸的减小,通道数量增加。我们认为,在ResMLP[37]或MLP-Mixer风格的模型中采用分层设计的主要障碍是参数数量与特征图尺寸1耦合,因此低层FC层的参数数量将比高层层次大几个数量级。例如,假设最低层的特征图尺寸为56×56,一个FC层需要9.8M个参数来将一个通道映射到另一个通道,而不考虑任何通道间的相关性(即类似深度卷积)。我们可以让所有通道共享相同的参数集,这样该层将有总共9.8M个参数。然而,假设最高层的特征图尺寸为7×7,参数数量只有2.4K,但通道数量很大。可预见的是,将如此少的参数共享给如此多的通道会限制表示能力,从而导致性能较差。我们通过一种集合共享线性映射(第4.1节)来解决这个问题,这样我们可以通过让通道共享可配置数量的参数集来独立控制每层的参数数量。较低层级的层使用较小的s,而较高层级的层使用较大的s,以平衡模型大小和表示能力。同时提出的MLP的另一个缺点是难以转移到下游任务,如语义分割。例如,MLP-Mixer[36]在ImageNet上表现出令人满意的性能,但不能作为UperNet[41]等语义分割框架的主干,因为它通过16×对图像进行了激进的嵌入(即下采样),并重复转换嵌入,因此无法生成具有不同语义信息级别的多尺度特征图。相反,我们的分层设计在不同层次上产生语义信息,因此可以直接用作常见下游框架的主干。总之,通过局部注入、RepMLP块和分层架构,RepMLPNet在ImageNet上仅经过100个训练周期就实现了有利的准确性和效率的权衡,相比于在300或400个周期内训练的其他MLP模型。我们还展示了局部注入的普适性,它不仅提高了RepMLPNet的性能,还提高了ResMLP[37]的性能。此外,RepMLPNet作为将MLP风格的主干首次转移到语义分割的尝试,表现出令人满意的性能。01在本文中,MLP指的是主要使用FC层将特征从一个向量线性映射到另一个向量的模型,因此参数数量必须与输入大小和输出大小成比例。根据我们的定义,另一个模型CycleMLP [3]不被称为MLP。2.1. From Vision Transformer to MLP58002.1. 从Vision Transformer到MLP02. 相关工作0视觉Transformer [18, 27, 38]在捕捉空间模式时大量采用自注意力模块。使用Transformer处理视觉任务的一个主要动机是减少人为设计的归纳偏差,让模型能够从大数据中自动学习到更好的偏差。与我们的工作同时进行的还有MLP-Mixer [36]、ResMLP[37]和gMLP[26]的提出。例如,MLP-Mixer通过在通道之间(通道混合,由1×1卷积实现)和通道内部(令牌混合)交替混合信息。具体而言,令牌混合组件将特征图沿空间维度投影(即转置特征图张量),将其输入到1×1卷积中,然后再次转置结果。因此,令牌混合可以被视为一个完全忽略位置信息的FC层,它将每个通道展平为一个向量,线性映射到另一个向量,然后重新调整为一个通道;而且所有通道共享相同的卷积核矩阵。通过这种方式,MLP-Mixer实现了空间位置之间的通信。ResMLP [37]和gMLP[26]采用类似的机制将空间信息与混合。02.2. 结构重新参数化0局部性注入的核心是将训练好的卷积核等效地合并到训练好的全连接核中以注入局部性。0局部性注入可以归类为结构重新参数化,它是通过转换参数来转换结构的方法学。结构重新参数化的代表是RepVGG[15],它是一种类似VGG的架构,只使用3×3的卷积和ReLU进行推断。这样的推断时架构等效地从具有恒等和1×1分支的训练时架构转换而来。Asymmetric ConvolutionBlock(ACB)[11]和Diverse BranchBlock(DBB)[14]是常规卷积层的两个替代品。通过构建额外的训练时路径(例如1×3、3×1或1×1-3×3),它们可以改进常规CNN而不增加额外的推断成本。ResRep[13]使用结构重新参数化进行通道修剪[9,10,12,25,28],并通过构建和修剪后续的1×1层来减少卷积层中的滤波器。Re-pLKNet[16]大量使用非常大的(例如31×31)卷积核,其中使用小卷积核的结构重新参数化有助于解决优化问题。局部性注入是将重新参数化推广到卷积之外的一个显著尝试。通过将卷积合并到全连接核中,我们用一种简单、与平台无关且可微分的方法(第3节)连接了卷积和全连接。03. 通过重新参数化注入局部性0本节推导出将任何给定的卷积核转换为全连接核(Toeplitz矩阵)的显式公式(方程12),这是进一步将卷积合并到并行全连接中的关键。推导可以安全地跳过。03.1. 公式化0在本文中,特征图用张量M∈Rn×c×h×w表示,其中n、c、h、w分别是批量大小、通道数、高度和宽度。我们用F和W表示卷积和全连接的卷积核。为了便于重新实现,我们以类似于PyTorch[32]的伪代码风格来表达计算。例如,通过k×k卷积的数据流程被表达为0M(out)=CONV(M(in),F,p),(1)0其中M(out)∈Rn×o×h′×w′是输出,o是输出通道数,p是要填充的像素数,F∈Ro×c×k×k是卷积核(我们暂时假设卷积是密集的,即组数为1)。从现在开始,我们假设h′=h,w′=w为简单起见。对于一个全连接层,设p和q为输入和输出的维度,V(in)∈Rn×p和V(out)∈Rn×q分别是输入和输出,核是W∈Rq×p,矩阵乘法(MMUL)被表达为0V(out)=MMUL(V(in),W)=V(in)∙W�。0现在我们将重点放在一个以M(in)为输入并输出M(out)的全连接层上,并假设输出形状与MMUL(M(in), W′)= MMUL(M(in), W) + CONV(M(in), F, p) .(4)MMUL(M(in), W(1)) + MMUL(M(in), W(2))= MMUL(M(in), W(1) + W(2)) .(5)MMUL(M(in), W(F,p)) = CONV(M(in), F, p) .(6)V(out) = V(in) · W(F,p)⊺ .(7)V(out) = V(in) · (I · W(F,p)⊺) .(8)V(out) = V(in) · RS(I · W(F,p)⊺, (chw, ohw)) .(9)I · W(F,p)⊺ = CONV(M(I), F, p) ,(10)M(I) = RS(I, (chw, c, h, w)) .(11)W(F,p) = RS(CONV(M(I), F, p), (chw, ohw))⊺ ,(12)4. RepMLPNet5810输入。我们使用RS(简称“reshape”)作为只改变张量形状规范而不改变内存中数据顺序的函数,这是零成本的。输入首先被展平成n个长度为chw的向量,即V(in)=RS(M(in),(n,chw)),乘以卷积核W(ohw,chw),然后输出V(out)(n,ohw)被重新形状为M(out)(n,o,h,w)。为了更好的可读性,如果没有歧义,我们省略RS。0M(out)=MMUL(M(in),W)。(3)0显然,这样的全连接层无法利用图像的局部性,因为它根据每个输入点计算每个输出点,不知道位置信息。03.2. 局部性注入0假设有一个与 FC并行的卷积层(如图1中的通道感知器和局部感知器),它以 M ( in ) 作为输入,我们描述如何等效地将其合并到 FC中。在接下来的讨论中,我们假设 FC 的卷积核是 W( ohw,chw ) ,卷积核是 F( o, c, k, k ) ,填充是 p。形式上,我们希望构造 W ′ ,使得0我们注意到,对于与 W (1) 形状相同的任何卷积核 W (2),MMUL 的可加性保证0因此,如果我们可以构造一个与 W 形状相同的 W (F ,p ),我们就可以将 F 合并到 W 中,满足以下条件0显然,对于任何的 M ( in ) , F , p ,相应的 W (F ,p )0必须存在,因为卷积可以被视为在空间位置之间共享参数的稀疏 FC(即 Toeplitz 矩阵),但是使用给定的 F构造它是非平凡的。然后我们寻找 W (F ,p )的显式公式。根据之前使用的公式(Eq. 2 ),我们有0我们插入一个单位矩阵 I ( chw, chw ) ,并使用结合律0使用显式的 RS,我们将 Eq. 8 重写为0我们注意到,W (F ,p ) 是使用现有的卷积核 F构造的,所以 I ∙ W (F ,p ) � 恰好是在从 I 重塑的特征图 M(I) 上使用 F 进行卷积。即0其中 M (I) 是从构造的单位矩阵重塑而来的0将 Eq. 7 与 Eq. 9 ,Eq. 10 进行比较,我们有0这正是使用 F , p 构造 W (F ,p )的公式。简而言之,卷积核的等效 FC核是在适当的重塑下对单位矩阵进行卷积的结果。更好的是,转换是高效且可微的,因此可以在训练期间推导出 FC核并在目标函数中使用它(例如,用于基于惩罚的剪枝 [ 17, 19 ])。分组情况的公式类似地推导出,并在 GitHub上发布了代码。为什么这个解决方案是非平凡的?给定 F ,p ,没有现有的通用方法可以构造相应的 Toeplitz 矩阵 W(F ,p ),因为现有的卷积实现不需要这样的步骤。如上所述,尽管W (F ,p )必须存在,但以与平台无关的方式构造它是非平凡的。现代平台使用不同的卷积算法,例如基于 iGEMM [ 16](用于非常大的卷积核),Winograd [ 24 ](用于 3 × 3),im2col [ 2](将特征图转换为矩阵,而不是卷积核),FFT [ 31],MEC [ 4]和滑动窗口)。此外,数据的内存分配和填充的实现可能不同。因此,给定 F , p 和 FC 核 W (F ,p ) ,等效性(Eq. 6)在一个平台上可能成立,在另一个平台上可能不成立(例如,最简单的情况是两个平台以不同的方式在内存中排列卷积核)。我们的方法(Eq. 12)是与平台无关的,因为它的推导不依赖于 CONV的具体形式。在任何平台上,使用特定 CONV 实现构造的W (F ,p ) 必须确保与相同的 CONV 满足 Eq. 6 。0RepMLPNet是由RepMLP块组成的分层MLP风格架构。我们首先在第4.1节中介绍RepMLP块(图1),然后在第4.2节中描述整体架构(图2)。04.1. RepMLP块的组成部分0训练时的RepMLP块由三个部分组成,分别称为全局感知器、通道感知器和局部感知器(图1),它们被设计用于建模不同层次的信息。全局感知器模型了空间位置之间的粗略全局依赖关系Stage1Embed 2×Stage2Embed 2×Stage3Embed 2×Stage4RepMLP Block ×B1RepMLP Block × B2RepMLP Block × B3RepMLP Block × B4RepMLPBNconv 1x1BNEmbed 4×conv 1x1GELURepMLPBNconv 1x1BNconv 1x1GELU5820(�,3,256,256)0(�,�,64,64)0(�,2�,32,32)0(�,4�,16,16)0(�,8�,8,8)0块0一个阶段0输入0块0图2.RepMLPNet的架构。除了RepMLP块之外,我们还使用了一个FFN风格的块(1×1-GELU [21]-1×1)来增加深度,这在Vision Trans- formers[18,27]、MLPs [36,37]和CNN(RepLKNet [16])中已经广泛使用。0在所有通道中;Channel Perceptron用于建模每个通道内的长程空间依赖关系;LocalPerceptron捕捉局部模式。三个组件的输出被组合在一起,以获得输入特征的全面转换。GlobalPerceptron将输入(n,c,h,w)平均池化为向量(n,c,1,1),并将其馈送到两个FC层以获得编码全局信息的向量。ChannelPerceptron包含一个直接执行特征转换的FC层,其中关键是集合共享机制。我们遵循第3节中的公式,并假设o =c以方便起见。我们注意到,一个普通的FC层具有(chw)2个参数。以具有128个通道的64×64特征图为例,普通密集FC的参数计数将为21B,这是不可接受的。一个自然的解决方案是使FC“深度”与深度卷积一样,这样它将无法建模跨通道的依赖关系,但只有1/c个参数和FLOP。然而,即使是c(hw)2的参数计数也太大了。我们的解决方案是使多个通道共享一组空间映射参数,以便将参数减少到s(hw)2,其中s是参数共享集合的数量。换句话说,每个c0s个通道共享相同的参数集,并且总共有s个这样的共享集。具体来说,我们首先将c个通道均匀分成c/s组,这意味着(n,c,h,w)→(nc0s,s,h,w),然后将它们展平为 nc0s个长度为shw的向量,将向量馈送到“深度”FC,并重新调整输出。与“深度”FC相比,共享集FC不仅打破了通道之间的相关性((chw)20parameters → c ( hw ) 2 ) ),但进一步减少了参数( c (hw ) 2 ) → s ( hw ) 2 );但它不会减少0计算与“深度”FC相比。应注意的是,ResMLP和MLP-Mixer中的空间映射是以不同的方式实现的(转置,1×1卷积和转置回来),但在数学上等价于具有s =1的共享集FC的特殊情况,这意味着所有通道共享相同的(hw)2个参数。我们将展示增加s可以提高性能,同时不增加额外的FLOP,这在模型大小不是主要关注点的情况下非常有用(表4)。实际上,尽管一些计算框架如PyTorch不直接支持共享集FC,但可以通过组内1×1卷积来实现。形式上,令V(in)(nc0s,shw)将向量分割为共享集合,实现由三个步骤组成:1)将V(in)重塑为具有1×1空间尺寸的“特征图”,即(nc0s, shw, 1, 1); 2)使用s组进行1×1卷积(使得参数为(shw)2/s = s(hw)2);3)将输出重塑为(nc0s, s, h, w),然后(n, c, h,w)。局部感知器接收与通道感知器相同的输入。每个卷积(通常后面跟着一个BN[22])是深度卷积,具有相同数量的共享集合s个s通道输入,因此卷积核为(s, 1, k,k)。通过局部注入将局部感知器合并到通道感知器中需要将BN融合到前面的卷积层或FC3中。注意,卷积层是深度卷积,通道数为s。设F∈Rs×1×k×k为卷积核,µ,σ,γ,β∈Rs为后续BN的累积均值、标准差和学习的缩放因子和偏置,我们构造卷积核F'和偏置b'如下:0F'i,:,:,: = γi0σiFi,:,:,: , b'i = -µiγi0σi + βi. (13)0然后很容易验证等价性:0γiσi(CONV(M, F, p):,i,:,: - µi) + βi0= CONV(M, F', p):,i,:,: + b'i, � 1 ≤ i ≤ s, (14)0其中左侧是卷积-BN的原始计算流程,右侧是带有偏置的构造卷积。通道感知器中的FC3和BN以类似的方式融合到ˆW∈Rshw×hw,ˆb∈Rshw中。然后,我们通过Eq.12将每个卷积转换,并将结果矩阵添加到ˆW上。卷积的偏置简单地通过hw次复制(因为同一通道上的所有点共享一个偏置值)并添加到ˆb上。最后,我们得到一个单独的FC核和一个单独的偏置向量,用于参数化推理时的FC3。04.2. 分层架构设计0最近的一些视觉MLP模型[36,37]显示出类似的设计模式:在开始时对输入进行大幅下采样(例如16×),并堆叠多个块来处理小尺寸的特征。相比之下,我们采用了一种5830表1.RepMLPNet模型的架构超参数(T表示小型,B表示基础型,D表示深度型,L表示大型)。值得注意的是,RepMLP-D256比RepMLP-B256更深,但更窄,因此它们具有可比较的FLOPs和参数数量。0名称 输入 B C S0RepMLP-T224 224×224 [2, 2, 6, 2] 64 [1, 4, 16, 128]RepMLP-B224 224×224 [2, 2, 12, 2] 96 [1, 4, 32, 128]0RepMLP-T256 256×256 [2, 2, 6, 2] 64 [1, 4, 16, 128]RepMLP-B256 256×256 [2, 2, 12, 2] 96 [1, 4, 32, 128]RepMLP-D256 256×256 [2, 2, 18, 2] 80 [1, 4, 16, 128]RepMLP-L256 256×256 [2, 2, 18, 2] 96 [1, 4, 32, 256]0分层设计在以前的CNNs [20, 33, 35, 42]和Transformers[27]的研究中已被证明是有效的。具体来说,我们将RepMLP块分为四个阶段,每个阶段的块共享相同的结构超参数。输入图像通过一个嵌入层进行4×下采样,该层由一个卷积层实现,卷积核大小为4×4,步长为4。从一个阶段到下一个阶段,我们使用一个嵌入层将特征图的宽度和高度减半,并将通道数加倍。因此,RepMLPNet可以使用以下超参数实例化:每个阶段中的RepMLP块的数量[B1,B2,B3,B4],第一个阶段的通道数C(四个阶段分别为C,2C,4C,8C通道),输入分辨率H×W(使得h1 = H/4,w1 =W/4,...,h4 = H/32,w4 =W/32),以及每个阶段的共享集合数量[S1,S2,S3,S4]。考虑到FC3中的参数数量为s(hw)2,我们在较早的阶段使用较小的s。我们分层架构的一个优点是,任何阶段产生的特征图都可以被下游框架直接使用。例如,UperNet[41]需要具有不同尺寸的四个级别的特征图,因此无法使用MLP-Mixer或ResMLP作为骨干网络。05. 实验05.1. ImageNet分类0我们首先使用不同的架构超参数实例化了一系列RepMLPNets,如表1所示。我们在ImageNet[8]上评估RepMLPNets。所有RepMLPNets都使用相同的设置进行训练:全局批量大小为256,分布在8个GPU上,使用AdamW[29]优化器,初始学习率为0.002,权重衰减为0.1,动量为0.9。我们总共训练100个epoch,使用余弦学习率退火,包括开始时的10个epoch的热身。我们使用0.1的标签平滑,α为0.4的mixup[45],α为1.0的CutMix[44],以及RandAugment[7]。作为一系列强基线,我们使用RandAugment、mixup和标签平滑对ResNet-101[20]、ResNeXt-101[42]和RegNetX-6.4GF[33]进行了训练。我们希望比较结果略微偏向传统CNN,0因此,我们对它们进行了120个epoch的训练。所有模型都使用单个裁剪进行评估,并在2080TiGPU上以批量大小为128进行吞吐量(样本/秒)测试。为了公平比较,CNN中的BN层也被融合在一起。需要注意的是,[26, 36, 37,43]中大多数结果是通过长时间的300或400个epoch的训练计划,或者通过先进的蒸馏方法(DeiT风格的训练[38])产生的。因此,除了从相应论文中引用的结果外,我们使用简单的训练设置训练了一个MLP-Mixer和一个ResMLP-S12进行公平比较(在表2中标记为“ourimpl”)。具体来说,MLP-Mixer的训练设置与RepMLPNets相同;ResMLP-S12的训练使用官方代码和与其报告的120个epoch结果[37]相同的超参数,只是由于资源有限,我们使用了较小的批量大小(但我们复现的准确性比其报告的结果[37]高2.7%)。与其他CNN和MLP相比,我们得出以下观察结果。1)在公平设置下,RepMLPNet表现优于其他MLP,例如,RepMLPNet-T256在准确性方面优于MLP-Mixer(ourimpl,256×256输入),而前者的FLOPs仅为后者的1/4。2)在简单的训练方法下,ResMLP和MLP-Mixer的性能显著下降,例如,没有300个epoch的DeiT风格训练,ResMLP-S12的准确性下降了8.9%(76.6% →67.7%)。3)经过100个epoch的训练,RepMLPNet在准确性和效率之间取得了有利的平衡:RepMLPNet-B256与没有DeiT风格蒸馏的ResMLP-B24的准确性相匹配,训练epoch仅为其1/4,FLOPs和参数更少。4)在相同的FLOPs下,MLP比CNN更快,例如,RepMLPNet-D256的FLOPs高于ResNeXt-101,但运行速度比后者快1.6倍。这一发现表明,MLP作为高吞吐量推理模型具有潜力。为了进一步证明FLOPs可能不反映吞吐量[15],我们使用前述的120个epoch强方案训练了EfficientNet-B1/B2[35],并在表3中报告了结果。有趣的是,尽管EfficientNets的FLOPs非常低,但在GPU上的实际性能较差:RepMLPNet-T224的FLOPs是EfficientNet-B1的4倍,但运行速度比后者快1.9倍;在相同的吞吐量下,RepMLPNet-B256的准确性比EfficientNet-B2高3.6%。我们认为RepMLPNet在GPU上的高吞吐量不仅归功于矩阵乘法的效率,还归功于架构的简单性和高度的并行性[30]。然后,我们研究了RepMLP块中两个关键设计的影响:全局感知器和FC3的共享线性映射。我们增加了共享集合数S或去除全局感知器,并观察性能以及模型大小。图4显示,全局感知器只增加了可忽略的参数和FLOPs(0.5M),但5840表2. ImageNet结果。吞吐量(样本/秒)在相同的2080Ti GPU上进行测试,批量大小为128。0模型 输入分辨率 训练轮数 Top-1准确率 FLOPs (B) 参数 (M) 吞吐量0RepMLPNet-T224 224 100 76.4 2.8 38.3 1709 ResMLP-S12 (我们的实现) 224 120 70.4 3.0 15.4 1895ResMLP-S12 [ 37 ] 224 120 67.7 3.0 15.4 - ResMLP-S12 + DeiT-train [ 37 ] 224 400 76.6 3.0 15.4 -RepMLPNet-T256 256 100 77.5 4.2 58.7 13740ResMLP-S24 + DeiT-train [ 37 ] 224 400 79.4 6.0 30.0 961 RegNetX-6.4GF [ 33 ] 224 120 79.6 6.4 26.2 589RepMLPNet-B224 224 100 80.1 6.7 68.2 8160ResNeXt-101 [ 42 ] 224 120 80.2 8.0 44.1 450 ResNet-101 [ 20 ] 224 120 79.4 8.1 44.4 606RepMLPNet-D256 256 100 80.8 8.6 86.9 715 RepMLPNet-B256 256 100 81.0 9.6 96.5 708 S 2 -MLP-deep [43 ] 224 300 80.7 10.5 51 -0RepMLPNet-L256 256 100 81.7 11.5 117.7 588 MLP-Mixer-B/16 [ 36 ] 224 300 76.4 12.6 59 - S 2 -MLP-wide[ 43 ] 224 300 80.0 14.0 71 - MLP-Mixer-B/16 (我们的实现) 224 100 76.7 12.6 59.8 632 gMLP-B [ 26 ] 224300 81.6 15.8 73 - MLP-Mixer-B/16 (我们的实现) 256 100 77.0 16.4 60.4 578 ResMLP-B24 + DeiT-train [ 37 ]224 400 81.0 23.0 115.7 -0表3. 与EfficientNets的比较。吞吐量(样本/秒)在2080TiGPU上进行测试,批量大小为128。0模型 输入 Top-1准确率 FLOPs (B) 吞吐量0RepMLPNet-T224 224 76.4 2.8 1709 EfficientNet-B1 24076.3 0.7 9120RepMLPNet-B256 256 81.0 9.6 708 EfficientNet-B2 26077.4 1.0 7070表4. 对RepMLP-T224进行的消融研究。0S 全局感知器 Top-1准确率 FLOPs 参数0[1, 4, 16, 128] 75.78 2.7B 37.8M [1, 4, 16, 128] � 76.48 +0.5M38.3M [2, 8, 32, 256] 75.94 2.7B 66.7M [2, 8, 32, 256] � 77.19+0.5M 67.2M0增加S会提高准确率约1%。这是因为局部感知器和通道感知器不会在通道之间传递信息,而全局感知器则弥补了这一点。通过增加S,较少的通道将共享相同的映射参数集,从而在不增加额外FLOPs的情况下显著提高性能。因此,在速度-准确率权衡是主要考虑因素而模型大小不是(例如在高性能计算中心),我们可以增加S以获得更高的准确率。05.2. 局部注入的重要性0我们在CIFAR-100[23]和ImageNet上进行了局部注入的消融研究,以评估局部注入的效果。具体而言,我们构建了一个小型的RepMLPNet,其中包含两个阶段,B = [6, 6],S = [8, 32],C =128。作为另一个基准模型,我们通过减小通道维度来缩小ResMLP-12的规模。此外,我们改变了“S”处的下采样比例。0我们将所有模型的初始分辨率提高到2倍,使嵌入维度变为16×16,接近于为ImageNet设计的ResMLP的情况(14×14)。对于ResMLP,我们在空间聚合层的旁路上添加了1×1和3×3的分支。请注意,ResMLP和MLP-Mixer中的空间聚合等效于我们的共享集合FC,只有一个共享集合(即所有通道使用相同的(hw)2个参数集)。在这种情况下,所有卷积层应相应地具有s =1,这意味着深度卷积具有一个输入通道和一个输出通道。因此,添加1×1卷积仅引入了5个参数(1×1×1×1内核和包括µ、σ、γ、β的单通道BN层的四个参数),因此整个模型仅有5×12=60个额外参数。类似地,添加3×3层仅引入了(3×3+4)×12=156个参数。尽管额外的参数和FLOPs可以忽略不计,但速度明显变慢(例如,使用1×1和3×3卷积,训练时间的ResMLP-12仅比FLOPs高0.4%,但运行速度降低了37%),这是由于并行度的降低[30],这凸显了将卷积层合并到FC中的重要性。对于RepMLPNet,通过添加3×3卷积带来的额外参数是(3×3+4)s,这是由于集合共享机制。所有在CIFAR-100上的ResMLP和RepMLPNet都使用与前文描述的相同的学习率调度和权重衰减,单个GPU上的批量大小为128,并进行标准的数据增强:填充到40×40,随机裁剪到32×32和左右随机翻转。可预见的是,性能并不理想,因为CIFAR-100对于FC层来说太小,无法从数据中学习归纳偏差。这一发现与同时进行的研究[36,37]一致,强调了这一点。ResMLP-12✓57.96+786K+602093ResMLP-12✓63.76+7077K+1561858ResMLP-12✓✓65.09+7864K+2161619RepMLPNet59.07468M8.3M6273RepMLPNet✓60.73+294K+7205872RepMLPNet✓65.36+2654K+26405721RepMLPNet✓✓67.43+2949K+33605328RepMLPNet-T22474.332.79B38.3M1709RepMLPNet-T224✓✓76.48+10M+20K1354RepMLPNet-D25678.588.61B86.94M715RepMLPNet-D256✓✓80.88+26M+60k570ResNet-1012049.82G79.03RepMLPNet-D2561960.01G76.27RepMLPNet-D256 (conv5)1960.16G77.125850表5. 局部注入效果研究。吞吐量在相同的2080TiGPU上进行测试,批量大小为128,以样本/秒为单位测量。添加具有可忽略FLOPs的卷积层明显降低了吞吐量。0数据集 模型 1×1卷积 3×3卷积 Top-1准确率 FLOPs 参数 吞吐量0CIFAR-1000CIFAR-1000ImageNet0MLP在小数据集上表现出较差的性能。仅在训练期间添加卷积分支显著提高了准确性,即使它们最终被消除。令人印象深刻的是,尽管ResMLP仅具有216个额外的训练参数,准确性提高了9.51%,我们在RepMLPNet上观察到了类似的现象。然后我们在ImageNet上使用RepMLP-T224/D256进行实验。去除局部感知器后,准确性分别降低了2.15%和2.30%。与CIFAR上的结果相比,差距更小,这是预期的,因为ImageNet规模更大,允许模型从数据中学习一些归纳偏差[36]。总之,由于局部注入在不同的模型和数据集上都起作用,我们得出结论它是视觉MLP的通用工具。05.3. 语义分割0RepMLPNet的分层设计使其成为需要不同层级特征图的现成下游框架的骨干,例如UperNet[41]。然而,将Im
下载后可阅读完整内容,剩余1页未读,立即下载
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 保险服务门店新年工作计划PPT.pptx
- 车辆安全工作计划PPT.pptx
- ipqc工作总结PPT.pptx
- 车间员工上半年工作总结PPT.pptx
- 保险公司员工的工作总结PPT.pptx
- 报价工作总结PPT.pptx
- 冲压车间实习工作总结PPT.pptx
- ktv周工作总结PPT.pptx
- 保育院总务工作计划PPT.pptx
- xx年度现代教育技术工作总结PPT.pptx
- 出纳的年终总结PPT.pptx
- 贝贝班班级工作计划PPT.pptx
- 变电值班员技术个人工作总结PPT.pptx
- 大学生读书活动策划书PPT.pptx
- 财务出纳月工作总结PPT.pptx
- 大学生“三支一扶”服务期满工作总结(2)PPT.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)