SwinTransformer-学习记录

SwinTransformer是为解决Transformer在视觉任务中的效率和尺度问题提出的,通过局部窗口内的自注意力计算和移位窗口策略,实现计算效率的提升和不同尺度的建模。该模型包含分层结构和W-MSA、SW-MSA模块,允许信息在窗口间传递,适合处理图像中的全局和局部关系。
摘要由CSDN通过智能技术生成

引入:本次学习内容基本来自于Ze Liu,Yutong Lin等编写的的《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》,以及部分讲解视频,本学习记录仅为个人学习收获,部分内容存在纰漏烦请各位大佬批评指正。
(一)摘要:Swin Transformer是一种基于移位窗口的分层视觉Transformer架构。它通过将输入图像划分为不重叠的补丁,并在局部窗口内进行自注意力计算,实现了高效的模型建模。这种架构在处理图像分类等任务时表现出色。Swin Transformer利用自注意力机制捕捉图像中的全局和局部关系,提供了更好的可扩展性和计算效率。通过使用移位窗口和分层策略,Swin Transformer在保持较低的计算复杂度的同时,仍能获得优秀的性能。

(二)发表时间:2021

(三)关键词:Swin Transformer, Hierarchical, Vision Transformer, Shifted Windows, self-attention, image classification.

(四)学习笔记:

SwinTransformer论文中提到,Transformer在NLP领域表现很好,那哥们我如果把他放视觉领域会如何了,但是这件事VIT已经做了,并且在使用过程中发现,如果遇到视觉实体尺寸较大的变化,例如一张图中的人类如果与车在远景情况下大小一致,那么久就不好分辨了。还有就是如果以像素点为基本单位的话,序列长度就太大了。为了解决这个问题,作者提出了一种新的transformer模型,通过shifter window来完成计算,这个方案通过将自注意力计算限制在非重叠的局部窗口内,提高了效率,同时还允许窗口间的连接。这种层次化架构具有在不同尺度上建模的灵活性,并且对图像大小具有线性计算复杂度。

为了解决上述的两个问题,一种新的网络结构被提出来了,即SwinTransformer。

我们可以很清晰的看到,整个的网络结构有四个阶段,首先是进入一个H×W的三通道图像,经过第一个模块进行分块操作,即每4×4个像素作为一个patch,因此一个图像的的整体patch就是4×4×3(RGB)=48.接下操作就是linear embedding层,在论文中的解释是通过这个层,可以将特征值投影到不同的维度之中。说白了就是把向量的维度设定为transformer能接受的值,在文中定义为C。然后就是四个阶段操作了,整体上看四个阶段的差异并不算是很大,但是第一个阶段先通过了linear embedding层,其他三个阶段都是先通过patch merging层。

patch merging层的主要作用就是完成下采样工作,目的就是一定程序上减少点参数量。具体内容就是先将特征图划根据颜色分为更小的特征图,再进行拼接,最后通过一个linearnorm层,做线性变化,这样就减少了深度,长宽一定程度上也减少了。

我们可以看到,在SwinTransformer block中存在两个新的模块,即W-MSA,SW-MSA。实际上这两个技术也就是论文的重要创新点。

W-MSA是指代的Windows Multi-head Self-Attention。这个模块的主要作用就是减少计算量。在以前的多头注意力机制中,如果存在一个4×4的特征图,就会对全图每个像素进行注意力机制计算,但W-MSA采用了一个窗口,将4×4的图像可以划分成四个2×2的图像,且只对窗口内部进行注意力机制计算。

而SW-MSA则是Shifted Windows Multi-Head Self-Attention的代称。和W-MSA相比,它的作用就是使窗口与窗口之间产生联系,进行信息传递。具体操作就是如果原来的窗口是从图像的左上方向开始向右进行滑动,那么它就是直接进行斜方向的滑动,具体就是从左上角,向着右下角的方向进行滑动,这样可以在图像的中部位置得到一个窗口。

左方的图就是W-MSA操作后的图,右方的图则是SW-MSA。可以明显的看出,SW-MSA的窗口都是由前面的四个窗口的部分组成的,一定程度上完成了信息的交流工作。

最后为了把它(右则9个块的图)回归到4×4的图像,作者就采用了将左边一列,上方一排的窗口,直接移动到右下方的方法,最后通过堆叠,完成了重组。

而关于相对位置偏执,讲的不是很清晰,就说了效果不错。我也不是很明白,具体可以参考博主“太阳花的小绿豆”的讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值