Second-order Convolutional Neural Networks
タグ: CNN acceleration
概要
[1703.06817] Second-order Convolutional Neural Networks
- handcraftedな画像特徴量は共分散などの二次の情報が用いられている
- 共分散を取り出すモジュール(Covarianve Descriptor Unit, 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の精度を達成