原論文
CONDITIONAL POSITIONAL ENCODINGS FOR VISION TRANSFORMERS
https://arxiv.org/pdf/2102.10882.pdf
結論
畳み込みがあれば,ViTの位置埋め込みいらない.
概要
画像認識モデルにViTがある.ViTは画像情報全てを並列で処理する構造であり,画像の位置情報を考慮しない構造になっている.これを解決するために位置埋め込みをする.ViTで採用される位置埋め込みの方法は,絶対位置埋め込みは,異なる周波数の正弦波関数で表現される.この位置埋め込みは効果的だが,テスト時に画像サイズが異なると,異なるサイズの位置埋め込みを使用しながら評価される.それを解決するためにSwinは,相対位置埋め込みを提案するが,余計な計算コストがかかり,絶対位置と比較して,精度低下する可能性がある.
また,全てのパッチに同じ位置埋め込みを追加するため,画像の位置ずれに弱くなる(位置埋め込みが,ここの位置重要だよって照準を固定してる.位置がずれたら重要だよってところの照準がずれる).
そこで,畳み込みを入れて,位置埋め込みの問題点を全て解決する.
※畳み込みはフィルタの移動で位置ずれに強い構造を持ってる.
モデル構造
モデル構造を下図に示す.(a)で示すViTと(b)の提案手法の変更点は,位置埋め込み(PE)の位置が違う.CPVTは1つのエンコーダーを通してから,位置埋め込みをする.さらなる改善として,(c)はクラストークンを削除している.
PEGを使用する際に最後のMLPを各ヘッドのGAPにする方が精度良い.
条件付き位置埋め込み
位置埋め込みの成功条件が3つある.
- 入力画像にあった位置埋め込みで位置ずれに強い
- テスト時に画像サイズが変化しても問題ない
- ある程度の絶対位置を提供する能力を持つ
これは,局所的な関係を特徴付けることで全て解決する.
位置エンコーディング生成器(PEG)
PEGを下図に示す.2次元特徴量を3次元に治して,$3 \times 3$の畳み込みで局所認識.その後,2次元に戻す.これだけ.畳み込みは位置のずれに強い構造であり,実験的に畳み込みの構造によって位置情報が保たれる.
実験
畳み込みは位置情報を保つのか
noneは位置埋め込みなし.2段目に重みをランダムで固定した畳み込み(PEG)を使用した場合,精度向上した.これは,畳み込みの導入によって精度向上していない(畳み込みの学習してないから).畳み込み構造を導入することで,位置が保存されて精度向上する.
また,1(12x)は,学習可能な1x1Convを2層した場合で実験した場合,精度は上がらない.これは,空間的な認識をしていないから.学習可能な3x3Convを使用した場合が位置も保存できるし,局所的な認識ができるので良い.
1層目のEncorderの後にPEGを入れる理由
実験的に良いことが分かった.これは,よりグローバルな畳み込みができるから良くなったと考えられる.0が1層目Endorderの後,-1がEncorder前である.
よりグローバルな畳み込みが有効なのであれば,Encorder前の-1の位置でカーネルが27でも問題ない.つまり,グローバルな畳み込みが有効である.
まとめ
畳み込みがあれば,ViTの位置埋め込みいらない【PEG】について解説した.位置埋め込みは,なんか難しい感じで,位置を保存とか言ってたけど,畳み込みで代用できるならシンプルでいい.CNN+ViTのモデルも位置埋め込みは使用していなくて,CNNは位置埋め込みの代わりになる.