LoginSignup
1

More than 5 years have passed since last update.

【論文読み】clcNet: Improving the Efficiency of Convolutional Neural Network using Channel Local Convolutions

Last updated at Posted at 2019-02-27

読んだ論文

clcNet: Improving the Efficiency of Convolutional Neural Network using Channel Local Convolutions

CVPR 2018

概要

  • Depthwise Convolution や grouped convolutionにより畳み込みが効率的かつ高速に
  • これらは出力チャネルが入力チャネルのサブセットを利用して計算する、チャネルの局所的な畳み込み(CLC)の特別な場合とみなすこと考えた
  • この定義により入力チャネルと出力チャネルの依存関係をチャンネル依存グラフ(CDG)によって表現
  • grouped convolutionのCDGを変更することで新たなIGCというカーネルを作成
  • ICGカーネルとGCカーネルを積み上げることにより通常の畳み込みに近似したモジュールを作成できる
  • CDGを利用した分析によってIGCとGCの精度を保つためのメタパラメータを設定し、計算量を最小化することができる
  • これらのclcblockを利用したclcNetを構築し、ImageNetによって既存モデルより高い計算効率とパラメータ数の減少を達成

背景

  • 通常の畳み込み
    • "すべてのチャネルが畳み込みの計算に関与している" →畳込みの計算はチャネル次元に対して常に大域的
  • depth wise convolution & grouped convolution
    • チャネルのサブセットを利用するような計算
    • 出力された値はチャネルの一部のみに依存している →これを Channel Local Convolution (CLC) という概念として定義

CLCカーネルはカーネルのchannel dependency graph (CDG)によって特徴づけられる
CDGとはチャネルをノード、依存性をエッジとした有向2部グラフ

出力チャネルから入力チャネルへの依存性を表す
CDGは通常の畳み込みと近似するようなCLCカーネルになるように依存性の構造を分析するために利用できる

畳み込みの出力チャネルがすべての入力チャネルに依存する時、畳込みカーネルはfull channel receptive fields (FCRF)を達成するとする

仮説

FCRFはCLCカーネルを積み重ねることによって通常の畳み込みに近似させるために必要である

提案

CLC blockを提案
- 2つのCLCカーネルを持つDepth wise separable convolution
- grouped convolution(GC)
- GCとは少しことなるinteraced group convolution(IGC)

CDGを分析することによってCLCカーネルのmeta-parameterを設定

interaced grouped convolution (IGC)

ExceptionやMobilenetなどのように空間方向とチャネル方向を分離して畳み込みを行うdepth separable convolutionによっても重みが効率的なモデルを学習できることが示されている
depth separable convolutionはpoint wise convolutionによってチャネル方向の畳み込みが行われており、さらに効率化をはかるのであれば、grouped convolutionを採用ことなどが考えれる
しかし初期の実験でdepth wise convolutionやpoint wise convolutionの代わりに単純なgrouped convolutionを利用すると分類精度が低下することがわかっている(おそらくShuffleNetでGrouped Convolution時にシャッフルしなかったときの精度低下の話を言っている?)
CDGを元に分析すると、grouped convolutionに変えたあとのモデルはFCRFが達成されていないことがわかる

この問題に対して対応するために提案されたのがinteraced grouped convolution(IGC)である
interaced grouped convolutionは以前のgrouped convolutionで複数のグループが組み合わさるように変更するものである

これによりグループの組み合わせによってはFCRFを達成するモデルが出てくる
IGCのmeta-parameterはグループの数を表す$g$であり、input channelの数を$M$とすると、IGCの1グループのチャネル数は$M/g$となる。
この1グループのチャネル数をchannel receptive fields size (CRF size)と呼ぶ

今回提案するCLCblockの設計とCDGが以下の通り

CLC blockはIGCとGCのグループ$g$を適切に設定することができればFCRFを達成することができる
次にCDGに関するNotationを記述する
- $M$: 入力チャネル数
- $L$: 中間チャネル数(IGCカーネルの出力)
- $N$: 出力チャネル数
- $g_1$: IGCのgroup parameter
- $g_2$: GCのgroup parameter

それぞれのCRFsizeは
- ICG: M / $g_1$
- CG: L / $g_2$

CLC blockがFCRFを達成するためにはCGのCRFsizeがICGのグループ数以下になっている必要がある
よって以下の条件が成り立てばFCRFを達成することがわかる

$$ g_1 g_2 \leq L$$

そして計算コスト最小化することを考慮すると以下の制約の元、計算量が最小になる$g_1$・$g_2$を
見つけることにより、計算量が最小でFCRFを満たすCLC blockを求めることができる

ただし$A$はカーネルのピクセル数を表す(3×3の場合はAは9)

評価

このConvolution Blockを元に構成したモデルをclcNetとしてimagenetのタスクを解かせる
MobileNetと比較すると25%の計算量減少,Top1Accの1%向上などモデルが効率的であることを示した

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1