Press "Enter" to skip to content

动态卷积效率低?UCSD&微软用矩阵分解的方法解决了这个问题,性能还更高!(ICLR2021)

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

  写在前面

 

最近,动态卷积方面的研究表明,K个静态卷积核的自适应聚合,可以使得CNN的性能显着提高。然而,它有两个局限性:(a) 它将卷积权重的数量增加了k倍 ,(b) 动态注意力和静态卷积核的联合优化具有挑战性 。

 

在本文中,作者从矩阵分解的角度重新回顾动态卷积,并揭示了其中的关键问题是由于 动态卷积在投射到高维潜在空间后对再通道组应用动态注意力 。 为了解决这个问题,作者提出了 动态通道融合 来代替通道组上的动态注意力。动态通道融合不仅可以显着降低潜在空间的维数,而且可以减轻联合优化的难度。因此,本文提出的方法更易于训练,并且在不牺牲精度的情况下,需要的参数更少。

 

  1. 论文和代码地址

 

 

Revisiting Dynamic Convolution via Matrix Decomposition

 

论文地址:https://arxiv.org/abs/2103.08756

 

代码地址:https://github.com/liyunsheng13/dcd

 

  2. Motivation

 

动态卷积最近已成为轻量级网络实现的主流方法之一,它能够以可忽略的计算成本实现显着的性能提升,这促使它在多个视觉任务中被采用。动态卷积的基本思想是根据与输入相关的注意力机制,将多个卷积核动态聚合为卷积权重矩阵,如下所示:

 

其中,最终聚合的卷积核为k个卷积核基于注意力权重的线性组合。

 

动态卷积有两个主要的局限性: (a)由于使用k个卷积核而缺乏紧凑性,(b)注意力得分 和静态卷积核 的联合优化具有挑战性 。在这项工作中,作者通过矩阵分解重新讨论了这两个局限性。作者用一组残差重新构造了动态卷积,每个静态卷积核可以定义为:

 

其中是平均卷积核,是残差矩阵。

 

用SVD进一步分解,可以得到。因此,每个静态卷积核可以表示为:

 

其中,是由注意力得分得到的注意力矩阵,为单位矩阵。

 

 

上图展示了该计算过程的图解,动态卷积可以通过残差来实现(首先将输入投影到更高维空间(C个通道转换为KC个通道),然后在通道组上应用动态注意力,最后再降低通道数为)。

 

这表明, 标准动态卷积的局限性是在高维的通道组上使用注意力,会导致较小的注意值,因此可能抑制相应通道的学习 。

 

 

为了解决这个问题,作者提出了一种 动态卷积分解(DCD) ,用 动态通道融合 代替通道组上的动态注意。DCD基于全动态矩阵,其中每个元素都是基于输入的函数。

 

如上图所示,动态残差为和两个静态矩阵的乘积,其中用于将输入压缩到低维潜在空间,用于动态融合该空间中的通道,用于将通道数扩展到输出空间。

 

DCD关键的创新在于的动态通道融合能够显着降低潜在空间的维数()。因此相比动态卷积的,DCD中的参数可以显着减少。动态通道融合还减轻了普通动态卷积的联合优化的挑战,因为的每列与的多个动态系数相关。

 

  3. 方法

 

3.1. Revisiting Vanlla Dynamic Convolution

 

本质上,动态卷积将通道的数量扩大了K倍,并将动态注意力应用于通道组。动态残差是一个的矩阵,也可以看做是KC个rank-1矩阵的求和结果:

 

由于基础的向量在不同的rank-1矩阵中不共享,所以就会导致模型的冗余。另外,联合优化静态矩阵和动态注意力也是有挑战性的,因为小的注意力分数会抑制的学习。

 

3.2. Dynamic Channel Fusion

 

作者使用了动态通道融合机制来解决普通动态卷积的局限性,该机制使用全矩阵来实现。的每个元素都是关于输入的函数。是一个的矩阵,用于动态融合潜在空间中的通道。其关键思想是显着降低潜在空间的维数,以实现更紧凑的模型,即。动态通道融合实现如下:

 

其中,分别用于降维和升维,用于聚合通道的信息。其中,潜在空间的维度L被限制为

 

在实验中,L的默认设置为。通过这种方式,动态卷积的参数就能显着减少。

 

此外,DCD还减轻了联合优化的困难。由于P,Q的每一列都与多个动态系数相关,因此P、Q的学习不太可能被几个较小值的动态系数所抑制。

 

3.3. More General Formulation

 

上面的描述证明了动态通道融合能够实现紧凑的动态卷积。接下来讨论静态卷积核,它由和一个动态的注意力标量相乘后得到。如果限制,可以得到:

 

其中是一个的对角矩阵,对角线上的参数都是基于输入得到的。通过这种方式,在静态卷积核之后实现了通道注意力。

 

由实现的动态通道注意机制与SE有关,但由与SE不同。与卷积并行,且与卷积共享输入,可以被看做是一个动态卷积核或是在输出特征上应用基于输入的注意力机制。

 

因此,其计算复杂度为。而SE被放在卷积之后,并使用卷积的输出作为输入,因此它只能在卷积的输出特征映射上应用通道注意力,即,其中,因此SE的计算复杂度为。显然,当特征图的分辨率较高时,SE比动态通道注意力需要更多的计算。

 

3.4. Dynamic Convolution Decomposion Layer

 

Implementation

 

 

上图显示了动态卷积分解(DCD)层的示意图,它使用一个轻量级动态分支来生成动态通道注意力和动态信道融合的系数。与SE相似,动态分支首先将平均池化应用于输入,然后使用两个FC层,它们之间有一个激活层。第一个FC层用于减少通道数量,第二个FC层用于将通道扩展为,然后使用3.3节的公式生成最终的卷积权重。

 

Parameter Complexity

 

DCD具有与普通动态卷积相似的FLOPs,因此作者在文中只比较了两者的参数量。静态卷积和一般动态卷积分别需要和的参数。在DCD中,矩阵分别分别需要的参数,生成和需要的参数,因此DCD的总参数为。由于

 

因此DCD的参数上限为。当时,DCD的参数量上限为,这比动态卷积的参数要少很多。

 

  4.实验

 

4.1. Inspecting Defferent DCD Formulations

 

 

上表展示了ImageNet分类任务中,动态卷积分解的不同公式的参数量、计算量和性能对比。

 

4.2. Ablation

 

Latent Space Dimension

 

 

上表展示了不同潜在空间维度的实验结果。可以看出的维度越高,模型的准确率也是更高的,但是也会带来更高的计算量和参数。不过可以看出,和baseline相比,作者提出的DCD能够显着提高模型性能。

 

Number of Diagonal Blocks the Dynamic Residual

 

 

上表展示了动态残差中对角块的数量对结果的影响,可以看出随着动态残差变得稀疏(增加),精度会缓慢降低。此外,不论为多少,加入动态通道注意力都可以达到更高的精度。

 

DCD at Different Layers

 

 

上表展示了在不同层上实现DCD的实验结果,DW、PW和CLS分别表示depthwise convolution、pointwise convolution和classifier。

 

4.3. Main Results

 

 

上表展示了在MobileNetV2和ResNet上实现DCD的实验结果,可以看出,相比于baseline,DCD可以在很少的参数增加下,实现更好的性能。相比于动态卷积,DCD可以在更少的参数量下,实现更好的性能。

 

 

上表展示了本文的DCD和动态卷积训练过程中的准确率变化,可以看出DCD更易于学习,并且能够达到更高的精度。

 

  5. 总结

 

在本文中,作者通过矩阵分解重新讨论并建模了动态卷积,并证明了动态注意力在通道组上应用的局限性: 它将静态卷积的参数数量扩大了K倍,增加了联合优化的难度 。为了解决这些问题,作者提出了 动态卷积分解(DCD) ,应用动态通道融合可以显着降低潜在空间的维数,从而产生更紧凑的模型。实验证明,该模型更易于学习,并且能够达到更高的精度。

 

▊  作者简介

 

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

 

知乎/ 公 众号: FightingCV

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。