[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

>100 Views

June 21, 19

スライド概要

2019/06/21
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

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

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP [DL Papers] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (ICML2019) Masashi Yokota, RESTAR Inc. http://deeplearning.jp/ 1

2.

書誌情報 • 著者 – Mingxing Tan, Quoc V. Le – Google Researchのチーム – ICML2019 採択 • CNNの層数、チャネル数、解像度を単一のパラメータで最適 化する手法を提案 2

3.

1. 背景 3

4.

1. 背景 莫大なパラメータを持つネットワークは 数多く提案されている ハイパーパラメータ: 多 チューニングコスト: 大 Gpipe [Huang et. al. 2018]より引用 4

5.

1.2. 現行の問題点(もう少し具体的に) ベースライン チャネル数 増加 層数 増加 解像度 増加 • 従来は層数、チャネル数、解像度をそれぞれ独立したパラメータ をチューニングしていた。 → 探索空間が広く、チューニングが大変 5

6.

1.3. 提案手法の概要 単一パラメータφ のみ調整し、 3パラメータを バランスよく調整 • 筆者らの事前実験により各パラメータをバランスよく調整することが 重要だという考察から単一パラメータで層数、チャネル数、解像度を 複合的に調整することで、高精度・高効率なモデルの探索を容易にした。 6

7.

2. 関連研究 7

8.

2.1. 関連研究 (枝切り・量子化等によるモデル圧縮) Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding [Han et. al. ICLR2016] • 大きなモデルをscale downしてモデルを効率化する。具体的には、 枝切り、量子化、ハフマン符号化を同時に行うことで精度を落と さずAlexNetとVGG-16をそれぞれ35倍、49倍圧縮した。 8

9.

2.2. 関連研究 (探索によるモデル構築) MnasNet: Platform-Aware Neural Architecture Search for Mobile [Tan et. al. CVPR2019] • モバイル端末用のモデルのネットワーク構造探索を強化学習 で行った研究。精度とモバイル端末のレイテンシ双方を考慮 した指標を提案し、それを報酬として強化学習を行うことで、 実行環境に最適なモデルを自動構築する。 9

10.

2.3. 関連研究の問題点 • これらの手法は小さなモデルに適用されており、設計が複雑 で探索がより困難な巨大なモデルへどのように適用するかは 不明。 • 本論文では巨大なCNNにフォーカスし、モデル圧縮のように 大きなモデルを小さくするのではなく、モデルをscale upさ せることで、高精度・高効率なモデル探索を可能にしている。 10

11.

3. 提案手法 Compound Model Scaling 11

12.

3. 提案手法 1. 2. 3. 4. 問題の定式化 パラメータについて Compound Scaling アーキテクチャ探索 12

13.

3.1. 問題の定式化 13

14.

3.1.1. CNNの定式化 • i番目Conv層を以下のように定義: 𝑌𝑖 : 𝑖層の出力, 𝑋𝑖 : 𝑖層の入力, 𝐹𝑖 : 𝑖層の𝑜𝑝𝑒𝑟𝑎𝑡𝑖𝑜𝑛 • また、シンプルなk層のCNNは以下のように定義する: • ResNetのように一つのブロックが同じタイプのConv層を 複数持つことを考慮し、CNNを以下のように定義する: 𝐿 𝐹𝑖 𝑖 : 𝑖番目の𝑠𝑡𝑎𝑔𝑒で𝐹𝑖 を𝐿𝑖 回リピート 𝐻𝑖 : 𝑖番目の入力Height 𝑊𝑖 : 𝑖番目の入力𝑊𝑖𝑑𝑡ℎ 𝐶𝑖 : 𝑖番目の入力𝐶ℎ𝑎𝑛𝑛𝑒𝑙 14

15.

3.1.2 問題の定式化 • 本研究では先の式にd,w,rを導入し以下の式を最適化する: 𝑑: Depth (層数), 𝑤: 𝑊𝑖𝑑𝑡ℎ(チャネル数), 𝑟: 𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 (解像度) 15

16.

3.2. パラメータについて 16

17.

3.2.1 Depth (d) • Depth(d): 層数 • dを増やすとモデルがよりリッチ な特徴量を取得できる一方で、 深すぎると勾配消失問題が起こ る。 • 左図では、dがある程度大きくな ると改善幅が頭打ちしているこ とがわかる 17

18.

3.2.2. Width (w) • Width(w): チャネル数 • wを増やすと、よりfinegrainedな特徴量を獲得できる • 一方で、wに比べてネットワー クが浅いと高レベルな特徴量を 捉えられず、左図のようにwが ある程度大きくなると精度の改 善幅が小さくなってくる 18

19.

3.2.3. Resolution (r) ※ r=1.0の時: 解像度224x224 r=2.5の時: 解像度560x560 • Resolution(r): 解像度 • 初期CNNのImageNet入力画像 解像度は224x224であり、そこ から480x480(ex. Gpipe [Huang et. al. 2018])まで大きくなって いる。それに比例し良い性能を 達成している。 • 一方で、rが大きくなるにつれ 多様な特徴量を獲得できるよう にモデルのパラメータ数も増や す必要がある。 19

20.

3.2.4 各パラメータの予備実験から得られた考察 • モデルの層数や、チャンネル数、解像度の各パラメータを大 きくすると性能が向上するが、大きくするに従い改善幅は小 さくなっていく 20

21.

3.3. Compound Scaling 21

22.

3.3.1 Compound Scalingの予備実験 • 各パラメータすべてをチュー ニングしたときの性能を比較 • 各パラメータを上手く調整す ることで、少ないFLOPSで高 いパフォーマンスを出せる 各パラメータをバランスよく 調整することが重要 22

23.

3.3.2 提案手法 Compound Scaling Method • 先の予備実験から、d,w,rをバランスよく増加させるために 共通のパラメータφを導入し、以下の式でd,w,rを決定する: メモ: CNNの式 • α,β,γはハイパーパラメータ。 の制限により、 FLOPSが2𝜙 で増加していくのでFLOPSを見積もりやすくし 23 ている

24.

3.4. アーキテクチャ探索 24

25.

3.4.1 アーキテクチャー探索の全体像 Step1: Step2: Step3: ベースモデル の探索 α,β,γの 探索 φの 探索 本論文では①ベースモデルを決定し、②α,β,γを探索し各パラメータ の重みを決め、③φのチューニングをすることで徐々にモデルのス ケールを上げている。それにより、できるだけ小さい探索空間でモ デル探索を可能にしている。 25

26.

3.4.2. [Step1] ベースモデルのアーキテクチャ探索 • 本提案手法はベースモデルをscale upしていくためモデルは できるだけ筋が良いモデルである必要がある。 →MNasNetを用いて精度とFLOPS双方を実現できるモデル を構築する。この際に以下を報酬としてモデル探索を行う。 𝑚: モデル 𝑇: ターゲット𝐹𝐿𝑂𝑃𝑆 𝜔(=−0.07): ACCとFLOPSの バランスを取るハイパーパラメータ 26

27.

3.4.3 [Step1] 探索によって得られたアーキテクチャ • squeeze-and-excitationを持つmobile inverted bottleneck MBConvをメインに構成されている18層CNN 27

28.

3.4.4 [Step2-3] パラメータチューニング 1. α,β,γの探索: φ=1で固定し、α,β,γをグリッドサーチする ※ グリッドサーチしていているが、小さいCNNかつ 𝛼 ∙ 𝛽2 ∙ 𝛾 2 ≈ 2の制約があるので探索空間は小さい 2. φの探索: α,β,γを固定し、φのパラメータをチューニングする 28

29.

4. 実験 29

30.

4. 実験 1. compound scaling自体の有効性検証: 既存モデル(ResNet, MobileNet)にcompound scalingを用い てスケールアップ 2. EfficientNet + compound scalingの有効性検証: EfficientNetをImageNetで学習 3. 転移学習における有効性検証: EfficientNetの転移学習 30

31.

4.1. compound scaling自体の有効性検証: 既存モデルのcompound scalingを用いたスケールアップ • MobileNet V1/2と ResNetをベースモデル とし、提案手法でス ケールアップする • ほぼ同程度のFLOPSで あってもcompound scalingさせる方が性能 が良い • 学習率等の実験条件は 不明 31

32.

4.2. EfficientNet + compound scalingの有効性検証: EfficientNetをImageNetで学習 • 実験条件: – Optimizer: RMSProp (decay: 0.9, momentum: 0.9) – Learning Rate: 0.256 (2.4epoch毎に0.97 decayしていく) – Dropout Ratio: φの増加するに従って0.2から0.5へ段階的に上げる – その他: • • • • Weight decay: 1e-5 swish activation fixed AutoAugment policy stochastic depth (drop connect ratio: 0.2) 32

33.

4.2. EfficientNet + compound scalingの有効性検証: EfficientNetをImageNetで学習 (実験結果) 33

34.

4.2. EfficientNet + compound scalingの有効性検証: EfficientNetをImageNetで学習(FLOPSと精度の比較) 34

35.

4.2. EfficientNet + compound scalingの有効性検証: EfficientNetをImageNetで学習 (Intel Xeon CPU E5-2690での推論速度比較) 35

36.

4.3. 転移学習における有効性検証: EfficientNetの転移学習 • ImageNetで学習したモデルから以下のデータセットでそれ ぞれ転移学習を行う 36

37.

4.3. 転移学習における有効性検証: EfficientNetの転移学習(実験結果 1/2) 37

38.

4.3. 転移学習における有効性検証: EfficientNetの転移学習(実験結果 2/2) 38

39.

5. Discussion 39

40.

5. Discussion • Compound scaling自体がどれくらい有益か詳しく分析する 1. 単体パラメータチューニングとcompound scalingの性能比較 2. Class Activation Mapによる活性領域の可視化 3. 2.で可視化したモデルの性能比較 40

41.

5.1. 単体パラメータチューニングとcompound scalingの性能 比較 • バランスよくパラメータをチューニングすることは、性能向 上に大きく寄与している 41

42.

5.2. Class Activation Mapによる活性領域の可視化 • Compound scalingが最も上手く特徴量を取れていることが わかる 42

43.

5.3. 可視化したモデルの性能比較 • 先で可視化したモデルの性能を比較。FLOPSが同等な一方で 精度は他より大きく改善されており、compound scalingは少 ないFLOPSでより良い性能のモデルが構築できている 43

44.

まとめと感想 • CNNの層数、チャネル数、解像度を単一のパラメータφで チューニングする手法を提案 • 小さいモデルをMNasNetで構築し、3つのパラメータ (α,β,γ)をグリットサーチで探索。その後、3パラメータを 固定し、φのパラメータチューニングを行っている • 他手法よりも少ないパラメータ数、FLOPSで高性能を実現 • (感想)CNNを単一パラメータでチューニングできるのは感動。 予備実験からの考察も面白い。一方で思った以上にφチュー ニングに至るまでのプロセスが多いので改善の余地がありそ う。また、学習率等も一緒にチューニングできると面白そう。 44