Open nekonookangae opened 4 years ago
https://dl.acm.org/doi/pdf/10.1145/3321707.3321729
Zhichao Lu, Ian Whalen, Vishnu Boddeti, Yashesh Dhebar, Kalyanmoy Deb, Erik Goodman and Wolfgang Banzhaf / Michigan State University / East Lansing, Michigan
2019/6/xx
この論文では、ニューラルアーキテクチャ探索(NAS)の進化的アプローチであるNSGA-Netを紹介します。 NSGA-Netは、3つの目標を念頭に置いて設計されています: (1)複数の矛盾する目的を考慮した方法 (2)潜在的なニューラルネットワークアーキテクチャ空間の探索と活用のバランスをとる効率的な方法 (3)1回の実行で達成されたトレードオフネットワークアーキテクチャの多様なセットを見つける方法
NSGA-Netは、集団ベースの探索アルゴリズムであり、3つのステップで潜在的なNNアーキテクチャ空間を探索します。つまり、
実験結果は、エラーメトリックとFLOP※1 で測定される計算の複雑性※2 を最小化するという2つの目的を組み合わせると、NSGA-Netが競合するNNアーキテクチャを見つけることができることを示唆しています。 さらに、NSGA-Netは、他の最先端のNASメソッドと同等のCIFAR-10データセットでエラー率を達成し、計算リソースを大幅に削減します。 これらの結果は有望であり、さまざまなディープラーニングパラダイムでEC(進化計算)メソッドをさらに使用する可能性を示しています。
※1 FLOP:FLoating point Operations Per Secondの略。1秒間に浮動小数点演算が何回できるかを表したもので、この値が大きいほど計算速度が速い。 ※2 複雑性:O(MN^3):FLOPのような、計算に時間がどれだけかかるかという話。
ディープCNNは、さまざまな画像分析タスクで圧倒的に成功しています。 この成功の主な原動力の1つは、AlexNet [23]、VGG [37]、GoogLeNet [39]、ResNet [12]、DenseNet [17]などの、画像分類のコンテキストにおける多くのCNNアーキテクチャの導入です。 同時に、MobileNet [14]、XNOR-Net [34]、BinaryNets [4]、LBCNN [19]などのネットワーク設計は、高性能モデルをリソースに制約のあるデバイスで実装に開発できるようにすることを目的として開発されました。 これらの開発は、長年にわたる骨の折れる努力と人間の創意工夫の成果です。 一方、NASソッドは、ネットワークアーキテクチャの設計プロセスを自動化しようとしています。 [36]や[47]のような最先端の強化学習(RL)手法は、探索空間の使用において非効率的であり、それぞれ3150および2,000 GPU日を必要とします。 [27]のような勾配ベースの方法は、タスクのエラーメトリックを最小化する単一の目的に焦点を当てており、複数の矛盾する目的を処理するように簡単に適合させることはできません。 さらに、ほとんどの最先端のアプローチは、Inceptionブロック[39]と同様に単一の計算ブロックを探索し、必要な回数だけ繰り返して、完全なネットワークを形成します。 この論文では、前述の現在のアプローチの制限に対処するためのNASの多目的遺伝的アルゴリズムであるNSGA-Netを紹介します。 NSGA-Netの概要を図1に示します。 図1:NSGA-Netのステージの概要。 ネットワークは、NSGA-IIによる勾配降下、ランキング、および選択、BOA(ベイジアン最適化アルゴリズム)による探索履歴の活用を通じて学習されたビット文字列として表されます。 出力は、複雑なネットワークとエラーの目的に及ぶセットです。
NSGA-Netの主な機能は次のとおりです。 (1)多目的最適化:NASモデルの実際の開発には、モデルが正確であることに加えて、小規模ネットワークが必要です。 たとえば、いくつか例を挙げると、消費電力、使用可能なメモリ、使用可能なFLOP、および遅延の制約の点で、ハードウェアリソースによって制約されることが多いコンピューティングデバイスのパフォーマンスを最大化することを目指しています。 NSGA-Netは、そのような競合する目的を最適化するように明示的に設計されています。 (2)柔軟なアーキテクチャの探索空間:ほとんどの既存のメソッドの探索空間は、必要な回数だけ繰り返されるブロックに制限されています。 対照的に、NSGA-Netはネットワークの構造全体を探索します。 このスキームは、ネットワーク全体で同じ計算ブロックを繰り返すことによる固有の制限を克服します。つまり、単一のブロックがすべてのアプリケーションに最適ではない可能性があり、NASがネットワークの異なる部分の異なるブロックを持つアーキテクチャを検出できるようにすることが望ましいです。 (3)非支配ソート:NSGA-Netのコアコンポーネントは、NSGA-II[5]です。これは、さまざまな多目的問題[31、40]を解決するためにうまく採用されている多目的最適化アルゴリズムです。 ここでは、複数の競合する目的間の多様なトレードオフフロンティアを維持する機能を活用して、探索空間をより効果的かつ効率的に探索します。 (4)効率的な組み換え:突然変異のみが使用される最先端の進化ベースのNAS手法[35、36]とは対照的に、解の多様なフロンティアの複数の目的にわたる、望ましい品質のネットワークを組み合わせるために交叉を採用します。 (5)ベイジアン学習:ベイジアン最適化アルゴリズム(BOA)[32]に触発されたベイジアンネットワークを構築および採用して、探索履歴アーカイブに存在する有望な解とネットワークアーキテクチャの層間の固有の相関を完全に利用します。
CIFAR-10 [22]画像分類タスクにおけるNSGA-Netの有効性を、分類誤差と計算の複雑性という2つの目的を最小限に抑えることで示します。 ここで、計算の複雑性は、ネットワークがフォワードパス中に実行する浮動小数点演算(FLOP)の数によって定義されます。 実験的に、NSGA-Netは、単一目的の最先端のNASアプローチと競争しながら、両方の目的で手作りの方法よりもはるかに優れた解を含むネットワークアーキテクチャのセットを見つけることができることを観察しました。 さらに、NSGA-Netは、探索履歴の再結合と利用を通じてネットワークの母集団を十分に活用することで、探索空間を効率的に探索し、他の競合する方法よりも探索に必要な計算時間を短縮します。 NSGA-Netの実装はこちらから入手できます*。
コンピューティングデバイスは、多くの場合、消費電力、使用可能なメモリ、使用可能なFLOP、および遅延の制約の点で、ハードウェアリソースによって制約を受けます。 したがって、DNNの実際の設計では、これらの複数の目的(予測性能や計算の複雑性など)のバランスを取る必要があります。 多くの場合、複数の設計基準が同時に考慮される場合、特に競合する目的で、すべての望ましい基準で最適に機能する単一の解が存在しない場合があります。 このような状況では、目的間の代表的なトレードオフ情報を提供する一連の解がより望ましいです。 これにより、専門家はアプリケーションに応じて各基準の重要性を分析し、実装のトレードオフフロンティアで適切な解を選択できます。 NSGA-Netは、画像分類タスクの性能と複雑性の間のパレートフロントを近似する一連のDNNアーキテクチャを自動的に生成する、遺伝的アルゴリズムに基づくアーキテクチャ検索方法です。 このセクションの残りの部分では、エンコードスキーム、およびNSGA-Netの主要コンポーネントについて詳しく説明します。
遺伝的アルゴリズムは、他の生物学にヒントを得た探索方法と同様に、表現型(phenortypes)※3 に直接作用しないことがよくあります。 生物学的観点から、DNNアーキテクチャを表現型と見なし、マッピング元の表現をその遺伝子型と見なすことができます。 自然界と同様に、交叉や突然変異などの遺伝子操作は遺伝子型空間でのみ実行されます。 NSGA-Netも同様です。 この論文では、遺伝子型と表現型の間のインターフェースを「エンコーディング」と呼びます。 ほとんどの既存のCNNアーキテクチャは、層ごとの計算を定義する計算ブロックの構成(ResNetブロック[12]、DenseNetブロック[17]、およびInceptionブロック[39]など)と、空間解像度の変更を指定するスキームと見なすことができます。 例えば、ダウンサンプリングは、画像分類DNNの次の計算ブロックに入る情報の空間解像度を下げるために、計算ブロックの後によく使用されます。 NSGA-Netでは、「フェーズ」と呼ばれる各計算ブロックは、XieとYuilleによって提案されたビットを追加するわずかな変更を加えた方法[43]を使用してエンコードされ、ブロック全体をバイパスして入力情報を出力に直接転送するスキップ接続を表します。 この調査では、これをオペレーションエンコーディングx_oと名付けています。
オペレーションエンコーディングx_o: ほとんどの手作りおよびNAS生成のアーキテクチャとは異なり、ネットワークを構築するために同じフェーズ(計算ブロック)を繰り返すことはありません。 代わりに、ネットワークの操作は x_o =(x_o^(1)、x_o^(2)、...、x_o^(np))ここで、npはフェーズ数です。 各x_o^(i)は、バイナリ文字列を使用してフェーズ内の操作を記述するn_o個のノードで構成される有向非循環グラフをエンコードします。 ここで、ノードは基本的な計算ユニットであり、畳み込み、プーリング、バッチ正規化[18]のような単一の操作、または一連の操作です。 このエンコーディングスキームは、遺伝子型空間でのネットワークアーキテクチャのコンパクトな表現を提供しますが、手作りネットワーク (例えば、VGG [37]、ResNet [12]およびDenseNet [17]) の多くの計算ブロックをエンコードできるほど柔軟です。 図2と図3は、オペレーションエンコーディングの例を示しています。
図2:エンコード:x = x_oによってエンコードされた分類ネットワークの図。ここで、xoはフェーズでの操作です(灰色のボックス、それぞれ最大6ノードの可能性があります)。 この例では、空間分解能の変更(フェーズを接続するオレンジ色のボックス)は、成功したアプローチの事前知識に基づいて修正されています。 フェーズは、読みやすさのためにフォーマットされたビット文字列x_oによって記述されます。 ビットは-でグループ化され、それらが制御するノードを示します。 コード化スキームの詳細については、3.1節を参照してください。
図3:交叉の例:VGGのような構造とDenseNetのような構造の交叉(⊗で示される)は、ResNetのようなネットワークになる可能性があります。 図では、赤と青はそれぞれVGGとDenseNetに固有の接続を示し、黒は両方の親に共通の接続を示しています。 すべての黒いビットは最後の子エンコーディングで保持され、親のいずれかからランダムに選択できるのは、親間で共通でないビットのみです。
※3 表現型:染色体によって規定される形質の外部的表現.例えば,「染色体上のある位置の遺伝子の並びが 010 であるときは,羽の色が赤くなる」というような場合,「010」が遺伝子型に,また,「羽の色が赤くなる」ということが表現型に相当する. https://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/opt/GA/GA.htm
探索空間 事前に定義された空間解像度削減のスキーム([27、35、47]と同様)を使用すると、遺伝子型スペースの総探索空間は、x_oをエンコードする操作によって制御されます: Ωx=Ω(x_o)= n_p×2 ^(n_o (n_o−1) / 2 + 1) ここで、n_pはフェーズ(計算ブロック)の数であり、n_oは各フェーズのノード(基本計算ユニット)の数です。 ただし、計算上の扱いやすさのために、フェーズ内の各ノードが同じ操作シーケンスを実行するように探索空間を制限します。 各フェーズのノードが同じ操作を持つ結果として、遺伝子型と表現型の間のエンコーディングは多対1のマッピングになることに注意してください。 性能を評価する前に各ネットワークアーキテクチャを学習するために必要な法外な計算コストを考えると、同じアーキテクチャにデコードするゲノムの評価を回避することが不可欠です。 これらの重複ゲノムを迅速かつ大まかに特定するアルゴリズムを開発しています(詳細については、補足資料を参照してください)。
NSGA-Netは、初期解が集団と呼ばれるグループとして徐々に改善される反復プロセスです。 すべての反復で、母集団から選択された親から同じ数の子孫(新しいネットワークアーキテクチャ)が生成されます。 各母集団のメンバー(親と子の両方を含む)は、次の反復で生存と複製 (親になる) の両方を競います。 初期母集団はランダムに生成されるか、事前知識(たとえば、手作りのネットワークアーキテクチャを初期母集団にシードする)によって導かれます。 初期化に続いて、NSGANet全体の探索は、探索と利用という2つの連続した段階で行われます。
探索: このステージの目標は、ノードを接続してフェーズ(計算ブロック)を形成するさまざまな方法を発見することです。 遺伝的操作、交叉および突然変異は、この目標を実現するための効果的な手段を提供します。 交叉: 集団メンバーがビルディングブロックを(交叉を通じて)効果的に共有できる場合、集団ベースの探索アプローチの暗黙的な並列処理を解除できます[13]。 NASのコンテキストでは、フェーズまたはフェーズのサブ構造をビルディングブロックと見なすことができます。 親からビルディングブロックを継承および再結合して子孫(新しいネットワークアーキテクチャ)を作成するために、選択した2つの母集団を親に取る同種の交叉演算を設計します。 この交叉演算の主なアイデアは、 1)両方の親のバイナリビット文字列から共通ビットを継承することにより、両方の親間で共有される共通のビルディングブロックを保持します。 2)子孫のビット文字列の「1」ビットの数を両方の親の「1」ビットの数の間にあるように制限することにより、親と子孫の間で比較的同じ複雑さを維持します。 提案された交叉により、選択されたアーキテクチャ(親)は、フェーズまたはフェーズ内のサブ構造を効果的に交換できます。 交叉演算子の例を図3に示します。 突然変異: 集団の多様性(異なるネットワークアーキテクチャを持つ)と局所最適から脱出する機能を強化するために、バイナリコーディングされた遺伝的アルゴリズムで一般的に使用されるビット反転突然変異演算子を使用します。 エンコーディングの性質上、遺伝子型空間での1ビットの反転は、表現型空間で完全に異なるアーキテクチャを作成する可能性があります。 したがって、反転できるビット数は、各突然変異操作で最大1つに制限されています。 その結果、一度に変更できるフェーズアーキテクチャは1つだけです。
利用: 利用フェーズは、NSGA-Netの探索段階に続きます。 このフェーズの目標は、前の段階で調査された過去の成功したアーキテクチャ間で一般的に共有されているパターンを利用して強化することです。 NSGA-Netの活用ステップは、最適化変数間の固有の相関のある問題のために明示的に設計されたベイズ最適化アルゴリズム(BOA)[32]に強く影響を受けています。 NASエンコーディングのコンテキストでは、これはさまざまなフェーズにわたるブロックとパスの相関に変換されます。 利用では、評価されたすべてのネットワークに渡る過去の情報を使用して、探索の最後の部分をガイドします。 より具体的には、3つのフェーズ、つまりx_o^(1)、x_o^(2)、およびx_o^(3)を持つネットワークがあるとします。 私たちは3つのフェーズの関係を知りたいと思います。 この目的のために、特定のフェーズx_o^(1)で始まるネットワークの確率、x_o^(2)がx_o^(1)に従う確率、およびx_o^(3)がx_o^(2)に従う確率、これらの変数に関連するベイジアンネットワーク(BN)を構築します。 つまり、集団アーカイブを使用してp(x_o^(1))、p(x_o^(2) | x_o^(1))、およびp(x_o^(3) | x_o^(2))の分布を推定し、利用プロセス中にこれらの推定値を更新します。 このBNからサンプリングすることにより、新しい子孫解が作成されます。 図4に、このプロセスを図で示します。
図4:利用:NSGA-Netによって構築されたベイジアンネットワーク(BN)からのサンプリング。 ヒストグラムは、探索ステップ中に探索され、探索ステップ中に更新された(つまり、集団アーカイブを使用して)フェーズ間のネットワーク構造間の条件付き分布の推定値を表します。 利用の間、ネットワークはBNからのサンプリングフェーズによって構築されます。 図2は、サンプリングされたビット文字列{x_o^(1)、x_o^(2)、x_o^(3)}にデコードします。
この章では、NSGA-Netの実験的なセットアップと実装の詳細を説明し、その後、経験的結果を基に、NSGA-Netが画像分類タスクのNASプロセスを自動化する効果を実証します。
NSGA-NetベースのNASをガイドする2つの目的、つまり、分類誤差と計算の複雑性を検討します。 いくつかのメトリックは、計算の複雑性のプロキシとして機能します:アクティブノードの数、ノード間のアクティブ接続の数、パラメータの数、推論時間、および所定のフォワードパスの実行に必要な浮動小数点演算(FLOP)。 最初の実験では、これらの異なるメトリックのそれぞれを検討しました。 広範な実験から、コンピューティング環境、GPUメーカー、温度などの違いや不整合により、推論時間を確実に推定することはできないと結論付けました。 同様に、パラメータ、アクティブな接続、またはアクティブなノードの数は、計算の複雑性の1つの側面にのみ関連します。 対照的に、FLOPSの推定値は、ネットワークの複雑性に対するより正確で信頼性の高いプロキシであることがわかりました。詳細については、補足資料を参照してください。 したがって、分類誤差とFLOPは、ネットワークを選択するための2つの目的となります。 NSGA-Netの様々な多目的探索手法または様々なコンフィグレーション設定を定量的に比較する目的で、私たちは一連の解から通常は最下点の推定値 (= パレートフロンティアの最悪の客観的な値を連結したベクトル) である参照点までの支配領域(一般的な場合はHyperVolume)を計算するHyperVolume(HV)性能メトリックを使用します 。 全ての解がパレートフロンティアにあるときにのみ、最大HVを達成できることが証明されています[10]。 したがって、HVが高ければ高いほど、両方の目的に発見されているより良い解が得られます。
データセット: 分類タスクでは、CIFAR-10 [22]データセットを使用します。 元の学習セットを分割して、アーキテクチャ探索用のトレーニング(80%)と検証セット(20%)を作成しました。 元のCIFAR-10テストセットは、最終的なトレードオフフロントでモデルのテスト精度を取得するために、探索の終了時にのみ使用されます。 NSGA-Netハイパーパラメータ: フェーズ数n_pを3に設定し、各フェーズのノード数を6に設定します。 また、[47]と同様に、空間解像度の変更スキームを修正します。 この場合、ストライド2のMax Poolingは第1フェーズと第2フェーズの後に配置され、Global Average Pooling層は最後のフェーズの後に配置されます。 初期母集団は、一様ランダムサンプリングによって生成されます。 交叉および突然変異操作の確率は、それぞれ0.9および0.02に設定されています。 集団は40人、世代数は探索段階で20、利用のためにさらに10世代です。 したがって、合計1,200 (40 * 30) のネットワークアーキテクチャがNSGA-Netによって探索されます。 探索中のネットワーク学習:アーキテクチャ探索中は、生成されたネットワークアーキテクチャごとに、ノード内のフィルタ(チャネル)の数を16に制限します。 次に、標準の確率的勾配降下法(SGD)逆伝播アルゴリズムとコサインアニーリング学習率スケジュールを使用して、学習セットでそれらを学習します[28]。 私たちの初期学習率は0.025であり、25エポックを学習します。これは、PyTorchのNVIDIA 1080Ti GPU実装で約9分かかります[30]。 次に、分類誤差が検証セットで測定されます。
他の単一目的NAS方法と比較するために、[27]で使用されている学習手順を採用し、簡単な要約を以下に示します。 エポック数をバッチサイズ96で600に拡張し、最終的に選択されたモデル(トレードオフフロンティアアーキテクチャ全体、または意思決定者が選択した特定のアーキテクチャ)を学習します。 また、データ前処理手法のCutout[6]※4 と、[47]で導入された正則化手法のスケジュールパスドロップアウトも組み込んでいます。 さらに、学習プロセスをさらに改善するために、「Auxiliary Head Classifier」がアーキテクチャに約2/3の深さで追加されます(2番目の解像度低減操作の直後)。 このAuxiliary Head Classifierからの損失は、定数係数0.4でスケーリングされ、学習中の逆伝播の前に元のアーキテクチャからの損失と集計されます。 逆伝播学習に関連する他のハイパーパラメータは、アーキテクチャ探索中と同じままです。 さまざまなNAS方法を比較するために、NASNet-Aセル[47]、AmoebaNet-Aセル[35]、およびDARTS(2次)セル[27]を学習手順に組み込み、NSGA-Netが見つけたアーキテクチャと同じ設定でその結果を報告します。
※4 Cutout:教師データとなる画像のランダムな一部矩形領域をマスクする手法。 データの水増しなどに使われているらしい。
まず、目的空間におけるNSGA-Netの全体的な探索の進行状況を示します。 図5は、探索のさまざまな段階を通じてNSGA-Netによって取得された両目的フロンティアを示しており、集団全体の段階的な改善を明確に示しています。
図5:NSGA-Netの各ステージ後のトレードオフフロンティアの進行。
図6は、集団の異なる世代における、正規化されたHVと子孫の生存率という2つの指標を示しています。
図6:世代別の正規化されたHVと子孫のネットワークアーキテクチャの生存率。
前者の単調増加は、世代を経てより良いトレードオフネットワークアーキテクチャのセットが見つかったことを示唆しています。 後者のメトリックの単調な減少は、驚くべきことではないですが、より良い子孫を(その親よりも)作成することがますます困難であることを示唆しています。 探索プロセスの現在の段階を終了し、探索と搾取を切り替えるための潜在的な基準として、子孫の生存率のしきい値を使用できます。 NSGA-Netから取得したネットワークアーキテクチャを他の手作りの探索生成アーキテクチャと比較するために、最終フロンティア(図5の緑の曲線の右下隅にあるドット)から分類誤差が最も少ないネットワークアーキテクチャを選択し、フェーズの各ノードのフィルタ数を増やしてネットワークを推定し(4.3節で説明されている設定に従う)、公式のCIFAR-10学習セット全体で学習します。 図2に示すネットワークアーキテクチャを選択すると、3.34百万のパラメーターと1290 MFLOPを含むCIFAR-10テストセットで3.85%の分類誤差が発生します。 表1は、NSGA-Netを他の多目的NAS手法と比較した要約を示しています。
表1:CIFAR-10の多目的手法(各手法で最高の精度)
残念ながら、これらの多目的NAS方式間のハイパーボリューム比較は、次の2つの理由により実行できません。 1)他の多目的NAS手法によって得られたトレードオフフロンティア全体は報告されません。 2)アーキテクチャの複雑性を推定するために、異なる目的が使用されました。 探索空間の制限により、NSGA-Netが発見したトレードオフフロンティアの他のアーキテクチャは、補足資料で報告されています。 人間が設計したものと探索によって生成されたものの両方からの最先端のCNNアーキテクチャを比較したCIFAR-10の結果を表2に示します。
表2:CIFAR-10画像分類のベースラインとNSGA-Netの比較。 この表の最初のブロックは、人間の専門家によって設計された最先端のアーキテクチャを示しています。 2番目のブロックは、ネットワーク全体を設計するNAS手法を示しています。 最後のブロックは、繰り返し結合されて最終的なアーキテクチャを形成するモジュラーブロックを設計するNASメソッドを示します。 (N @ F)を使用して各モデルの構成を示します。ここで、Nは繰り返しの数、Fは分類直前のフィルタの数です。 †でマークされた結果は、セットアップで対応するアーキテクチャを学習することによって取得されます(詳細は4.3節を参照)。
他の最先端のRLおよび進化ベースのNAS方法[35、47]と比較すると、NSGA-Netは、計算リソースを2桁半(GPU日)少なくすることで同様の性能を実現します。 NSGA-Netは、勾配ベースのNAS法であるDARTS [27]と比較すると、テスト誤差にはわずかな利点があるにも関わらず探索効率が不十分ですが、NSGA-Netは本質的に追加コストなしでトレードオフフロンティアから他の多くのアーキテクチャを提供します。 マクロ探索空間とNASNetマイクロ探索空間のそれぞれに対応する、NSGA-Netによって 見つかった対応するアーキテクチャを図2と図7に示します。
図7:NASNetマイクロ探索空間に適用されたNSGA-Netによって見つかった通常および縮小畳み込みセルアーキテクチャ。 入力(緑)は、前のセルの出力(または入力画像)からのものです。 出力(黄色)は、すべての結果のブランチにわたる連結操作の結果です。 各エッジ(矢印付きの線)は、線の上に操作名の注釈が付けられた操作を示します。
NSGA-Netが発見したアーキテクチャの転移可能性を評価するために、CIFAR-100データセット[22]を検討します。 CIFAR-10データセットの4.3節で説明したのと同じ学習設定を使用します。 学習、単一の1080Ti GPUで約1.5日かかります。 表3に示す結果は、CIFAR-10の検索から学習したアーキテクチャがCIFAR-100に転移可能であることを示唆しています。
表3:CIFAR-100のさまざまな分類器との比較。
NSGA-Netが発見したアーキテクチャは、人間が設計したアーキテクチャとRL-searchで生成されたアーキテクチャ[44、45]の両方に匹敵するパフォーマンスを実現します。 NSGA-Netは、人間の専門家によって設計された最先端のアーキテクチャ[17]と同等の結果を達成し、得られたネットワークアーキテクチャではパラメータが桁違いに少なくなっています。
ここでは、最初に、NSGA-Netを、サニティーチェックとしてのエンコーディングからの一様ランダムサンプリング(RSearch)と比較した結果を示します。 図8aから明らかなように、NSGA-Netを使用すると、はるかに優れたネットワークアーキテクチャのセットが得られます。 次に、追加の結果を提示して、アプローチの2つの主要コンポーネントの利点を示します。 交叉とベイジアンネットワークに基づく子孫の作成です。 交叉演算: 進化的アルゴリズムを使用した最新のNAS検索結果[26、35]は、膨大な計算リソースとともに突然変異のみを使用しています。 CIFAR-10で以下の小規模な実験を行うことにより、EAでの交叉演算の重要性を定量化します。 図8bから、交叉がトレードオフフロンティアの改善に役立つことがわかります。 ベイジアンネットワーク(BN)ベースの子孫作成: ここでは、利用段階、つまりBNからのサンプリングによる子孫の作成の利点を定量化します。 利用の終わりに、一様およびエンコーディングとNSGA-Netによって生成された集団アーカイブ上に構築されたBNから、それぞれ120のネットワークアーキテクチャをサンプリングしました。 BNからサンプリングされたアーキテクチャは、一様なサンプリングによって作成されたすべてのネットワークアーキテクチャを支配します(図8cを参照)。
図8:(a)ランダムサーチとNSGA-Netのトレードオフフロンティア比較。 (b)交叉がある場合とない場合のトレードオフフロンティア比較。 (c)エンコーディング空間からの一様なサンプリングとNSGA-Net探索集団アーカイブから構築されたベイジアンネットワークの比較。
探索の中間解とトレードオフフロンティアを分析し、いくつかの観察を行います。 図2のようなネットワークを視覚化すると、ネットワークの複雑性がフロントに沿って減少するにつれて、探索プロセスは、より高い画像解像度での処理量を最小化することによって複雑性を減らす方向に引き寄せられます。 つまり、ネットワークへの入力に最も近いフェーズからノードを削除します。 そのため、NSGA-Netは一連のネットワークアーキテクチャを出力し、さまざまな複雑性の制約に対して最適化されています。 一方、単一の繰り返し計算ブロックを探索するアプローチは、使用される繰り返しブロックの数を手動で調整することによってのみネットワークの複雑性を制御できます。 したがって、NSGA-Netは、ブロックの任意の繰り返しによって提供される制御とは対照的に、2つの目標をより細かく制御できます。 さらに、いくつかの目的、たとえば敵対的な攻撃に対する感受性は、ブロックの単純な繰り返しでは簡単に制御できない場合があります。 CIFAR-10のトレードオフフロンティアで発見されたネットワークのサブセットは、補足資料で提供されます。
この論文では、NSGA-Net、NASのための多目的進化的アプローチについて説明しました。 NSGA-Netには、多くの実用的な利点があります。 (1)複数の競合する目的を効果的に最適化およびトレードオフできるニューラルネットワークアーキテクチャの設計。 (2)集団ベースの方法によって得られる利点は、目的の重み付き線形結合を最適化するよりも効果的です。 (3)カスタマイズされた交叉スキームによる探索空間のより効率的な探索と活用、およびBOAによる探索履歴全体の活用。 (4)1回の実行でトレードオフフロントにまたがる一連の解を出力します。 実験的に、予測性能と計算の複雑性の両方を最適化することにより、NSGA-Netは、両方の目的で手作りのネットワークよりもはるかに優れたネットワークを見つけ、CIFAR-10での分類のための他の最先端の単一目的NAS方法と比較して優れています。
私たちのエンコーディングは非循環型であるため、コーディングによって定義された探索空間に冗長性が存在します。つまり、同じネットワークアーキテクチャにデコードする複数のエンコーディング文字列が存在します。 経験的に、図9に示すように、各フェーズの計算ブロックで許可されるノード数が増えるにつれて、冗長性がますます増えることがわかりました。
図9:ノード数の増加に伴う冗長性の増加。
ディープネットワークの学習は計算量の多いタスクであるため、同じアーキテクチャの再計算を回避することが不可欠です。 この節では、ゲノムの重複チェックを迅速かつ大まかに行うために開発したアルゴリズムの概要を示します。 このアルゴリズムは、比較する2つのゲノムを入力として受け取り、提供されたゲノムが同じアーキテクチャにデコードされるかどうかを示すフラグを出力します。 一般に、2つのグラフを比較することはNP困難ですが、操作に関して全てのノードが同じである有向非巡回グラフで作業しているので、全てではないにしても殆どの重複を識別するための効率的なネットワークアーキテクチャの重複チェック方法を設計できました。 この方法は、このような状況ではノード番号を交換することで重複するネットワークアーキテクチャを識別する必要があるという直感に基づいて構築されています。 図10に例を示します。
図10:同じネットワーク計算ブロックにデコードするさまざまなエンコードビット文字列の例。
重複チェック方法では、最初にビット列から接続行列を導出します。正の1はその特定のノードへの入力があることを示し、負の1はその特定のノードからの出力を示します。 次に、一連の行と列の入れ替え操作が行われ、基本的にノード番号をシャッフルして、2つの接続行列が正確に一致するかどうかを確認します。 経験的に、この方法は重複の識別において非常に効率的に機能することがわかりました。 同じネットワークフェーズにデコードするビット列をエンコードするさまざまな操作の例を図10に示します。
計算の複雑さのプロキシとしての推論時間またはパラメータ数の選択は、最適ではなく、実際には効果がないと主張します。 実際、最初はこれらの目的の両方を検討しました。 広範な実験から、コンピューティング環境、GPUメーカー、GPU温度などの違いや不整合により、推論時間を確実に推定することはできないと結論付けました。 同様に、パラメータ数は、計算の複雑性の1つの側面にのみ関連します。 代わりに、2番目の目的には、浮動小数点演算(FLOP)の数を使用することを選択しました。 次の表は、アクティブなノードの数、接続の数、総パラメータ数、およびいくつかのサンプリングされたアーキテクチャビルディングブロックのFLOPを比較しています。 これらの計算の例については、表4を参照してください。
表4:アクティブノードの数、接続の数、パラメータ数、および積和の数を比較するネットワークの例。
公式実装 https://github.com/ianwhale/nsga-net
一言でいうと
論文リンク
https://dl.acm.org/doi/pdf/10.1145/3321707.3321729
著者/所属機関
Zhichao Lu, Ian Whalen, Vishnu Boddeti, Yashesh Dhebar, Kalyanmoy Deb, Erik Goodman and Wolfgang Banzhaf / Michigan State University / East Lansing, Michigan
投稿日付
2019/6/xx
概要
この論文では、ニューラルアーキテクチャ探索(NAS)の進化的アプローチであるNSGA-Netを紹介します。 NSGA-Netは、3つの目標を念頭に置いて設計されています: (1)複数の矛盾する目的を考慮した方法 (2)潜在的なニューラルネットワークアーキテクチャ空間の探索と活用のバランスをとる効率的な方法 (3)1回の実行で達成されたトレードオフネットワークアーキテクチャの多様なセットを見つける方法
NSGA-Netは、集団ベースの探索アルゴリズムであり、3つのステップで潜在的なNNアーキテクチャ空間を探索します。つまり、
実験結果は、エラーメトリックとFLOP※1 で測定される計算の複雑性※2 を最小化するという2つの目的を組み合わせると、NSGA-Netが競合するNNアーキテクチャを見つけることができることを示唆しています。 さらに、NSGA-Netは、他の最先端のNASメソッドと同等のCIFAR-10データセットでエラー率を達成し、計算リソースを大幅に削減します。 これらの結果は有望であり、さまざまなディープラーニングパラダイムでEC(進化計算)メソッドをさらに使用する可能性を示しています。
※1 FLOP:FLoating point Operations Per Secondの略。1秒間に浮動小数点演算が何回できるかを表したもので、この値が大きいほど計算速度が速い。 ※2 複雑性:O(MN^3):FLOPのような、計算に時間がどれだけかかるかという話。
はじめに
ディープCNNは、さまざまな画像分析タスクで圧倒的に成功しています。 この成功の主な原動力の1つは、AlexNet [23]、VGG [37]、GoogLeNet [39]、ResNet [12]、DenseNet [17]などの、画像分類のコンテキストにおける多くのCNNアーキテクチャの導入です。 同時に、MobileNet [14]、XNOR-Net [34]、BinaryNets [4]、LBCNN [19]などのネットワーク設計は、高性能モデルをリソースに制約のあるデバイスで実装に開発できるようにすることを目的として開発されました。 これらの開発は、長年にわたる骨の折れる努力と人間の創意工夫の成果です。 一方、NASソッドは、ネットワークアーキテクチャの設計プロセスを自動化しようとしています。 [36]や[47]のような最先端の強化学習(RL)手法は、探索空間の使用において非効率的であり、それぞれ3150および2,000 GPU日を必要とします。 [27]のような勾配ベースの方法は、タスクのエラーメトリックを最小化する単一の目的に焦点を当てており、複数の矛盾する目的を処理するように簡単に適合させることはできません。 さらに、ほとんどの最先端のアプローチは、Inceptionブロック[39]と同様に単一の計算ブロックを探索し、必要な回数だけ繰り返して、完全なネットワークを形成します。 この論文では、前述の現在のアプローチの制限に対処するためのNASの多目的遺伝的アルゴリズムであるNSGA-Netを紹介します。 NSGA-Netの概要を図1に示します。 図1:NSGA-Netのステージの概要。 ネットワークは、NSGA-IIによる勾配降下、ランキング、および選択、BOA(ベイジアン最適化アルゴリズム)による探索履歴の活用を通じて学習されたビット文字列として表されます。 出力は、複雑なネットワークとエラーの目的に及ぶセットです。
NSGA-Netの主な機能は次のとおりです。 (1)多目的最適化:NASモデルの実際の開発には、モデルが正確であることに加えて、小規模ネットワークが必要です。 たとえば、いくつか例を挙げると、消費電力、使用可能なメモリ、使用可能なFLOP、および遅延の制約の点で、ハードウェアリソースによって制約されることが多いコンピューティングデバイスのパフォーマンスを最大化することを目指しています。 NSGA-Netは、そのような競合する目的を最適化するように明示的に設計されています。 (2)柔軟なアーキテクチャの探索空間:ほとんどの既存のメソッドの探索空間は、必要な回数だけ繰り返されるブロックに制限されています。 対照的に、NSGA-Netはネットワークの構造全体を探索します。 このスキームは、ネットワーク全体で同じ計算ブロックを繰り返すことによる固有の制限を克服します。つまり、単一のブロックがすべてのアプリケーションに最適ではない可能性があり、NASがネットワークの異なる部分の異なるブロックを持つアーキテクチャを検出できるようにすることが望ましいです。 (3)非支配ソート:NSGA-Netのコアコンポーネントは、NSGA-II[5]です。これは、さまざまな多目的問題[31、40]を解決するためにうまく採用されている多目的最適化アルゴリズムです。 ここでは、複数の競合する目的間の多様なトレードオフフロンティアを維持する機能を活用して、探索空間をより効果的かつ効率的に探索します。 (4)効率的な組み換え:突然変異のみが使用される最先端の進化ベースのNAS手法[35、36]とは対照的に、解の多様なフロンティアの複数の目的にわたる、望ましい品質のネットワークを組み合わせるために交叉を採用します。 (5)ベイジアン学習:ベイジアン最適化アルゴリズム(BOA)[32]に触発されたベイジアンネットワークを構築および採用して、探索履歴アーカイブに存在する有望な解とネットワークアーキテクチャの層間の固有の相関を完全に利用します。
CIFAR-10 [22]画像分類タスクにおけるNSGA-Netの有効性を、分類誤差と計算の複雑性という2つの目的を最小限に抑えることで示します。 ここで、計算の複雑性は、ネットワークがフォワードパス中に実行する浮動小数点演算(FLOP)の数によって定義されます。 実験的に、NSGA-Netは、単一目的の最先端のNASアプローチと競争しながら、両方の目的で手作りの方法よりもはるかに優れた解を含むネットワークアーキテクチャのセットを見つけることができることを観察しました。 さらに、NSGA-Netは、探索履歴の再結合と利用を通じてネットワークの母集団を十分に活用することで、探索空間を効率的に探索し、他の競合する方法よりも探索に必要な計算時間を短縮します。 NSGA-Netの実装はこちらから入手できます*。
関連研究
提案手法
コンピューティングデバイスは、多くの場合、消費電力、使用可能なメモリ、使用可能なFLOP、および遅延の制約の点で、ハードウェアリソースによって制約を受けます。 したがって、DNNの実際の設計では、これらの複数の目的(予測性能や計算の複雑性など)のバランスを取る必要があります。 多くの場合、複数の設計基準が同時に考慮される場合、特に競合する目的で、すべての望ましい基準で最適に機能する単一の解が存在しない場合があります。 このような状況では、目的間の代表的なトレードオフ情報を提供する一連の解がより望ましいです。 これにより、専門家はアプリケーションに応じて各基準の重要性を分析し、実装のトレードオフフロンティアで適切な解を選択できます。 NSGA-Netは、画像分類タスクの性能と複雑性の間のパレートフロントを近似する一連のDNNアーキテクチャを自動的に生成する、遺伝的アルゴリズムに基づくアーキテクチャ検索方法です。 このセクションの残りの部分では、エンコードスキーム、およびNSGA-Netの主要コンポーネントについて詳しく説明します。
エンコーディング
遺伝的アルゴリズムは、他の生物学にヒントを得た探索方法と同様に、表現型(phenortypes)※3 に直接作用しないことがよくあります。 生物学的観点から、DNNアーキテクチャを表現型と見なし、マッピング元の表現をその遺伝子型と見なすことができます。 自然界と同様に、交叉や突然変異などの遺伝子操作は遺伝子型空間でのみ実行されます。 NSGA-Netも同様です。 この論文では、遺伝子型と表現型の間のインターフェースを「エンコーディング」と呼びます。 ほとんどの既存のCNNアーキテクチャは、層ごとの計算を定義する計算ブロックの構成(ResNetブロック[12]、DenseNetブロック[17]、およびInceptionブロック[39]など)と、空間解像度の変更を指定するスキームと見なすことができます。 例えば、ダウンサンプリングは、画像分類DNNの次の計算ブロックに入る情報の空間解像度を下げるために、計算ブロックの後によく使用されます。 NSGA-Netでは、「フェーズ」と呼ばれる各計算ブロックは、XieとYuilleによって提案されたビットを追加するわずかな変更を加えた方法[43]を使用してエンコードされ、ブロック全体をバイパスして入力情報を出力に直接転送するスキップ接続を表します。 この調査では、これをオペレーションエンコーディングx_oと名付けています。
オペレーションエンコーディングx_o: ほとんどの手作りおよびNAS生成のアーキテクチャとは異なり、ネットワークを構築するために同じフェーズ(計算ブロック)を繰り返すことはありません。 代わりに、ネットワークの操作は x_o =(x_o^(1)、x_o^(2)、...、x_o^(np))ここで、npはフェーズ数です。 各x_o^(i)は、バイナリ文字列を使用してフェーズ内の操作を記述するn_o個のノードで構成される有向非循環グラフをエンコードします。 ここで、ノードは基本的な計算ユニットであり、畳み込み、プーリング、バッチ正規化[18]のような単一の操作、または一連の操作です。 このエンコーディングスキームは、遺伝子型空間でのネットワークアーキテクチャのコンパクトな表現を提供しますが、手作りネットワーク (例えば、VGG [37]、ResNet [12]およびDenseNet [17]) の多くの計算ブロックをエンコードできるほど柔軟です。 図2と図3は、オペレーションエンコーディングの例を示しています。
図2:エンコード:x = x_oによってエンコードされた分類ネットワークの図。ここで、xoはフェーズでの操作です(灰色のボックス、それぞれ最大6ノードの可能性があります)。 この例では、空間分解能の変更(フェーズを接続するオレンジ色のボックス)は、成功したアプローチの事前知識に基づいて修正されています。 フェーズは、読みやすさのためにフォーマットされたビット文字列x_oによって記述されます。 ビットは-でグループ化され、それらが制御するノードを示します。 コード化スキームの詳細については、3.1節を参照してください。
図3:交叉の例:VGGのような構造とDenseNetのような構造の交叉(⊗で示される)は、ResNetのようなネットワークになる可能性があります。 図では、赤と青はそれぞれVGGとDenseNetに固有の接続を示し、黒は両方の親に共通の接続を示しています。 すべての黒いビットは最後の子エンコーディングで保持され、親のいずれかからランダムに選択できるのは、親間で共通でないビットのみです。
※3 表現型:染色体によって規定される形質の外部的表現.例えば,「染色体上のある位置の遺伝子の並びが 010 であるときは,羽の色が赤くなる」というような場合,「010」が遺伝子型に,また,「羽の色が赤くなる」ということが表現型に相当する. https://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/opt/GA/GA.htm
探索空間 事前に定義された空間解像度削減のスキーム([27、35、47]と同様)を使用すると、遺伝子型スペースの総探索空間は、x_oをエンコードする操作によって制御されます: Ωx=Ω(x_o)= n_p×2 ^(n_o (n_o−1) / 2 + 1) ここで、n_pはフェーズ(計算ブロック)の数であり、n_oは各フェーズのノード(基本計算ユニット)の数です。 ただし、計算上の扱いやすさのために、フェーズ内の各ノードが同じ操作シーケンスを実行するように探索空間を制限します。 各フェーズのノードが同じ操作を持つ結果として、遺伝子型と表現型の間のエンコーディングは多対1のマッピングになることに注意してください。 性能を評価する前に各ネットワークアーキテクチャを学習するために必要な法外な計算コストを考えると、同じアーキテクチャにデコードするゲノムの評価を回避することが不可欠です。 これらの重複ゲノムを迅速かつ大まかに特定するアルゴリズムを開発しています(詳細については、補足資料を参照してください)。
探索手続き
NSGA-Netは、初期解が集団と呼ばれるグループとして徐々に改善される反復プロセスです。 すべての反復で、母集団から選択された親から同じ数の子孫(新しいネットワークアーキテクチャ)が生成されます。 各母集団のメンバー(親と子の両方を含む)は、次の反復で生存と複製 (親になる) の両方を競います。 初期母集団はランダムに生成されるか、事前知識(たとえば、手作りのネットワークアーキテクチャを初期母集団にシードする)によって導かれます。 初期化に続いて、NSGANet全体の探索は、探索と利用という2つの連続した段階で行われます。
探索: このステージの目標は、ノードを接続してフェーズ(計算ブロック)を形成するさまざまな方法を発見することです。 遺伝的操作、交叉および突然変異は、この目標を実現するための効果的な手段を提供します。 交叉: 集団メンバーがビルディングブロックを(交叉を通じて)効果的に共有できる場合、集団ベースの探索アプローチの暗黙的な並列処理を解除できます[13]。 NASのコンテキストでは、フェーズまたはフェーズのサブ構造をビルディングブロックと見なすことができます。 親からビルディングブロックを継承および再結合して子孫(新しいネットワークアーキテクチャ)を作成するために、選択した2つの母集団を親に取る同種の交叉演算を設計します。 この交叉演算の主なアイデアは、 1)両方の親のバイナリビット文字列から共通ビットを継承することにより、両方の親間で共有される共通のビルディングブロックを保持します。 2)子孫のビット文字列の「1」ビットの数を両方の親の「1」ビットの数の間にあるように制限することにより、親と子孫の間で比較的同じ複雑さを維持します。 提案された交叉により、選択されたアーキテクチャ(親)は、フェーズまたはフェーズ内のサブ構造を効果的に交換できます。 交叉演算子の例を図3に示します。 突然変異: 集団の多様性(異なるネットワークアーキテクチャを持つ)と局所最適から脱出する機能を強化するために、バイナリコーディングされた遺伝的アルゴリズムで一般的に使用されるビット反転突然変異演算子を使用します。 エンコーディングの性質上、遺伝子型空間での1ビットの反転は、表現型空間で完全に異なるアーキテクチャを作成する可能性があります。 したがって、反転できるビット数は、各突然変異操作で最大1つに制限されています。 その結果、一度に変更できるフェーズアーキテクチャは1つだけです。
利用: 利用フェーズは、NSGA-Netの探索段階に続きます。 このフェーズの目標は、前の段階で調査された過去の成功したアーキテクチャ間で一般的に共有されているパターンを利用して強化することです。 NSGA-Netの活用ステップは、最適化変数間の固有の相関のある問題のために明示的に設計されたベイズ最適化アルゴリズム(BOA)[32]に強く影響を受けています。 NASエンコーディングのコンテキストでは、これはさまざまなフェーズにわたるブロックとパスの相関に変換されます。 利用では、評価されたすべてのネットワークに渡る過去の情報を使用して、探索の最後の部分をガイドします。 より具体的には、3つのフェーズ、つまりx_o^(1)、x_o^(2)、およびx_o^(3)を持つネットワークがあるとします。 私たちは3つのフェーズの関係を知りたいと思います。 この目的のために、特定のフェーズx_o^(1)で始まるネットワークの確率、x_o^(2)がx_o^(1)に従う確率、およびx_o^(3)がx_o^(2)に従う確率、これらの変数に関連するベイジアンネットワーク(BN)を構築します。 つまり、集団アーカイブを使用してp(x_o^(1))、p(x_o^(2) | x_o^(1))、およびp(x_o^(3) | x_o^(2))の分布を推定し、利用プロセス中にこれらの推定値を更新します。 このBNからサンプリングすることにより、新しい子孫解が作成されます。 図4に、このプロセスを図で示します。
図4:利用:NSGA-Netによって構築されたベイジアンネットワーク(BN)からのサンプリング。 ヒストグラムは、探索ステップ中に探索され、探索ステップ中に更新された(つまり、集団アーカイブを使用して)フェーズ間のネットワーク構造間の条件付き分布の推定値を表します。 利用の間、ネットワークはBNからのサンプリングフェーズによって構築されます。 図2は、サンプリングされたビット文字列{x_o^(1)、x_o^(2)、x_o^(3)}にデコードします。
実験
この章では、NSGA-Netの実験的なセットアップと実装の詳細を説明し、その後、経験的結果を基に、NSGA-Netが画像分類タスクのNASプロセスを自動化する効果を実証します。
性能メトリック
NSGA-NetベースのNASをガイドする2つの目的、つまり、分類誤差と計算の複雑性を検討します。 いくつかのメトリックは、計算の複雑性のプロキシとして機能します:アクティブノードの数、ノード間のアクティブ接続の数、パラメータの数、推論時間、および所定のフォワードパスの実行に必要な浮動小数点演算(FLOP)。 最初の実験では、これらの異なるメトリックのそれぞれを検討しました。 広範な実験から、コンピューティング環境、GPUメーカー、温度などの違いや不整合により、推論時間を確実に推定することはできないと結論付けました。 同様に、パラメータ、アクティブな接続、またはアクティブなノードの数は、計算の複雑性の1つの側面にのみ関連します。 対照的に、FLOPSの推定値は、ネットワークの複雑性に対するより正確で信頼性の高いプロキシであることがわかりました。詳細については、補足資料を参照してください。 したがって、分類誤差とFLOPは、ネットワークを選択するための2つの目的となります。 NSGA-Netの様々な多目的探索手法または様々なコンフィグレーション設定を定量的に比較する目的で、私たちは一連の解から通常は最下点の推定値 (= パレートフロンティアの最悪の客観的な値を連結したベクトル) である参照点までの支配領域(一般的な場合はHyperVolume)を計算するHyperVolume(HV)性能メトリックを使用します 。 全ての解がパレートフロンティアにあるときにのみ、最大HVを達成できることが証明されています[10]。 したがって、HVが高ければ高いほど、両方の目的に発見されているより良い解が得られます。
実装の詳細
データセット: 分類タスクでは、CIFAR-10 [22]データセットを使用します。 元の学習セットを分割して、アーキテクチャ探索用のトレーニング(80%)と検証セット(20%)を作成しました。 元のCIFAR-10テストセットは、最終的なトレードオフフロントでモデルのテスト精度を取得するために、探索の終了時にのみ使用されます。 NSGA-Netハイパーパラメータ: フェーズ数n_pを3に設定し、各フェーズのノード数を6に設定します。 また、[47]と同様に、空間解像度の変更スキームを修正します。 この場合、ストライド2のMax Poolingは第1フェーズと第2フェーズの後に配置され、Global Average Pooling層は最後のフェーズの後に配置されます。 初期母集団は、一様ランダムサンプリングによって生成されます。 交叉および突然変異操作の確率は、それぞれ0.9および0.02に設定されています。 集団は40人、世代数は探索段階で20、利用のためにさらに10世代です。 したがって、合計1,200 (40 * 30) のネットワークアーキテクチャがNSGA-Netによって探索されます。 探索中のネットワーク学習:アーキテクチャ探索中は、生成されたネットワークアーキテクチャごとに、ノード内のフィルタ(チャネル)の数を16に制限します。 次に、標準の確率的勾配降下法(SGD)逆伝播アルゴリズムとコサインアニーリング学習率スケジュールを使用して、学習セットでそれらを学習します[28]。 私たちの初期学習率は0.025であり、25エポックを学習します。これは、PyTorchのNVIDIA 1080Ti GPU実装で約9分かかります[30]。 次に、分類誤差が検証セットで測定されます。
アーキテクチャの検証
他の単一目的NAS方法と比較するために、[27]で使用されている学習手順を採用し、簡単な要約を以下に示します。 エポック数をバッチサイズ96で600に拡張し、最終的に選択されたモデル(トレードオフフロンティアアーキテクチャ全体、または意思決定者が選択した特定のアーキテクチャ)を学習します。 また、データ前処理手法のCutout[6]※4 と、[47]で導入された正則化手法のスケジュールパスドロップアウトも組み込んでいます。 さらに、学習プロセスをさらに改善するために、「Auxiliary Head Classifier」がアーキテクチャに約2/3の深さで追加されます(2番目の解像度低減操作の直後)。 このAuxiliary Head Classifierからの損失は、定数係数0.4でスケーリングされ、学習中の逆伝播の前に元のアーキテクチャからの損失と集計されます。 逆伝播学習に関連する他のハイパーパラメータは、アーキテクチャ探索中と同じままです。 さまざまなNAS方法を比較するために、NASNet-Aセル[47]、AmoebaNet-Aセル[35]、およびDARTS(2次)セル[27]を学習手順に組み込み、NSGA-Netが見つけたアーキテクチャと同じ設定でその結果を報告します。
※4 Cutout:教師データとなる画像のランダムな一部矩形領域をマスクする手法。 データの水増しなどに使われているらしい。
結果分析
まず、目的空間におけるNSGA-Netの全体的な探索の進行状況を示します。 図5は、探索のさまざまな段階を通じてNSGA-Netによって取得された両目的フロンティアを示しており、集団全体の段階的な改善を明確に示しています。
図5:NSGA-Netの各ステージ後のトレードオフフロンティアの進行。
図6は、集団の異なる世代における、正規化されたHVと子孫の生存率という2つの指標を示しています。
図6:世代別の正規化されたHVと子孫のネットワークアーキテクチャの生存率。
前者の単調増加は、世代を経てより良いトレードオフネットワークアーキテクチャのセットが見つかったことを示唆しています。 後者のメトリックの単調な減少は、驚くべきことではないですが、より良い子孫を(その親よりも)作成することがますます困難であることを示唆しています。 探索プロセスの現在の段階を終了し、探索と搾取を切り替えるための潜在的な基準として、子孫の生存率のしきい値を使用できます。 NSGA-Netから取得したネットワークアーキテクチャを他の手作りの探索生成アーキテクチャと比較するために、最終フロンティア(図5の緑の曲線の右下隅にあるドット)から分類誤差が最も少ないネットワークアーキテクチャを選択し、フェーズの各ノードのフィルタ数を増やしてネットワークを推定し(4.3節で説明されている設定に従う)、公式のCIFAR-10学習セット全体で学習します。 図2に示すネットワークアーキテクチャを選択すると、3.34百万のパラメーターと1290 MFLOPを含むCIFAR-10テストセットで3.85%の分類誤差が発生します。 表1は、NSGA-Netを他の多目的NAS手法と比較した要約を示しています。
表1:CIFAR-10の多目的手法(各手法で最高の精度)
残念ながら、これらの多目的NAS方式間のハイパーボリューム比較は、次の2つの理由により実行できません。 1)他の多目的NAS手法によって得られたトレードオフフロンティア全体は報告されません。 2)アーキテクチャの複雑性を推定するために、異なる目的が使用されました。 探索空間の制限により、NSGA-Netが発見したトレードオフフロンティアの他のアーキテクチャは、補足資料で報告されています。 人間が設計したものと探索によって生成されたものの両方からの最先端のCNNアーキテクチャを比較したCIFAR-10の結果を表2に示します。
表2:CIFAR-10画像分類のベースラインとNSGA-Netの比較。 この表の最初のブロックは、人間の専門家によって設計された最先端のアーキテクチャを示しています。 2番目のブロックは、ネットワーク全体を設計するNAS手法を示しています。 最後のブロックは、繰り返し結合されて最終的なアーキテクチャを形成するモジュラーブロックを設計するNASメソッドを示します。 (N @ F)を使用して各モデルの構成を示します。ここで、Nは繰り返しの数、Fは分類直前のフィルタの数です。 †でマークされた結果は、セットアップで対応するアーキテクチャを学習することによって取得されます(詳細は4.3節を参照)。
他の最先端のRLおよび進化ベースのNAS方法[35、47]と比較すると、NSGA-Netは、計算リソースを2桁半(GPU日)少なくすることで同様の性能を実現します。 NSGA-Netは、勾配ベースのNAS法であるDARTS [27]と比較すると、テスト誤差にはわずかな利点があるにも関わらず探索効率が不十分ですが、NSGA-Netは本質的に追加コストなしでトレードオフフロンティアから他の多くのアーキテクチャを提供します。 マクロ探索空間とNASNetマイクロ探索空間のそれぞれに対応する、NSGA-Netによって 見つかった対応するアーキテクチャを図2と図7に示します。
図7:NASNetマイクロ探索空間に適用されたNSGA-Netによって見つかった通常および縮小畳み込みセルアーキテクチャ。 入力(緑)は、前のセルの出力(または入力画像)からのものです。 出力(黄色)は、すべての結果のブランチにわたる連結操作の結果です。 各エッジ(矢印付きの線)は、線の上に操作名の注釈が付けられた操作を示します。
転移性
NSGA-Netが発見したアーキテクチャの転移可能性を評価するために、CIFAR-100データセット[22]を検討します。 CIFAR-10データセットの4.3節で説明したのと同じ学習設定を使用します。 学習、単一の1080Ti GPUで約1.5日かかります。 表3に示す結果は、CIFAR-10の検索から学習したアーキテクチャがCIFAR-100に転移可能であることを示唆しています。
表3:CIFAR-100のさまざまな分類器との比較。
NSGA-Netが発見したアーキテクチャは、人間が設計したアーキテクチャとRL-searchで生成されたアーキテクチャ[44、45]の両方に匹敵するパフォーマンスを実現します。 NSGA-Netは、人間の専門家によって設計された最先端のアーキテクチャ[17]と同等の結果を達成し、得られたネットワークアーキテクチャではパラメータが桁違いに少なくなっています。
アブレーション研究
ここでは、最初に、NSGA-Netを、サニティーチェックとしてのエンコーディングからの一様ランダムサンプリング(RSearch)と比較した結果を示します。 図8aから明らかなように、NSGA-Netを使用すると、はるかに優れたネットワークアーキテクチャのセットが得られます。 次に、追加の結果を提示して、アプローチの2つの主要コンポーネントの利点を示します。 交叉とベイジアンネットワークに基づく子孫の作成です。 交叉演算: 進化的アルゴリズムを使用した最新のNAS検索結果[26、35]は、膨大な計算リソースとともに突然変異のみを使用しています。 CIFAR-10で以下の小規模な実験を行うことにより、EAでの交叉演算の重要性を定量化します。 図8bから、交叉がトレードオフフロンティアの改善に役立つことがわかります。 ベイジアンネットワーク(BN)ベースの子孫作成: ここでは、利用段階、つまりBNからのサンプリングによる子孫の作成の利点を定量化します。 利用の終わりに、一様およびエンコーディングとNSGA-Netによって生成された集団アーカイブ上に構築されたBNから、それぞれ120のネットワークアーキテクチャをサンプリングしました。 BNからサンプリングされたアーキテクチャは、一様なサンプリングによって作成されたすべてのネットワークアーキテクチャを支配します(図8cを参照)。
図8:(a)ランダムサーチとNSGA-Netのトレードオフフロンティア比較。 (b)交叉がある場合とない場合のトレードオフフロンティア比較。 (c)エンコーディング空間からの一様なサンプリングとNSGA-Net探索集団アーカイブから構築されたベイジアンネットワークの比較。
議論
探索の中間解とトレードオフフロンティアを分析し、いくつかの観察を行います。 図2のようなネットワークを視覚化すると、ネットワークの複雑性がフロントに沿って減少するにつれて、探索プロセスは、より高い画像解像度での処理量を最小化することによって複雑性を減らす方向に引き寄せられます。 つまり、ネットワークへの入力に最も近いフェーズからノードを削除します。 そのため、NSGA-Netは一連のネットワークアーキテクチャを出力し、さまざまな複雑性の制約に対して最適化されています。 一方、単一の繰り返し計算ブロックを探索するアプローチは、使用される繰り返しブロックの数を手動で調整することによってのみネットワークの複雑性を制御できます。 したがって、NSGA-Netは、ブロックの任意の繰り返しによって提供される制御とは対照的に、2つの目標をより細かく制御できます。 さらに、いくつかの目的、たとえば敵対的な攻撃に対する感受性は、ブロックの単純な繰り返しでは簡単に制御できない場合があります。 CIFAR-10のトレードオフフロンティアで発見されたネットワークのサブセットは、補足資料で提供されます。
おわりに
この論文では、NSGA-Net、NASのための多目的進化的アプローチについて説明しました。 NSGA-Netには、多くの実用的な利点があります。 (1)複数の競合する目的を効果的に最適化およびトレードオフできるニューラルネットワークアーキテクチャの設計。 (2)集団ベースの方法によって得られる利点は、目的の重み付き線形結合を最適化するよりも効果的です。 (3)カスタマイズされた交叉スキームによる探索空間のより効率的な探索と活用、およびBOAによる探索履歴全体の活用。 (4)1回の実行でトレードオフフロントにまたがる一連の解を出力します。 実験的に、予測性能と計算の複雑性の両方を最適化することにより、NSGA-Netは、両方の目的で手作りのネットワークよりもはるかに優れたネットワークを見つけ、CIFAR-10での分類のための他の最先端の単一目的NAS方法と比較して優れています。
補足
重複チェックと削除
私たちのエンコーディングは非循環型であるため、コーディングによって定義された探索空間に冗長性が存在します。つまり、同じネットワークアーキテクチャにデコードする複数のエンコーディング文字列が存在します。 経験的に、図9に示すように、各フェーズの計算ブロックで許可されるノード数が増えるにつれて、冗長性がますます増えることがわかりました。
図9:ノード数の増加に伴う冗長性の増加。
ディープネットワークの学習は計算量の多いタスクであるため、同じアーキテクチャの再計算を回避することが不可欠です。 この節では、ゲノムの重複チェックを迅速かつ大まかに行うために開発したアルゴリズムの概要を示します。 このアルゴリズムは、比較する2つのゲノムを入力として受け取り、提供されたゲノムが同じアーキテクチャにデコードされるかどうかを示すフラグを出力します。 一般に、2つのグラフを比較することはNP困難ですが、操作に関して全てのノードが同じである有向非巡回グラフで作業しているので、全てではないにしても殆どの重複を識別するための効率的なネットワークアーキテクチャの重複チェック方法を設計できました。 この方法は、このような状況ではノード番号を交換することで重複するネットワークアーキテクチャを識別する必要があるという直感に基づいて構築されています。 図10に例を示します。
図10:同じネットワーク計算ブロックにデコードするさまざまなエンコードビット文字列の例。
重複チェック方法では、最初にビット列から接続行列を導出します。正の1はその特定のノードへの入力があることを示し、負の1はその特定のノードからの出力を示します。 次に、一連の行と列の入れ替え操作が行われ、基本的にノード番号をシャッフルして、2つの接続行列が正確に一致するかどうかを確認します。 経験的に、この方法は重複の識別において非常に効率的に機能することがわかりました。 同じネットワークフェーズにデコードするビット列をエンコードするさまざまな操作の例を図10に示します。
アーキテクチャ複雑性の推定
計算の複雑さのプロキシとしての推論時間またはパラメータ数の選択は、最適ではなく、実際には効果がないと主張します。 実際、最初はこれらの目的の両方を検討しました。 広範な実験から、コンピューティング環境、GPUメーカー、GPU温度などの違いや不整合により、推論時間を確実に推定することはできないと結論付けました。 同様に、パラメータ数は、計算の複雑性の1つの側面にのみ関連します。 代わりに、2番目の目的には、浮動小数点演算(FLOP)の数を使用することを選択しました。 次の表は、アクティブなノードの数、接続の数、総パラメータ数、およびいくつかのサンプリングされたアーキテクチャビルディングブロックのFLOPを比較しています。 これらの計算の例については、表4を参照してください。
表4:アクティブノードの数、接続の数、パラメータ数、および積和の数を比較するネットワークの例。
コメント
実装
公式実装 https://github.com/ianwhale/nsga-net