您现在的位置是:首页 >技术教程 >在Transformer模块上用CNN网络搭建方式解决图像分类问题网站首页技术教程

在Transformer模块上用CNN网络搭建方式解决图像分类问题

深度之眼 2023-07-12 20:00:04
简介在Transformer模块上用CNN网络搭建方式解决图像分类问题

来源:投稿 作者:摩卡
编辑:学姐

论文标题:DeepViT: Towards Deeper Vision Transformer

Motivation

本文受到传统CNN网络搭建方式的启发(深层的CNN网络可以学习到关于图像更加丰富和复杂的表示), 于是思考是否可以将这种搭建方式迁移到Transformer模块上, 以此搭建深度的Transformer网络结构处理图像分类问题。

但是在搭建过程中发现了一个反常识的问题:

随着Transformer模块堆叠模型的深度变深,按照常理由于注意力模块数量变多模型的性能会相应的提高,但是试验结果表明在基线模型(ViT 2020年提出的纯Transformer模块搭建的图像分类模型)达到一定深度时(24层),模型效果达到最好,此后随着Transformer层数的增加分类效果会下降。

作者将这一现象称为attention collapse!

Analysis

为了研究清楚这一反常识现象,本文作者在基线模型的基础上进行研究,作者对每个Transformer模块与其相近的模块进行余弦相似度的计算(threshold=0.8),如果余弦相似度的值大于threshold,则将这两个相邻Transformer模块的attention map 视为相似。

其结果如下图所示:

图a表示不同层数的Transformer模块与其邻近的(k=1, 2, 3)三个模块之间的相似度。由图可以看出,随着模型的加深不同Transformer模块的attention map 与其相邻模块的attention map 相似度不断增加。

图b表示不同层数具有相似attention map的Transformer模块占总模块的比例。由图可知,在深度达到32层时,有16个模块具有相似的attention map。

图c表示的是第32层Transformer模块中每个head所捕获的attention map 的相似度(此处的threshold=0.5, 也为余弦相似度),由图可知即使在深度很深的32层Transformer模块中不同head所获取到的attention map 并不相同。

Method

在经过上述分析后,作者提出了两种解决方法:

(1)扩大hidden layer中神经元的个数。

(2)提出了一种re-attention的方法代替self-attention。

表1表示的是在基线模型上(ViT)12层上扩大hidden layer中神经个数。可以看到随着神经元个数的增加,在ImageNet Top-1Acc也会随之提高。不过该方法会增加计算资源的消耗。

Re-attention

此外在本文中作者还提出了一种解决方法:Re-attention方法。

公式如下:

在原有Transformer attention的基础上引入了一个可学习转换矩阵(自己定义的)(H为Transformer模块中多头注意力head的个数)。

其模型图如下:

为了验证这一改进有没有效果,作者可视化了改进之后的Feature map(attention map*V)

上图表明将self-attention换成re-attention机制后明显的缓解了attention collapse现象。

Result

最后与SOTA进行比较,结果如下表所示:

个人体会

个人觉得该论文的亮点主要分为两方面:

(1)对于Transformer模块的细致分析,从发现问题开始将发现的问题定义为attention collapse,然后一步一步对每一层Transformer模块中的attention map/feature map 进行分析,并且还分析了multi-head attention 每个头捕获到的特征(解决了上周的一个小疑问)。

(2)使用re-attention替换multi-head attention中的self-attention。此处的新颖之处是在改变self-attention 结构解决attention collapse问题时只定义了一个可学习参数、使用了LayerNorm, 并没有扩充Transformer占用的内存资源。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“500”获取更多经典高分论文

码字不易,欢迎大家点赞评论收藏!

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。