医療系AIエンジニアの技術メモ

ディープラーニング(主に画像系)の技術メモブログです

Global Second-order Pooling Convolutional Networks

スポンサーリンク


f:id:y_kurashina:20190714225709p:plain
Fig1. GSoP-Net

論文URL

http://openaccess.thecvf.com/content_CVPR_2019/papers/Gao_Global_Second-Order_Pooling_Convolutional_Networks_CVPR_2019_paper.pdf
2019年のCVPRで公開

ポイント

  • SE Blockのような自己注意ブロックGSoP Block(Global Second order Pooling Block)を提案
    • cSE Block(spatial squeeze and channel excitation)では空間成分をGlobal Average Pooling(平均)でつぶしているのに対し、GSoPでは共分散を利用する
    • ブロック名のSecond orderは、共分散=2次のモーメントであることから命名されている
    • sSE Block(channel squeeze and spatial excitation)のようにチャンネル成分をつぶすブロックも提案されている
      • 論文では、オリジナルのSE block(=cSE)との比較のみ行っている。

channel-wise pool GSoP Block

空間成分をつぶすGSoP Block (Fig1(b)

  1. 1x1の畳み込みで入力特徴量のチャンネルをc'からc(=128)に変換
    • c' > cとするボトルネック構造
  2. チャンネル間の共分散行列(サイズはc×c)を計算
  3. 1×c×1で入力グループ数がcのGroup convolutionにより、1×1x4c次元の特徴量を計算
  4. 1x1の畳み込み+sigmoidによりc'チャンネル分の重みを計算
  5. 各チャンネルの重みを入力特徴量にかけ合わせ、出力特徴量を得る

position-wise pool GSoP Block

チャンネル成分をつぶすGSoP Block。channel-wise版との違いを以下に示す。

  • チャンネル間の共分散行列の代わりに、画素間の共分散行列を計算する
    • 共分散を計算する前に8x8にdown-sampling(手法は不明)している
  • 画素毎に計算される重みを元の解像度にup-sampling(手法は不明)し、入力特徴量と画素単位でかけ合わせる

GSoP-Net

f:id:y_kurashina:20190714234212p:plain

  • GSoP-NetはResNetがベースになっている
    • ablation studyではResNet-26、ImageNetでの評価はResNet-50を使用
  • conv2_x ~ conv5_xの各ステージの最後にGSoP Blockを追加
    • ablation studyでchannel-wizeとposition-wiseのGSoP Blockをconcatした結果が最良となっていたため、最終的なImageNetでの評価もconcat版で行ったものと思われるが明記はされていない。なお、ablation study結果の考察として、後述のGSoP-Net1ではconcat版を使用するとchannel-wise結果より性能低下し、GSoP-Net2でもconcat版の結果は少ししか改善しないとの記述があることから、channel-wise版を採用した可能性も有る。
  • conv5_xの後の構造により2パターンのモデルを評価
    • GSoP-Net1 : GSoP Block + Global Average Pooling
    • GSoP-Net2 : iSQRT-COV
      • 2018年のCVPRで本論文の著者グループが提案したブロック。このブロックも共分散を利用している。

ImageNetでの評価結果

f:id:y_kurashina:20190714235824p:plain