SlideShare une entreprise Scribd logo
1  sur  37
© DeNA Co., Ltd.
論文紹介
Efficient Neural
Architecture Search via
Parameters Sharing
ICML2018読み会
July 28, 2018
Tomohiro Kato
AI System Dept.
DeNA Co., Ltd.
© DeNA Co., Ltd.
本資料について
 本資料は ICML2018読み会@DeNA (2018/07/28) の発表資料です
⁃ https://connpass.com/event/92705/
2
© DeNA Co., Ltd.
Agenda
 はじめに
 Neural Architechture Searchの概要
 論文紹介
 まとめ・所感
3
© DeNA Co., Ltd.
自己紹介
 加藤 倫弘 (かとう ともひろ)
 ㈱ DeNA システム本部 AIシステム部
 Computer Vision関連のプロジェクトを担当
 最近書いた(link)
 Chainer → NNVM/TVM → Androidの話
 NN DistillerでPytorchモデルのpruningする
 DeepLearningのモデル軽量化 (ICLR2018)
4
@_tkato_Twitter
© DeNA Co., Ltd.
はじめに
 Efficient Neural Architecture Search via Parameters Sharing(ENAS)[1]
Hieu Pham Melody Guan Barret Zoph Quoc Le Jeff Dean
⁃ 1000x less expensive than standard Neural Architecture Search
⁃ 450 GPUs for 3~4 days → 1 GPU for <16 hours
 論文の選択理由
⁃ 現実的な時間で実験可能なNAS
• 自分のタスクでも試してみたい
⁃ 著者らの公式実装(TensorFlow)に惹かれた
• ポイントであるParameters Sharingの実装が面白い
• 実際に実装を解読して深く理解したい → Chainerで再現実装
5
© DeNA Co., Ltd.
Neural Architecture Search
 目的に最適なモデルアーキテクチャを自動設計したい
 強化学習(RL)ベース[1,3,4]、進化的計算(GA)ベース、Progressive Search[5]など
 課題1:報酬計算のために、大量の候補モデル (child) の学習が必要で遅い
⁃ 精度推定用のモデルを使う
⁃ 候補モデルのweightを共有する(ENAS, DARTS[2])
 課題2:探索空間が膨大
⁃ 選択候補をあらかじめhandcraftしたり、モデルの一部を探索+繰り返し構造(NASNet[4])
6
評価(精度、計算量、実行速度...)選択
探索空間
(レイヤー種別, パラメータ数...)
良いモデル
© DeNA Co., Ltd.
NAS family
7
NASNet[4] 1707.07012 CVPR2018
450GPU(P100) 3~4days
NAS[3] 1611.01578 ICLR2017
800GPU(K40) 21~28days
PNAS[5] 1712.00559
100GPU(P100) 1.5days
ENAS[1] 1802.03268 ICML2018
1GPU(1080Ti) 0.45days
© DeNA Co., Ltd.
実験結果: CIFAR10
8ENAS[1]のTable.2 より NAS familyをplot
800GPU(K40) 21~28days
100GPU(P100) 1.5days
1GPU(1080Ti) 0.45days
450GPU(P100) 3~4days ★
© DeNA Co., Ltd.
実験結果: CIFAR10
 1 GPUで 0.45日
 精度はNASNet-A + CutOut
よりやや劣る(- 0.34%)
⁃ 探索空間の大きさ?
9from Table.2 [1]
K40
1080Ti
1080Ti
P100
P100
© DeNA Co., Ltd.
ENASの基本設計
10
Child
Controller
1 2 3 4
※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4])
※2 論文では定義されていないが、説明のため本スライドで定義
交互に出力(softmax)
・ノードの入力となるindex
・ノードのOp種
探索空間はhandcrafted
タスクによりメタなアーキテクチャ※2を決める
from [1]
※1
© DeNA Co., Ltd.
ENASの基本設計
11
Child
Controller
1 2 3 4
交互に出力(softmax)
・ノードの入力となるindex
・ノードのOp種
from [1]
※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4])
※2 論文では定義されていないが、説明のため本スライドで定義
探索空間はhandcrafted
タスクによりメタなアーキテクチャ※2を決める
※1
© DeNA Co., Ltd.
ENASの基本設計
12
Child
Controller
1 2 3 4
交互に出力(softmax)
・ノードの入力となるindex
・ノードのOp種
from [1]
※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4])
※2 論文では定義されていないが、説明のため本スライドで定義
探索空間はhandcrafted
タスクによりメタなアーキテクチャ※2を決める
※1
© DeNA Co., Ltd.
ENASの基本設計
13
Child
Controller
1 2 3 4
交互に出力(softmax)
・ノードの入力となるindex
・ノードのOp種
from [1]
※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4])
※2 論文では定義されていないが、説明のため本スライドで定義
探索空間はhandcrafted
タスクによりメタなアーキテクチャ※2を決める
※1
© DeNA Co., Ltd.
ENASの基本設計
14
Child
Controller
1 2 3 4
交互に出力(softmax)
・ノードの入力となるindex
・ノードのOp種
from [1]
※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4])
※2 論文では定義されていないが、説明のため本スライドで定義
探索空間はhandcrafted
タスクによりメタなアーキテクチャ※2を決める
※1
© DeNA Co., Ltd.
ENASの基本設計
15
Child
Controller
1 2 3 4
交互に出力(softmax)
・ノードの入力となるindex
・ノードのOp種
from [1]
※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4])
※2 論文では定義されていないが、説明のため本スライドで定義
探索空間はhandcrafted
タスクによりメタなアーキテクチャ※2を決める
※1
© DeNA Co., Ltd.
ENASの基本設計
16
Child
Controller
1 2 3 4
交互に出力(softmax)
・ノードの入力となるindex
・ノードのOp種
from [1]
※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4])
※2 論文では定義されていないが、説明のため本スライドで定義
探索空間はhandcrafted
タスクによりメタなアーキテクチャ※2を決める
※1
© DeNA Co., Ltd.
ENASの基本設計
 前記+2のメタアーキテクチャを定義
17
CNN micro search space
RNN cell
2種類のセルのstack
セル内部が探索対象
活性化関数と入力を推定
ControllerController
Child
Child
from [1]
LSTMやGRUのようなcellをつくりたい
© DeNA Co., Ltd.
ENAS key contribution
 探索空間を1つのDAGとして定義し、subgraphをchildとする
 child間でweight sharingするので、child毎にスクラッチ学習不要
18
接続するノードを都度controllerが決める
...
from [1]
© DeNA Co., Ltd.
ENAS training loop
 1-iteration毎にcontrollerからchildをサンプルして学習
⁃ controllerのweightは固定だが、確率的にactionを出力するので毎回異なる
⁃ 1つの大きなグラフの1部だけをforward/backwardする
⁃ controllerは、childのvalidation accuracyを最大化させるように強化学習
19
for epoch
for batch
controllerでchildを1つ出力
childを1iteration学習
controllerをn-iteration学習
探索後、一番精度が良いモデルをベースにスクラッチで学習
(weight sharing用の制約がなくなるのでメタアーキテクチャを若干変える)
© DeNA Co., Ltd.
CNN micro serach space
 Cellのスタックとしてモデルを設計しCell内をControllerで決める(NASNet[4])
 macro search spaceより高精度
20
各セルはレイヤー間ではアーキテクチャ同一
ただしWeightはそれぞれ独立
ChildController
from [1]
© DeNA Co., Ltd.
CNN micro serach space: Childの階層
21
Layer
Cell
Node
Op
add
sep
3x3
sep
5x5
max
3x3
avg
3x3
id
concat
gather
※ 説明のため、一連の論文/実装とは厳密には異なる定義がありますfrom [1]
© DeNA Co., Ltd.
Cell
 Conv CellとReduction Cellを定義(NASNet[3])
22
Op種: sep3x3, sep5x5, max3x3, avg3x3, id
接続ルール
• add(op1, op2)を5つconcatする
• 各Opの入力は
• 自Opより前のOp出力
• 2個前までのレイヤーの出力
Conv/Reductionは基本同じ構成
ただしReductionは
• Cell入力前にstride2でdownsampling
• 同時に出力チャネル数を2倍にする
from [1]
© DeNA Co., Ltd.
23
h[t-1] h[t]
conv
1x1
concat
Cell
W0 W1 W2 W3 W4
Nodeの入出力のI/F (=NCHW) は基本同じだが、
チャネル数が異なる場合はconv1x1でI/Fをあわせる
入力毎にWeightが独立
入力に応じて選択
※h[t],h[t-1]から各nodeへの入力は本来4本あるが、簡略化のため省略
※
接続しうる全てのエッジを表示
この中からcontrollerで選択
© DeNA Co., Ltd.
24
h[t-1] h[t]
conv
1x1
concat
Cell
W0 W1 W2 W3 W4
Nodeの入出力のI/F (=NCHW) は基本同じだが、
チャネル数が異なる場合はconv1x1でI/Fをあわせる
入力毎にWeightが独立
入力に応じて選択
© DeNA Co., Ltd.
25
h[t-1] h[t]
conv
1x1
concat
Cell
W0 W1 W2 W3 W4
Nodeの入出力のI/F (=NCHW) は基本同じだが、
チャネル数が異なる場合はconv1x1でI/Fをあわせる
入力毎にWeightが独立
入力に応じて選択
© DeNA Co., Ltd.
26
h[t-1] h[t]
conv
1x1
concat
Cell
W0 W1 W2 W3 W4
Nodeの入出力のI/F (=NCHW) は基本同じだが、
チャネル数が異なる場合はconv1x1でI/Fをあわせる
入力毎にWeightが独立
入力に応じて選択
© DeNA Co., Ltd.
Node, Op
27
sep
3x3
sep
5x5
max
3x3
avg
3x3
id
concat
gather
C ch
5*C ch
C ch
 5種類のOpを事前に定義し、Controllerに 1つだけ 選択させる
Op2
Add
Op1
separable conv pooling 何もしない
NASNet[4]では
sep7x7, conv1x3など
12種のバリエーションがあった
© DeNA Co., Ltd.
Opの実装: sep3x3
28
c*h*w
5c*h*w
c*h*w
pw
1x1
dw
3x3
W0 W1 W2
W0 W1 W2
W0 W1 W2
bn
relu
h0 h1 h2
h5
※1
sep
3x3
入力に応じてWeightを切り替える
(予め、入力しうる数のWeightを持っておく)
※2
※1 同様にseparable convを繰りかえす
※2 dwとpwの間にrelu-bnはなし(NASNet[4])
© DeNA Co., Ltd.
Opの実装: sep3x3
29
c*h*w
5c*h*w
c*h*w
pw
1x1
dw
3x3
W0 W1 W2
W0 W1 W2
W0 W1 W2
bn
relu
h0 h1 h2
h5
※1
sep
3x3
※1 同様にseparable convを繰りかえす
※2 dwとpwの間にrelu-bnはなし(NASNet[4])
入力に応じてWeightを切り替える
(予め、入力しうる数のWeightを持っておく)
※2
© DeNA Co., Ltd.
Opの実装: sep3x3
30
c*h*w
5c*h*w
c*h*w
pw
1x1
dw
3x3
W0 W1 W2
W0 W1 W2
W0 W1 W2
bn
relu
h0 h1 h2
h5
※1
sep
3x3
入力に応じてWeightを切り替える
(予め、入力しうる数のWeightを持っておく)
※2
※1 同様にseparable convを繰りかえす
※2 dwとpwの間にrelu-bnはなし(NASNet[4])
© DeNA Co., Ltd.
Child全体
31
展開すると意外と大きい
メタアーキテクチャとして必要な命令が多い
(I/Fをあわせたり, downsamplingしたり)
DAG全体のパラメータ数は5.3M (ResNet-50の1/5)
childのパラメータ数は4.6M (from [1] Table.2)
3x3 or 5x5 の depthwise-conv と 1x1convがメイン
1-Childを全て書くと... (DAG全体でないので注意)
※Chainerによる実装
(Functionのみ表示)
from [1]
© DeNA Co., Ltd.
controller
 あるOpの前のindexとOp種を、2つずつ交互に出力
⁃ 出力は決定的でなく確率的(uniform distribution)
⁃ sep3x3, sep5x5が出力されやすいようにバイアスの初期値を調整
32
外部入力なし。自身の埋め込みベクトルが最初の入力
from [1]
© DeNA Co., Ltd.
実験条件(ENAS固有のもの)
 Child
⁃ Momentum SGD with Nesterov (learning rateはcosine scheduling)
⁃ 1 iteration毎にchildを変えながら学習
⁃ 精度向上のため、auxiliary head も lossに追加 (勾配増強、正則化の効果)
⁃ 探索後のスクラッチ学習ではScheduledDropPath (NASNet[4])
 Controller
⁃ Adam / REINFORCE with baseline
⁃ rewardは valデータのランダムな1バッチのaccuracy (高速化)
33
© DeNA Co., Ltd.
実験結果: CNN micro architecture CIFAR10
 著者公開実装を利用した再試 https://github.com/melodyguan/enas
⁃ ./scripts/cifar10_micro_{serach or final}.sh を変更せず実行
 architecture search時の学習曲線
34
child train loss child val/test acc controller reward
lr
search後のスクラッチ学習では test accuracy: 96.22% (err 3.78% <= 論文はerr 3.54%)
subgraphを切り替えながら学習しているのに
lossがきれいに落ちていくのは興味深い
© DeNA Co., Ltd.
まとめと所感
 Efficient Neural Architecture Search via Parameters Sharing(ENAS)
⁃ 1000x less expensive than standard Neural Architecture Search
⁃ 1つの計算グラフの一部をchildとして学習させる
⁃ Weight Sharingして学習するために、Weightの切り替えなど複雑なグラフ
 所感
⁃ Chainerの再現実装(CNN micro search)を後日公開予定
35
© DeNA Co., Ltd.
Reference
1. Hieu Pham. 2018. Efficient Neural Architecture Search via Parameters Sharing. ICML2018
⁃ http://proceedings.mlr.press/v80/pham18a.html https://github.com/melodyguan/enas
2. Hanxiao Liu. 2018. DARTS: Differentiable Architecture Search. arXiv:1806.09055
⁃ https://arxiv.org/abs/1806.09055 https://github.com/quark0/darts
3. Barret Zoph. Neural Architecture Search with Reinforcement Learning. ICML2017
⁃ https://arxiv.org/abs/1611.01578
4. Barret Zoph. Learning Transferable Architectures for Scalable Image Recognition. CVPR2018
⁃ https://arxiv.org/abs/1707.07012
⁃ https://github.com/tensorflow/models/tree/master/research/slim/nets/nasnet
5. C. Liu. Progressive Neural Architecture Search. arXiv:1712.00559
⁃ https://arxiv.org/abs/1712.00559
36
© DeNA Co., Ltd.
37
EOF

Contenu connexe

Tendances

Tendances (20)

Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
 
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
 
モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
 
【DL輪読会】Generative models for molecular discovery: Recent advances and challenges
【DL輪読会】Generative models for molecular discovery: Recent advances and challenges【DL輪読会】Generative models for molecular discovery: Recent advances and challenges
【DL輪読会】Generative models for molecular discovery: Recent advances and challenges
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
Deep sets
Deep setsDeep sets
Deep sets
 
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)
 
Tensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャTensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャ
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
 
「世界モデル」と関連研究について
「世界モデル」と関連研究について「世界モデル」と関連研究について
「世界モデル」と関連研究について
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
【DL輪読会】HexPlaneとK-Planes
【DL輪読会】HexPlaneとK-Planes【DL輪読会】HexPlaneとK-Planes
【DL輪読会】HexPlaneとK-Planes
 
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
 
【DL輪読会】A Path Towards Autonomous Machine Intelligence
【DL輪読会】A Path Towards Autonomous Machine Intelligence【DL輪読会】A Path Towards Autonomous Machine Intelligence
【DL輪読会】A Path Towards Autonomous Machine Intelligence
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
 
AlphaGoのしくみ
AlphaGoのしくみAlphaGoのしくみ
AlphaGoのしくみ
 
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
 

Similaire à Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会

Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
Yasuhiro Arai
 

Similaire à Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会 (20)

「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
 
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes1.9でWindowsコンテナーをクラスタ化Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes1.9でWindowsコンテナーをクラスタ化
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
 
HDFS Deep Dive
HDFS Deep DiveHDFS Deep Dive
HDFS Deep Dive
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
 
Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
OSC2011 Tokyo/Fall JOSUG
OSC2011 Tokyo/Fall JOSUGOSC2011 Tokyo/Fall JOSUG
OSC2011 Tokyo/Fall JOSUG
 
[DL輪読会]Pervasive Attention: 2D Convolutional Neural Networks for Sequence-to-...
[DL輪読会]Pervasive Attention: 2D Convolutional Neural Networks for Sequence-to-...[DL輪読会]Pervasive Attention: 2D Convolutional Neural Networks for Sequence-to-...
[DL輪読会]Pervasive Attention: 2D Convolutional Neural Networks for Sequence-to-...
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
 
OSSを活用したIaCの実現
OSSを活用したIaCの実現OSSを活用したIaCの実現
OSSを活用したIaCの実現
 
NetBackup AIR CLI
NetBackup AIR CLINetBackup AIR CLI
NetBackup AIR CLI
 
OpenStack Updates
OpenStack UpdatesOpenStack Updates
OpenStack Updates
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
 
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
 

Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会

  • 1. © DeNA Co., Ltd. 論文紹介 Efficient Neural Architecture Search via Parameters Sharing ICML2018読み会 July 28, 2018 Tomohiro Kato AI System Dept. DeNA Co., Ltd.
  • 2. © DeNA Co., Ltd. 本資料について  本資料は ICML2018読み会@DeNA (2018/07/28) の発表資料です ⁃ https://connpass.com/event/92705/ 2
  • 3. © DeNA Co., Ltd. Agenda  はじめに  Neural Architechture Searchの概要  論文紹介  まとめ・所感 3
  • 4. © DeNA Co., Ltd. 自己紹介  加藤 倫弘 (かとう ともひろ)  ㈱ DeNA システム本部 AIシステム部  Computer Vision関連のプロジェクトを担当  最近書いた(link)  Chainer → NNVM/TVM → Androidの話  NN DistillerでPytorchモデルのpruningする  DeepLearningのモデル軽量化 (ICLR2018) 4 @_tkato_Twitter
  • 5. © DeNA Co., Ltd. はじめに  Efficient Neural Architecture Search via Parameters Sharing(ENAS)[1] Hieu Pham Melody Guan Barret Zoph Quoc Le Jeff Dean ⁃ 1000x less expensive than standard Neural Architecture Search ⁃ 450 GPUs for 3~4 days → 1 GPU for <16 hours  論文の選択理由 ⁃ 現実的な時間で実験可能なNAS • 自分のタスクでも試してみたい ⁃ 著者らの公式実装(TensorFlow)に惹かれた • ポイントであるParameters Sharingの実装が面白い • 実際に実装を解読して深く理解したい → Chainerで再現実装 5
  • 6. © DeNA Co., Ltd. Neural Architecture Search  目的に最適なモデルアーキテクチャを自動設計したい  強化学習(RL)ベース[1,3,4]、進化的計算(GA)ベース、Progressive Search[5]など  課題1:報酬計算のために、大量の候補モデル (child) の学習が必要で遅い ⁃ 精度推定用のモデルを使う ⁃ 候補モデルのweightを共有する(ENAS, DARTS[2])  課題2:探索空間が膨大 ⁃ 選択候補をあらかじめhandcraftしたり、モデルの一部を探索+繰り返し構造(NASNet[4]) 6 評価(精度、計算量、実行速度...)選択 探索空間 (レイヤー種別, パラメータ数...) 良いモデル
  • 7. © DeNA Co., Ltd. NAS family 7 NASNet[4] 1707.07012 CVPR2018 450GPU(P100) 3~4days NAS[3] 1611.01578 ICLR2017 800GPU(K40) 21~28days PNAS[5] 1712.00559 100GPU(P100) 1.5days ENAS[1] 1802.03268 ICML2018 1GPU(1080Ti) 0.45days
  • 8. © DeNA Co., Ltd. 実験結果: CIFAR10 8ENAS[1]のTable.2 より NAS familyをplot 800GPU(K40) 21~28days 100GPU(P100) 1.5days 1GPU(1080Ti) 0.45days 450GPU(P100) 3~4days ★
  • 9. © DeNA Co., Ltd. 実験結果: CIFAR10  1 GPUで 0.45日  精度はNASNet-A + CutOut よりやや劣る(- 0.34%) ⁃ 探索空間の大きさ? 9from Table.2 [1] K40 1080Ti 1080Ti P100 P100
  • 10. © DeNA Co., Ltd. ENASの基本設計 10 Child Controller 1 2 3 4 ※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4]) ※2 論文では定義されていないが、説明のため本スライドで定義 交互に出力(softmax) ・ノードの入力となるindex ・ノードのOp種 探索空間はhandcrafted タスクによりメタなアーキテクチャ※2を決める from [1] ※1
  • 11. © DeNA Co., Ltd. ENASの基本設計 11 Child Controller 1 2 3 4 交互に出力(softmax) ・ノードの入力となるindex ・ノードのOp種 from [1] ※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4]) ※2 論文では定義されていないが、説明のため本スライドで定義 探索空間はhandcrafted タスクによりメタなアーキテクチャ※2を決める ※1
  • 12. © DeNA Co., Ltd. ENASの基本設計 12 Child Controller 1 2 3 4 交互に出力(softmax) ・ノードの入力となるindex ・ノードのOp種 from [1] ※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4]) ※2 論文では定義されていないが、説明のため本スライドで定義 探索空間はhandcrafted タスクによりメタなアーキテクチャ※2を決める ※1
  • 13. © DeNA Co., Ltd. ENASの基本設計 13 Child Controller 1 2 3 4 交互に出力(softmax) ・ノードの入力となるindex ・ノードのOp種 from [1] ※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4]) ※2 論文では定義されていないが、説明のため本スライドで定義 探索空間はhandcrafted タスクによりメタなアーキテクチャ※2を決める ※1
  • 14. © DeNA Co., Ltd. ENASの基本設計 14 Child Controller 1 2 3 4 交互に出力(softmax) ・ノードの入力となるindex ・ノードのOp種 from [1] ※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4]) ※2 論文では定義されていないが、説明のため本スライドで定義 探索空間はhandcrafted タスクによりメタなアーキテクチャ※2を決める ※1
  • 15. © DeNA Co., Ltd. ENASの基本設計 15 Child Controller 1 2 3 4 交互に出力(softmax) ・ノードの入力となるindex ・ノードのOp種 from [1] ※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4]) ※2 論文では定義されていないが、説明のため本スライドで定義 探索空間はhandcrafted タスクによりメタなアーキテクチャ※2を決める ※1
  • 16. © DeNA Co., Ltd. ENASの基本設計 16 Child Controller 1 2 3 4 交互に出力(softmax) ・ノードの入力となるindex ・ノードのOp種 from [1] ※1 B.Zoph氏らの強化学習ベースのNASは基本同じ(NAS[3], NASNet[4]) ※2 論文では定義されていないが、説明のため本スライドで定義 探索空間はhandcrafted タスクによりメタなアーキテクチャ※2を決める ※1
  • 17. © DeNA Co., Ltd. ENASの基本設計  前記+2のメタアーキテクチャを定義 17 CNN micro search space RNN cell 2種類のセルのstack セル内部が探索対象 活性化関数と入力を推定 ControllerController Child Child from [1] LSTMやGRUのようなcellをつくりたい
  • 18. © DeNA Co., Ltd. ENAS key contribution  探索空間を1つのDAGとして定義し、subgraphをchildとする  child間でweight sharingするので、child毎にスクラッチ学習不要 18 接続するノードを都度controllerが決める ... from [1]
  • 19. © DeNA Co., Ltd. ENAS training loop  1-iteration毎にcontrollerからchildをサンプルして学習 ⁃ controllerのweightは固定だが、確率的にactionを出力するので毎回異なる ⁃ 1つの大きなグラフの1部だけをforward/backwardする ⁃ controllerは、childのvalidation accuracyを最大化させるように強化学習 19 for epoch for batch controllerでchildを1つ出力 childを1iteration学習 controllerをn-iteration学習 探索後、一番精度が良いモデルをベースにスクラッチで学習 (weight sharing用の制約がなくなるのでメタアーキテクチャを若干変える)
  • 20. © DeNA Co., Ltd. CNN micro serach space  Cellのスタックとしてモデルを設計しCell内をControllerで決める(NASNet[4])  macro search spaceより高精度 20 各セルはレイヤー間ではアーキテクチャ同一 ただしWeightはそれぞれ独立 ChildController from [1]
  • 21. © DeNA Co., Ltd. CNN micro serach space: Childの階層 21 Layer Cell Node Op add sep 3x3 sep 5x5 max 3x3 avg 3x3 id concat gather ※ 説明のため、一連の論文/実装とは厳密には異なる定義がありますfrom [1]
  • 22. © DeNA Co., Ltd. Cell  Conv CellとReduction Cellを定義(NASNet[3]) 22 Op種: sep3x3, sep5x5, max3x3, avg3x3, id 接続ルール • add(op1, op2)を5つconcatする • 各Opの入力は • 自Opより前のOp出力 • 2個前までのレイヤーの出力 Conv/Reductionは基本同じ構成 ただしReductionは • Cell入力前にstride2でdownsampling • 同時に出力チャネル数を2倍にする from [1]
  • 23. © DeNA Co., Ltd. 23 h[t-1] h[t] conv 1x1 concat Cell W0 W1 W2 W3 W4 Nodeの入出力のI/F (=NCHW) は基本同じだが、 チャネル数が異なる場合はconv1x1でI/Fをあわせる 入力毎にWeightが独立 入力に応じて選択 ※h[t],h[t-1]から各nodeへの入力は本来4本あるが、簡略化のため省略 ※ 接続しうる全てのエッジを表示 この中からcontrollerで選択
  • 24. © DeNA Co., Ltd. 24 h[t-1] h[t] conv 1x1 concat Cell W0 W1 W2 W3 W4 Nodeの入出力のI/F (=NCHW) は基本同じだが、 チャネル数が異なる場合はconv1x1でI/Fをあわせる 入力毎にWeightが独立 入力に応じて選択
  • 25. © DeNA Co., Ltd. 25 h[t-1] h[t] conv 1x1 concat Cell W0 W1 W2 W3 W4 Nodeの入出力のI/F (=NCHW) は基本同じだが、 チャネル数が異なる場合はconv1x1でI/Fをあわせる 入力毎にWeightが独立 入力に応じて選択
  • 26. © DeNA Co., Ltd. 26 h[t-1] h[t] conv 1x1 concat Cell W0 W1 W2 W3 W4 Nodeの入出力のI/F (=NCHW) は基本同じだが、 チャネル数が異なる場合はconv1x1でI/Fをあわせる 入力毎にWeightが独立 入力に応じて選択
  • 27. © DeNA Co., Ltd. Node, Op 27 sep 3x3 sep 5x5 max 3x3 avg 3x3 id concat gather C ch 5*C ch C ch  5種類のOpを事前に定義し、Controllerに 1つだけ 選択させる Op2 Add Op1 separable conv pooling 何もしない NASNet[4]では sep7x7, conv1x3など 12種のバリエーションがあった
  • 28. © DeNA Co., Ltd. Opの実装: sep3x3 28 c*h*w 5c*h*w c*h*w pw 1x1 dw 3x3 W0 W1 W2 W0 W1 W2 W0 W1 W2 bn relu h0 h1 h2 h5 ※1 sep 3x3 入力に応じてWeightを切り替える (予め、入力しうる数のWeightを持っておく) ※2 ※1 同様にseparable convを繰りかえす ※2 dwとpwの間にrelu-bnはなし(NASNet[4])
  • 29. © DeNA Co., Ltd. Opの実装: sep3x3 29 c*h*w 5c*h*w c*h*w pw 1x1 dw 3x3 W0 W1 W2 W0 W1 W2 W0 W1 W2 bn relu h0 h1 h2 h5 ※1 sep 3x3 ※1 同様にseparable convを繰りかえす ※2 dwとpwの間にrelu-bnはなし(NASNet[4]) 入力に応じてWeightを切り替える (予め、入力しうる数のWeightを持っておく) ※2
  • 30. © DeNA Co., Ltd. Opの実装: sep3x3 30 c*h*w 5c*h*w c*h*w pw 1x1 dw 3x3 W0 W1 W2 W0 W1 W2 W0 W1 W2 bn relu h0 h1 h2 h5 ※1 sep 3x3 入力に応じてWeightを切り替える (予め、入力しうる数のWeightを持っておく) ※2 ※1 同様にseparable convを繰りかえす ※2 dwとpwの間にrelu-bnはなし(NASNet[4])
  • 31. © DeNA Co., Ltd. Child全体 31 展開すると意外と大きい メタアーキテクチャとして必要な命令が多い (I/Fをあわせたり, downsamplingしたり) DAG全体のパラメータ数は5.3M (ResNet-50の1/5) childのパラメータ数は4.6M (from [1] Table.2) 3x3 or 5x5 の depthwise-conv と 1x1convがメイン 1-Childを全て書くと... (DAG全体でないので注意) ※Chainerによる実装 (Functionのみ表示) from [1]
  • 32. © DeNA Co., Ltd. controller  あるOpの前のindexとOp種を、2つずつ交互に出力 ⁃ 出力は決定的でなく確率的(uniform distribution) ⁃ sep3x3, sep5x5が出力されやすいようにバイアスの初期値を調整 32 外部入力なし。自身の埋め込みベクトルが最初の入力 from [1]
  • 33. © DeNA Co., Ltd. 実験条件(ENAS固有のもの)  Child ⁃ Momentum SGD with Nesterov (learning rateはcosine scheduling) ⁃ 1 iteration毎にchildを変えながら学習 ⁃ 精度向上のため、auxiliary head も lossに追加 (勾配増強、正則化の効果) ⁃ 探索後のスクラッチ学習ではScheduledDropPath (NASNet[4])  Controller ⁃ Adam / REINFORCE with baseline ⁃ rewardは valデータのランダムな1バッチのaccuracy (高速化) 33
  • 34. © DeNA Co., Ltd. 実験結果: CNN micro architecture CIFAR10  著者公開実装を利用した再試 https://github.com/melodyguan/enas ⁃ ./scripts/cifar10_micro_{serach or final}.sh を変更せず実行  architecture search時の学習曲線 34 child train loss child val/test acc controller reward lr search後のスクラッチ学習では test accuracy: 96.22% (err 3.78% <= 論文はerr 3.54%) subgraphを切り替えながら学習しているのに lossがきれいに落ちていくのは興味深い
  • 35. © DeNA Co., Ltd. まとめと所感  Efficient Neural Architecture Search via Parameters Sharing(ENAS) ⁃ 1000x less expensive than standard Neural Architecture Search ⁃ 1つの計算グラフの一部をchildとして学習させる ⁃ Weight Sharingして学習するために、Weightの切り替えなど複雑なグラフ  所感 ⁃ Chainerの再現実装(CNN micro search)を後日公開予定 35
  • 36. © DeNA Co., Ltd. Reference 1. Hieu Pham. 2018. Efficient Neural Architecture Search via Parameters Sharing. ICML2018 ⁃ http://proceedings.mlr.press/v80/pham18a.html https://github.com/melodyguan/enas 2. Hanxiao Liu. 2018. DARTS: Differentiable Architecture Search. arXiv:1806.09055 ⁃ https://arxiv.org/abs/1806.09055 https://github.com/quark0/darts 3. Barret Zoph. Neural Architecture Search with Reinforcement Learning. ICML2017 ⁃ https://arxiv.org/abs/1611.01578 4. Barret Zoph. Learning Transferable Architectures for Scalable Image Recognition. CVPR2018 ⁃ https://arxiv.org/abs/1707.07012 ⁃ https://github.com/tensorflow/models/tree/master/research/slim/nets/nasnet 5. C. Liu. Progressive Neural Architecture Search. arXiv:1712.00559 ⁃ https://arxiv.org/abs/1712.00559 36
  • 37. © DeNA Co., Ltd. 37 EOF

Notes de l'éditeur

  1. 各childは50epoch x 12800 childとか
  2. RNNは、LSTMのようなセルを生成するということ
  3. NASNet-A? から。
  4. varianceをへらすためのbaseline async データ拡張 henormal