【寫在前面】
蒙面圖像建模 (MIM) 通過恢復(fù)損壞的圖像patch,在自監(jiān)督表示學(xué)習(xí)中展示了令人印象深刻的結(jié)果。然而,大多數(shù)方法仍然對(duì)低級(jí)圖像像素進(jìn)行操作,這阻礙了對(duì)表示模型的高級(jí)語義的利用。在這項(xiàng)研究中,作者提出使用語義豐富的視覺標(biāo)記器作為掩碼預(yù)測(cè)的重建目標(biāo),為將 MIM 從像素級(jí)提升到語義級(jí)提供了一種系統(tǒng)的方法。具體來說,作者引入向量量化知識(shí)蒸餾來訓(xùn)練tokenizer,它將連續(xù)的語義空間離散化為緊湊的代碼。然后,通過預(yù)測(cè)mask圖像塊的原始視覺token來預(yù)訓(xùn)練視覺Transformer。此外,作者鼓勵(lì)模型將patch信息顯式聚合到全局圖像表示中,這有助于linear probing。圖像分類和語義分割的實(shí)驗(yàn)表明,本文的方法優(yōu)于所有比較的 MIM 方法。圖像分類和語義分割的實(shí)驗(yàn)表明,本文的方法優(yōu)于所有比較的 MIM 方法。在 ImageNet-1K(224 大?。┥希敬笮〉?BEIT V2 在微調(diào)時(shí)達(dá)到 85.5% 的 top-1 精度,在線性探測(cè)(linear probing)時(shí)達(dá)到 80.1% 的 top-1 精度。大尺寸 BEIT V2 在 ImageNet-1K(224 大?。┪⒄{(diào)上獲得 87.3% 的 top-1 準(zhǔn)確率,在 ADE20K 上獲得 56.7% 的 mIoU 用于語義分割。
1. 論文和代碼地址
BEIT V2: Masked Image Modeling with Vector-Quantized Visual Tokenizers
論文地址:https://arxiv.org/pdf/2208.06366.pdf
代碼地址:https://github.com/microsoft/unilm
2. 動(dòng)機(jī)
蒙面圖像建模 (Masked image modeling) 在學(xué)習(xí)視覺表示方面顯示出令人印象深刻的結(jié)果,這極大地緩解了視覺 Transformer 的注釋饑餓問題。給定一張圖像,這些方法通常首先通過屏蔽一些patch來破壞它。以開創(chuàng)性的工作 BEiT 為例,每張圖像在預(yù)訓(xùn)練期間都有兩個(gè)視圖,即圖像塊和視覺token。原始圖像首先被標(biāo)記為離散標(biāo)記。隨機(jī)采樣的圖像塊在被饋送到視覺Transformer之前被屏蔽。預(yù)訓(xùn)練的目標(biāo)是根據(jù)損壞的圖像塊恢復(fù)原始視覺token。在預(yù)訓(xùn)練視覺編碼器后,可以通過附加輕量級(jí)任務(wù)層直接在各種下游任務(wù)上微調(diào)模型。
在 mask-then-predict 框架下,與以往工作的主要區(qū)別在于重建目標(biāo),例如視覺token、原始像素和手工制作的 HOG 特征。然而,恢復(fù)低級(jí)監(jiān)督往往會(huì)浪費(fèi)建模能力來預(yù)訓(xùn)練高頻細(xì)節(jié)和短程依賴關(guān)系。例如,當(dāng)mask戴在男人頭上的“帽子”時(shí),我們更喜歡模型在給定整個(gè)上下文的情況下學(xué)習(xí)被掩蓋的“帽子”的高級(jí)概念,而不是在像素級(jí)細(xì)節(jié)上苦苦掙扎。相比之下,語言建模中的掩碼詞通常被認(rèn)為具有比像素更多的語義。這促使通過在預(yù)訓(xùn)練期間利用語義感知監(jiān)督來挖掘 MIM 的潛力。
在這項(xiàng)工作中,作者引入了一種自監(jiān)督的視覺表示模型 BEIT V2,旨在通過學(xué)習(xí)語義感知的視覺標(biāo)記器(tokenizer)來改進(jìn) BEIT 預(yù)訓(xùn)練。具體來說,作者提出了向量量化知識(shí)蒸餾(VQ-KD)算法來離散化語義空間。 VQ-KD 編碼器首先根據(jù)可學(xué)習(xí)的碼本將輸入圖像轉(zhuǎn)換為離散token。然后解碼器學(xué)習(xí)重建由教師模型編碼的語義特征,以離散token為條件。在訓(xùn)練 VQ-KD 后,其編碼器用作 BEIT 預(yù)訓(xùn)練的視覺標(biāo)記器,其中離散代碼用作監(jiān)督信號(hào)。
此外,作者提出通過明確鼓勵(lì) CLS token聚合所有patch來預(yù)訓(xùn)練全局圖像表示。該機(jī)制解決了mask圖像建模僅預(yù)訓(xùn)練patch級(jí)表示的問題。結(jié)果,在聚合全局表示的幫助下,線性探測(cè)的性能得到了提高。
作者在 ImageNet-1k 上對(duì)基本和大型視覺 Transformer 進(jìn)行自監(jiān)督學(xué)習(xí),并在多個(gè)下游任務(wù)上進(jìn)行評(píng)估,例如圖像分類、線性探測(cè)和語義分割。如上圖所示,BEIT V2 在 ImageNet 微調(diào)上大大優(yōu)于以前的自監(jiān)督學(xué)習(xí)算法,例如,在 ViT-B/16 和ViT-L/16。本文的方法在 ImageNet 線性探測(cè)上優(yōu)于所有比較的 MIM 方法,同時(shí)在 ADE20k 上實(shí)現(xiàn)語義分割的巨大性能提升。
本研究的貢獻(xiàn)總結(jié)如下:
-
作者引入向量量化知識(shí)蒸餾,將掩碼圖像建模從像素級(jí)提升到語義級(jí),以進(jìn)行自監(jiān)督表示學(xué)習(xí)。
-
作者提出了一種補(bǔ)丁聚合策略,該策略在給定補(bǔ)丁級(jí)掩碼圖像建模的情況下強(qiáng)制執(zhí)行全局表示。
-
作者對(duì)下游任務(wù)進(jìn)行了廣泛的實(shí)驗(yàn),例如 ImageNet 微調(diào)、線性探測(cè)和語義分割。實(shí)驗(yàn)結(jié)果表明,本文的方法顯著提高了模型大小、訓(xùn)練步驟和下游任務(wù)的性能。
3. 方法
BEIT V2 繼承了 BEIT的蒙版圖像建??蚣?。具體來說,給定輸入圖像,作者使用視覺tokenizer將圖像標(biāo)記為離散的視覺token。然后mask一部分圖像塊并將其輸入視覺Transformer。預(yù)訓(xùn)練任務(wù)是根據(jù)損壞的圖像恢復(fù)蒙面的視覺標(biāo)記。在3.2節(jié)中,將介紹向量量化知識(shí)蒸餾算法,并用它來訓(xùn)練視覺tokenizer。在第 3.3 節(jié)中,使用視覺tokenizer進(jìn)行 BEIT 預(yù)訓(xùn)練。此外,作者提出通過構(gòu)建架構(gòu)瓶頸來明確鼓勵(lì)模型預(yù)訓(xùn)練全局圖像表示。
3.1 圖像表示
作者使用視覺Transformer (ViTs) 作為主干網(wǎng)絡(luò)來獲得圖像表示。給定輸入圖像 x ∈ R H × W × C \boldsymbol{x} \in \mathbb{R}^{H \times W \times C} x∈RH×W×C,作者將圖像 x reshape為 N = H W / P 2 N=H W / P^{2} N=HW/P2個(gè)patch { x i p } i = 1 N \left\{\boldsymbol{x}_{i}^{p}\right\}_{i=1}^{N} {xip?}i=1N?,其中 x p ∈ R N × ( P 2 C ) \boldsymbol{x}^{p} \in \mathbb{R} ^{N \times\left(P^{2} C\right)} xp∈RN×(P2C)和 $ (P, P ) 是 p a t c h 大小。在實(shí)驗(yàn)中,作者將每個(gè) 224 × 224 的圖像分割成一個(gè) 14 × 14 的圖像塊網(wǎng)格,其中每個(gè)塊是 16 × 16 。然后圖像塊 是patch大小。在實(shí)驗(yàn)中,作者將每個(gè) 224 × 224 的圖像分割成一個(gè) 14 × 14 的圖像塊網(wǎng)格,其中每個(gè)塊是 16 × 16。然后圖像塊 是patch大小。在實(shí)驗(yàn)中,作者將每個(gè)224×224的圖像分割成一個(gè)14×14的圖像塊網(wǎng)格,其中每個(gè)塊是16×16。然后圖像塊\left{\boldsymbol{x}{i}{p}\right}_{i=1}{N} 被展平并線性投影到 T r a n s f o r m e r s 的輸入嵌入中。對(duì)于 N 個(gè)圖像塊,將編碼向量表示為 被展平并線性投影到 Transformers 的輸入嵌入中。對(duì)于 N 個(gè)圖像塊,將編碼向量表示為 被展平并線性投影到Transformers的輸入嵌入中。對(duì)于N個(gè)圖像塊,將編碼向量表示為\left{\boldsymbol{h}{i}\right}_{i=1}^{N}$。
3.2 訓(xùn)練Visual Tokenizer
視覺tokenizer將圖像映射到一系列離散標(biāo)記。具體來說,圖像 x 被標(biāo)記為 z = [ z 1 , ? ? , z N ] ∈ V ( H / P ) × ( W / P ) z=\left[z_{1}, \cdots, z_{N}\right] \in \mathcal{V}^{(H / P) \times(W / P)} z=[z1?,?,zN?]∈V(H/P)×(W/P),其中詞匯 V(即視覺碼本)包含 |V|個(gè)離散碼。請(qǐng)注意,token的數(shù)量與本文工作中圖像塊的數(shù)量相同。作者提出向量量化知識(shí)蒸餾(VQ-KD)來訓(xùn)練視覺標(biāo)記器。如上圖所示,VQ-KD 在訓(xùn)練過程中有兩個(gè)模塊,即視覺標(biāo)記器和解碼器。
標(biāo)記器由視覺Transformer編碼器和量化器組成。標(biāo)記器首先將輸入圖像編碼為向量。接下來,向量量化器在碼本中查找每個(gè)patch表示 h i h_{i} hi?的最近鄰。讓 { e 1 , ? ? , e ∣ ν ∣ } \left\{\boldsymbol{e}_{1}, \cdots, \boldsymbol{e}_{|\mathcal{\nu}|}\right\} {e1?,?,e∣ν∣?}表示碼本嵌入。對(duì)于第 i 個(gè)圖像塊,其量化代碼由下式獲得:
z i = arg ? min ? j ∥ ? 2 ( h i ) ? ? 2 ( e j ) ∥ 2 z_{i}=\underset{j}{\arg \min }\left\|\ell_{2}\left(\boldsymbol{h}_{i}\right)-\ell_{2}\left(\boldsymbol{e}_{j}\right)\right\|_{2} zi?=jargmin?∥?2?(hi?)??2?(ej?)∥2?
其中 ? 2 \ell_{2} ?2?歸一化用于碼本查找。上述距離相當(dāng)于根據(jù)余弦相似度找碼。
在將圖像量化為視覺標(biāo)記后,作者將l2-normalized codebook embeddings { ? 2 ( e z i ) } i = 1 N \left\{\ell_{2}\left(\boldsymbol{e}_{z_{i}}\right)\right\}_{i=1}^{N} {?2?(ezi??)}i=1N?提供給解碼器。解碼器也是一個(gè)多層 Transformer 網(wǎng)絡(luò)。輸出向量 { o i } i = 1 N \left\{\boldsymbol{o}_{i}\right\}_{i=1}^{N} {oi?}i=1N?旨在重建教師模型的語義特征,例如 DINO和 CLIP。讓 t i \boldsymbol{t}_{i} ti?表示第 i 個(gè)圖像塊的教師模型的特征向量。作者最大化解碼器輸出 o i o_{i} oi?和教師指導(dǎo) t i t_{i} ti? 之間的余弦相似度。
因?yàn)榱炕^程是不可微分的。如上圖所示,為了將梯度反向傳播到編碼器,梯度直接從解碼器輸入復(fù)制到編碼器輸出。直觀地說,量化器為每個(gè)編碼器輸出查找最近的代碼,因此碼本嵌入的梯度指示了編碼器的有用優(yōu)化方向。
VQ-KD的訓(xùn)練目標(biāo)是:
max ? ∑ x ∈ D ∑ i = 1 N cos ? ( o i , t i ) ? ∥ sg ? [ ? 2 ( h i ) ] ? ? 2 ( e z i ) ∥ 2 2 ? ∥ ? 2 ( h i ) ? sg ? [ ? 2 ( e z i ) ] ∥ 2 2 , \max \sum_{x \in \mathcal{D}} \sum_{i=1}^{N} \cos \left(\boldsymbol{o}_{i}, \boldsymbol{t}_{i}\right)-\left\|\operatorname{sg}\left[\ell_{2}\left(\boldsymbol{h}_{i}\right)\right]-\ell_{2}\left(\boldsymbol{e}_{z_{i}}\right)\right\|_{2}^{2}-\left\|\ell_{2}\left(\boldsymbol{h}_{i}\right)-\operatorname{sg}\left[\ell_{2}\left(\boldsymbol{e}_{z_{i}}\right)\right]\right\|_{2}^{2}, maxx∈D∑?i=1∑N?cos(oi?,ti?)?∥sg[?2?(hi?)]??2?(ezi??)∥22??∥?2?(hi?)?sg[?2?(ezi??)]∥22?,
其中 sg[·] 代表停止梯度算子,它在前向傳遞中是一個(gè)身份,而在后向傳遞期間具有零梯度,D 代表用于標(biāo)記器訓(xùn)練的圖像數(shù)據(jù)。
3.3 預(yù)訓(xùn)練 BEIT V2
作者遵循 BEIT中的掩蔽圖像建模 (MIM) 設(shè)置來預(yù)訓(xùn)練視覺 Transformer 以進(jìn)行圖像表示。給定輸入圖像 x,作者逐塊選擇大約 40% 的圖像塊進(jìn)行mask。將mask位置稱為 M,然后使用共享的可學(xué)習(xí)嵌入 e [ M ] e_{[M]} e[M]?替換原始圖像塊嵌入 e i p e_{i}^{p} eip?如果 i ∈ M i \in \mathcal{M} i∈M, x i M = δ ( i ∈ M ) ⊙ e [ M ] + ( 1 ? δ ( i ∈ M ) ) ⊙ x i p \boldsymbol{x}_{i}^{\mathcal{M}}=\delta(i \in\mathcal{M}) \odot \boldsymbol{e}_{[\mathrm{M}]}+(1-\delta(i \in \mathcal{M})) \odot \boldsymbol{x}_{i}^{p} xiM?=δ(i∈M)⊙e[M]?+(1?δ(i∈M))⊙xip?,其中 δ(·) 是指示函數(shù)。隨后,作者在輸入前添加一個(gè)可學(xué)習(xí)的 CLS token,即 [ e C L S , { x i M } i = 1 N ] \left[e_{\mathrm{CLS}},\left\{\boldsymbol{x}_{i}^{\mathcal{M}}\right\}_{i=1}^{N}\right] [eCLS?,{xiM?}i=1N?],并將它們提供給視覺 Transformer。最終的編碼向量表示為 { h i } i = 0 N \left\{\boldsymbol{h}_{i}\right\}_{i=0}^{N} {hi?}i=0N?,其中 h 0 h_{0} h0?表示 CLS token。
接下來,使用mask圖像建模頭根據(jù)損壞的圖像 x M x^{\mathcal{M}} xM預(yù)測(cè)mask位置的視覺token。對(duì)于每個(gè)掩碼位置 { h i : i ∈ M } i = 1 N \left\{\boldsymbol{h}_{i}: i \in \mathcal{M}\right\}_{i=1}^{N} {hi?:i∈M}i=1N?,softmax 分類器預(yù)測(cè)視覺標(biāo)記 p ( z ′ ∣ x M ) = softmax ? z ′ ( W c h i + b c ) p\left(z^{\prime} \mid x^{\mathcal{M}}\right)=\operatorname{softmax}_{z^{\prime}}\left(\boldsymbol{W}_{c} \boldsymbol{h}_{i}+\boldsymbol_{c}\right) p(z′∣xM)=softmaxz′?(Wc?hi?+bc?),其中 w x w^{x} wx是掩碼圖像, W c , b c \boldsymbol{W}_{c}, \boldsymbol_{c} Wc?,bc?是分類器權(quán)重。視覺標(biāo)記由第 3.2 節(jié)中訓(xùn)練的tokenizer獲得,該標(biāo)記器為mask圖像建模提供監(jiān)督。最后,MIM 的訓(xùn)練損失可以表示為:
L M I M = ? ∑ x ∈ D ∑ i ∈ M log ? p ( z i ∣ x M ) \mathcal{L}_{\mathrm{MIM}}=-\sum_{x \in \mathcal{D}} \sum_{i \in \mathcal{M}} \log p\left(z_{i} \mid x^{\mathcal{M}}\right) LMIM?=?x∈D∑?i∈M∑?logp(zi?∣xM)
其中 z i z_{i} zi?表示原始圖像的視覺標(biāo)記, D \mathcal{D} D表示預(yù)訓(xùn)練圖像。
預(yù)訓(xùn)練全局表示
作者顯式地預(yù)訓(xùn)練 CLS token以進(jìn)行全局表示。本文的目標(biāo)是減輕patch級(jí)預(yù)訓(xùn)練和圖像級(jí)表示聚合之間的差異。如上圖所示,作者構(gòu)建了一個(gè)表示瓶頸來指導(dǎo) CLS token收集信息。對(duì)于 L 層 Transformer,令 { h i l } i = 1 N \left\{h_{i}^{l}\right\}_{i=1}^{N} {hil?}i=1N?表示第 l 層的輸出向量,其中 l = 1 , ? ? , L l=1, \cdots, L l=1,?,L。為了預(yù)訓(xùn)練最后一層的 CLS token h C L S L h_{\mathrm{CLS}}^{L} hCLSL?,作者將其與中間第l層的patch向量 { h i l } i = 1 N \left\{h_{i}^{l}\right\}_{i=1}^{N} {hil?}i=1N?進(jìn)行concat,即 S = [ h C L S L , h 1 l , ? ? , h N l ] \boldsymbol{S}=\left[h_{\mathrm{CLS}}^{L}, h_{1}^{l}, \cdots, h_{N}^{l}\right] S=[hCLSL?,h1l?,?,hNl?]。然后將 S 饋送到一個(gè)淺層(例如兩層)Transformer 解碼器并進(jìn)行mask預(yù)測(cè)。作者還計(jì)算了第 L 層的 MIM 損失。所以最終的訓(xùn)練損失是兩項(xiàng)的總和,即第 L 層的原始損失和淺層 Transformer 解碼器的 MIM 損失。在本文的實(shí)現(xiàn)中,作者還共享兩個(gè)頭部的 MIM softmax 權(quán)重。
4.實(shí)驗(yàn)
上表報(bào)告了 top-1 的微調(diào)精度結(jié)果。從上表中可以看出,具有 300 個(gè) epoch 預(yù)訓(xùn)練計(jì)劃的基本尺寸 BEIT V2 達(dá)到 85.0% 的 top-1 準(zhǔn)確率,將 BEIT、CAE、SplitMask 和 PeCo 分別抑制了 2.1%、1.7%、1.4% 和 0.9%。此外,BEIT V2 比 iBoT 高 1.2%,data2vec 高 0.8%。
上表展示了線性探測(cè)的 top-1 精度。作者將 BEIT V2 與 MIM 方法 BEIT、MAE、CAE、MVP 和對(duì)比方法 MoCo v3 進(jìn)行比較。所有方法都基于 ViT-B/16 并預(yù)訓(xùn)練了 300 個(gè) epoch,但 MAE 為 1600 個(gè) epoch。
作者評(píng)估了 BEIT V2 在各種 ImageNet 驗(yàn)證集上的魯棒性,在上表中報(bào)告了結(jié)果。與 MAE相比,BEIT V2 在數(shù)據(jù)集上取得了巨大的進(jìn)步,證明了所提出的方法在泛化方面的優(yōu)越性。
從上表可以看出,VQ-KD 的更深解碼器獲得了更好的重構(gòu),但碼本使用率和下游任務(wù)性能更低。此外,實(shí)驗(yàn)表明減少碼本查找的維度可以提高碼本的利用率。
上表展示了關(guān)于 CLS token預(yù)訓(xùn)練的消融研究。較淺的頭部(1/2 層)比較深的頭部(3 層)表現(xiàn)更好,這表明較淺的頭部(較低的模型容量)比較深的頭部(較高的模型容量)更關(guān)注輸入 CLS token。
上表展示了VQ-KD target的消融研究。
5. 總結(jié)
在本文中,作者提出了向量量化知識(shí)蒸餾(VQ-KD)來訓(xùn)練視覺Transformer預(yù)訓(xùn)練的視覺標(biāo)記器。 VQ-KD 離散化連續(xù)語義空間,為mask圖像建模提供監(jiān)督,而不是依賴圖像像素。語義視覺標(biāo)記器極大地改進(jìn)了 BEIT 預(yù)訓(xùn)練并顯著提高了下游任務(wù)的傳輸性能。此外,引入了 CLS token預(yù)訓(xùn)練機(jī)制,以明確鼓勵(lì)模型生成全局圖像表示,縮小補(bǔ)丁級(jí)預(yù)訓(xùn)練和圖像級(jí)表示聚合之間的差距。
【技術(shù)交流】
已建立深度學(xué)習(xí)公眾號(hào)——FightingCV,關(guān)注于最新論文解讀、基礎(chǔ)知識(shí)鞏固、學(xué)術(shù)科研交流,歡迎大家關(guān)注?。?!
推薦加入FightingCV交流群,每日會(huì)發(fā)送論文解析、算法和代碼的干貨分享,進(jìn)行學(xué)術(shù)交流,加群請(qǐng)?zhí)砑有≈謜x:FightngCV666,備注:地區(qū)-學(xué)校(公司)-名稱
面向小白的頂會(huì)論文核心代碼庫:https://github.com/xmu-xiaoma666/External-Attention-pytorch
面向科研小白的YOLO目標(biāo)檢測(cè)庫:https://github.com/iscyy/yoloair
文章來源:http://www.zghlxwxcb.cn/news/detail-458763.html
【贈(zèng)書活動(dòng)】
為感謝各位老粉和新粉的支持,FightingCV公眾號(hào)將在9月10日包郵送出4本**《深度學(xué)習(xí)與目標(biāo)檢測(cè):工具、原理與算法》來幫助大家學(xué)習(xí),贈(zèng)書對(duì)象為當(dāng)日閱讀榜和分享榜前兩名。想要參與贈(zèng)書活動(dòng)的朋友,請(qǐng)?zhí)砑有≈治⑿?/strong>FightngCV666**(備注“城市-方向-ID”),方便聯(lián)系獲得郵寄地址。文章來源地址http://www.zghlxwxcb.cn/news/detail-458763.html
到了這里,關(guān)于超越所有MIM模型的BEiT v2來了!微軟使用矢量量化視覺Tokenizers的掩碼圖像建模!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!