swin transformer

本文深入解析Swin Transformer的架构特点,包括patch partition、linear embedding、multi-head self-attention等核心组件,并介绍了其如何通过窗口机制减少计算量,实现高效特征提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
可以看到swin的下采样是逐级进行的。
在这里插入图片描述
第一步进行patch partition,大致就是图片上面的样子。linear embedding对深度进行调整。这俩步其实都可以使用卷积层完成。右边可以看到swin transformer是由两部分组成的(msa是一个多头注意力机制模块),所以每个stage中的block的数量都是偶数。
在这里插入图片描述
stage234都有这个patch merging,作用是下采样,通道数翻倍。
在这里插入图片描述
就是之前的multi head模块。swin中使用了window,即在window之中使用multi head,而window之间是独立的,可以减小计算量。
在这里插入图片描述
普通的msa的windows之间独立。没有交流。sw-msa就是在msa的格子基础上向右、向下平移2个单位。这时计算最左边中间的区域就能同时处理到左图左上和左下2部分的信息。但是此时要计算9个window了,计算量增加很多,所以作者采样了右下角的方式(下图)。
在这里插入图片描述
在这里插入图片描述
移动位置后就变成了左图这样,然后又能得到4个4x4的window了,但此时如果要计算右上角的window的话,就会混淆5和3区域,所以想单独计算5的msa和3的msa。(方法见下图)
在这里插入图片描述
msa的计算需要计算每个像素的q,k,v,比如0这个位置的像素计算它的q,然后和所有其他区域的k点乘,就得到了右上方这些aij。但是上面说了计算区域5时不希望带入区域3的信息,然后右上方蓝框里的就是和区域3计算的部分,所以对每个蓝框减去100,然后求softmax,得到0,这样就能消除区域3的影响了。

相对位置偏移

在这里插入图片描述
上图公式里的B就是相对位置偏移。
在这里插入图片描述
左下角先标出绝对位置索引。右上角是相对位置索引,计算左上角的q与其他区域k的点乘时把左上角看成原点,然后用原点(0,0)减去对应区域的绝对位置的数值就能得到它的相对位置索引。然后把所有右上方的得到的相对位置索引在行方向上展平然后加在一起。
在这里插入图片描述
之后再处理一下。
在这里插入图片描述
再处理一下。
在这里插入图片描述
得到每个区域的一元矩阵了。
在这里插入图片描述
然后再根据每个区域的一元索引找到对应的bias,然后加到式子里面。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值