[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions

>100 Views

June 23, 17

スライド概要

2017/6/23
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

論文紹介 Xception: Deep Learning with Depthwise Separable Convolutions 東京大学大学院理学系研究科物理学専攻 藤堂研究室 中西 健

2.

Paper information 論文名: Xception: Deep Learning with Depthwise Separable Convolutions 著者: François Chollet (Google, Inc.) 公開日: 4 Apr 2017 ※スライド中の図表は特に記述のない限り上記の論文から引用

3.

この論文を選んだ動機 • ネットワークの軽量化に興味があった • 畳み込み層を工夫してパラメータ数と計算量を減 らす方法の1つが今から紹介するXception

4.

概要 Inception Model 中の Inception Modules を Depthwise Separable Convolutions に置換すると 精度が向上した

5.

Inception model • Inception module とは simple ver. Inception V3 ver. • これを積み重ねたものが Inception model • e.g. GoogLeNet

6.

Inception model • simple ver. の Inception module の書き換え 厳 密 =

7.

Inception model • The Inception hypothesis • 空間方向の相関とチャネル方向の相関は十分に分離で きるという仮説 → このとき、すべてのチャネルを混ぜて畳み込み演 算するのは好ましくない → 分割する

8.

Inception model • 1x1Convの後のチャネルの分割 • 分割数最小の極限 (分割なし) → 普通のConv層 • 分割数最大の極限 (分割数 = チャネル数) をとると? → 各チャネルごとの畳み込みとなる

9.

Inception model 分割 最小 (分割なし) 最大 (分割数=チャネル数) 図 パラメータ数 多 少 計算量 大 小 分割すればするほどパラメータ数が減らせる & 計算が軽くなる

10.

Depthwise Separable Convolution Depthwise Separable Convolution • 分割数最大の Inception module と似た方法 • 畳み込みを空間方向とチャネル方向に分けて実行 各チャネルで それぞれ畳み込み チャネル方向のみで 畳み込み L. Sifre. Rigid-motion scattering for image classification, 2014. Ph.D. thesis. • 画像処理界隈では"separable convolution"と呼ばれている

11.

2つのmoduleの比較 分割数最大の Inception module pw → dw → ReLU ReLU Depthwise Separable Convolution dw → pw → ReLU ReLU dw: 各チャネルでそれぞれ畳み込み(depthwise convolution) pw: チャネル方向にのみ畳み込み(pointwise convolution)

12.

Xception • The Inception hypothesis • 空間方向の相関とチャネル方向の相関は十分に分離できる という仮説 • 本論文 • 空間方向の相関とチャネル方向の相関は完全に分離できる という仮説 → "Extreme Inception" → "Xception" • この仮説のもとでは、Conv層を空間方向のConvとチャネ ル方向のConvの2つに完全に分離することが正当化される

13.

Xception の層設計 Xception の層設計 • • 36個のConv層 最初と最後以外は residual connection する

14.

実験 Xception vs Inception V3 • パラメータ数はほぼ同じ → 精度の差はnetworkのcapacityに依らない → 精度からどれだけ"効率の良い"パラメータを使えて いるかがわかる

15.

取り組むタスク 2つの分類タスク • • ImageNet • 約1400万枚の画像, 1000クラス • 単一ラベル JFT • googleの社内専用大規模画像分類データセット • 3.5億枚以上の画像, 17000クラス • マルチラベル (1つの画像に複数のラベル) • 評価は JFT内のFastEval14kで行った • • 14000枚の画像, 6000クラス • 1ラベルあたり平均36.5枚 評価方法: MAP@100 • 予想したラベル上位100個のうち当たったラベル数の平均

16.

optimizationの構成 Xception と Inception V3 で同じoptimizationの構成を用いた ※ optimizationの構成は Inception V3 でチューニングした 2つのタスクでそれぞれ異なるoptimizationの構成を用いた • • ImageNet • Optimizer: SGD • Momentum: 0.9 • Initial learning rate: 0.045 • Learning rate decay: 2epoch毎に0.94倍 JFT • Optimizer: RMSprop • Momentum: 0.9 • Initial learning rate: 0.001 • Learning rate decay: 300万サンプル毎に0.9倍

17.

正則化項の構成 • Weight decay • L2正則化 • 2つのタスクで同じWeight decay rateを用いた • Inception V3: 4e-5 (ImageNetで慎重にチューニング) • Xception: 1e-5 (大雑把にチューニング) • Dropout • Xception も Inception V3 も同じ割合 • ImageNet: 0.5 • JFT: 0 (常識的な実験時間範囲内ではoverfittingさせられない 程の大きさのデータセットだから)

18.

実験設備 どの実験も NVIDIA K80 GPU を60台使った • ImageNet • 1つの実験にそれぞれ3日 • JFT • 1つの実験にそれぞれ1ヶ月以上 • 完全には収束していない • 収束させるには3ヶ月以上かかるらしい

19.

結果 (ImageNet) Xception の方が Inception V3 より僅かに良い結果

20.

結果 (JFT) 全結合層なしと全結合層2層(1層あたり4096units)の 両方を試した → Xceptionのほうが 4.3% 良い結果 全結合層なし 全結合層2層

21.

結果 • JFTのほうはImageNetのときと比べて大差で Xceptionが勝っている • Inception V3 は ImageNetの分類タスクに最適化され たmodelだから? ImageNet JFT

22.

追加実験1 • Xception に residual connections は必要か • ImageNetで実験 → 入れたほうが良い

23.

追加実験2 • Xceptionの空間方向畳み込みとチャネル方向畳み込み の間に活性化関数は不要か • ImageNetで実験 dw → pw → ReLU ReLU ? → 空間方向畳み込みとチャネル方向畳み込みの間には活 性化関数は不要 (これはInception V3と真逆の結果)

24.

結論と展望 • 今回扱った2つの分類タスクでは、Xception は Inception V3 より優れた結果となった • 既存のInception modulesは簡単にXceptionに置き 換えることができる → 今後のCNNの層設計の基礎になると期待 • 普通の畳み込み層と Xception の間くらいのもの を試していないので今後実験する