互联网技术 / 互联网资讯 · 2023年12月18日

Transformer:超越CNN,解决计算复杂度难题

谈到TRansfoRMeR,你可能会想到一众NLP模型。

但现在,TRansfoRMeR其实还能替CNN把活给干了,并且干得还不赖。

比如微软亚研院最新提出的Swin TRansfoRMeR,就在COCO数据集的分割检测任务上来了个跨领域超车,一举达到SOTA。

Transformer跨界超越CNN,还解决了计算复杂度难题

关注NLP的盆友想必就会问,用TRansfoRMeR做CV任务,这个想法早已有之,也没见对CNN的地位有什么动摇,Swin TRansfoRMeR又有何不同?

这就涉及到TRansfoRMeR的CV应用存在的两个主要问题:

首先,基于TRansfoRMeR的模型,Token的长度是固定的。这对于NLP里的单词当然没有什么问题,但到了CV领域,视觉元素的比例各异,比如同一个场景中会存在大小不同的物体。 其次,图像中的像素与文本中的文字相比,对分辨率的要求更高。而常规的自注意力的计算复杂度,是图像大小的平方,这就导致其在像素级别进行密集预测时会出现问题。

而Swin TRansfoRMeR,就旨在解决这些NLP和CV之间差异带来的问题。

通过移动窗口计算的分层TRansfoRMeR Transformer跨界超越CNN,还解决了计算复杂度难题

Swin TRansfoRMeR的诀窍,核心是两板斧:

基于分层特征图,利用特征金字塔网络(FPN)或U-Net等技术进行密集预测 将自注意力计算限制在不重叠的局部窗口中,同时允许跨窗口连接,从而带来更高的效率。 Transformer跨界超越CNN,还解决了计算复杂度难题

这第二板斧,也就是基于移动窗口的自注意力:

如上图所示,在l层,采用常规的窗口分区方案,在每个窗口内计算自注意力。

在下一层l+1,窗口分区会被移动,产生新的窗口。新窗口中的自注意力计算跨越了l层中窗口的边界,提供了新的关联信息。

Transformer跨界超越CNN,还解决了计算复杂度难题

具体而言,Swin TRansfoRMeR的整体架构是酱婶的:

将RGB图像分割成不重叠的图像块(Token); 应用MLP(多层感知机)将原始特征转化为任意维度; 应用多个修改了自注意力计算的Swin TRansfoRMeR块,并保持Token的数量; 下采样层:通过合并2&tiMes;2窗口中的相邻图像块来减少Token的数量,并将特征深度增加一倍。 实验结果

研究人员让Swin TRansfoRMeR分别挑战了imageNet-1K、COCO和ADE20K上的图像分类、对象检测和语义分割任务。

其中,用于预训练的是imageNet-22K数据集,imageNet-1K数据集则用于微调。

结果显示,在COCO的分割和检测任务,以及ADE20K的语义分割任务上,Swin TRansfoRMeR都超越了CNN,达到了SOTA。

而在imageNet-1K的分类任务上,虽然没能超越EFFicientNet,但效果相当且速度更快。

Transformer跨界超越CNN,还解决了计算复杂度难题

论文笔记就分享到这里,如果想要了解更多细节,请戳文末传送门。

也期待你的读后感分享哟~

论文地址:
https://aRxiv.oRg/abs/2103.14030

开源地址:
https://Github.coM/MicRosoft/Swin-TRansfoRMeR

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册