shimopino / papers-challenge

Paper Reading List I have already read
30 stars 2 forks source link

Visual Transformers: Token-based Image Representation and Processing for Computer Vision #147

Open shimopino opened 4 years ago

shimopino commented 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

投稿日時(YYYY-MM-DD)

2020-06-05

1. どんなもの?

2. 先行研究と比べてどこがすごいの?

画像分野で使用される畳み込み層にはいくつかの限界が存在する。

  1. 分類タスクでは前面のオブジェクトが背景よりも重要であり、セグメンテーションタスクでは空や道路などの大きい領域よりも歩行者のような微小な物体が重要となる。しかし、畳み込み演算ではすべてのピクセルに同じ重要度で計算を行う。
  2. 畳み込み演算ではKernel Sizeに対して計算量が2乗のオーダーで増大してしまうため、受容野を大きくするには層を深くしなければならない。
  3. 畳み込み演算ではエッジや角のような低周波な特徴量を捉えることは得意だが、層の後半で捉えることが可能な高周波な特徴量はスパースになりがちであり、畳み込み演算で捉えることは非常に飛行率になってしまう。

本研究では畳み込み演算を使用したモデルに替わり、より高い精度かつ低い計算コストのTransformerを使用した画像認識モデルを提案した。これは複数の単語トークンで構成される文章で、十分画像を表現できることから発想を得ている。

3. 技術や手法の"キモ"はどこにある?

3.1 Visual Transformer

本研究で提案するVisual Transformerの全体像は以下になる。

まずは低周波な特徴量を効率的に捉えることが可能な畳み込み演算を使用して、入力された画像を特徴マップに変換する。得られた特徴マップをスタックされたTransformerに入力し、特徴マップを計算していく。

image

Visual Transformerは以下の3つの要素で構成される。

  1. tokenizer 特徴マップから画像トークンを抽出する。
  2. transformer 画像トークンから相互関係を計算したトークンを出力する。
  3. projector 得られたトークンを特徴マップに戻す。

計算するトークンの数を小さく保っておくことで計算コストを抑えることができる。また得られたトークンと特徴マップに対して、意味的な情報が含まれているトークンは画像分類などのタスクに応用し、ピクセル単位の情報を含んでいる特徴マップはセグメンテーションタスクなどに応用することができる。

3.2 Extracting visual tokens

Static tokenization

画像のトークンはそれぞれが、以下の図のように画像中の意味のある物体を表現していると捉える。

image

計算としてはまず特徴マップの空間次元を1つに統合(X[H,W,C]-->X[HxW,C])する。後はこの変換した特徴マップのチャンネル次元を、それぞれトークンの数・トークンの次元数に変換した行列同士でAttention計算を行う。

こうすることで以下のように画像中のi番目のピクセルと変換後のl番目のトークンの相互関係Aを計算することができる。こうして、画像中の物体に対応しているトークンを得ることが可能となる。

image

Position encodin

Attentionを(1)式に従って計算するとピクセルの位置情報を考慮することができない。そこで以下の式に従って位置のエンコーディングを行う。なお相互関係Aを空間的にダウンサンプリングしておくことで重みWを削減している。

image

3.3 Transformer

抽出されたトークンに対して、トークンの並び順は意味のあるものではなくなっているため畳み込み演算を適用することはできない。そこで行きの式に従ってTransformerの計算を行う。

image

この際に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として計算を行い、入力のトークンと相互関係を考慮した特徴マップを結合させている。

image

直感的には以下の図がイメージしやすい。

image

3.5 Dynamic tokenization

Visual Tranformerでは上記3つの要素を有しているTransformerを幾層にも積み重ねて計算を行う。その際にモデルの全体像を見るとわかるように、各層で独立して静的な重みWAを計算するのではなく、1つ前の層のトークンを入力にして動的に重みWAを計算するようにしている。

image

これは1つ前のトークンをチャンネル次元に沿って2つに分解し、それぞれをtokenizerかそのまま入れるかしている。

画像中のより抽象的な特徴量は、画像中にスパースな形・多様性のある形で存在しているため、動的に重みを変更することでこうした特徴量を補足できるようになる。

image

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では空間サイズの大きい特徴マップを利用するため、計算コストが非常に高くなってしまう。

image

Visual Transformerでは特徴マップをトークンに変換した後で結合を行うため、計算コストを抑えることが可能であり、実験では性能を保ったままMACsを6.5倍程度削減することに成功している。

image

4. どうやって有効だと検証した?

ImageNetデータセットで本手法の有効性を検証した。それぞれMACsとパラメータ数に対応して精度を比較すると、本手法がより効率的に高い精度を達成していることがわかる。

image

またResNetモデルとの比較を行っている。結果としては、本手法が高い精度を保ったまま、計算コストの削減にも成功していることがわかる。

image

ResNetsの全層と5層目を変換して場合とでMACsがどの程度削減できているのか比較した。効果としてはより深いResNetに適用することで大きな効果が見られ、また最終層のみ変換したほうがより効率的にMACsを削減することができている。

image

またセグメンテーションタスクにも適用して効果を検証した。精度は同程度だが、大幅にMACsの削減に成功しており、特にFPNでは6倍以上のMACsを削減できている。

image

各トークンが画像中の抽象的な特徴量を捉えることができているのか検証するために、トークンの可視化をAttention重みの可視化として行った。見てわかるように、それぞれのトークンや背景の物体や人物などそれぞれ異なる対象を指していることがわかる。

image

5. 議論はあるか?

shimopino commented 4 years ago

疑似コードは要参照