[論文メモ] CONVOLUTIONAL XFORMERS FOR VISION
linear attentionとconvolutionを組み合わせた低コスト高精度なConvolutional Xformers(CXV)を提案
Transformer(Attention)は広範囲を見ることができるが、シーケンス長の2乗の計算コストがかかるし、Visionタスクでは低解像度でもかなりのシーケンス長になりメモリコスト等も大きい。また学習には大量のデータも必要になる。
Convolutionは画像への帰納バイアスがあり少ないデータでも学習ができるが、その分受容野が狭く、広い範囲を見るには深いアーキテクチャにする必要がある。
そこでConvolutionとLinear Attentionを組み合わせることでconvolutionの機能バイアスを持ちつつ、低コストで広範囲を依存関係を解決できるモジュールを作成する。
手法
アーキテクチャ
提案するCXVのアーキテクチャの全体像は図1参照。
attentionの二乗の計算コストをへらすためにNyströmformerやPerformerで採用されたlinear attentionを採用。
これにより画像ピクセルの長いシーケンスを低コストで行える。
ピクセルの埋め込みにconvolution layerを使うと機能バイアスのおかげで学習データを大幅に減らせるという報告がある。
そこで始めの埋め込みはconvolutionで行う。カーネルサイズやストライドは環境のGPUサイズに依存。
Convolutional vision Transformer(CvT)ではTransformerのブロックにconvolutionを追加すると低コストでロバスト性の向上やパフォーマンス改善につながると報告。
CXVではlinear attentionの前にconvolutionを追加し、attentionへの機能バイアスとする。
convolutionの導入によりpositional encodingが不要になる。
layer normalization(LN)について。
LNはオリジナルtransformerのpost-normとViTのpre-normの2つがあり、それぞれforward時の分散やbackward時の勾配の大きさなどに影響する。
比較的浅いtransformer(≦6)のとき、pre-normはパフォーマンスが落ちるという報告もある。
CXVでは2つあるnormalizationを1つに減らし、その1つをconvolutionとattentionの間に追加する。
最適化
最適化には2つのoptimizerを用いる。
始めは収束の早いAdamWを用い、top-1 accuracyが収束(20epochで不変)したらSGDに切り替える。