論文筆記:ViT Adapter——VISION TRANSFORMER ADAPTER FOR DENSE PREDICTIONS
綜述
論文題目:《VISION TRANSFORMER ADAPTER FOR DENSE PREDICTIONS》
會議時間:ICLR 2023
論文地址:https://openreview.net/pdf?id=plKu2GByCNW
源碼地址:https://github.com/czczup/ViT-Adapter
主要思想
??Transformer在計算機視覺領(lǐng)域取得了顯著的成功,主要得益于transformer的動態(tài)建模能力(dynamic modeling capability)和注意力機制中長距離依賴(long-range dependence)的建模能力,同時普通的ViT可以使用大量多模態(tài)數(shù)據(jù)進行預(yù)訓(xùn)練(包括圖像、文本和視頻等等),通過利用大量并且多維度的數(shù)據(jù)進行預(yù)訓(xùn)練,可以顯著提升模型學(xué)習(xí)豐富語義表示的能力。然而,普通的ViT在密集預(yù)測任務(wù)方面效果往往不是很理想,由于缺少圖像相關(guān)的先驗知識,因此會導(dǎo)致模型收斂慢,實際應(yīng)用性能比較低。在后面的研究中,推出了一些特定于視覺的transformer網(wǎng)絡(luò)(vision-specific,例如:Swin transformer、PVTv2),利用局部的空間操作來引入視覺特定的歸納偏置(vision-specific inductive biases),從而緩解transformer模型在視覺任務(wù)應(yīng)用中缺少圖像先驗知識的問題,但是這些模型由于是視覺特定的模型,因此只能在圖像數(shù)據(jù)上做預(yù)訓(xùn)練,無法在其他數(shù)據(jù)上做預(yù)訓(xùn)練,限制了數(shù)據(jù)源的格式。為了解決這一問題,本文受到NLP領(lǐng)域中adapters的啟發(fā),提出了一種視覺adapter結(jié)構(gòu),用于縮小密集預(yù)測任務(wù)中,普通ViT和視覺特定backbone之間的性能差異。
??對于視覺ViT adapter,他是一種可以附加在普通ViT的模塊,可以在不修改原始結(jié)構(gòu)的情況下有效地將普通的ViT適用于下游的密集型預(yù)測任務(wù),具體地來說,為了將視覺特定的歸納偏差引入到普通的ViT中,作者設(shè)計了三個模塊,包括:①Spatial Prior Module:用于從圖像中捕獲局部的空間語義特征;②Spatial Feature Injector:用于將空間先驗特征融入ViT特征中;③Multi-scale Feature Extractor:用于得到密集預(yù)測任務(wù)所需要的多尺度特征(將ViT特征融入空間先驗特征中)。
??如下圖所示,與之前的范式相比(在大規(guī)模數(shù)據(jù)集上預(yù)訓(xùn)練,然后在其他任務(wù)上做微調(diào)),作者提出的范式更加靈活。之前的框架由于backbone是視覺特定的網(wǎng)絡(luò),因此只能用圖像數(shù)據(jù)來做預(yù)訓(xùn)練;而在作者提出的框架中,backbone是一個通用的模型(例如普通的ViT),它不僅可以用圖像來做預(yù)訓(xùn)練,還可以利用多模態(tài)數(shù)據(jù)進行預(yù)訓(xùn)練,而對于密集預(yù)測任務(wù)的遷移學(xué)習(xí),只使用隨機初始化的adapter來將圖像相關(guān)的先驗知識(歸納偏差)引入預(yù)訓(xùn)練的主干網(wǎng)絡(luò)中,使模型可以適用于這些任務(wù),通過這種方式,在密集預(yù)測任務(wù)中,僅使用ViT作為骨干網(wǎng)絡(luò),利用作者的框架可以實現(xiàn)與Swin等視覺特定的ViT算法相當?shù)男阅堋?/p>
方法
??模型主要分為兩個部分,分別為普通的ViT網(wǎng)絡(luò)和所提的ViT-Adapter模塊,具體如下圖所示:
??對于ViT,首先將圖像輸入到patch embedding中,將圖像分割成 16 × 16 16\times16 16×16大小的不重疊patch,之后將這些特征投影成 d d d維的token,之后將這些token加上位置編碼。
??對于ViT-adapter,首先將輸入圖像傳入由CNN組成的空間先驗?zāi)K中,得到三種分辨率的 d d d維空間特征( 1 8 、 1 16 、 1 32 \frac18、\frac1{16}、\frac1{32} 81?、161?、321?),之后將這些特征沿空間方向拉直,并連接起來,作為特征交互的輸入。具體地來說,給定交互次數(shù) N N N(通常為4),我們將ViT的transformer編碼器平均分成N個block,每個block包括 L / N L/N L/N個transformer模塊,對于第 i i i個塊,首先通過空間注入器向其中注入空間先驗特征,之后通過多尺度特征提取器從塊的輸出中提取多尺度層次特征。經(jīng)過N次交互之后,得到高質(zhì)量的多尺度特征,之后對特征進行拆分和重構(gòu),得到目標分辨率為 1 8 、 1 16 、 1 32 \frac18、\frac1{16}、\frac1{32} 81?、161?、321?的特征。最后,利用 2 × 2 2\times2 2×2的轉(zhuǎn)置卷積對 1 8 \frac18 81?尺度的特征圖進行上采樣,構(gòu)建 1 4 \frac14 41?尺度的特征圖。通過這種方式,會獲得與ResNet相似分辨率的特征金字塔,可用于各種密集預(yù)測任務(wù)。
注:一共四種尺度特征,分別為 1 4 、 1 8 、 1 16 、 1 32 \frac14、\frac18、\frac1{16}、\frac1{32} 41?、81?、161?、321?。
空間先驗?zāi)K
??相比于transformer結(jié)構(gòu),卷積神經(jīng)網(wǎng)絡(luò)具有更強的局部建模能力,可以幫助transformer更好地捕獲局部的空間信息,受此啟發(fā),作者引入了由CNN構(gòu)成的空間先驗?zāi)K(SPM),和原ViT分支并行嵌入,可以對圖像的局部空間上下文進行建模。
??具體結(jié)構(gòu)下圖所示,參考resnet的標準卷積系統(tǒng),Stem由三個卷積層和一個最大池化組成(第一個卷積層步幅為2,其他為1),之后依次使用步幅為2的 3 × 3 3\times3 3×3卷積做下采樣操作(通道數(shù)增加,并且減小特征圖分辨率尺寸),將所得的特征傳入 1 × 1 1\times1 1×1的卷積,將特征圖的通道數(shù)均轉(zhuǎn)為 D D D(跟FPN里的目的一樣,得到同特征維數(shù)下的多尺度特征),最終會得到三種尺度的特征 F 1 , F 2 , F 3 F_1,F_2,F_3 F1?,F2?,F3?,分辨率均為原圖的 1 8 , 1 16 , 1 32 \frac18,\frac1{16},\frac1{32} 81?,161?,321?,之后將特征圖沿空間拉直,得到空間特征 F s p 1 ∈ R ( H W 8 2 + H W 1 6 2 + H W 3 2 2 ) × D F_{sp}^1\in R^{(\frac{HW}{8^2}+\frac{HW}{16^2}+\frac{HW}{32^2})\times D} Fsp1?∈R(82HW?+162HW?+322HW?)×D。
特征交互模塊
??特征交互模塊由兩個模塊構(gòu)成,主要用于ViT特征和空間特征之間的特征交互。
空間特征注入器
??該模塊用于將空間先驗特征注入到ViT特征中,將ViT特征
F
v
i
t
F_{vit}
Fvit?作為查詢query,空間特征
F
s
p
F_{sp}
Fsp?作為鍵值對key-value:
F
^
v
i
t
i
=
F
v
i
t
i
+
γ
i
A
t
t
e
n
t
i
o
n
(
n
o
r
m
(
F
v
i
t
i
)
,
n
o
r
m
(
F
s
p
i
)
)
\hat{F}^i_{vit}=F^i_{vit}+\gamma^iAttention(norm(F^i_{vit}),norm(F^i_{sp}))
F^viti?=Fviti?+γiAttention(norm(Fviti?),norm(Fspi?))
其中
n
o
r
m
norm
norm表示LayerNorm層,注意力運算最好使用線性復(fù)雜度的稀疏注意力(例如deformable attention),同時,這里應(yīng)用一個可學(xué)習(xí)的向量
γ
\gamma
γ??來平衡注意力層的輸出和輸入特征,并且初始化為0,這種初始化策略保證了vit的特征分布不會因為空間先驗的注入而發(fā)生劇烈的改變,從而可以更好地利用vit的預(yù)訓(xùn)練權(quán)重。
??這一操作本質(zhì)上是用ViT特征查詢空間特征中對自身有用的特征,相當于將具有局部空間信息的特征融入ViT特征中,做不同領(lǐng)域特征之間的融合。
多尺度特征提取器
??在向ViT注入空間特征之后,將所得的
F
^
v
i
t
i
\hat{F}^i_{vit}
F^viti?傳入第
i
i
i個transformer編碼block,得到
F
v
i
t
i
+
1
F^{i+1}_{vit}
Fviti+1?,之后使用交叉注意力和前饋神經(jīng)網(wǎng)絡(luò)提取多尺度特征,將空間特征
F
s
p
i
F^i_{sp}
Fspi?作為查詢query,ViT特征
F
v
i
t
i
+
1
F^{i+1}_{vit}
Fviti+1?作為鍵值對key-value
F
^
s
p
i
=
F
s
p
i
+
A
t
t
e
n
t
i
o
n
(
n
o
r
m
(
F
s
p
i
)
,
n
o
r
m
(
F
v
i
t
i
+
1
)
)
F
s
p
i
+
1
=
F
^
s
p
i
+
F
F
N
(
n
o
r
m
(
F
^
s
p
i
)
)
\hat{F}^i_{sp}=F^i_{sp}+Attention(norm(F^i_{sp}),norm(F_{vit}^{i+1}))\\ F^{i+1}_{sp}=\hat{F}^i_{sp}+FFN(norm(\hat{F}^i_{sp}))
F^spi?=Fspi?+Attention(norm(Fspi?),norm(Fviti+1?))Fspi+1?=F^spi?+FFN(norm(F^spi?))
這里同樣最好使用線性復(fù)雜度的稀疏注意力,將所得的空間特征
F
s
p
i
+
1
F^{i+1}_{sp}
Fspi+1??作為下一個空間特征注入器SFI的輸入。
??這一操作本質(zhì)上是用多尺度的空間特征查詢ViT特征中對自身有用的特征,相當于將語義豐富的ViT特征融入多尺度空間特征中,讓每個空間特征都具有豐富的語義信息,最終所得的特征既有多尺度表征的能力也有初始ViT豐富語義特征的優(yōu)勢。
模型規(guī)格
實驗部分
同一框架下(Mask R-CNN)不同Backbone的比較
任務(wù):目標檢測和實例分割
不同框架下的比較
任務(wù):目標檢測
語義分割
總結(jié)
??本工作主要針對普通ViT缺少視覺特定的歸納偏置問題做改進,設(shè)計了ViT-Adapter模塊,利用交叉注意力,充分將CNN中局部空間建模的能力融入到ViT模型中,在保持原有ViT架構(gòu)不變,即ViT語義特征不減弱的情況下,靈活地將圖像相關(guān)的歸納偏置注入到ViT模型中,重構(gòu)密集預(yù)測任務(wù)所需要的細粒度多尺度特征,最終實現(xiàn)下游任務(wù)良好的應(yīng)用。文章來源:http://www.zghlxwxcb.cn/news/detail-852439.html
以上僅是筆者個人見解,若有問題,歡迎指正文章來源地址http://www.zghlxwxcb.cn/news/detail-852439.html
到了這里,關(guān)于論文筆記:ViT Adapter——Transformer與CNN特征融合,屠榜語義分割!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!