AutoML : NNI 1.5 : 自動調整 : チューナー : TPE、ランダム探索と焼なまし (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
更新日時 : 05/30/2020
作成日時 : 05/26/2020
* 本ページは、NNI の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
自動調整 : チューナー : TPE、ランダム探索と焼なまし
TPE
TPE (Tree-structured Parzen Estimator, 木構造 Parzen 推定器) は SMBO (sequential model-based optimization, シーケンシャル・モデルベースの最適化) アプローチです。SMBO 法は計測履歴に基づきハイパーパラメータのパフォーマンスを見積もるためにモデルをシーケンシャルに構築し、それから続いてこのモデルに基づいてテストするために新しいパラメータを選択します。TPE アプローチは P(x|y) と P(y) をモデル化します、ここで x はハイパーパラメータをそして y は関連する評価メトリックを表します。P(x|y) は、configuration の事前分布をノンパラメトリック密度で置き換え、ハイパーパラメータの生成プロセスを変換することによりモデル化されます。この最適化アプローチは Algorithms for Hyper-Parameter Optimization で詳細に説明されます。
(※ 訳注: 上記参照ペーパーの abstract だけ翻訳しておきます。)
ハイパーパラメータ最適化のためのアルゴリズム (J. Bergstra, R. Bardenet, Y. Bengio and B. Kégl
画像分類ベンチマークにおける最先端技術への幾つかの最近の前進は特徴学習への新規アプローチよりも既存のテクニックのより良い configuration に由来しました。伝統的には、ハイパーパラメータ最適化は人間の仕事でした、何故ならば 2, 3 のトライアルだけが可能であるような体制ではそれが非常に効率的であり得たからです。現在では、コンピュータ・クラスタと GPU プロセッサがより多くのトライアルの実行を可能にし私達はアルゴリズム的なアプローチがより良い結果を見つけられることを示します。ニューラルネットワークと深層信念ネットワーク (DBN) を訓練するタスク上でハイパーパラメータ最適化結果を提示します。ランダム探索と期待改善量 (EI, expected improved) 基準に基づく 2 つの新しい greedy シークエンシャル法を使用してハイパーパラメータを最適化します。ランダム探索は幾つかのデータセットに対してニューラルネットワークを学習するために十分に効率的であることが示されましたが、DBN の訓練に対しては信頼できないことを示します。シークエンシャル・アルゴリズムは ([1] からの) 最も難しい DBN 学習問題に適用されて前に報告されたベストよりもはっきりと良い結果を見つけます。このワークは応答局面モデル P(y|x) を作成するための新規のテクニックに寄与します、そこではハイパーパラメータ割当ての多くの要素が (他の要素の特定の値が与えられたとき) 無関係であると知られています。
並列 TPE 最適化
TPE アプローチは複数コンピュータノードを利用してトライアル評価が終了するのを待つ浪費時間を回避するために実際には非同期に実行されます。元のアルゴリズム設計はシークエンシャル計算のために最適化されました。TPE を多くの同時性で使用したならば、そのパフォーマンスは悪いでしょう。私達は Constant Liar アルゴリズムを使用してこのケースを最適化しました。これらの最適化の原理については、研究ブログ を参照してください。
使用方法
TPE を使用するには、貴方の実験 YAML config ファイルに以下の仕様を追加するべきです :
tuner: builtinTunerName: TPE classArgs: optimize_mode: maximize parallel_optimize: True constant_liar_type: min
classArgs 要件 :
- optimize_mode (maximize または minimize, オプション, default = maximize) –
‘maximize’ の場合、チューナーはメトリクスを最大化しようとします。
‘minimize’ の場合、チューナーはメトリクスを最小化しようとします。 - parallel_optimize (bool、オプション、default = False) –
True の場合、TPE は並列ハイパーパラメータ調整を最適化するために Constant Liar アルゴリズムを使用します。
そうでなければ、TPE はシークエンシャルと並列状況の間を区別しません。 - constant_liar_type (min or max or mean、オプション、default = min) –
使用する constant liar の type は論理的には X における y により取られる値の規定で決定されます。3 つの可能な値があります、min{Y}, max{Y} と mean{Y} です。
ランダム探索 (Random Search)
ハイパーパラメータ最適化のためのランダム探索ではランダム探索がその単純性にもかかわらず驚くほど効果的であるかもしれないことを示します。ハイパーパラメータの事前分布についての知識が利用可能でないときベースラインとしてランダム探索を使用することを提案します。
焼なまし (Anneal)
この単純なアニーリング・アルゴリズムは事前分布からサンプリングすることにより開始しますが、点からのサンプリングは時間とともに (観測された) 最善のものにどんどん近づいていく傾向があります。このアルゴリズムは応答曲面 (= response surface) の滑らかさを活用するランダム探索の単純なバリエーションです。annealing rate は adaptive ではありません。
以上