Azure Machine Learning サービスの新しい Automated Machine Learning 機能

執筆者: Krishna Anumalasetty (Principal Program Manager, Azure Machine Learning)

このポストは、2018 年 12 月 4 日に投稿された New automated machine learning capabilities in Azure Machine Learning service の翻訳です。

 

このたび、Azure Machine Learning サービスの一般提供 (英語) に伴い、新たに Automated Machine Learning (Automated ML) 機能をリリースしました。この機能を使用すると、モデルの選択やハイパーパラメーターのチューニングを自動化できるため、これまで数週間から数か月かかっていた機械学習モデルの構築が数日程度に短縮され、ビジネス上の問題解決により多くの時間を充てられるようになります。この機能は、データ サイエンティストの生産性向上と AI の普及に関するマイクロソフトの取り組みの中で生まれたものです。機械学習プロセスを簡素化することで、社内の各分野の専門家が機械学習ソリューションをすばやく構築してデプロイできるようになります。

この記事では、以下についてお伝えします。

  1. Azure Machine Learning サービスで提供される Automated ML の主な機能
  2. Automated ML の開発動機、基盤テクノロジ、設計原則など

新機能

Azure Machine Learning サービスでは、2 か月前にプレビューを開始して以降、魅力的な機能を次々に追加しています。

トレーニング インフラストラクチャ

機械学習のトレーニング ジョブはコンピューティング負荷が非常に高く、所要時間がデータセットのサイズやアルゴリズムの種類に大きく左右されるため、トレーニングがボトルネックになることがよくあります。このトレーニング ジョブを短時間で終わらせられれば、データ サイエンティストの反復実行サイクルは短縮されます。Automated ML では、トレーニング ジョブを実行するためのさまざまな種類のコンピューティング インフラストラクチャを用意しています。最初はローカル マシンでジョブを実行するようにして、その後 Azure クラウドを使用してスケールアップ/スケールアウトすることも可能です。

Azure Machine Learning のコンピューティング サービス

Automated ML を使用すると、スケーリングが必要な場合に、トレーニング ジョブを Azure クラウドにスケールアップしたり、Azure Machine Learning のコンピューティング サービスや Azure Databricks クラスターを使用して複数のトレーニング ジョブを並列実行したりできます。Azure Machine Learning のコンピューティング サービスでは、Azure Virtual Machines クラスターをセットアップするだけで並列実行が可能です。また、トレーニング ジョブ完了時に仮想マシンをシャットダウンする自動スケーリング機能により、コストを抑えることができます。

Azure Databricks ( プレビュー)

Azure Databricks は、ビッグ データ処理で広く使用される Azure のマネージド型 Spark サービスです。ユーザーはデータを移動せずに Azure Databricks クラスター上でそのまま Automated ML のテストを実行できます。また、自動スケーリング機能と自動終了機能でローカル ワーカー ノードを活用できます。

ローカル マシン

機械学習モデルのトレーニングでは、最初に粗めのデータを使用してローカル マシンで実行することがあります。また、企業のデータ ガバナンスやセキュリティ ポリシーなどの制約により、データをオンプレミスで保持する必要がある場合もあります。Automated ML なら、データをローカル マシンの外に一切出すことなくトレーニング ジョブを実行できるため、セキュリティや保護のニーズも十分に満たすことができます。

データの前処理と特徴抽出

データ サイエンティストは、かなりの時間をデータのクリーニング、変換、新しい特徴の生成などに費やしています。Automated ML では、カテゴリ化された特徴の単一ホット エンコードへの変換、不足している値や行の補完、日時に関する特徴の新規生成などを自動化することで、さまざまな事前工程を簡素化することができます。

グラフ表示

Automated ML で構築されたモデル候補のランキングをはじめとするさまざまなグラフを表示できます。また、モデルやグラフの各種メトリックも使用可能で、混同行列などでモデルのパフォーマンスを視覚化し比較することができます。拡張機能を使用するとグラフ表示を Jupyter ノートブックに統合すれば、使い慣れたノートブック エクスペリエンスで使用することができます。他の IDE を使用している場合は、Azure Portal からグラフを使用することも可能です。

予測 (プレビュー)

分類や回帰に加えて、予測機能を新たにサポートしました。時系列予測は一般的な問題としてさまざまな業界で需要があります。たとえば、小売企業での販売予測、電力会社での電力需要の予測などに使われています。予測では、特定期間のデータを集計し、最適なパフォーマンスを得られるようにモデルをチューニングすることが重要です。Automated ML の予測機能を使用すると、事前処理、アルゴリズム選択、ハイパーパラメーターのチューニングなどを最適化して、時系列データセットからインサイトを抽出することができます。粒子インデックスの特徴抽出やグループ化、不足している行の補完などをはじめとする特徴量エンジニアリングのサポートが拡張され、モデルのパフォーマンスと精度が向上しました。

モデル説明機能 (プレビュー)

機械学習のブラック ボックスの部分を詳しく把握できれば、透明性や信頼性が向上します。医療や銀行などの厳格な業界では、規制やベスト プラクティスに準拠することがきわめて重要です。その中でも、入力値 (特徴) とモデルの出力の関係を理解することが特に重要です。モデルを深く理解しそれを説明するためには、予測値に対するそれぞれの特徴の影響度と方向 (特徴の重要度) の両方を知ることが必要です。このモデル説明機能を使用すると、Automated ML を実行したときの特徴の重要度を理解することができます。

提供地域

Azure Machine Learning サービスは、米国 (東部および西海岸)、ヨーロッパ、アジア、オーストラリアなどのリージョンにて提供しています。最寄りのリージョンの Automated ML を利用すれば、ネットワーク レイテンシを抑えられます。データの所在地やガバナンスに関する規則がある場合は、該当地域の Automated ML を利用することで要件に準拠できます。

Automated Machine Learning の開発動機

複雑すぎる機械学習

機械学習ソリューションの開発は複雑で、手間も時間もかかります。一般に、機械学習のライフサイクルはビジネスの把握、データ取得、モデリング、運用化の 4 工程で構成されます。機械学習ソリューションを開発するには、まず解決すべきビジネス上の問題を特定し、次に必要なデータの取得や探索を行います。

モデリング段階の特徴量エンジニアリングでは、入力データに対して、null 値の除外、拡大・縮小、特徴の選択、新しい特徴の生成などの変換処理を行います。その後、サポート ベクター マシン (SVM)、ロジスティック回帰、ツリー ベース分類の中から、最適な機械学習アルゴリズムを選択します。また、選択したアルゴリズムに使用するパラメーターの値 (ツリー ベースのモデルの最大深度や最小分割数など) も指定します。以下の scikit-learn 機械学習ライブラリのチュートリアル チャートから、アルゴリズム選択の複雑性をおわかりいただけるかと思います。

出典: scikit-learn 機械学習ライブラリ (英語)

データ サイエンティストと開発者が優れた機械学習ソリューションを構築するためには、継続的にシーケンシャルな意思決定や相互に関連した決定を行っていく必要があります。データの前処理や特徴量エンジニアリング、学習アルゴリズム、ハイパーパラメーターの設定などの決定のすべてが機械学習パイプラインの最終的な精度に影響します。

このような変動要素があるため、通常、データ サイエンティストは特徴、学習器、ハイパーパラメーターの組み合わせを変えながら複数のモデルを構築します。その後これらのモデルを評価して、精度の高い最適なモデルを選択します。しかし、複数モデルを構築して評価するには相当な労力と時間を要します。データの進化に合わせて機械学習ソリューションを更新する必要があるため、データ サイエンティストは同様の特徴量エンジニアリング、モデルのトレーニング、評価のプロセスを繰り返さなければなりません。

機械学習の簡素化

Azure Machine Learning サービスの Automated ML 機能を使用すると、開発者やデータ サイエンティストが、ラベル付けされたデータに最適な機械学習パイプラインを自動的に特定することができます。データ サイエンスのスキルにかかわらず、あらゆる問題におけるエンドツーエンドの機械学習パイプラインを特定し、短い時間で高品質な機械学習モデルを取得できます。テスト回数を従来よりも大幅に増やすことができるため、反復実行間隔を短縮し、運用環境用ソリューションを早期に完成させることができます。

マイクロソフトは、AI を世界中に普及させることを目指しています。モデルやハイパーパラメーターの手動チューニングをなくしたり簡素化したりすることで、ユーザーの生産性は大きく向上します。Azure Machine Learning サービスの Automated ML を提供することで、マイクロソフトは構築、デプロイ、管理などの機械学習ライフサイクル全体でデータ サイエンティストや企業をサポートします。

データ サイエンスの経験がない方でも、すぐに使用を開始できます。複雑な特徴量エンジニアリング、アルゴリズム選択、ハイパーパラメーターのチューニングの操作を抽象化することで、機械学習モデルの構築プロセスがシンプルになります。社内のさまざまなユーザーが機械学習を利用できれば、データ サイエンティストに依頼しなくても、各分野の専門家がすばやく ML ソリューションのプロトタイプを作成し、仮説を検証できるようになります。

熟練したデータ サイエンティストであれば、面倒な特徴量エンジニアリング、アルゴリズムの選択、ハイパーパラメーターのチューニングなどの操作が必要ない Automated ML で、生産性を高めて時間を節約することができます。また、最初に Automated ML でモデルを生成し、後からチューニングすることもできます。さらに、Automated ML でモデルのベンチマークを行うこともできます。

Fortune 500 企業の多くのお客様にも Automated ML をご利用いただいています。ある世界的な石油・精製企業では埋蔵量の予測に、ある医療機器メーカーではメンテナンスの予測に Automated ML を活用しています。また、Automated ML は Microsoft Power BI の AI 機能にも応用されているため、ビジネス アナリストは 1 行もコードを書かずに機械学習モデルを構築できます。

Automated Machine Learning の基盤テクノロジ

Azure Machine Learning サービスの Automated ML 機能は、競合他社のソリューションにはない Microsoft Research 部門の最先端技術 (英語) を基盤としています。協調フィルタリングとベイズ最適化を組み合わせたこの技術は、多種多様な機械学習パイプラインの中からインテリジェントかつ効率的に最適なものを検索できるため、機械学習パイプラインの推薦システムには不可欠です。ストリーミング サービスでユーザーへのお勧め動画を提示するのと同様に、Automated ML はデータセットに最適な機械学習パイプラインを提示します。

ストリーミング サービス (数字は動画のユーザー評価)

Automated ML ( 数字はデータセットに対して評価されたパイプラインの精度)

上図右側の分布図が示すように、Automated ML は不確実性も考慮し、確率モデルに基づいて次回試行に最適なパイプラインを決定します。このアプローチにより、手動で検索することなく最も期待度が高いパイプラインを探し、総当たり的なアプローチよりもすばやくデータに最適なものを決定します。

Automated ML の確率モデルは、数億回の反復トレーニングを受け、毎回データセットに対するパイプラインの評価を実行しています。このトレーニングの結果、Automated ML は新しい問題に対する解決策も迅速に決定することができます。Automated ML は、お客様のデータを参照することなく継続的に学習し、新しい ML 問題を実行するたびに精度を向上しています。以下でさらに詳しく解説します。

設計原則

マイクロソフトは、シンプルなモデル構築機械学習を普及させ、データ サイエンティストの生産性を向上させることをミッションに掲げています。また、信頼性とデータのプライバシーも重視しています。Automated ML は、この基本原則に従ってミッションを遂行しています。

データのプライバシー

Automated ML は、プライバシー保護のため、お客様のデータを参照することなくパイプラインを生成します。機械学習パイプラインで使用するデータをお客様のクラウド サブスクリプション (またはローカル マシン) に保持したまま、完全に制御することができます。Automated ML サービスには各パイプラインの実行結果のみが返され、確率に基づいて次に試行するパイプラインをインテリジェントに決定します。

データの参照は不要

Python SDK で手軽に開始

numpy や matplotlib などのライブラリ、scikit-learn、PyTorch、TensorFlow などの機械学習フレームワークが豊富にある Python は、ソリューション構築に最も広く使用されるプログラム言語です。ライブラリをダウンロードしてインストールすればすぐに利用できます。Azure Machine Learning サービスでも同様に、Python SDK をダウンロードしてインストールするだけで Automated ML の機能を使用できます。この直観的でシンプルな API を用意するだけで、トレーニング ジョブを実行できます。

使い慣れた IDE への統合

データ サイエンティスト向けの Python 開発環境はさまざまですが、特に PyCharm や VS Code などの IDE は人気があります。データ サイエンティストがチーム メンバーと共同で作業する場合に、Jupyter ノートブックを使用することがあります。マイクロソフトは、多くの開発環境で Automated ML を利用していただきたいと考えています。そのため、Azure Machine Learning サービスの Python SDK の一部としてあらゆる Python 環境に対応しています。この SDK も、他の Python ライブラリと同様にダウンロードしてインストールするだけで使用できます。Jupyter ノートブック用の拡張機能を備えているため、Automated ML の実行内容の視覚化、ジョブの監視、状態の調査などをノートブック環境から直接行うことができます。

オープン ソース フレームワーク – scikit-learn、LightGBM

活発なオープン ソース コミュニティと多種多様なオープン ソース フレームワークにより、機械学習は急激に進化しています。現在のソリューションの多くは、数年前には想像もつかないものでした。マイクロソフトでは、汎用性の高いフレームワークをサポートして、企業が専用フレームワークにとらわれることなく、イノベーションを加速できるようにしたいと考えています。

制御性と透明性

機械学習ソリューションを構築する際には、個々のビジネス上の問題に対して最適な決定を下すために、データ サイエンティストが機械学習モデルのさまざまな属性を調査し、慎重に判断する必要があります。この工程では、効率と精度、わかりやすさと精密度など、相反するさまざまな観点で重み付けを行います。マイクロソフトは、Automated ML で生成されるすべてのモデルの制御性と透明性を確保し、バランスを調整して、シナリオに最適なモデルを選択できるようにしたいと考えています。Automated ML のモデルとパイプラインは一般的な Python パイプラインのため、自由に分解してチューニングすることができます。

ぜひお試しください

Automated ML は、あらゆるスキル レベルのデータ サイエンティストが機械学習をもっと手軽に利用できるようにすることを目指しています。こちらのドキュメントをお読みいただき、皆様のご意見をお聞かせください。今後の Automated ML 向上の参考にさせていただきます。