ホーム » AutoML » AutoML : NNI 1.5 : 自動調整 : アセッサー : 組込みアセッサー

AutoML : NNI 1.5 : 自動調整 : アセッサー : 組込みアセッサー

AutoML : NNI 1.5 : 自動調整 : アセッサー : 組込みアセッサー (翻訳/解説)

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

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

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

 

自動調整 : アセッサー : 組込みアセッサー

計算リソースを節約するため、NNI は早期停止 (= early stopping) ポリシーをサポートしていてこのジョブを行なうためにアセッサー (= Assessor) と呼ばれるインターフェイスを持ちます。

アセッサーはトライアルから中間結果を受け取り、そしてトライアルが特定のアルゴリズムを使用して kill されるべきかを決定します。トライアル実験がひとたび早期停止条件に適合すれば (これはアセッサーが最終結果について悲観的であることを意味します)、アセッサーはトライアルを kill してトライアルのステータスは EARLY_STOPPED になります。

ここに ‘maximize’ モードの ‘Curvefitting’ アセッサーを使用した後の MNIST の実験結果があります。アセッサーが悪いハイパーパラメータを持つ多くのトライアルを前もって成功的に 早期停止 したことを見れます。アセッサーを使用する場合、同じ計算リソースを使用してより良いハイパーパラメータを得るかもしれません。

実装コード・ディレクトリ : [config_assessor.yml](https://github.com/Microsoft/nni/blob/master/examples/trials/mnist-tfv1/config_assessor.yml)

 

組込みアセッサー : 概要

NNI は組込みアセッサー内で最先端の調整アルゴリズムを提供してそれらを容易に利用できるようにしています。下は NNI の現在の組込みアセッサーの簡潔な概要です。

Note : 各アセッサーのインスール要件、推奨使用シナリオ、そして config サンプルを得るためにはアセッサーの名前をクリックしてください。各アルゴリズムの詳細説明へのリンクは各アセッサーの提案シナリオの最後で提供されます。

現在、以下のアセッサーをサポートしています :

  • Medianstop
    Medianstop は単純な早期停止ルールです。それは、トライアルのステップ S までのベスト目的値がステップ S までに報告された総ての完了したトライアルの目的の実行平均の median 値よりも厳密に悪い場合に、ステップ S でペンディング・トライアル X を停止します。
    参照ペーパー

  • Curvefitting
    カーブフィッティング (曲線あてはめ) アセッサーは LPA (learning, predicting, assessing) アルゴリズムです。それは、最終エポックのパフォーマンスの予測が訓練履歴の最善の最終パフォーマンスよりも悪い場合、ステップ S でペンディング・トライアル X を停止します。このアルゴリズムでは、精度曲線にあてはめるために 12 曲線を使用します。
    参照ペーパー

 

組込みアセッサーの使用方法

NNI SDK により提供される組込みアセッサーの使用方法は config.yml ファイルで builtinAssessorName と classArgs を宣言する一つを必要とします。このパートでは、各アセッサーのための使用方法の詳細と提案シナリオ、classArg 要件と、サンプルを紹介します。

Note: config.yml ファイルを書くとき提供される形式に従ってください。

 

組込みアセッサー名 : Medianstop

推奨シナリオ

それはパフォーマンス曲線の広い範囲で適用可能ですので、それは調整進捗をスピードアップするために様々なシナリオで利用できます。
詳細説明

 
classArgs の要件

  • optimize_mode (maximize または minimize, オプション, default = maximize) –
    ‘maximize’ の場合、アセッサーはより小さい期待値を持つトライアルを停止します。
    ‘minimize’ の場合、アセッサーはより大きい期待値を持つトライアルを停止します。

  • start_step (int、オプション、default = 0) –
    トライアルは、報告された中間結果の start_step 数を受け取った後にだけ、停止されるか否かを決定されます。

 
使用方法サンプル :

# config.yml
assessor:
    builtinAssessorName: Medianstop
    classArgs:
      optimize_mode: maximize
      start_step: 5

 

組込みアセッサー名 : Curvefitting

推奨シナリオ

それはパフォーマンス曲線の広い範囲で適用可能ですので、それは調整進捗をスピードアップするために様々なシナリオで利用できます。更に良いことに、それは類似のパフォーマンスを持つ曲線を処理して評価することができます。
詳細説明

 
classArgs の要件

  • epoch_num (int, required) –
    エポックの総数。どのポイントを予測する必要があるかを決定するためにエポック数を知る必要があります。

  • optimize_mode (maximize または minimize, オプション, default = maximize) –
    ‘maximize’ の場合、アセッサーはより小さい期待値を持つトライアルを停止します。
    ‘minimize’ の場合、アセッサーはより大きい期待値を持つトライアルを停止します。

  • start_step (int、オプション、default = 6) –
    トライアルは、報告された中間結果の start_step 数を受け取った後にだけ、停止されるか否かを決定されます。

  • threshold (float、オプション、default = 0.95) –
    最悪のパフォーマンス曲線を早期停止することを決定するために使用する閾値。例えば: threshold = 0.95, optimize_mode = maximize、履歴の最善パフォーマンスが 0.9 である場合、予測された値が 0.95 * 0.9 = 0.855 より低いトライアルを停止します。

  • gap (int、オプション、default = 1) –
    アセッサー判定の間の gap interval。例えば: gap = 2, start_step = 6 である場合、6, 8, 10, 12… の中間結果を得るときに結果を査定します。

 
使用方法サンプル :

# config.yml
assessor:
    builtinAssessorName: Curvefitting
    classArgs:
      epoch_num: 20
      optimize_mode: maximize
      start_step: 6
      threshold: 0.95
      gap: 1
 

以上






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