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

整個(gè)視頻四部分

回顧TRM模型

TRM的encoder并不改變輸入和輸出的形狀,無論vit還是swin都一樣
左邊是encoder細(xì)節(jié)結(jié)構(gòu),抽象為右邊灰色的框框

回顧vit模型

swin相對(duì)于vit的創(chuàng)新

如何把圖像變成一個(gè)個(gè)token

問題:復(fù)雜度太大

vit問題

swin vs vit
vit:把一張圖片分為若干patch(共9個(gè)),每個(gè)patch作為一個(gè)token輸入encoder
swin:把一張大圖片分為一個(gè)個(gè)window(共9個(gè)),window里每一個(gè)像素點(diǎn)作為一個(gè)token輸入encoder

swintrm整體架構(gòu)圖

看一篇論文最好方法:搞清楚每一個(gè)零部件輸入和輸出的數(shù)據(jù)的形狀和變化
整體形狀變化

源代碼實(shí)現(xiàn)的時(shí)候和原架構(gòu)圖不同

patch partition

第二個(gè)紅色框里的重點(diǎn)內(nèi)容:
1、相對(duì)位置編碼如何實(shí)現(xiàn)?
2、移動(dòng)窗口注意力機(jī)制如何實(shí)現(xiàn)?
3、patch融合如何實(shí)現(xiàn)?
相對(duì)位置編碼的實(shí)現(xiàn)
1、TRM中的位置編碼:在輸入部分+位置編碼(正余弦函數(shù),不可以學(xué)習(xí))
2、vit模型中劃分為一個(gè)個(gè)patch后沒有使用正余弦函數(shù),而是初始化一個(gè)個(gè)索引,根據(jù)索引得到參數(shù)

3、swinTRM

swinTRM相對(duì)位置信息加在哪里

B的形狀是什么
一個(gè)例子



什么是絕對(duì)位置信息

什么是相對(duì)位置信息

網(wǎng)格的絕對(duì)位置和相對(duì)位置
1種絕對(duì)位置信息

4種相對(duì)位置信息

怎么把4種相對(duì)位置信息加入attention矩陣




position embedding
原始的窗口注意力機(jī)制

存在問題

移動(dòng)窗口注意力

移動(dòng)前

移動(dòng)后


當(dāng)窗口滑動(dòng)到最右端出現(xiàn)同一窗口不相鄰的情況,右下端出現(xiàn)4、5、7、8不相鄰
mask符號(hào)

矩陣的信息:0元素代表同一窗口,非0元素代表本不相鄰被框到一起

把非0元素置位-100或負(fù)無窮,得到mask矩陣


單頭

多頭

窗口注意力機(jī)制

patch merging降采樣
