GitHub

Second-order Convolutional Neural Networks

タグ: CNN acceleration

概要

[1703.06817] Second-order Convolutional Neural Networks

  • handcraftedな画像特徴量は共分散などの二次の情報が用いられている
  • 共分散を取り出すモジュール(Covarianve Descriptor Unit, CDU)を提案

CDU

CDU

  • Cov-Layer: 空間方向を潰して、チャンネルxチャンネルの共分散行列 $\Sigma \in R^{D \times D}$ を作る
    • Second-Orderな情報のみが出力される
    • $\Sigma$ にFirst-Orderな情報を加味するパターンも別途考案している
  • O2T-Layer: 変換行列 $W_1$ を両側からかけて $Y \in R^{D’ \times D’}$ を出力する
  • PV-Layer: Second-Orderな特徴行列 $Y$ を、重み $W_2$ を両側からかけつつ1方向sumとって潰して $v \in R^{D’’}$ を出力する
  • 学習するのは $W_1$ と $W_2$。

Multiple-CDU

  • VGGで抽出した1024チャンネルの特徴量を、そのまま 1024x1024の共分散特徴量にするのではなく、例えば512x2に分割して、2つのCDUモジュールにそれぞれ突っ込む.
  • 計算量が大幅に減らせる

Experiments

様々な実験で、パラメータ数を既存のモデルよりも減らしつつ、SoTAの精度を達成