>100 Views
June 21, 19
スライド概要
2019/06/21
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
DEEP LEARNING JP [DL Papers] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (ICML2019) Masashi Yokota, RESTAR Inc. http://deeplearning.jp/ 1
書誌情報 • 著者 – Mingxing Tan, Quoc V. Le – Google Researchのチーム – ICML2019 採択 • CNNの層数、チャネル数、解像度を単一のパラメータで最適 化する手法を提案 2
1. 背景 3
1. 背景 莫大なパラメータを持つネットワークは 数多く提案されている ハイパーパラメータ: 多 チューニングコスト: 大 Gpipe [Huang et. al. 2018]より引用 4
1.2. 現行の問題点(もう少し具体的に) ベースライン チャネル数 増加 層数 増加 解像度 増加 • 従来は層数、チャネル数、解像度をそれぞれ独立したパラメータ をチューニングしていた。 → 探索空間が広く、チューニングが大変 5
1.3. 提案手法の概要 単一パラメータφ のみ調整し、 3パラメータを バランスよく調整 • 筆者らの事前実験により各パラメータをバランスよく調整することが 重要だという考察から単一パラメータで層数、チャネル数、解像度を 複合的に調整することで、高精度・高効率なモデルの探索を容易にした。 6
2. 関連研究 7
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
2.2. 関連研究 (探索によるモデル構築) MnasNet: Platform-Aware Neural Architecture Search for Mobile [Tan et. al. CVPR2019] • モバイル端末用のモデルのネットワーク構造探索を強化学習 で行った研究。精度とモバイル端末のレイテンシ双方を考慮 した指標を提案し、それを報酬として強化学習を行うことで、 実行環境に最適なモデルを自動構築する。 9
2.3. 関連研究の問題点 • これらの手法は小さなモデルに適用されており、設計が複雑 で探索がより困難な巨大なモデルへどのように適用するかは 不明。 • 本論文では巨大なCNNにフォーカスし、モデル圧縮のように 大きなモデルを小さくするのではなく、モデルをscale upさ せることで、高精度・高効率なモデル探索を可能にしている。 10
3. 提案手法 Compound Model Scaling 11
3. 提案手法 1. 2. 3. 4. 問題の定式化 パラメータについて Compound Scaling アーキテクチャ探索 12
3.1. 問題の定式化 13
3.1.1. CNNの定式化 • i番目Conv層を以下のように定義: 𝑌𝑖 : 𝑖層の出力, 𝑋𝑖 : 𝑖層の入力, 𝐹𝑖 : 𝑖層の𝑜𝑝𝑒𝑟𝑎𝑡𝑖𝑜𝑛 • また、シンプルなk層のCNNは以下のように定義する: • ResNetのように一つのブロックが同じタイプのConv層を 複数持つことを考慮し、CNNを以下のように定義する: 𝐿 𝐹𝑖 𝑖 : 𝑖番目の𝑠𝑡𝑎𝑔𝑒で𝐹𝑖 を𝐿𝑖 回リピート 𝐻𝑖 : 𝑖番目の入力Height 𝑊𝑖 : 𝑖番目の入力𝑊𝑖𝑑𝑡ℎ 𝐶𝑖 : 𝑖番目の入力𝐶ℎ𝑎𝑛𝑛𝑒𝑙 14
3.1.2 問題の定式化 • 本研究では先の式にd,w,rを導入し以下の式を最適化する: 𝑑: Depth (層数), 𝑤: 𝑊𝑖𝑑𝑡ℎ(チャネル数), 𝑟: 𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 (解像度) 15
3.2. パラメータについて 16
3.2.1 Depth (d) • Depth(d): 層数 • dを増やすとモデルがよりリッチ な特徴量を取得できる一方で、 深すぎると勾配消失問題が起こ る。 • 左図では、dがある程度大きくな ると改善幅が頭打ちしているこ とがわかる 17
3.2.2. Width (w) • Width(w): チャネル数 • wを増やすと、よりfinegrainedな特徴量を獲得できる • 一方で、wに比べてネットワー クが浅いと高レベルな特徴量を 捉えられず、左図のようにwが ある程度大きくなると精度の改 善幅が小さくなってくる 18
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
3.2.4 各パラメータの予備実験から得られた考察 • モデルの層数や、チャンネル数、解像度の各パラメータを大 きくすると性能が向上するが、大きくするに従い改善幅は小 さくなっていく 20
3.3. Compound Scaling 21
3.3.1 Compound Scalingの予備実験 • 各パラメータすべてをチュー ニングしたときの性能を比較 • 各パラメータを上手く調整す ることで、少ないFLOPSで高 いパフォーマンスを出せる 各パラメータをバランスよく 調整することが重要 22
3.3.2 提案手法 Compound Scaling Method • 先の予備実験から、d,w,rをバランスよく増加させるために 共通のパラメータφを導入し、以下の式でd,w,rを決定する: メモ: CNNの式 • α,β,γはハイパーパラメータ。 の制限により、 FLOPSが2𝜙 で増加していくのでFLOPSを見積もりやすくし 23 ている
3.4. アーキテクチャ探索 24
3.4.1 アーキテクチャー探索の全体像 Step1: Step2: Step3: ベースモデル の探索 α,β,γの 探索 φの 探索 本論文では①ベースモデルを決定し、②α,β,γを探索し各パラメータ の重みを決め、③φのチューニングをすることで徐々にモデルのス ケールを上げている。それにより、できるだけ小さい探索空間でモ デル探索を可能にしている。 25
3.4.2. [Step1] ベースモデルのアーキテクチャ探索 • 本提案手法はベースモデルをscale upしていくためモデルは できるだけ筋が良いモデルである必要がある。 →MNasNetを用いて精度とFLOPS双方を実現できるモデル を構築する。この際に以下を報酬としてモデル探索を行う。 𝑚: モデル 𝑇: ターゲット𝐹𝐿𝑂𝑃𝑆 𝜔(=−0.07): ACCとFLOPSの バランスを取るハイパーパラメータ 26
3.4.3 [Step1] 探索によって得られたアーキテクチャ • squeeze-and-excitationを持つmobile inverted bottleneck MBConvをメインに構成されている18層CNN 27
3.4.4 [Step2-3] パラメータチューニング 1. α,β,γの探索: φ=1で固定し、α,β,γをグリッドサーチする ※ グリッドサーチしていているが、小さいCNNかつ 𝛼 ∙ 𝛽2 ∙ 𝛾 2 ≈ 2の制約があるので探索空間は小さい 2. φの探索: α,β,γを固定し、φのパラメータをチューニングする 28
4. 実験 29
4. 実験 1. compound scaling自体の有効性検証: 既存モデル(ResNet, MobileNet)にcompound scalingを用い てスケールアップ 2. EfficientNet + compound scalingの有効性検証: EfficientNetをImageNetで学習 3. 転移学習における有効性検証: EfficientNetの転移学習 30
4.1. compound scaling自体の有効性検証: 既存モデルのcompound scalingを用いたスケールアップ • MobileNet V1/2と ResNetをベースモデル とし、提案手法でス ケールアップする • ほぼ同程度のFLOPSで あってもcompound scalingさせる方が性能 が良い • 学習率等の実験条件は 不明 31
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
4.2. EfficientNet + compound scalingの有効性検証: EfficientNetをImageNetで学習 (実験結果) 33
4.2. EfficientNet + compound scalingの有効性検証: EfficientNetをImageNetで学習(FLOPSと精度の比較) 34
4.2. EfficientNet + compound scalingの有効性検証: EfficientNetをImageNetで学習 (Intel Xeon CPU E5-2690での推論速度比較) 35
4.3. 転移学習における有効性検証: EfficientNetの転移学習 • ImageNetで学習したモデルから以下のデータセットでそれ ぞれ転移学習を行う 36
4.3. 転移学習における有効性検証: EfficientNetの転移学習(実験結果 1/2) 37
4.3. 転移学習における有効性検証: EfficientNetの転移学習(実験結果 2/2) 38
5. Discussion 39
5. Discussion • Compound scaling自体がどれくらい有益か詳しく分析する 1. 単体パラメータチューニングとcompound scalingの性能比較 2. Class Activation Mapによる活性領域の可視化 3. 2.で可視化したモデルの性能比較 40
5.1. 単体パラメータチューニングとcompound scalingの性能 比較 • バランスよくパラメータをチューニングすることは、性能向 上に大きく寄与している 41
5.2. Class Activation Mapによる活性領域の可視化 • Compound scalingが最も上手く特徴量を取れていることが わかる 42
5.3. 可視化したモデルの性能比較 • 先で可視化したモデルの性能を比較。FLOPSが同等な一方で 精度は他より大きく改善されており、compound scalingは少 ないFLOPSでより良い性能のモデルが構築できている 43
まとめと感想 • CNNの層数、チャネル数、解像度を単一のパラメータφで チューニングする手法を提案 • 小さいモデルをMNasNetで構築し、3つのパラメータ (α,β,γ)をグリットサーチで探索。その後、3パラメータを 固定し、φのパラメータチューニングを行っている • 他手法よりも少ないパラメータ数、FLOPSで高性能を実現 • (感想)CNNを単一パラメータでチューニングできるのは感動。 予備実験からの考察も面白い。一方で思った以上にφチュー ニングに至るまでのプロセスが多いので改善の余地がありそ う。また、学習率等も一緒にチューニングできると面白そう。 44