Swin Transformer從零詳細(xì)解讀

對(duì)我來(lái)說(shuō),需要介紹給別人的是:
1.swin transformer的相對(duì)位置編碼
2.窗口移動(dòng)注意力SW-MSA介紹
3.PATCH merging 介紹
-- ---------------------------------------------------
1.在transformer中的encode不會(huì)改變輸入與輸出的維度大小。在這里,N=6,那么是先后通過(guò)6個(gè)編碼器。通過(guò)第1層之后,不需要進(jìn)行相對(duì)位置編碼。
2.回顧vit模型,

可以分為5個(gè)步驟,分別是:
- 將圖像切成為patch
- 將patch轉(zhuǎn)換為embedding
- 將embedding和tokensembedding相加
- 送入到transformer模型中
- 完成分類任務(wù)
------------------------------------------------------

swin transformer做到了兩點(diǎn):
1.金字塔結(jié)構(gòu):參考FPN的例子,感受野是不斷的變大的
2.注意力機(jī)制是放在一個(gè)窗口內(nèi)部中

如何解決隨著像素增加,復(fù)雜度o(pix^2)增加的問(wèn)題:
1.局部注意力 2,改進(jìn)attention公式
在swin中,1.采用的是金字塔形狀,這可以讓感受野不斷變大 2.注意力機(jī)制放在窗口里

patch merging完成的是下采樣的工作,將圖片的分辨率從(224/4)*(224/4)變?yōu)椋?24/8)*(228/8),這一步驟的目的是為了增加感受野。

筆記總結(jié):
1.1 patch merging: 將圖像的通道數(shù)變?yōu)樵瓉?lái)2倍,把圖像的寬度和高度縮小為原來(lái)2倍

實(shí)現(xiàn)的階段:
第一個(gè)框框?qū)崿F(xiàn)的是:
解決的是后續(xù)輸入的問(wèn)題,把圖像按照patch進(jìn)行劃分,再展平。
第二框框:
1.相對(duì)位置編碼
2.移動(dòng)窗口注意力機(jī)制
3.patch融合是怎么實(shí)現(xiàn)的
------------------------------------------------------
swin的相對(duì)位置編碼信息是放在了attention的矩陣中,不像transformer或是vit transformer是放在一開(kāi)始。transformer與vit是絕對(duì)位置信息,而swin是相對(duì)位置信息
--------------------------------------

這里是絕對(duì)位置編碼,如圖中所示,當(dāng)原點(diǎn)固定時(shí),坐標(biāo)位置也是固定住。

4個(gè)相對(duì)位置信息如何融入到attention矩陣中去,在swin-transformer中


(x,y)->(x+1,y+1) -> ((2m-1)*(x+1),y+1)
-> (2m-1)x+2m-1+y+1=(2m-1)x+2m+y