nekonookangae / SummarizePapers

個人用。翻訳した論文をIssuesにまとめていきます。
1 stars 0 forks source link

Efficient Neural Architecture Search via Parameter Sharing #15

Open nekonookangae opened 4 years ago

nekonookangae commented 4 years ago

一言でいうと

論文リンク

https://arxiv.org/abs/1802.03268

著者/所属機関

Hieu Pham, Melody Y. Guan, Barret Zoph, Quoc V. Le, Jeff Dean

投稿日付

2018/2/9

概要

自動モデル設計のための高速で安価なアプローチであるEfficient Neural Architecture Search (ENAS) を提案します。 ENASでは、Controllerは、大規模な計算グラフ内で最適なサブグラフを検索することにより、ニューラルネットワークアーキテクチャを発見することを学習します。 Controllerは方策勾配法で学習され、Validationセットで期待される報酬を最大化するサブグラフを選択します。 一方、選択されたサブグラフに対応するモデルは、標準クロスエントロピー損失を最小化するように学習されます。 Childモデル間のパラメータ共有のおかげで、ENASは高速です。既存のすべての自動モデル設計アプローチよりもはるかに少ないGPU時間で強力な経験的パフォーマンスを実現し、特に標準のNASよりも1000倍安価です。 Penn Treebankデータセットで、ENASは55.8のテストPerplexityを実現する新しいアーキテクチャを発見し、事前学習処理なしですべてのメソッド間で新しい最先端の技術を確立します。 CIFAR-10データセットで、ENASは2.89%のテストエラーを達成する新しいアーキテクチャを設計します。これは、テストエラーが2.65%であるNASNetと同等です。

はじめに

Neural Architecture Search (NAS) は、画像分類と言語モデルの設計モデルアーキテクチャに適用されています。 NASでは、RNN Controllerはループで学習されます。Controllerは最初に候補アーキテクチャ (つまり、Childモデル) をサンプリングし、次に収束するよう学習して、目的のタスクでのパフォーマンスを測定します。 次に、Controllerはパフォーマンスをガイド信号として使用して、より有望なアーキテクチャを見つけます。 このプロセスは何度も繰り返されます。 印象的な実証的パフォーマンスの一方で、NASは計算コストと時間がかかり、450 GPUを3〜4日間 (つまり、32,400〜43,200 GPU時間) 使用します。 一方、リソースの使用量が少ないと、説得力のある結果が得られない傾向があります。 NASの計算上のボトルネックは、各Childモデルの収束への学習であり、学習されたすべての重みを破棄しながらその精度を測定することだけです。 この作業の主な貢献は、すべてのChildモデルに重みを共有させて、各Childモデルのゼロから収束までの学習を避けることで、NASの効率を向上させることです。 異なるChildモデルがそれぞれの重みを異なる方法で使用する場合があるため、アイデアには複雑な問題がありますが、特定のタスクの特定のモデルで学習されたパラメータを、殆どあるいはまったく変更を行わないタスクを学習する他のモデルで使用できることを確立した転移学習とマルチタスク学習に関する以前の研究によって奨励されました。 経験的に、Childモデル間でパラメータを共有できるだけでなく、非常に強力なパフォーマンスが可能であることを示しています。 具体的には、CIFAR-10では、NASによる2.65%と比較して、この方法は2.89%のテストエラーを達成します。 Penn Treebankで、私たちのメソッドは55.8のテストPerplexityを実現します。 これは、NASのテストPerplexity 62.4を大幅に上回り、Penn Treebankのアプローチの中で、事前学習プロセスを利用しない新しい最先端の手法です。 重要なのは、単一のNvidia GTX 1080Ti GPUを使用するすべての実験で、アーキテクチャの検索に16時間もかからないことです。 NASと比較して、これはGPU時間を1000倍以上削減します。 その効率性から、この手法をEfficient Neural Architecture Search (ENAS) と名付けました。

手法

ENASのアイデアの中核をなすのは、NASが繰り返し使用するすべてのグラフを、より大きなグラフのサブグラフとして表示できるという観察です。 つまり、単一の有向非巡回グラフ (DAG) を使用してNASの探索空間を表すことができます。 図2は、DAGのサブグラフを取ることでアーキテクチャを実現できる、一般的なDAGの例を示しています。

スクリーンショット 2020-04-29 14 55 19

図2.グラフは探索空間全体を表し、赤い矢印はControllerによって決定される探索空間内のモデルを定義します。   ここで、ノード1はモデルへの入力であり、ノード3と6はモデルの出力です。

ENASのDAGは直感的に、NASの探索空間で可能なすべての子モデルの重ね合わせであり、ノードはローカル計算を表し、エッジは情報の流れを表します。 各ノードのローカル計算には独自のパラメータがあり、特定の計算が活性化されている場合にのみ使用されます。 したがって、ENASの設計では、探索空間内のすべてのChildモデル、つまりアーキテクチャ間でパラメータを共有できます。 以下では、指定されたDAGとController (2.1節) からRNNのセルを設計する方法を示す例を使用して、ENASの説明を容易にします。 次に、ENASを学習する方法、およびENASのControllerからアーキテクチャを派生させる方法について説明します (2.2節)。 最後に、畳み込みアーキテクチャを設計するための探索空間について説明します (2.3および2.4節)。

スクリーンショット 2020-04-29 14 51 39

図1. 4つの計算ノードを持つ探索空間内のリカレントセルの例。   左:リカレントセルに対応する計算DAG。 赤いエッジは、グラフ内の情報の流れを表しています。   中央:リカレントセル。   右:中央のセルと左側のDAGになるController RNNの出力。 ノード3と4はRNNによってサンプリングされないため、それらの結果は平均化され、セルの出力として扱われます。

リカレントセルの設計

リカレントセルを設計するには、ノードがローカル計算を表し、エッジがNノード間の情報の流れを表すNノードのDAGを使用します。 ENASのControllerは、 1)どのエッジを活性化するか 2)DAGの各ノードで実行される計算 を決定するRNNです。 このRNNセルの探索空間の設計は、Zoph&Le (2017) のRNNセルの探索空間とは異なります。この場合、著者はアーキテクチャのトポロジをバイナリツリーとして修正し、ツリーの各ノードでの操作のみを学習します。 対照的に、私たちの探索空間では、ENASがRNNセルのトポロジーと操作の両方を設計できるため、より柔軟です。 リカレントセルを作成するために、Controller RNNはNブロックの決定をサンプリングします。 ここでは、N = 4の計算ノード (図1で視覚化) を持つ単純な例のリカレントセルを介してENASメカニズムを示します。 xtをリカレントセルの入力信号 (例えば、単語の埋め込み) とし、h(t-1) を前のタイムステップからの出力とします。以下のようにサンプリングします。

  1. ノード1で: Controllerは、最初に活性化関数をサンプリングします。 この例では、Controllerはtanh活性化関数を選択します。つまり、リカレントセルのノード1はh_1 = tanh (xt・W(x)+ h(t-1)・W_1^(h)) を計算する必要があります。
  2. ノード2で: 次に、Controllerは以前のインデックスと活性化関数をサンプリングします。 この例では、前のインデックス1と活性化関数ReLUを選択します。 したがって、セルのノード2はh_2 = ReLU (h1・W(2,1)^(h)) を計算します。
  3. ノード3で: Controllerは以前のインデックスと活性化関数を再びサンプリングします。 この例では、前のインデックス2と活性化関数ReLUを選択します。 したがって、h_3 = ReLU (h2・W(3,2)^(h))。
  4. ノード4で: Controllerは以前のインデックスと活性化関数を再びサンプリングします。 この例では、前のインデックス1と活性化関数tanhを選択し、h_4 = tanh (h1・W(4,1)^(h)) を導きます。
  5. 出力については、すべてのルーズエンド、つまり他のノードへの入力として選択されていないノードを単純に平均化します。 この例では、インデックス3と4がノードの入力になるようにサンプリングされなかったため、リカレントセルはその平均として (h_3 + h_4) / 2を出力として使用します。 つまり、h_t = (h_3 + h_4) / 2。

上記の例では、ノードj <lの各ペアに対して、独立したパラメーター行列W_(l、j)^(h)があることに注意してください。 例に示すように、前のインデックスを選択することにより、Controllerは使用するパラメータ行列も決定します。 したがって、ENASでは、探索空間内のすべてのリカレントセルが同じパラメータセットを共有します。 私たちの探索空間には、指数関数的な数の構成が含まれています。 具体的には、リカレントセルにN個のノードがあり、4つの活性化関数 (つまり、tanh、ReLU、identity、およびsigmoid) を許可する場合、探索空間は4^N × N! の構成になります。 私たちの実験では、N = 12です。これは、探索空間に約1015のモデルがあることを意味します。

ENASおよび派生アーキテクチャのトレーニング

私たちのControllerネットワークは、100の隠れユニットを持つLSTMです。 このLSTMは、自己回帰方式でsoftmax分類器を介して決定をサンプリングします。前のステップの決定は、次のステップに埋め込む入力として送られます。 最初のステップで、ControllerネットワークはEmpty embeddingを入力として受け取ります。 ENASには、学習可能なパラメータの2つのセットがあります。θで表されるController LSTMのパラメータと、ωで表されるChildモデルの共有パラメータです。 ENASの学習手順は、2つのインターリーブフェーズで構成されます。 最初のフェーズでは、Childモデルの共有パラメータであるωを学習データセット全体に渡って学習します。 Penn Treebank実験では、ωは約64ステップのミニバッチでそれぞれ約400ステップに学習されます。ここで、勾配∇_ωは、BPTTを使用して計算され、35タイムステップで切り捨てられます。 一方、CIFAR-10の場合、ωはサイズが128のミニバッチに分割された45,000の画像で学習され、∇_ωは標準の逆伝播を使用して計算されます。 2番目のフェーズでは、固定数のステップ (通常、実験では2000に設定) について、Controller LSTMのパラメータであるθを学習させます。 これら2つのフェーズは、ENASの学習中に交互に行われます。 詳細は以下の通りです。

Childモデルの共有パラメータωを学習します。 このステップでは、Controllerの方策π (m;θ) を修正し、ωに対して確率的勾配降下法(SGD) を実行して、期待される損失関数E_(m〜π) [L (m;ω) ]を最小化します。 ここで、L (m;ω) は、学習データのミニバッチで計算された標準クロスエントロピー損失であり、モデルmはπ (m;θ) からサンプリングされます。 勾配は、モンテカルロ推定を使用して計算されます:

スクリーンショット 2020-04-30 2 06 50

以下、とりあえず飛ばします

畳み込みネットワークの設計

次に、畳み込みアーキテクチャの探索空間について説明します。 リカレントセルの探索空間で、Controller RNNは各決定ブロックで2つの決定をサンプリングすることを思い出してください。 1)接続する前のノード 2)使用する活性化関数 畳み込みモデルの探索空間では、Controller RNNは、各Decisionブロックで2つのDecisionセットもサンプリングします。 1)接続する前のノード 2)使用する計算操作 これらの決定は、畳み込みモデルの層を構築します。 前のどのノードに接続するかの決定により、モデルはSkip connectionを形成できます。 具体的には、層kで、最大k-1までの相互に異なる以前のインデックスがサンプリングされ、層kで2^(k-1)の可能な決定につながります。 図3に、畳み込みネットワークのサンプリングの例を示します。

スクリーンショット 2020-04-30 2 41 14

図3. 畳み込みネットワークの4つの層を表す4つの計算ノードを備えた探索空間でのリカレントセルの実行例。 上:Controller RNNの出力。 左下:ネットワークのアーキテクチャに対応する計算DAG。 赤い矢印はアクティブな計算パスを示します。 右下:完全なネットワーク。 点線の矢印はSkip connectionを示します。

この例では、層 k = 4で、Controllerは前のインデックス{1、3}をサンプリングするため、層1と3の出力はそれらの深さ次元に沿って連結され、層4に送信されます。 一方、使用する計算操作の決定により、特定の層が畳み込みまたはAverageプーリングまたはMaxプーニングに設定されます。 Controllerで使用できる6つの操作は次のとおりです。フィルタサイズ3×3および5×5の畳み込み、フィルタサイズ3×3および5×5の深度方向に分離可能な畳み込み、およびカーネルサイズ3×3のMaxプーリングとGlobal Averageプーリング。 リカレントセルについては、ENAS CNNの各層の各操作には、個別のパラメータセットがあります。 合計L回の説明された一連の決定を行うと、L層のネットワークをサンプリングできます。 すべての決定は独立しているため、探索空間には6^L × 2^{L (L−1) / 2}のネットワークがあります。 私たちの実験では、L = 12の結果、1.6×1029の可能なネットワークができました。

CNN全体を設計するのではなく、より小さなモジュールを設計してから、それらを接続してネットワークを形成することができます。 図4は、この設計を示しており、畳み込みセルおよびreductionセルのアーキテクチャが設計されます。

スクリーンショット 2020-04-30 2 22 18

図4. 3つのブロックを接続し、それぞれにN個の畳み込みセルと1つのreductionセルを追加して、最終的なネットワークを作成します。

次に、ENASを使用してこれらのセルのアーキテクチャを探索する方法について説明します。 ENAS computational DAGとBノードを使用して、セル内でローカルに発生する計算を表します。 このDAGでは、ノード1とノード2はセルの入力として扱われます。これは、最終的なネットワーク内の前の2つのセルの出力です(図4を参照)。 残りのB−2ノードのそれぞれについて、Controller RNNに2つのセットの決定を行うように依頼します。 1)現在のノードへの入力として使用される2つの前のノード 2)サンプリングされた2つのノードに適用する2つの操作。 使用可能な5つの操作は、identity、カーネルサイズ3×3および5×5のseparable convolution、およびカーネルサイズ3×3のAverageプーリングとMaxプーリングです。 各ノードでは、前のノードとそれに対応する操作がサンプリングされた後、操作が前のノードに適用され、その結果が追加されます。 前と同じように、ここでは例としてB=4ノードを使用して探索空間のメカニズムを示します(図5を参照)。

スクリーンショット 2020-04-30 2 30 19

図5. 畳み込みセルに対する探索空間のControllerの実行例。   上:Controllerの出力。 畳み込みセルの探索空間では、ノード1とノード2がセルの入力であるため、Controllerはノード3とノード4のみを設計する必要があります。   左下:対応するDAG。赤いエッジは活性化された接続を表します。   右下:Controllerのサンプルによる畳み込みセル。

詳細は以下の通りです。

 1. ノード1、2は入力ノードなので、それらの決定は必要ありません。    これらのノードの出力をh1、h2とします。  2. ノード3で、Controllerは前の2つのノードと2つの操作をサンプリングします。    図5左上では、ノード2、ノード2、separable conv 5x5、およびidentityをサンプリングしています。 これは、h_3 = sep_conv_5x5 (h_2) + id (h_2) であることを意味します。  3. ノード4で、Controllerはノード3、ノード1、avg_pool_3x3、およびsep_conv_3x3をサンプリングします。    これは、h_4 =avg_pool_3x3 (h_3) + sep conv 3x3 (h_1) であることを意味します。  4.  h_4を除くすべてのノードが少なくとも別のノードへの入力として使用されたため、唯一のルーズエンドh_4がセルの出力として扱われます。

reductionセルは、以下で説明する探索空間からも実現できます。  1)探索空間から計算グラフをサンプリングする  2)ストライドが2のすべての操作を適用する。 したがって、reductionセルは、その入力の空間次元を2倍に縮小します。 私たちは、畳み込みセルで条件付けられたreductionセルをサンプリングし、Controller RNNを合計2 (B − 2) ブロックで実行します。 最後に、この探索空間の複雑さを推定します。 ノードi (3≤i≤B) では、Controllerは以前のi-1ノードから任意の2つのノードを選択でき、5つの操作から任意の2つの操作を選択できます。 すべての決定は独立しているので、(5×(B−2)!)^2の可能なセルがあります。 たたみ込みセルと縮約セルを別々にサンプリングするので、探索空間の最終的なサイズは(5×(B−2)!)^4です。 実験のようにB=7の場合、探索空間は1.3×1011の最終ネットワークを実現でき、CNN全体の探索空間(2.3節)よりも大幅に小さくなります。

実験

まず、ENASを使用してPenn TreebankデータセットのリカレントセルとCIFAR-10データセットの畳み込みアーキテクチャを設計した実験結果を示します。 次に、新しいアーキテクチャの発見におけるENASの役割を主張するアブレーション研究※ を紹介します。

※ アブレーション研究:モデルまたはアルゴリズムのいくつかの「特徴」を除去し、それがどのように性能に影響するかを見ること

Penn Treebankを使用した言語モデル

データセットと設定。 Penn Treebankは、よく研究された言語モデルのベンチマークです。 データセットの標準的な前処理されたバージョンを使用します。これは、以前の作品 (Zaremba et al. (2014)) でも使用されています。 私たちの仕事の目標はセルアーキテクチャを発見することなので、Penn Treebankで標準の学習とテストプロセスのみを使用し、Neural cacheやDynamic evaluationなどの事前学習テクニックは使用しません。 さらに、Collins et al. (2017) がより多くのパラメータを持つRNNモデルがより多くの情報を格納することを学べることを確立したため、ENASセルのサイズを24Mパラメーターに制限します。 また、Melis et al (2017) のようにハイパーパラメータを広範囲に調整することもありません。 複数のアーキテクチャを学習したり、Zoph&Le (2017) のようなValidationのPerplexityに基づいて最適なアーキテクチャを選択したりすることもありません。 したがって、ENASはZoph&Le (2017)、Yang et al. (2018), Melis et al. (2017) と比較して何の利点もなく、パフォーマンスの向上は、セルのアーキテクチャのみによるものです。

学習の詳細。 私たちのControllerは、Adamを用いて学習され、学習率は0.00035です。 時期尚早な収束を防ぐために、サンプリングロジットにtanh定数2.5と温度5.0を使用し、Controllerのサンプルエントロピーを報酬に追加します(0.0001で重み付け)。 さらに、Highway Connectionを使用して、構築された再帰セル内のノード間の単純な変換を拡張します。 たとえば、セクション2.1の例に示すように、h_2 = ReLU (h1・W(2,1)^(h)) の代わりに、h_2 = c_2 ⊗ ReLU(h1・W(2,1)^(h) + (1 − c2) ⊗ h_1、ただしc2 = sigmoid(h1・W(2,1)^(c)であり、⊗は要素ごとの乗算を示します。 Childモデルωの共有パラメータは、SGDを使用して学習率20.0で学習され、エポック15以降のすべてのエポック後、0.96の係数で減衰し、合計で150エポックになります。 勾配∇_ωのノルムを0.25でクリップします。 小さな閾値で勾配ノルムをクリッピングしながら大きな学習率を使用すると、ωの更新がより安定することがわかります。 ωには次の3つの正則化手法を利用します。 ・10−7で重み付けされたl2正則化 ・Variable dropout ・Word embeddingとソフトマックスの重みを結ぶ。 詳細は付録Aにあります。

結果。 単一のNvidia GTX 1080Ti GPUで実行しているENASは、約10時間でリカレントセルを発見します。 表1に、ENASセルのパフォーマンスと、学習後の処理を使用しないその他のベースラインを示します。

スクリーンショット 2020-04-29 16 51 13

表1. ENASのPenn Treebankおよび他のベースラインでのテストPerplexity。   略語:RHNはRecurrent Highway Network、VDはVariableドロップアウトです。       WTはWeight Tyingです。 l2はWeight Penaltyです。      AWDはAverage Wight Dropです。 MoCはMixture of Contextです。      MoSはMixture of Softmaxesです。

ENASセルは、55.8のテストPerplexityを達成します。これは、Mixture of Softmaxes (MoS) によって達成された既存の最先端の56.0と同等で。 ENASセルにはMoSを適用しないことに注意してください。 重要なことに、ENASの探索プロセスでは、ENASセルはNASを6 Perplexity以上上回っています。 GPU時間の観点では、1000倍以上高速です。 図6に視覚化されているENASセルには、いくつかの興味深い特性があります。

スクリーンショット 2020-04-29 16 54 29

図6. Penn TreebankでENASが発見したRNNセル。

まず、セル内のすべての非直線性はReLUまたはtanhのいずれかですが、探索空間には他にidentityとsigmoidという2つの関数があります。 次に、Zoph&Le (2017) の観察結果と同様に、このセルは局所最適であると考えています。 一部のノードをランダムに選択し、非線形性をidentityまたはsigmoidに切り替えると、Perplexityが最大8ポイント増加します。 同様に、一部のReLUノードをランダムにtanhに、またはその逆に切り替えると、Perplexityも増加しますが、最大3ポイントです。 3番目に、図6に示すように、ENASセルの出力は平均6ノードです。 この動作は、Mixture of Contexts (MoC) の動作と似ています。 ENASは独立してMoCを検出するだけでなく、  i)混合するコンテキストの数 (モデルの表現力を高める)  ii)リカレントセルの深さ (より複雑な変換を学習する) の間のバランスを学習します。

CIFAR-10での画像分類

データセット。 CIFAR-10データセットは、50,000の学習画像と10,000のテスト画像で構成されています。 標準データの前処理および拡張技術を使用します。つまり、チャネル平均を差し引き、チャネル標準偏差を除算し、学習画像を中央で40×40にパディングし、ランダムにトリミングして32×32に戻し、ランダムに水平に反転します。

探索空間。 ENASを2つの探索空間に適用します。 1)畳み込みモデル全体のマクロ探索空間(セクション2.3) 2)畳み込みセル上のマイクロ探索空間(2.4節)。

学習の詳細。 共有パラメーターωはNesterov運動量※ で学習され、学習率はl_max = 0.05、l_min = 0.001、T_0 = 10、およびT_mul = 2(Loshchilov&Hutter、2017)の余弦スケジュールに従います。 各アーキテクチャ検索は、310エポックに対して実行されます。 ωをHe初期化で初期化します。 また、l2のweight decayを10−4に適用します。 同じ設定を使用して、Controllerが推奨するアーキテクチャを学習します。

結果。 表2は、ENASおよびその他のアプローチのテストエラーをまとめたものです。

スクリーンショット 2020-04-29 16 49 51

表2. ENASの分類エラーとCIFAR-10のベースライン。 この表の最初のブロックは、人間の専門家が設計した最先端のアーキテクチャの1つであるDenseNetを示しています。 2番目のブロックは、ネットワーク全体を設計するアプローチを示しています。 最後のブロックは、最終的なネットワークを構築するために組み合わされるモジュール式セルを設計する手法を示しています。

この表の最初のブロックは、人間の専門家によって設計された最もパフォーマンスの高いアーキテクチャの1つであるDenseNetの結果を示しています。 DenseNetは、Shake-Shakeなどの強力な正則化手法と、CutOutなどのデータ拡張手法でトレーニングすると、2.56%のテストエラーを達成します。 表2の2番目のブロックは、畳み込みネットワーク全体を設計しようとするアプローチのパフォーマンスと、GPUの数、およびこれらの方法が最終モデルを発見するのにかかる時間を示しています。 示されているように、ENASは、図7で視覚化され、4.23%のテストエラーを達成するネットワークアーキテクチャを検出します。

スクリーンショット 2020-04-29 16 25 36

図7. マクロ探索空間からENASが発見した、画像分類のためのネットワーク。

このテストエラーは、2番目に優れたNASモデルによって達成された4.47%のエラーよりも優れています。 アーキテクチャを維持しながら、ネットワークの最上位層のフィルターの数を512に増やすと、テストエラーが減少します。 これは3.87%であり、テストエラーが3.65%であるNASの最良のモデルからそれほど離れていません。 印象的なことに、ENASはこのアーキテクチャを見つけるのに約7時間かかり、NASと比較してGPU時間が50,000倍以上削減されました。 表2の3番目のブロックは、もう1つのモジュールを設計し、それらを相互に接続して最終的なネットワークを形成しようとするアプローチのパフォーマンスを示しています。 ENASが畳み込みセルとreductionセルを検出するのに11.5時間かかります。これらは図8で視覚化されています。

スクリーンショット 2020-04-29 16 27 15

図8.マイクロ探索空間で発見されたENASセル。

畳み込みセルがN = 6回複製された場合 (図4を参照)、ENASは3.54%のテストエラーを達成し、NASNet-Aの3.41%のエラーと同等です。 CutOutを使用すると、NASNet-Aによる2.65%と比較して、ENASのエラーは2.89%に減少します。 ENASの強力なパフォーマンスに加えて、ENASによって検出されたモデルは、ある意味では、探索空間の極小値でもあることがわかります。 特に、ENOSがマクロ探索空間から見つけたモデルで、分離可能なすべての畳み込みを通常の畳み込みに置き換え、パラメータの数が同じになるようにモデルサイズを調整すると、テストエラーが1.7%増加します。 同様に、ENAがマイクロ探索空間で見つけたセルのいくつかの接続をランダムに変更すると、テストエラーが2.1%増加します。 この現象は、ENASがリカレントセルを探索する場合 (3.1節を参照)、およびZoph&Le (2017) でも観察されています。 したがって、ENASによって学習されたController RNNは、NASによって学習されたController RNNと同じくらい優れていると私たちは信じています。 NASとENAS間のパフォーマンスギャップは、学習されたControllerから複数のアーキテクチャをサンプリングせず、それらを学習しているためです。次に、Validationデータで最適なアーキテクチャを選択します。 この追加の手順により、NASのパフォーマンスが向上します。

※2 凸関数に関して良い結果が得られる運動量?文献が少ない

ENASの重要性

ENASの重要性に関する質問は、ENASが実際に優れたアーキテクチャを見つけることができるかどうか、またはそれがENASの強力な実証的パフォーマンスにつながる探索空間の設計であるかどうかです。

ガイド付きランダムサーチとの比較。 リカレントセル、畳み込みネットワーク全体、および畳み込みセルと縮小セルのペアをそれらの探索空間から均一にサンプリングし、ENASで検出されたアーキテクチャと同じ設定を使用して収束するように学習します。 ネットワーク全体のマクロ探索空間では、0.4の活性化確率でSkip connectionをサンプリングし、報酬におけるKLダイバージェンスからのENASの利点を効果的にバランスさせます (3.2節を参照) 。 ランダムリカレントセルは、PTBで81.2のテストPerplexityを達成しています。これは、ENASのPerplexity 55.8よりもはるかに悪いです。 ランダムな畳み込みネットワークは5.86%のテストエラーに達し、2つのランダムセルはCIFAR-10で6.77%に達しますが、ENASはそれぞれ4.23%および3.54%を達成します。

ENAS検索の無効化。 ランダムサーチに加えて、Controllerを更新せずに共有パラメータωのみの学習を試みます。 マクロ探索空間 (2.3節) についてこの実験を実施します。 学習されていないランダムControllerの効果は、Skip connectionのレートが0.5のドロップアウト、および操作のドロップパスに似ています。 収束時のモデルのエラー率は8.92%です。 Validationセットでは、この学習済みモデルの250モンテカルロ構成のアンサンブルは、5.49%のテストエラーにしか到達できません。 したがって、優れたパフォーマンスを実現するには、ENAS Controllerの適切な学習が不可欠であると結論付けます。

関連研究と議論

NASの効率を向上させることに関心が高まっています。 私たちの作業と並行して、パフォーマンス予測(Baker et al, 2017b; Deng et al. 2017)の使用、複雑さの増大するアーキテクチャの反復探索法の使用(Liu et al. 2017)およびアーキテクチャの階層表現の使用(Li​​u et al. 2018)の有望なアイデアがあります。 表2は、ENASがGPU時間でこれらの他の方法よりもはるかに効率的であることを示しています。

アーキテクチャ間で重みを共有するENASの設計は、ニューラルモデルの進化における重みの継承(Real et al. 2017; 2018)の概念から発想を得ています。 さらに、DAGを使用して計算を表すENASの選択は、確率的計算グラフ(Schulman et al. 2015)の概念に触発され、確率的出力を持つノードを計算グラフに導入します。 ENASは、ネットワーク内のそのような確率論的決定を利用して、ネットワーク内の後続の計算を管理する個別のアーキテクチャ上の決定を行い、意思決定者、つまりControllerを学習し、最終的に決定を収集してアーキテクチャを導き出します。 ENASに密接に関連しているのは、SMASH(Brock et al. 2018)です。これは、アーキテクチャを設計し、ハイパーネットワーク(Ha et al. 2017)を使用して重みを生成します。 SMASHでハイパーネットワークをこのように使用すると、SMASHのChildアーキテクチャの重みが低ランクのスペースに本質的に制限されます。 これは、ハイパーネットワークがテンソル積を介してSMASHのChildモデルの重みを生成するためです。これには、任意の行列AとBに関する低ランクの制限があるため、常に以下の不等式があります。 rank(A・B) ≤ min{ rank(A)、rank(B) }。 この制限により、SMASHは、重みが制限されていない通常の学習設定で良好に機能するアーキテクチャではなく、重みの制限された低ランク空間で良好に機能するアーキテクチャを検出します。 一方、ENASでは、Childモデルの重みを任意に設定できるため、このような制限を効果的に回避できます。 これが、SMASHよりもENASの優れた実証的パフォーマンスの背後にある理由であると考えられます。 さらに、私たちの実験から、ENASは複数の探索空間や異なるドメインに柔軟に適用できることがわかります。 例えば、テキストドメインのRNNセルの探索空間、ネットワーク全体のマクロ探索空間、および画像ドメインの畳み込みセルのマイクロ探索空間などです。

おわりに

NASは、ニューラルネットワークの設計プロセスを自動化する重要な進歩です。 ただし、NASの計算コストにより、NASを広く採用することはできません。 この論文では、NASをGPU時間で1000倍以上高速化する新しい方法であるENASを紹介しました。 ENASの主要な貢献は、アーキテクチャの検索中にChildモデル間でパラメータを共有することです。 この洞察は、アーキテクチャを探索空間に組み込んだ大きなグラフ内のサブグラフを検索することによって実装されます。 ENASがCIFAR-10およびPenn Treebankデータセットの両方でうまく機能することを示しました。

コメント

実装