狠狠撸
Submit Search
Efficient Neural Architecture Searchvia Parameter Sharing
?
2 likes
?
1,115 views
T
Taichi Itoh
Follow
论文绍介
Read less
Read more
1 of 24
Download now
Downloaded 18 times
More Related Content
Efficient Neural Architecture Searchvia Parameter Sharing
1.
Efficient Neural Architecture
Search via Parameter Sharing 2018/07/05 NN論文を肴に酒を飲む会 #6 伊藤 多一
2.
自己紹介 ? 名前 ? 伊藤
多一(いとう たいち) ? 仕事 ? 1998~2004:ポスドク@韓国(理論物理) ? 2004~2013:(株)アイズファクトリーでデータ分析 ? 2013~ 現在:(株)ブレインパッドでデータ分析?研究開発 ? 最近気になっている分野 ? 強化学習 ? 量子コンピュータ ? 株価
3.
論文について Efficient Neural Architecture
Search via Parameter Sharing Authors: Hieu Pham(Google Brain, Carnegie Mellon Univ.) Melody Y. Guan (Stanford Univ.) Barret Zoph, Quoc V. Le, Jeff Dean (Google Brain) arxiv: https://arxiv.org/abs/1802.03268 github: https://github.com/melodyguan/enas ?著者の一人Melody Y. Guan氏によるTensorFlow実装(Python2系)
4.
動機?目的 ? AutoMLを案件で使いたい ? モデル構築を一から始める手間をなくしたい ?
チューニングの手間をなくしたい ? 強化学習の理解を深めたい ? 方策勾配法を具体的に理解したい(方策、報酬とは) ? LSTMコントローラーとしての用途 ? 離散自由度の選択(最適化問題) ? 時系列での行動決定(会話、レコメンド) ? GANとの関連性 ? 系列データの生成モデル(言語、音楽)※SeqGAN
5.
0. 概要 ? 既存のNAS(Neural
Architecture Search)に?べて、計算コストが格段に 少なくて処理が速い新アルゴリズム(ENAS)を提唱 ? 基本的アイデアは、アーキテクチャ探索の各ステップで現れる候補モデル間で ネットワーク重みを共有すること ? 候補モデルごとにネットワーク重みが収束するまで学習しないで済むから、 計算コストが?幅に削減できる(GPU時間で既存手法の1000分の1) ? アーキテクチャを探索するコントローラは、?策勾配法を使って期待報酬を 最?化する部分グラフを選ぶよう学習する ? 著者の一人は、Jeff Dean(MapReduce, TensorFlowの開発者)
6.
1. 導入 ? NASの解説 ?
ニューラルネットワークのアーキテクチャを?動で探索する?法(AutoMLの一つ) ? 画像分類と言語モデルのアーキテクチャ探索に上手く適用できた ? NASのアルゴリズム ? RNNによるコントローラを使って、候補アーキテクチャ(child model)を抽出 ? child model を重みが収束するまで学習してその性能を評価する ? その性能指標を guiding signal として、より良いアーキテクチャを抽出するよう RNNコントローラを学習する ? 以上を繰り返す ? NASの課題: ? 計算コストが?く、処理時間も?い(450個のGPU使って3-4?間かかる) ? 性能評価にしか使わない child model を収束するまで学習してしまうのがボトルネック
7.
1. 導入 ? ENAS(Efficient
NAS) ? NASの効率(efficiency)を改善する手法として ? すべての child models がネット―ワーク重みを共有するよう強制する ? この共有により、child model を収束するまで学習する無駄を回避 ? 転移学習の前例から、特定のタスクのために特定のモデルで学習されたネットワーク重 みが、他タスクのため他モデルにおいて、そのままか少しの修正で転用できることが分 かっている ? 異なる child models 間でネットワーク重みを共有しながら学習しても上手くいくと期 待できる ? 実験してみたら、重み共有によりNASのパフォーマンスが著しく向上した ? CIFAR-10 の画像分類(エラー率)NAS 2.65% ? ENAS 2.89%(同程度) ? Penn Treebank の言語モデル (パープレキシティ)NAS 62.4 ? ENAS 55.8(改善) ? 計算コスト(GPU-hours)NAS 1,350-1,800 ? ENAS 0.45(1000分の1に縮?)
8.
2. 方法 ? NASが探索する全てのネットワークグラフは、より?きなネットワークグラフの 部分グラフと?なせる ?
NASの探索空間を単?の有向?巡回グラフ(directed acyclic graph, DAG)で表現できる ? ENASのDAG = NASの探索空間にある全 child models を重ね合わせ ※ DAGの事例としては、ベイジアンネットワークや仮想通貨が挙げられる ? DAGの各ノードはネットワーク重みに対応するので、DAGの全ての部分グラフ (child model)は重み(ノード)を共有している
9.
2. 方法 ? リカレントセル(recurrent
cell)の設計 ? DAG、リカレントセル、コントローラの出?、の対応(下図) ? リカレントセルの探索空間 ? 計算グラフのノード数:N ? 各ノードで選べる活性化関数:4種類(tanh, ReLU, そのまま, sigmoid) ? 異なるアーキテクチャ数:4N × N! ? N=12 の場合、1015 通り
10.
2. 方法 ? ENASの学習とアーキテクチャの導出 ?
ENASの学習は、コントローラ(パラメータ θ)と child models(パラメータ ω) の学習からなる ? コントローラは、100個の隠れ層からなるLSTMであり、ソフトマックス分類器を 介して?己回帰的に(前ステップで抽出したノードをそのステップの入力として) ノードを抽出する ? child model のパラメータ ω は、全ての child models で共有されている ? 学習は、コントローラと child models の学習を交互に繰り返す ? 第1フェーズ:ωを学習する ? 第2フェーズ:θ を学習する ? 第1フェーズと第2フェーズを交互に繰り返す
11.
2. 方法 ? 第1フェーズの詳細 ?
標準的な交差エントロピー損失L(m; ω)の方策分布 π(m,θ) から生成される child model m に関する期待値の ω 勾配をモンテカルロ法で計算する ? この勾配に確率的勾配法(SGD)を適用して ω を更新する ? M=1(child model が1個)の場合でも学習が進むことが分かっている
12.
2. 方法 ? 第2フェーズの詳細 ?
報酬関数 R(m; ω) の child model m ~ π(m,θ) に関する期待値を最大化するように θ を更新する ? 具体的には、REINFORCEアルゴリズムによる方策勾配法とAdamを使って更新を実施 ? 過学習を避けるため、報酬関数 R(m; ω) は検証用データについて計算する ? 報酬関数は、検証用データで計算したモデル精度として定義する RNN:パープレキシティの逆数 CNN:判別正解率 ? アーキテクチャの導出 ? ?策 π(m,θ) のもとで幾つかのモデル(アーキテクチャ候補)を生成する ? 検証用データからサンプリングした単一のミニバッチについて、モデルごとに報酬を計算 (計算コストが節約できる) ? 報酬が最大となるモデルを選択して再学習する QをR(m;ω)で置き換える
13.
2. 方法 ? 畳み込みネットワーク(CNN,
convolutional network)の設計 ? コントローラによる選択決定: 1. レイヤーにおける計算処理の選択(6種類から) 2. そのレイヤーとスキップ接続するレイヤーの選択 3. 1と2を交互に実施する ? 生成されるネットワークのパターン数 ? 6L x 2L(L-1)/2 ? 1.6 x 1029(L=12の場合) 6種類の計算処理 ? convolution 3x3, 5x5 ? separable convolution 3x3, 5x5 ? max pooling 3x3 ? average pooling 3x3 LSTMコントローラによる選択 選択されたCNNアーキテクチャ (点線はスキップ接続)
14.
2. 方法 ? 畳み込みセル(convolutional
cell)の設計 ? 畳み込みセルのノード数:B(node 1, node 2, ..., node B) ? コントローラによる選択決定: ? node1, node2 は入力とする(直近のネットワークのセルから選択) ? 残りの B-2 個のノードについて以下の選択決定を行う ? 当該ノードの入?として、直前までのノードから2ノードを選択 ? それら2ノードに作用する計算処理を選択(5種類から) ? 縮?セル(reduction cell)の設計も同様に行う 5種類の計算処理 ? identity(そのまま) ? separable convolution 3x3, 5x5 ? average pooling 3x3 ? max pooling 3x3
15.
2. 方法 ? 生成されるセルのパターン数 ?
畳み込みセル:(5 x (B-2)!)2 ? 畳み込みセル + 縮?セル:(5 x (B-2)!)4 ? B=7 の場合 1.3 x 1011 パターン数の数え方 [ [ノードの選択数5] × [(B-2) 個のノードのつなぎ方の数 (B-2)! ] ] ** [セルの入?ノード数 2]
16.
3. 実験 ? Penn
Treebank を使った言語モデル ? GPU 1個を10時間まわしてリカレントセルを探索 ? パラメータ数の上限を 2,400万とした ? 性能評価はパープレキシティ(PPL)で測る ? 実験結果 パープレキシティ(PPL) 確率の逆数 ?選択肢の数 PPLが?さいほど高精度
17.
3. 実験 ? ENASが発?したリカレントセル ?
ENASの発?したアーキテクチャは、最後に6ノードの平均をとっている ? この構造は、MoC(Mixture of Context、テクニックの一つ)と類似した構造になっている
18.
3. 実験 ? CIFAR-10
を使った画像分類 ? 実験結果(性能評価は、エラー率) ネットワーク構造の探索 (macro search) セル構造の探索 (micro search) ENASの評価 ? NASとの?較 ? 精度では互角 ? 計算コストは1,000分の1 ? DenseNetとの?較 ? 精度では負けてる ? パラメータ数が5分の1
19.
3. 実験 ? CIFAR-10
を使った画像分類 ? ENASが発?した畳み込みネットワーク(ENAS + macro search space)
20.
3. 実験 ? CIFAR-10
を使った画像分類 ? ENASが発?した畳み込みセルと縮?セル
21.
3. 実験 ? ランダムサーチとの?較 ?
Penn Treebank(PPL):ランダム 81.2 > ENAS 55.8 ? CIFAR-10(エラー率): ?ENASはランダムサーチよりも?精度のモデルを実現 ? コントローラの更新を行わない場合 ? ENAS macro で?較(エラー率) ? 更新なし 5.49% > 更新あり 4.23% ?コントローラの学習が決定的 ランダム macro 5.86% > ENAS macro 4.23% ランダム micro 6.77% > ENAS micro 3.54%
22.
4. 関連研究と議論 ? SMASH ?
one-Shot Model Architecture Search through Hypernetworks https://arxiv.org/abs/1708.05344 ? hypernetworks(?)を使ってネットワーク重みを生成する ? hypernetworks を使うことで、候補アーキテクチャの重みが低ランク空間に制限される ? 低ランク空間でパフォーマンスのよいアーキテクチャしか?つけられない (ENASではこうした制限はない)
23.
Tensorflow実装を試す https://github.com/melodyguan/enas ? アーキテクチャの出? [2]
→ 第1層は ’2: sepconv 3x3’ [5 0] →第2層は ’5: max pool’ スキップなし [5 1 0] →第3層は ’5: max pool’ 第1層とスキップ接続 ? 試しにやってみた ※ちゃんとした検証ではないです ? ピザとお好み焼きの画像識別モデル ? 学習300、検証200、テスト200の画像ペア ? 人?モデル&転移学習モデルと?較 ? 24層で90.5%の正解率 ? 転移学習モデル(93.5%)には及ばなかった [2] [5 0] [5 1 0] [1 0 1 1] [0 1 0 1 0] [5 0 0 1 1 0] [1 0 0 0 0 0 0] [4 0 0 1 0 0 1 1] [4 0 1 0 1 0 0 0 1] [2 0 0 0 1 0 0 0 1 0] [2 0 1 0 0 1 1 1 1 1 1] [0 0 0 0 0 1 0 0 0 1 0 0] [0 0 1 0 0 0 0 0 0 1 1 0 0] [4 1 0 0 0 1 0 0 0 1 1 0 1 1] [5 0 1 0 1 1 1 0 1 0 1 0 0 0 0] [4 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0] [4 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0] [5 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0] [5 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 0] [4 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0] [0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0] [2 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0] [2 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0] [5 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0] ENASによる24層NNの アーキテクチャ出?
24.
感想 ? アイデアが素敵に思える ? LSTMを強化学習するという発想 ?
転移学習から重み共有を思いつくところ ? 案件でも使えそう ? GPU1個を1?まわせば、それなりの結果がでる ? ただし、レイヤー数、フィルタ数はあらかじめ決める必要あり ? TensorFlow実装には、論文に書いてない工夫が随所にある ? スキップ接続の生成には attention mechanism を使ってる ? 人間があらかじめ考えてる部分も多い ? 他のモデル最適化と?べてどうなのか? ? ベイズ最適化 ? その他の NN による手法
Download