前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVPR 2024 | LORS算法:低秩残差结构用于参数高效网络堆叠,参数少、成本低、内存小

CVPR 2024 | LORS算法:低秩残差结构用于参数高效网络堆叠,参数少、成本低、内存小

作者头像
CV君
发布2024-04-30 17:08:19
1670
发布2024-04-30 17:08:19
举报

关注公众号,发现CV技术之美

本文主要介绍 CVPR2024 录用文章LORS: Low-rank Residual Structure for Parameter-Efficient Network Stacking的主要工作。深度神经网络主要采用堆叠大量相似模块的设计范式。尽管这是一种有效的方式,但与此同时带来了参数量的显著增长,这给实际应用带来了挑战。本文算法LORS允许堆叠模块共享大多数参数,每个模块只需要少量参数就可以匹配甚至超过原始完全不同参数的方法,这显著减少了参数量。

  • 论文链接:https://arxiv.org/abs/2403.04303
  • 源码链接:https://github.com/li-jl16/LORS

背景

在大语言模型上已经验证了堆叠在增强模型方面很强大。本文关注的问题:如何在减少所需参数量同时享受堆叠好处?注意到堆叠解码器具有相同结构和相似功能,这表明它们参数之间应该有一些共性。然后由于它们输入输出有不同分布,因此它们参数也必须有独特的方面。一个自然的想法是:可以用共享的参数表示共享的方面,同时允许每个堆叠的模块只保留捕捉独特特性参数。

基于以上观察,本文将堆叠模块的参数分解为两部分:表示共性的共享模块和捕捉特定特征的私有模块。共享模块可用于所有模块,并由它们联合训练,而私有模块中参数在每个模块中单独拥有。为了实现这个目标,本文受到LoRA模块启发提出了低秩残差结构模块(Low-rank Residual Structure,LORS)。LORS本质是将唯一参数添加到共享参数中,就像残差连接将残差信息添加到特征中一样。虽然LORA最初是为微调设计的,但本文算法从头开始对参数进行类似LoRA操作。

方法

LoRA简介

低秩适应(Low-rank Adaption,LoRA)核心思想是引入一个能够不住哦特定任务知识的低秩参数矩阵,同时保持原始的预训练参数固定。

数学上,给定预训练参数矩阵

W\in \mathbb{R}^{d\times h}

,LoRA模块使用一个低秩矩阵

B\in \mathbb{R}^{d\times r}

和一个投影矩阵

A\in \mathbb{R}^{r\times h}

适应矩阵

W

,且满足

r\ll d,h

。适应参数矩阵可以描述为:

W+\Delta W=W+BA

其中

BA

捕捉特定任务知识。

LoRA 主要优势是可以显著减少需要微调的参数,因此减少了计算成本并降低了内存需要。在一些应用例子,即使r个位数值也可以将模型微调到期望的状态。

基于查询的检测器简介

与依赖锚框或滑动窗口的传统检测器不同,基于查询的模型利用一组可学习查询与图像特征图进行交互。这种交互可以通过注意力操作形式化:

Q_{updated}=\text{Attention}(Q,K(V))

可学习查询

Q

用于预测目标类别和包围框,

K

V

源于编码的图像特征。

AdaMixer解码器简介

AdaMixer是一种基于查询的检测器。主要设计包括自适应通道混合(Adaptive Channel Mixing,ACM)和自适应空间混合(Adaptive Spatial Mixing,ASM),这显著增强了其性能。

给定采样特征

\mathbf{x}\in \mathbb{R}^{P_{in}\times C}

,其中

C=d_{feat}/g

g

是采样组数量。才阿姨那个特征通过称为组采样的操作获得。该操作将特征空间通道

d_{feat}

划分为

g

组,并对每一组执行采样。之后ACM使用通过目标查询适应的权重在通道维度转换特征

\mathbb{x}

,增强其通道语义。

\begin{aligned} M_{c}&=\text{Linear}(\mathbf{q})\in \mathbb{R}^{C\times C}\\ \text{ACM}(\mathbb{x})&=\text{ReLU}(\text{LayerNorm}(\mathbf{x}M_{c})) \end{aligned}

ASM模块目标是通过在空间维度应用自适应变换使目标查询具有对采样特征空间结构的适应能力。

\begin{aligned} M_{s}&=\text{Linear}(\mathbf{q})\in \mathbb{R}^{P_{in}\times P_{out}}\\ \text{ACM}(\mathbb{x})&=\text{ReLU}(\text{LayerNorm}(\mathbf{x}^{T}M_{s})) \end{aligned}

ACM和ASM对于每个采样组训练独立的参数,最终输出形状为

\mathbb{R}^{g\times C\times P_{out}}

扁平化后通过线性函数

L_{output}

变换到

d_{q}

维度并加回目标查询。

ACM、ASM和输出线性变换

L_{output}

有相较于解码器其他操作显著更多的参数。本文将它们作为目标组件验证本文算法的有效性。

LORS形式化描述

LORS计算划分为两个类型:自适应和静态

静态低秩残差结构(Static Low Rank Residual Structure,LORS^T^)

假设有N个有相同架构的堆叠层模块,

W_{i}\in \mathbb{R}^{d\times h}

是属于第i层的参数矩阵。此时满足:

W_{i}=W^{shared}+W_{i}^{private}

其中

W_{i}^{private}

是属于第i层的特定层参数,计算可以描述为:

W_{i}^{private}=\sum_{k=1}^{K}B_{ik}A_{ik}

其中

B_{ik}\in \mathbb{R}^{d\times r},A_{ik}\in \mathbb{R}^{r\times h},r\ll d,h

K

表示用于计算

W_{i}^{private}

的参数组数量。

自适应低秩残差结构(Adaptive Low Rank Residual Structure,LORS^A^)

定义

\hat{W}^{shared}\in \mathbb{R}^{d\times h}

是第i对叠层的自适应生成参数,计算过程表示:

\hat{W}_{i}=\hat{W}^{shared}+\hat{W}_{i}^{private}

。跨层分享参数

\hat{W}^{shared}\in \mathbb{R}^{d\times h}

和特定层参数

\hat{W}_{i}^{privae}\in \mathbb{R}^{d\times h}

基于

q

计算:

\begin{aligned} \hat{W}^{shared}&=\text{Linear}(\mathbf{q})\in \mathbb{R}^{d\times h} \\ \hat{W}_{i}^{private}&=\sum_{k=1}^{K}\hat{B}_{ik}\hat{E}_{ik}\hat{A}_{ik}\\ \hat{E}_{ik}&=\text{Linear}(\mathbf{q})\in \mathbb{R}^{r\times r} \end{aligned}

其中

\hat{B}_{ik}\in \mathbb{R}^{d\times r},\mathbf{A}_{ik}\in \mathbb{R}^{r\times h},r\ll d,h

LORS在AdaMixer解码器应用

本文将LORS应用到属于AdaMixer解码器每个ACM、ASM和

L_{output}

对于每组的采样点,LORS^A^用于减少ACM中

M_{c}

参数(从

\mathbb{R}^{d_{q}}

\mathbb{R}^{C\times C}

)与ASM中

M_{s}

参数(从

\mathbb{R}^{d_{q}}

\mathbb{R}^{P_{in}\times P_{out}}

)。LORS^T^最小化

L_{out}

中参数(从

\mathbb{R}^{P_{in}\times P_{out}}

\mathbb{R}^{d_{q}}

)。

因此

M_{c}

M_{s}

L_{output}

参数数量为

d_{q}\times C\times C

d_{q}\times P_{in}\times P_{out}

d_{q}\times C\times P_{out}

。本文实验默认采样策略包含两组,每组64个点,变量设置为

d_{q}=256,C=64,P_{in}=64,P_{out}=128

。在以ResNet-50为backbone的AdaMixer模型上,这三个组件共同占了总参数大部分,而它们也是增强模型性能主要驱动因素。

实验

训练超参数设置

模型训练12或36周期,12周期训练的第8和第11阶段的学习率下降了10倍,36周期训练的第24和第33阶段的学习率下降了10倍。对于LORS^A^低秩值设置为

r=16

,LORS^T^低秩值设置为

r=8

。LORS^A^参数组的数量设置为

K=[1,1,2,2,3,3]

,应用于AdaMixer解码器的ACM和ASM,

L_{output}

设置为

K=[1,1,1,1,1,1]

。本文将特征通道分为2组,每组64个采样点,而不是AdaMixer的默认的4组,每组32个采样点,旨在增加LORS的参数可压缩空间。

初始化策略

  • LORS^T^:对于静态LORS的
W^{shared}

B

采用Kaiming初始化,对于每个

A

零初始化。

  • LORS^A^:对于自适应LORS,对于形成每个
\hat{W}^{shared}

的线性变换权重采用kaiming初始化,每个

\hat{B}

\hat{A}

采用相同初始化。对于形成每个

\hat{E}

的线性变换权重采用零初始化。

主要实验结果

表2给出了使用LORS与没有LORS在1x训练方案与COCO数据集上的实验性能比较。比较指标包括参数数量、GFLOPs和各种尺度的AP。当AdaMixer与LORS组合时观察到显著的参数数量减少。例如当使用12周期和100查询时,AdaMixer+LORS使用仅仅35M解码器参数和60M总参数训练性能与对应110M和135M的AdaMixer相当。

表3显示了AdaMixer + LORS方法在不同backbone和查询数的3×训练方案下的显著性能。可以观察到,所提出的方法在所有backbone、查询数和评估指标上始终优于普通的AdaMixer。这个结果让我们有些惊讶,因为LORS使模型在训练和推理过程中使用明显更少的参数。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-28,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 我爱计算机视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 方法
    • LoRA简介
      • 基于查询的检测器简介
        • AdaMixer解码器简介
          • LORS形式化描述
            • LORS在AdaMixer解码器应用
            • 实验
              • 训练超参数设置
                • 初始化策略
                  • 主要实验结果
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                  http://www.vxiaotou.com