Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

机器之心编辑部机器之心报道

首次统一卷积与自注意力,上海交大、华为海思提出X-volution,发力网络核心基础架构创新

卷积和自注意力各有优势,但二者的有效结合一直是一大难题。为了取二者之长,上海交大 - 华为海思联合团队提出了一种名为 X-volution 的新型算子。该算子在性能上的显著提升、计算的通用性与即插即用的特性为深度学习基础计算单元库以及 NPU 计算架构的演进提供了一种新的基础武器。

众所周知,卷积操作(convolution)与自注意力操作(self-attention)是深度学习两大核心的基础网络计算单元(或称为模型算子)。卷积操作通过线性乘子,提取图像局部特征;自注意力操作通过高阶乘子运算,提取图像全域 / 局部的特征关联特性。两种算子成为深度学习两大重要网络架构演化——CNN 与 Transformer 的计算基石。两种算子在图像特征提取与语义抽象方面的互补性不言而喻:线性 vs. 高阶, 局部 vs. 全局。因此,能否设计一种包含这两种操作的融合算子并使其发挥互补优势,一直是深度学习架构研究者热衷的研究方向之一。

然而,由于卷积运算与自注意力运算在计算模式上的异构性,这项任务存在巨大的挑战。目前学界中的一些工作也在努力统一两者,他们主要从拓扑结构组合角度来粗粒度地结合两种算子,例如,发表在 ICCV 2019 上的 AA-Net 采用了一种将卷积中部分通道替换为由 self-attention 来处理,然后将卷积和 self-attention 分别处理的特征连接来达到联合两种算子的目的,这种做法证明了卷积和 self-attention 结合后确实能在分类、检测、分割等基础任务上达到比较可观的性能收益。

然而,粗粒度的组合(本质上就是两路计算并联)会导致其组合后网络形态可用性下降。具体来说,卷积和 self-attention 运算模式存在较大差异,两者同时存在会导致网络结构不规则,进而影响网络推理效率,并不为目前一些工业界通用的芯片计算架构所友好支持。同时组合后的算子在算力上也存在巨大的挑战。

论文链接:https://arxiv.org/pdf/2106.02253.pdf

针对这些挑战,日前,上海交大 - 华为海思联合团队在 arXiv 上发表了「X-volution: On the Unification of Convolution and Self-attention」,首次在计算模式上统一了这两大基础算子,并在推理阶段归并成一个简单的卷积型算子:X-volution。

X-volution 兼顾卷积与自注意力操作的互补优势,并且在现有通用网络计算框架上不需要额外算子支持,也不增加除卷积外的额外算力或影响网络的规范性 / 可用性(即插即用)。

该工作的突破主要受以下思路的启发:对全局的 self-attention 进行理论分析后,研究者发现在一定条件下(例如图像 / 特征图的邻接像素满足马尔可夫性质),全局的 self-attention 可以通过局部的 self-attention 配合卷积运算来逼近。

具体来说,本文作者提出了一种新型的 self-attention 机制——PSSA。这种机制分为两个步骤:首先将输入的特征沿指定的多个方向进行循环移位(采用索引来实现)得到移位后的特征,然后将移位后的特征与原特征通过元素点积获得变换后的特征,再对该特征在局部区域进行加权求和(可采用卷积来替代),至此获得经过注意力机制处理后的特征。通过层次堆叠,可以持续地将局部的上下文关系传播到全局从而实现全局的 self-attention。

值得注意的是,PSSA 实际上将 self-attention 巧妙地转化为了一个在简单变换后的特征上的标准的卷积操作,这从形式上实现了 self-attention 向卷积的统一。利用此逼近式的 self-attention 机制,作者建立了一个多分枝的模块将卷积和 self-attention 整合在一起,这个模块从功能上实现了两者的统一。

更重要的是,这个多分枝的结构可以利用结构重参数化的方法进行有条件的合并。多分枝结构可以合并为单个卷积,合并后可以获得一个原子级的算子,称为 X-volution(X-volution 的权重可以看作一个静态卷积权重,以及一个内容相关动态卷积权重的和)。此算子同时具备了卷积和 self-attention 的特性,且不会影响网络的规范性 / 可用性。

作者在分类、检测、分割等主流 SOTA 实验上取得了显著的性能提升。

图 1,算子详细结构框图。受结构重参数化思想启发,X-volution 被设计为训练和推理阶段结构解耦的形式。它的训练结构时有两个主要分支(如中间所示),右分支由级联的卷积和 BN 构成,可为 X-volution 集成卷积的能力。左边包括 PSSA,它提供近似的全局自注意力特性。完成训练后,X-volution 可以有条件地重新参数化为一个卷积操作。在推理阶段,X-volution 实际上是一个动态卷积算子,它的权重包括需要在线计算的 attention 动态参数部分和已经训练和固化的卷积静态参数部分。

实验部分

作者将 X-volution 接入到经典的 ResNet 模型中用于 ImageNet 分类、MS COCO 物体检测、实例分割等关键基础任务并都取得了不俗的提升。为了排除其他因素干扰,实验中作者所使用的 self-attention 和 PSSA 都没有添加位置编码,并且没有对数据集进行额外的增广,没有使用额外的训练技巧(如:余弦退火、标签平滑等)。

ImageNet 分类实验

对于 ImageNet 图片分类实验,作者分别测试了在 ResNet 中三个不同位置接入 X-volution 的结果。将 X-volution 接入到常规的 ResNet 第五阶段瓶颈单元的结果如表 1 所示:在 ResNet-34 与 ResNet-50 中均提升不明显,这是因为在此阶段的特征图尺寸已经接近卷积核大小。实验发现在第三阶段效果最为突出,分别取得了 1.2% 与 0.9% 的显著提升。值得注意的是,作者对于 ResNet 改动较小,但是性能却依然能有大幅度的提升,这证实了文中所提出的 X-volution 算子具有良好的性能。

表 1. ImageNet 实验结果及瓶颈单元详细结构

MS COCO 物体检测及实例分割实验

作者进一步在更复杂的目标检测实例分割上验证所提出的算子的有效性。他们的实验模型是用 X-volution 增强的 ResNet-50,具体是替换了 ResNet-50 最后一个阶段的三个瓶颈单元。为了充分的对比,作者展示了两种形态的 X-volution,如表 2 和表 3 所示:X-volution(SA) 表示的是卷积与 global self-attention 结合,这种形态是为了验证 X-volution 采用的卷积和 self-attention 结合模式的可行性;X-volution 则表示卷积和 PSSA 直接结合的形式,其为了检验所提出的 PSSA 的可行性。

表 2:MS COCO 物体检测实验结果

表 3:MS COCO 实例分割实验结果

从表 2 与表 3 可以看出,两种 X-volution 模式都获得了大幅度的性能提升。其中,X-volution(SA) 更为明显,这说明卷积和 self-attention 的互补对性能提升具有重大意义。而采用 PSSA 的 X-volution 性能也非常不俗,基本与 self-attention 性能相当,这也验证了采用 PSSA 逼近 self-attention 是有效且合理的。

消融实验

最后,作者详细研究了卷积部分和 self-attention 部分对于算子性能的影响。他们改变卷积部分的滤波核的尺寸大小,其性能变化结果如图 2(a)。可以看到当卷积核设置为 1 时候,单纯的卷积算子性能退化非常严重,而此时的 X-volution 依然能取得 39.1 的平均准确率。当卷积核逐步增大后,纯卷积的网络性能先升后降,而对应的 X-volution 算子也呈同样趋势,但一直保持着对于单纯卷积的性能优势。其中,当卷积核为 7 时候性能最好。从这个结果可以得知,卷积在两者间起到了较大的作用,这一点也与 AA-Net 结论相同。由于学习参数较多,卷积的作用也比较突出。

图 2,(a) 研究不同卷积核对于性能的影响;(b) 不同形态算子的优化性能比较。

在图 2(b) 中,研究者展示了卷积、PSSA 和 X-volution 三种算子在 MS COCO 目标检测上的收敛曲线。可以看到,卷积在最开始时性能优于 X-volution 和 PSSA;而经过 3 个周期训练后,X-volution 开始超越卷积,但是作为self-attention的逼近形式,PSSA在前9个周期收敛性能稍弱于卷积。其后,X-volution 一直保持显著的领先。PSSA 则在 10 个周期后与卷积相当或略好于卷积。这组曲线证实了卷积的局部归纳偏置对于其训练是有明显的帮助,而低偏置的 self-attention 则收敛显著慢于卷积,但经过较长时间训练后可以超越卷积。将两者整合的 X-volution 则兼备了卷积和 self-attention 的特性,同时展现了优秀的优化特性和良好的性能。

总结

作者在文中提出了一种新型的算子——X-volution,整合了卷积和 self-attention 的互补特性。同时,他们从 self-attention 的公式中导出了一种巧妙的全局自注意力的逼近形式——PSSA。作者通过在分类、目标检测实例分割等任务中的优秀表现证实了所提出的算子的有效性。实验也揭露了卷积与 self-attention 的配合确实能较为显著地提升性能,并且两者达到了实质上的特性互补。该新型算子在性能上的显著提升、计算的通用性与即插即用性方面的巨大优势,为深度学习基础计算单元库,以及 NPU 计算架构的演进提供了一种新的基础武器。

注:该论文作者是上海交通大学海思实习生陈炫宏和王航,由计算机视觉知名专家倪冰冰教授指导。
理论卷积型算子华为海思上海交大
1
相关数据
华为机构

华为创立于1987年,是全球领先的ICT(信息与通信)基础设施和智能终端提供商,我们致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界:让无处不在的联接,成为人人平等的权利;为世界提供最强算力,让云无处不在,让智能无所不及;所有的行业和组织,因强大的数字平台而变得敏捷、高效、生机勃勃;通过AI重新定义体验,让消费者在家居、办公、出行等全场景获得极致的个性化体验。目前华为约有19.4万员工,业务遍及170多个国家和地区,服务30多亿人口。

https://www.huawei.com/cn/
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

马尔可夫性质技术

马尔可夫性质(Markov property)是概率论中的一个概念,因俄国数学家安德烈·马尔可夫得名。其含义是,当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。马尔可夫假设(Markov assumption)则是用来假设描述一个模型具有马尔可夫性质,比如隐马尔可夫模型。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

实例分割技术

实例分割是检测和描绘出现在图像中的每个不同目标物体的任务。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

推荐文章
暂无评论
暂无评论~