マクロス パチンコ 新台k8 カジノMicrosoftが開発、Web UIで学習状況を可視化するAutoML OSS「Neural Network Intelligence」仮想通貨カジノパチンコ仮想 通貨 規制 アメリカ
盲導犬 クイール の 一生 文庫 名k8 カジノ
android パチスロ本記事で紹介したノートブックはGitHubにて公開しています。すぐに実行できますので、ぜひご利用ください。
本連載第8回ではUberが開発したノーコードでディープラーニングを実現するOSS(オープンソースソフトウェア)「Ludwig」を紹介しました。今回は「Neural Network Intelligence」(以下、NNI)を紹介します。
Neural Network Intelligenceとは
NNIは、Microsoftが中心となって開発しているAutoML OSSです。ハイパーパラメーターチューニングやニューラルアーキテクチャ探索、モデル圧縮、自動特徴量エンジニアリングなどの機能をツールキットとして提供しています。また、Web UIで学習の進行状況や結果を確認できます。
本連載で紹介したAutoML OSSの多くは、さまざまなアルゴリズムを用いてモデルを構築し、その中から精度の良いモデルを選択していました。NNIはハイパーパラメーターチューニングやニューラルアーキテクチャ探索がメインの機能となり、機械学習のモデル構築に慣れている人向けのツールとなっています。
以下に、NNIにおけるハイパーパラメーターチューニングのイメージとキーとなる7個の概念を紹介します。
図1 NNIによる学習のイメージ(筆者作成)
主な特徴
NNIは、AutoMLができる他のOSSと比較して次のような特徴があります。
3つのファイルを用意するだけで簡単に学習できるWeb UIで学習の進行状況や結果を確認できるモデルのプルーニングと量子化のプロセスを自動化できる
それぞれの特徴をもう少し詳しく見ていきましょう。
3つのファイルを用意するだけで簡単に学習できる
(モデル学習用のpythonファイルは用意している前提で、)NNIでは主に以下のステップ1~3に沿って、モデルの学習を準備します。
ステップ1:Search Spaceを定義するjson形式のSearch Spaceファイル(search_space.json)を作成し、探索が必要な全てのハイパーパラメーターとその探索範囲を定義するステップ2:NNIに連携するコードを追記するモデル学習用pythonファイルに、NNIからハイパーパラメーターの値を得て実行するコードや実行結果をNNIに連携するコードを追記するステップ3:Experimentを定義するyaml形式のconfigファイル(config.yml)を作成し、Search Spaceやpythonファイルのパス、Tunerのアルゴリズム、最大Trial数などを定義する図2 NNIの3つのステップ(出典元: https://nni.readthedocs.io/en/stable/Overview.html)
これらのステップに沿って各ファイルを作成したら、あとは学習するだけです。最初は取り組みづらいかもしれませんが、必要なファイルをそろえれば、必要に応じて各ファイルを更新するだけで済むため、さまざまなパラメーターを簡単に試すことができます。
例えば、探索するハイパーパラメーターの種類やその値を変更したい場合はsearch_space.jsonを、実行するファイルやTrial数を変更したい場合はconfig.ymlを更新するだけでさまざまな学習を試すことができます。
Web UIで学習の進行状況や結果を確認できる
NNIでは複数サーバを使用した分散学習もでき、その学習の進行状況や結果をGUIで確認できるのが大きな特徴の一つです。
図3 Experimentの一覧 (出典元:https://nni.readthedocs.io/en/latest/Tutorial/WebUI.html)
図4 Experimentの詳細(出典元:https://nni.readthedocs.io/en/latest/Tutorial/WebUI.html)
各Trialの詳細(TrialのIDや進行状況、精度など)や中間結果のグラフなども表示できます。
図5 中間結果のグラフ(出典元:https://nni.readthedocs.io/en/latest/Tutorial/WebUI.html)
さらにWeb UI内でTensorBoardを使用して実行結果を可視化できます。詳細は「How to Use Tensorboard within WebUI」を確認してください。
モデルのプルーニングと量子化のプロセスを自動化できる
ニューラルネットワークモデルをエッジデバイスに組み込む際には、予測精度を保ちつつ、モデルを軽量化して処理速度を向上することが求められます。そこで、モデル圧縮技術を使用することで、スペックの高くないデバイスでもモデルに求められる精度、処理速度で動くようにモデルを圧縮できます。
NNIでは無駄なノードを間引くプルーニング(枝刈り、Pruning)のアルゴリズムを16種類、重みなどのパラメーターに使用するビットを制限する量子化(Quantize)のアルゴリズムを6種類サポートしています。これにより、モデルのプルーニングと量子化のプロセスを自動化でき、推論時間を短くしたりモデルのサイズを小さくしたりできます。
NNIで提供されているモデル圧縮のためのパイプラインは以下となっており、事前トレーニング済みモデルを圧縮する場合、プルーニングと量子化を単独で、または組み合わせて使用できます。
図6 圧縮パイプライン(出典元: https://nni.readthedocs.io/en/stable/Compression/Overview.html)タイタニックデータでAutoML仮想通貨カジノパチンコカープ 戦 今日