Open shimopino opened 4 years ago
[arXiv:2006.03677] Visual Transformers: Token-based Image Representation and Processing for Computer Vision
Bichen Wu, Chenfeng Xu, Xiaoliang Dai, Alvin Wan, Peizhao Zhang, Masayoshi Tomizuka, Kurt Keutzer, Peter Vajda
2020-06-05
画像分野で使用される畳み込み層にはいくつかの限界が存在する。
本研究では畳み込み演算を使用したモデルに替わり、より高い精度かつ低い計算コストのTransformerを使用した画像認識モデルを提案した。これは複数の単語トークンで構成される文章で、十分画像を表現できることから発想を得ている。
本研究で提案するVisual Transformerの全体像は以下になる。
まずは低周波な特徴量を効率的に捉えることが可能な畳み込み演算を使用して、入力された画像を特徴マップに変換する。得られた特徴マップをスタックされたTransformerに入力し、特徴マップを計算していく。
Visual Transformerは以下の3つの要素で構成される。
計算するトークンの数を小さく保っておくことで計算コストを抑えることができる。また得られたトークンと特徴マップに対して、意味的な情報が含まれているトークンは画像分類などのタスクに応用し、ピクセル単位の情報を含んでいる特徴マップはセグメンテーションタスクなどに応用することができる。
画像のトークンはそれぞれが、以下の図のように画像中の意味のある物体を表現していると捉える。
計算としてはまず特徴マップの空間次元を1つに統合(X[H,W,C]-->X[HxW,C])する。後はこの変換した特徴マップのチャンネル次元を、それぞれトークンの数・トークンの次元数に変換した行列同士でAttention計算を行う。
こうすることで以下のように画像中のi番目のピクセルと変換後のl番目のトークンの相互関係Aを計算することができる。こうして、画像中の物体に対応しているトークンを得ることが可能となる。
Attentionを(1)式に従って計算するとピクセルの位置情報を考慮することができない。そこで以下の式に従って位置のエンコーディングを行う。なお相互関係Aを空間的にダウンサンプリングしておくことで重みWを削減している。
抽出されたトークンに対して、トークンの並び順は意味のあるものではなくなっているため畳み込み演算を適用することはできない。そこで行きの式に従ってTransformerの計算を行う。
この際にKeyとQueryの重みに関して変換後のチャンネル数を元のチャンネル数の半分にしておくことで計算量を削減している。合計の計算量は 3Ct^2L + 1.5L^2Ct となる。
先行研究では画像中の大域的な関係性を捉えるために、このTransformerと同じAttentionの計算をしているものもあるが、どれも特徴マップに直接適用しているため、計算量は 3(HW)C^2 + 1.5(HW)^2C となってしまい本研究で提案するモデルよりもMACsが増大してしまう。
次にピクセルレベルの情報を含んでいる特徴マップと、意味的な情報を含んでいるトークンとを結合させる。これは以下の式にあるように、特徴マップとトークンの相互関係をAttentionとして計算を行い、入力のトークンと相互関係を考慮した特徴マップを結合させている。
直感的には以下の図がイメージしやすい。
Visual Tranformerでは上記3つの要素を有しているTransformerを幾層にも積み重ねて計算を行う。その際にモデルの全体像を見るとわかるように、各層で独立して静的な重みWAを計算するのではなく、1つ前の層のトークンを入力にして動的に重みWAを計算するようにしている。
これは1つ前のトークンをチャンネル次元に沿って2つに分解し、それぞれをtokenizerかそのまま入れるかしている。
画像中のより抽象的な特徴量は、画像中にスパースな形・多様性のある形で存在しているため、動的に重みを変更することでこうした特徴量を補足できるようになる。
画像分類タスクに関してはResnet-{18,34,50,101}をベースに本手法を構築している。実験ではResnetのステージ1から4までをそのままにしておき、抽出された特徴マップ (ImageNetの場合には14x14の特徴マップ) に対してVisual Transformerを適用している。
セグメンテーションタスクでは、CNNモデルと異なり、本手法はトークン数を少なくしておくことで出力する解像度のかかわらず計算コストを下げることができ、また意味的な情報を含むトークンを使用することで大域的な特徴量も捉えることができる。
この効果を検証するためにPanoptic Feature Pyramid Networks (FPN) を使用している。FPNでは空間サイズの大きい特徴マップを利用するため、計算コストが非常に高くなってしまう。
Visual Transformerでは特徴マップをトークンに変換した後で結合を行うため、計算コストを抑えることが可能であり、実験では性能を保ったままMACsを6.5倍程度削減することに成功している。
ImageNetデータセットで本手法の有効性を検証した。それぞれMACsとパラメータ数に対応して精度を比較すると、本手法がより効率的に高い精度を達成していることがわかる。
またResNetモデルとの比較を行っている。結果としては、本手法が高い精度を保ったまま、計算コストの削減にも成功していることがわかる。
ResNetsの全層と5層目を変換して場合とでMACsがどの程度削減できているのか比較した。効果としてはより深いResNetに適用することで大きな効果が見られ、また最終層のみ変換したほうがより効率的にMACsを削減することができている。
またセグメンテーションタスクにも適用して効果を検証した。精度は同程度だが、大幅にMACsの削減に成功しており、特にFPNでは6倍以上のMACsを削減できている。
各トークンが画像中の抽象的な特徴量を捉えることができているのか検証するために、トークンの可視化をAttention重みの可視化として行った。見てわかるように、それぞれのトークンや背景の物体や人物などそれぞれ異なる対象を指していることがわかる。
疑似コードは要参照
論文へのリンク
[arXiv:2006.03677] Visual Transformers: Token-based Image Representation and Processing for Computer Vision
著者・所属機関
Bichen Wu, Chenfeng Xu, Xiaoliang Dai, Alvin Wan, Peizhao Zhang, Masayoshi Tomizuka, Kurt Keutzer, Peter Vajda
投稿日時(YYYY-MM-DD)
2020-06-05
1. どんなもの?
2. 先行研究と比べてどこがすごいの?
画像分野で使用される畳み込み層にはいくつかの限界が存在する。
本研究では畳み込み演算を使用したモデルに替わり、より高い精度かつ低い計算コストのTransformerを使用した画像認識モデルを提案した。これは複数の単語トークンで構成される文章で、十分画像を表現できることから発想を得ている。
3. 技術や手法の"キモ"はどこにある?
3.1 Visual Transformer
本研究で提案するVisual Transformerの全体像は以下になる。
まずは低周波な特徴量を効率的に捉えることが可能な畳み込み演算を使用して、入力された画像を特徴マップに変換する。得られた特徴マップをスタックされたTransformerに入力し、特徴マップを計算していく。
Visual Transformerは以下の3つの要素で構成される。
計算するトークンの数を小さく保っておくことで計算コストを抑えることができる。また得られたトークンと特徴マップに対して、意味的な情報が含まれているトークンは画像分類などのタスクに応用し、ピクセル単位の情報を含んでいる特徴マップはセグメンテーションタスクなどに応用することができる。
3.2 Extracting visual tokens
Static tokenization
画像のトークンはそれぞれが、以下の図のように画像中の意味のある物体を表現していると捉える。
計算としてはまず特徴マップの空間次元を1つに統合(X[H,W,C]-->X[HxW,C])する。後はこの変換した特徴マップのチャンネル次元を、それぞれトークンの数・トークンの次元数に変換した行列同士でAttention計算を行う。
こうすることで以下のように画像中のi番目のピクセルと変換後のl番目のトークンの相互関係Aを計算することができる。こうして、画像中の物体に対応しているトークンを得ることが可能となる。
Position encodin
Attentionを(1)式に従って計算するとピクセルの位置情報を考慮することができない。そこで以下の式に従って位置のエンコーディングを行う。なお相互関係Aを空間的にダウンサンプリングしておくことで重みWを削減している。
3.3 Transformer
抽出されたトークンに対して、トークンの並び順は意味のあるものではなくなっているため畳み込み演算を適用することはできない。そこで行きの式に従ってTransformerの計算を行う。
この際にKeyとQueryの重みに関して変換後のチャンネル数を元のチャンネル数の半分にしておくことで計算量を削減している。合計の計算量は 3Ct^2L + 1.5L^2Ct となる。
先行研究では画像中の大域的な関係性を捉えるために、このTransformerと同じAttentionの計算をしているものもあるが、どれも特徴マップに直接適用しているため、計算量は 3(HW)C^2 + 1.5(HW)^2C となってしまい本研究で提案するモデルよりもMACsが増大してしまう。
3.4 Fusing visual tokens with the feature map
次にピクセルレベルの情報を含んでいる特徴マップと、意味的な情報を含んでいるトークンとを結合させる。これは以下の式にあるように、特徴マップとトークンの相互関係をAttentionとして計算を行い、入力のトークンと相互関係を考慮した特徴マップを結合させている。
直感的には以下の図がイメージしやすい。
3.5 Dynamic tokenization
Visual Tranformerでは上記3つの要素を有しているTransformerを幾層にも積み重ねて計算を行う。その際にモデルの全体像を見るとわかるように、各層で独立して静的な重みWAを計算するのではなく、1つ前の層のトークンを入力にして動的に重みWAを計算するようにしている。
これは1つ前のトークンをチャンネル次元に沿って2つに分解し、それぞれをtokenizerかそのまま入れるかしている。
画像中のより抽象的な特徴量は、画像中にスパースな形・多様性のある形で存在しているため、動的に重みを変更することでこうした特徴量を補足できるようになる。
3.6 Using visual transformers to build vision models
Visual transformers for image classification
画像分類タスクに関してはResnet-{18,34,50,101}をベースに本手法を構築している。実験ではResnetのステージ1から4までをそのままにしておき、抽出された特徴マップ (ImageNetの場合には14x14の特徴マップ) に対してVisual Transformerを適用している。
Visual transformers for semantic segmentation
セグメンテーションタスクでは、CNNモデルと異なり、本手法はトークン数を少なくしておくことで出力する解像度のかかわらず計算コストを下げることができ、また意味的な情報を含むトークンを使用することで大域的な特徴量も捉えることができる。
この効果を検証するためにPanoptic Feature Pyramid Networks (FPN) を使用している。FPNでは空間サイズの大きい特徴マップを利用するため、計算コストが非常に高くなってしまう。
Visual Transformerでは特徴マップをトークンに変換した後で結合を行うため、計算コストを抑えることが可能であり、実験では性能を保ったままMACsを6.5倍程度削減することに成功している。
4. どうやって有効だと検証した?
ImageNetデータセットで本手法の有効性を検証した。それぞれMACsとパラメータ数に対応して精度を比較すると、本手法がより効率的に高い精度を達成していることがわかる。
またResNetモデルとの比較を行っている。結果としては、本手法が高い精度を保ったまま、計算コストの削減にも成功していることがわかる。
ResNetsの全層と5層目を変換して場合とでMACsがどの程度削減できているのか比較した。効果としてはより深いResNetに適用することで大きな効果が見られ、また最終層のみ変換したほうがより効率的にMACsを削減することができている。
またセグメンテーションタスクにも適用して効果を検証した。精度は同程度だが、大幅にMACsの削減に成功しており、特にFPNでは6倍以上のMACsを削減できている。
各トークンが画像中の抽象的な特徴量を捉えることができているのか検証するために、トークンの可視化をAttention重みの可視化として行った。見てわかるように、それぞれのトークンや背景の物体や人物などそれぞれ異なる対象を指していることがわかる。
5. 議論はあるか?