ホーム » AutoML » AutoML : NNI 1.5 : 自動調整 : チューナー : Hyperband

AutoML : NNI 1.5 : 自動調整 : チューナー : Hyperband

AutoML : NNI 1.5 : 自動調整 : チューナー : Hyperband (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 05/28/2020 (1.6.0)

* 本ページは、NNI の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

自動調整 : チューナー : Hyperband

1. イントロダクション

Hyperband はポピュラーな autoML アルゴリズムです。Hyperband の基本的なアイデアは幾つかのバケットを作成することです、各々は n 個のランダムに生成されたハイパーパラメータ configuration を持ち、各々の configuration は r リソース (e.g., エポック数、バッチ数) を使用します。n configuration が終了した後、それは top n/eta configuration を選択してそれらを増やされた r*eta リソースを使用して実行します。最後に、それはそれまでに見つけた最善の configuration を選択します。

 

2. 完全な並列性を持つ実装

最初に、これはチューナーとアセッサーではなく、MsgDispatcherBase に基づいて autoML アルゴリズムをどのように書くかのサンプルです。Hyperband はこのように実装されています、何故ならばそれはチューナーとアセッサーの両者の関数を統合するからです、そしてそれをアドバイザーと呼びます。

2 番目に、この実装は Hyperband の内部的な並列性をフルに活用しています。特に、次のバケットは厳密には現在のバケット後に開始はされません。代わりに、それは利用可能なリソースがあるときに開始します。

 

3. 使用方法

Hyperband を使用するには、貴方の実験の YAML config ファイルで以下のspec を追加するべきです :

advisor:
  #choice: Hyperband
  builtinAdvisorName: Hyperband
  classArgs:
    #R: the maximum trial budget
    R: 100
    #eta: proportion of discarded trials
    eta: 3
    #choice: maximize, minimize
    optimize_mode: maximize

ひとたびアドバイザーを使用すれば、config ファイルにチューナーとアセッサー spec を追加することは許されないことに注意してください。Hyperband を使用するとき、トライアルにより受け取るハイパーパラメータ (i.e., キーバリューペア) の中に、ユーザにより定義される TRIAL_BUDGET と呼ばれるもう一つのキーがあります。この TRIAL_BUDGET を使用することにより、トライアルはそれがどのくらい長く実行されるかを制御できます。

貴方のトライアルコードの report_intermediate_result(metric) と report_final_result(metric) については、メトリックは数値か辞書であるべきで、これはその値として数値を持つキー default を持ちます。この数値は貴方が最大化または最小化することを望む一つ、例えば、精度か損失です。

R と eta は貴方が変更可能な Hyperband のパラメータです。R は configuration に割り当てることができる最大トライアル・バジェットです。ここでは、トライアル・バジェットはエポックかミニバッチの数です。この TRIAL_BUDGET はそれがどのくらい長く実行されるかを制御するためにトライアルにより使用されるべきです。詳細は examples/trials/mnist-advisor/ 下のサンプルを参照してください。

eta は、n configuration からの n/eta configuration は存続してより多くのバジェットを使用して再実行されることを意味します。

ここに R=81 と eta=3 の具体的なサンプルがあります :

s=4 s=3 s=2 s=1 s=0
i n r n r n r n r n r
0 81 1 27 3 9 9 6 27 5 81
1 27 3 9 9 3 27 2 81
2 9 9 3 27 1 81
3 3 1 81
4 1 81

s はバケットを意味し、n は生成される configuration の数を意味し、対応する r はこれらの configuration が幾つのバジェットを実行するかを意味します。i はラウンドを意味し、例えば、バケット 4 は 5 ラウンドを持ち、バケット 3 は 4 ラウンドを持ちます。

トライアルコードを書くことについての情報は、examples/trials/mnist-hyperband/ 下の手順を参照してください。

 

4. 将来的な改良

Hyperband の現在の実装は単純な早期停止アルゴリズムをサポートすることにより更に改良できます、何故ならばトップ n/eta の総ての configuration が上手くは遂行されない可能性があるからです。任意の見込みのない configuration は早期に停止されるべきです。

現在の実装では、configuration はランダムに生成されます、これは ペーパー のデザインに従っています。改良として、configuration はより進んだアルゴリズムを活用することによりより賢明に生成できるでしょう。

 

以上






AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com