【Transformer】TransMix: Attend to Mix for Vision Transformers
文章目錄
- 一、背景和動機
- 二、方法
- 2.1 Mixup
- 2.2 TransMix
- 三、效果
代碼:https://github.com/Beckschen/TransMix
一、背景和動機
基于 mix-up 的數據增強方法對 ViT 這種結構很有用,因為這種結構容易產生過擬合,但是,之前的 mixup-based 方法有一個潛在的先驗,那就是目標的線性插值比率和輸入整張圖的插值比率是相同的。這就會導致在 mixed image 里邊可能沒有有效的目標,但仍然會有label。
為了彌補上述現象導致的問題,作者提出了 TransMix,能夠基于 attention map 來對 label 進行處理。
二、方法
2.1 Mixup
原始輸入:
Mixup 使用一對圖像 xAx_AxA? 和 xBx_BxB?,以及其對應的 label yAy_AyA? 和 yBy_ByB? 作為輸入
輸入和真值處理:
使用上述兩個圖像得到假的訓練樣本 λxA+(1?λ)xB\lambda x_A + (1-\lambda)x_BλxA?+(1?λ)xB?,和真值 λyA+(1?λ)yB\lambda y_A + (1-\lambda)y_BλyA?+(1?λ)yB?,此處 λ∈[0,1]\lambda \in [0,1]λ∈[0,1] 是一個從 Beta 分布拿到的隨機數。
如圖 1 所示,背景像素是沒有辦法和前景對 label 起到相同的作用,也就是并非所有像素對 label 的貢獻是相同的。
所以本文聚焦于如何使用可學習的方法來實現輸入和label空間的統一。
作者發現,vision transformer 產生的 attention map 可以較好的使用于該任務。
如圖 1 所示,作者使用 attention map 的權重作為 λ\lambdaλ 的值,label 能夠被 re-weighted,每個像素點的權重都是不同的,所以不會使用相同的值對圖像中的所有像素進行組合。而且由于使用的是 attention map,所以該方法能夠適用于任何 ViT-based 的方法,并且沒有額外參數。
2.2 TransMix
CutMix 數據增強:
CutMix 是一個簡單的增強方式,將兩個 label 結合起來,生成一個新 label:
- M∈{0,1}HWM\in\{0, 1\}^{HW}M∈{0,1}HW,是一個二值mask,決定了哪里舍棄,哪里使用
TransMix
AAA 是從 cls token 到輸入圖像的 token 的 attention map,表示了每個 patch 對最終的分類結果的重要性。對于多頭的 attention,作者使用了平均的方法。
使用 attention map 對 label 進行處理:
下箭頭表示最近鄰插值,可以把 M 從 HW 大小下采樣成 p 個像素。
這樣的話,網絡就可以給 label 的每個點基于 attention map 來動態分配權重。
偽代碼:
三、效果
TransMix 的可視化如下:
第一行展示了area-based 的 label assignment ,把 image A 的一塊粘貼到 B 上,TransMix 能夠使用 attention map 對 label 進行修正,能夠提升突變區域 label 的 weight,
總結
以上是生活随笔為你收集整理的【Transformer】TransMix: Attend to Mix for Vision Transformers的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 科大讯飞:2023 年将正式发布软硬一体
- 下一篇: 【语义分割】Fully Attentio