Open shimopino opened 3 years ago
[arXiv:2010.03019] Global Self-Attention Networks for Image Recognition
Zhuoran Shen, Irwan Bello, Raviteja Vemulapalli, Xuhui Jia, Ching-Hui Chen
2020-10-06
画像認識タスクにおいて,畳み込み層では画像の大域的な依存関係を補足することが難しいため,近年は代替として自己注意機構を採用したモデルが提案されており,様々な画像タスクや動画タスクで高い精度を発揮している.
しかし,自己注意機構を用いた場合,入力される画像のサイズが大きくなってしまうと計算コストやメモリコストが2乗のオーダーで増加してしまう.
そのため従来のモデルでは計算コストを下げるために以下の2つの手法が提案されている.
こうした手法は自己注意機構の計算に必要なコストを効果的に提言することができる.しかし,ネットワークの浅い層や中間の層で,大域的な依存関係を補足する能力を落としてしまっている.
後で追加
本研究では大域的な依存関係を補足するGSAモジュールを提案しており,画像のContent-basedな自己注意とGlobal-basedな自己注意の両方を計算可能なモジュールである.
GSAモジュールでは,空間解像度をFlattenにした特徴マップを入出力に採用している.出力側の特徴マップの1ピクセルは,入力側の特徴マップの各ピクセルが示す中身とその空間的な位置を集約することで計算している.
入力された特徴マップに対して1x1畳み込み演算を行うことで,Key/Query/Valueを生成している.
そして以下の図で示すように,これらの値をContent Attention LayerとPositional Attention Layerに入力している.
入力の特徴マップを変換したKey/Query/Valueを使用して,チャンネル次元がdoutの特徴マップを出力する.
この計算の流れは以下のように図示できる.ポイントとしては,Queryに対してSoftmaxによる正規化を行わない点である.このイメージとしては,Softmaxは凸関数であり,また使用すると値が必ず0よりも大きくなってしまうため,関係のないピクセルは負の重み付けを行うようなことはできないため,あえてSoftmaxを使わないことでこうした制約にとらわれないようにしている.
Content Attention Layerでは,ピクセルの空間依存性を考慮していないため,ピクセルの位置を並べ替えても同じ結果が得られてしまう.
そこで先行研究と同様にPositional Encodingを使用したAttention計算を導入している.あるピクセルに対して,このPE層では隣接しているLxLの領域のピクセルの位置関係を計算する.
Attentionの計算には先行研究で提案されていた,列方向と行方向のAttentionを別々に計算するAxial Formulationを採用している.
以下の図のように相対位置に対するEmbeddingをもとにAttention計算を行う.
GSAモジュールと,先行研究との差は,以下の図で表現されている.
先行研究ではAttention層をモデルの最終層にのみ導入したり,小さなパッチ領域に対してのみAttention層を使用していたが,GSAモジュールは従来の3x3畳み込みそうによる演算を置き換えている.
上の表において,下から2番めの [Wang et al, 2020]の研究と異なる点は,Content AttentionにAxial Formulationを採用しているかどうかだけである.
Q: なぜContent AttentionにAxialを採用しなかったのか
Axial Attentionでは行方向と列方向に対して全体のAttentionを直接計算している一方,Content AttentionではAttention計算時に互いの1つのピクセルのみしか使用していない.
もしもContent AttentionにAxialを採用してしまうと,Attention計算時に互いのあるピクセルだけではなく,他のピクセルからの相互作用も影響してしまい,本当にContentのみからAttentionを計算することが難しいからである.
実際に精度の比較をしてみると,上記の仮説の有効性がわかる.
Q: なぜPositional AttentionにAxialを採用したのか
畳み込み演算のように平行移動に影響しない(translation equivariance)ようにするためには,絶対距離ではなく相対距離を考慮したAttention計算が重要である.
Content Attentionではあるピクセルが一意なKeyとして働くため,KeyとValueを最初に計算することでAttention計算を効率化させていた.
しかしPositional Attentionの場合は,Queryとなるピクセルの位置に応じて,Keyとなるピクセルの相対位置は変化してしまう.そのため計算を効率化させるためにAxial Attentionを採用している.
ResNet-{30,50,101}とGSAモジュールで畳み込み演算を置き換えた対応モデルで,計算コストと精度の比較を行っている.
また先行研究との比較も行っているが,GSAモジュールが最も高い精度を発揮していることがわかる.
またAblation Studyも実施している.畳み込み演算の置き換えに関しては,やはり最初のResidual Groupは畳み込み演算のままにしたほうが高い精度が発揮できている.(まああまり違わないような気もするが)
https://github.com/lucidrains/global-self-attention-network/blob/main/gsa_pytorch/gsa_pytorch.py
論文へのリンク
[arXiv:2010.03019] Global Self-Attention Networks for Image Recognition
著者・所属機関
Zhuoran Shen, Irwan Bello, Raviteja Vemulapalli, Xuhui Jia, Ching-Hui Chen
投稿日時(YYYY-MM-DD)
2020-10-06
1. どんなもの?
2. 先行研究と比べてどこがすごいの?
画像認識タスクにおいて,畳み込み層では画像の大域的な依存関係を補足することが難しいため,近年は代替として自己注意機構を採用したモデルが提案されており,様々な画像タスクや動画タスクで高い精度を発揮している.
しかし,自己注意機構を用いた場合,入力される画像のサイズが大きくなってしまうと計算コストやメモリコストが2乗のオーダーで増加してしまう.
そのため従来のモデルでは計算コストを下げるために以下の2つの手法が提案されている.
こうした手法は自己注意機構の計算に必要なコストを効果的に提言することができる.しかし,ネットワークの浅い層や中間の層で,大域的な依存関係を補足する能力を落としてしまっている.
本研究では大域的な依存関係を補足するGSAモジュールを提案しており,画像のContent-basedな自己注意とGlobal-basedな自己注意の両方を計算可能なモジュールである.
3. 技術や手法の"キモ"はどこにある?
3.1 Global Self-Attention Module
GSAモジュールでは,空間解像度をFlattenにした特徴マップを入出力に採用している.出力側の特徴マップの1ピクセルは,入力側の特徴マップの各ピクセルが示す中身とその空間的な位置を集約することで計算している.
入力された特徴マップに対して1x1畳み込み演算を行うことで,Key/Query/Valueを生成している.
そして以下の図で示すように,これらの値をContent Attention LayerとPositional Attention Layerに入力している.
Content Attention Layer
入力の特徴マップを変換したKey/Query/Valueを使用して,チャンネル次元がdoutの特徴マップを出力する.
この計算の流れは以下のように図示できる.ポイントとしては,Queryに対してSoftmaxによる正規化を行わない点である.このイメージとしては,Softmaxは凸関数であり,また使用すると値が必ず0よりも大きくなってしまうため,関係のないピクセルは負の重み付けを行うようなことはできないため,あえてSoftmaxを使わないことでこうした制約にとらわれないようにしている.
Positional Attention Layer
Content Attention Layerでは,ピクセルの空間依存性を考慮していないため,ピクセルの位置を並べ替えても同じ結果が得られてしまう.
そこで先行研究と同様にPositional Encodingを使用したAttention計算を導入している.あるピクセルに対して,このPE層では隣接しているLxLの領域のピクセルの位置関係を計算する.
Attentionの計算には先行研究で提案されていた,列方向と行方向のAttentionを別々に計算するAxial Formulationを採用している.
以下の図のように相対位置に対するEmbeddingをもとにAttention計算を行う.
3.2 GSA Networks
GSAモジュールと,先行研究との差は,以下の図で表現されている.
先行研究ではAttention層をモデルの最終層にのみ導入したり,小さなパッチ領域に対してのみAttention層を使用していたが,GSAモジュールは従来の3x3畳み込みそうによる演算を置き換えている.
上の表において,下から2番めの [Wang et al, 2020]の研究と異なる点は,Content AttentionにAxial Formulationを採用しているかどうかだけである.
3.3 Justification
Axial Attentionでは行方向と列方向に対して全体のAttentionを直接計算している一方,Content AttentionではAttention計算時に互いの1つのピクセルのみしか使用していない.
もしもContent AttentionにAxialを採用してしまうと,Attention計算時に互いのあるピクセルだけではなく,他のピクセルからの相互作用も影響してしまい,本当にContentのみからAttentionを計算することが難しいからである.
実際に精度の比較をしてみると,上記の仮説の有効性がわかる.
畳み込み演算のように平行移動に影響しない(translation equivariance)ようにするためには,絶対距離ではなく相対距離を考慮したAttention計算が重要である.
Content Attentionではあるピクセルが一意なKeyとして働くため,KeyとValueを最初に計算することでAttention計算を効率化させていた.
しかしPositional Attentionの場合は,Queryとなるピクセルの位置に応じて,Keyとなるピクセルの相対位置は変化してしまう.そのため計算を効率化させるためにAxial Attentionを採用している.
4. どうやって有効だと検証した?
ResNet-{30,50,101}とGSAモジュールで畳み込み演算を置き換えた対応モデルで,計算コストと精度の比較を行っている.
また先行研究との比較も行っているが,GSAモジュールが最も高い精度を発揮していることがわかる.
またAblation Studyも実施している.畳み込み演算の置き換えに関しては,やはり最初のResidual Groupは畳み込み演算のままにしたほうが高い精度が発揮できている.(まああまり違わないような気もするが)
5. 議論はあるか?