こんにちは。データサイエンスチームの大山です。
近年では、 AI やその一領域である機械学習を用いたサービスが徐々に社会に浸透し、様々な産業で活用され始めています。そんな中、 AI に関する専門知識を持たないユーザーでも AI を活用することができる様になるという、 AI の民主化という概念が提唱されています。今後、 AI を使うことのハードルが下がっていく結果、更に広い領域で AI や機械学習を活用した製品やサービスが広まっていくことが期待されています。現在はその様な流れの中で、機械学習やデータサイエンスに関する知見を持たないユーザーであっても、機械学習技術を使った様々な機能を使用できることを謳ったサービスが、続々と各社から提供されてきています。本記事では、その様なAIの民主化を促すと目される技術の一つである、 Microsoft 社が提供する Azure Machine Learning (Azure ML) の自動機械学習 (AutoML) 機能、その中でも製造業やマーケティング分野など幅広い領域で需要がある、時系列予測 (forecasting) 機能について、ご紹介できればと思います。
また、当社が提供する機械学習サービス ML Connect - Forecast でも、 AzureML の AutoML が活用されています。そのため本記事では、 ML Connect - Forecast について、そのサービスの特徴、および AutoML を活用したことによる本サービスの利点などについても解説できればと考えています。
Azure Machine Learning (Azure ML) とは、 Microsoft 社が Azure 上で提供するクラウドベースの機械学習プラットフォームサービスのことです。 Azure ML では、機械学習モデルのトレーニング、計算資源の管理、 Web サービスのデプロイ、学習や推論処理の自動化、モデル管理など、機械学習を活用したサービスを構築する際に必要となる様々な機能が提供されています。また、各機能は、 Web UI である Azure Machine Learning スタジオ (Azure ML スタジオ) から GUI による操作も可能となっており、データサイエンス分野で良く利用される Python や R などのスキルを持たないユーザーが使用することも想定されたサービスとなっています。
本記事では、 Azure ML が提供する機能の内、機械学習に関する専門知識がないユーザーでも機械学習モデルの構築ができる、自動機械学習と呼ばれる機能についてその概要を解説し、その中でも特に時系列予測 (Forecasting) タスクについてご紹介していこうと思います。
なお、 Azure ML の各機能の説明や Azure ML スタジオ の詳細については、以下の Azure ML 公式リファレンスをご参照ください。
機械学習モデルの構築を行う際、これまでは、データサイエンティストなどの専門家による試行錯誤を伴う作業が一般的に行われてきました。この構築作業には、専門的な知見や経験が要求される複数の作業プロセスが必要であり、時間面や金銭面、そして人的リソース面において、高いコストがかかってしまいます。自動機械学習 (Automated Machine Learning: AutoML) は、その様な専門家による機械学習モデルの構築作業を一部自動化することが可能な技術のことです。本技術は、機械学習を使ったサービス開発における金銭的・時間的コストや人的リソースの問題を解決できる可能性がある手法として、近年話題になる AI の民主化という文脈でも注目を集めています。
現在、自動機械学習を実現するツールとして、クラウドベース、コードベースそれぞれにおいて様々なサービスやライブラリが存在していますが、 Azure ML においても AutoML 機能として、この自動機械学習の機能が提供されています。 Azure ML の AutoML 機能は、 Azure ML SDK for Python によるコードベースで操作をすることも可能ですが、 Azure ML スタジオ を利用すれば、完全ノーコードで利用することも可能となっています。
Azure ML が提供する AutoML 機能では、本来データサイエンティストが試行錯誤する以下の作業について、自動化することを可能とし、機械学習に関する専門知識を持たないユーザーであっても、機械学習モデルの構築を行うことが可能となっています。
また、 AutoML で利用できる機械学習タスクの種類として、本記事執筆時点では以下の 4 種類のタスクが提供されています。本記事では、これらの機械学習タスクの内、特に AutoML による時系列予測タスクの概要について紹介します。
Azure ML の AutoML について、その詳細に興味がある方は、以下の AutoML 機能に関するAzure ML の公式リファレンスを参照いただければと思います。
時系列予測とは、時系列データの将来の値を推定する手法全般のことを指しますが、まずはその対象である時系列データについて説明します。
時系列データとは、なんらかの時間的に変化する現象について、その時間変化を記録したデータのことを指します。身近な例としては、気温や気圧などの物理量の時間変化や、株価や為替、 GDP などの経済指標、売上金額や販売数などの小売りデータなどが挙げられます。また、機器のセンサーが測定した加速度や電流などのセンシングデータ、電力需要、空調用の熱量の需要などの時間変化の様に、製造業に関連する時系列データもあり、幅広い産業分野にわたって時系列データは存在していると言えます。
この様な各種の時系列データに対して、例えば在庫管理のために将来の製品の需要を予測したい、エネルギー供給の最適化のために電力需要を予測したいなどといった、対象の将来の予測値を知ることが業務改善やコストの最適化に役立つ場面は広く存在しています。そのため、時系列データの予測手法については、これまで様々な方法が提案されており、実際に各産業分野で時系列予測は活用されています。
こうした時系列データに対する予測モデルを構築する際は、対象となる時系列データの特徴を表す様々な情報を組み合わせて、数理モデルを構成する必要があります。例えば以下の様な情報が、時系列データを特徴付ける代表的な要素として挙げられます。
以下の図は、 Azure Open Datasets Example Notebooks から取得できる、 New York City の電力需要データ (Copyright (c) Microsoft Corporation. Released under the MIT license. https://github.com/Azure/OpenDatasetsNotebooks/blob/master/LICENSE) について、トレンド成分と周期成分の分解を行い、横軸を時間、縦軸を電力需要としてそれぞれのデータをプロットしたグラフになります。図からわかるように、トレンド成分は時系列データ全体の大まかな変動を表し、周期成分はその名の通り周期的な変動の成分を表しています。
時系列予測モデルには、この様なトレンドや周期性など様々な時系列特徴をどの様に組み合わせて数理モデル化するかによって、多数のバリエーションが存在しています。そのため、精度の高い時系列予測モデルを構築することは、統計学や機械学習に関する専門知識だけでなく、予測対象自体への知見も必要とされるため、一般に難しいタスクの一つであると言えます。
時系列予測モデルの構築は比較的難易度の高いタスクであると言えますが、 Azure ML の Auto ML 機能は、時系列データに対する特徴量構築やモデル選定など多くの作業を自動化し、専門的な知見を持たないユーザーであっても、ある程度の品質で時系列予測モデルの構築を行うことが可能となっています。
AutoML による時系列予測モデルの構築は、基本的には他の自動機械学習タスクと同様の流れ(前処理、特徴量エンジニアリング、機械学習モデルやハイパーパラメータの自動探索)で行われますが、以下の様に時系列予測モデル構築時のみ実施される処理も存在します。
操作も他の AutoML タスクと同様に、 Azure ML スタジオ から行うことが可能であり、利用者はデータの指定と自動機械学習の設定 (精度指標の設定やどこまで探索するかの基準、学習に用いる計算リソースの設定、など) を行えば、あとはモデル探索が完了するまで待っているだけで、時系列予測モデルを構築することが可能となっています。探索した結果は、 Azure ML スタジオ の Experiment (Azure ML 上で実施した計算結果のログを記録する機能) の項目にログが記録され、その中のモデルの項目から、探索した各モデルの精度指標の確認や各モデルの詳細について確認を行うことができます。
なお、構築された学習済みモデルは、 Pickle ファイル (Python のオブジェクトの状態を保存するファイル形式) として保存されるため、 Python を用いてプログラミングコード上で予測に利用することができます。また、 Auto ML の学習済みモデルには、推論用スコアリングスクリプトおよび環境設定ファイルが自動で生成されるため、それらを用いれば、ユーザーがコーディングを行うことなく、 Azure ML スタジオ上の操作だけで、外部システムから利用できる Web API として展開することも可能となっています。
先ほどの New York City の電力需要データについて、実際に AutoML による時系列予測モデルの学習を行い、その学習済みモデルを使ってテストデータに対して予測した結果をプロットしたのが以下のグラフになります (横軸:日時、縦軸:電力需要、青線:実測値、橙線:予測値、薄い橙の範囲: 95%信頼区間)。
この予測モデルでは特徴量として、ラグ特徴量と移動平均に加えて、外部説明変数に気温と降水量を用いて電力需要を予測しています。信頼区間の範囲 (薄い橙の範囲) は、若干実測値からずれている時刻もありますが、予測結果の平均値 (橙線) 自体は、実測値 (青線) に近い妥当な数値が得られており、 AutoML によるモデル構築がある程度うまくいったと言えるかと思います。
なお、この AutoML による予測は、以下のリンク先にある、 Azure 公式のJupyter notebook (Python のインタラクティブな実行環境用のファイル) を参考にして実施しました。
また、 AutoML による時系列予測モデルについて、実際の操作方法や処理の詳細に興味がある方は、以下の Azure ML の公式リファレンスや公式ブログを参照いただければと思います。
当社では、 IoT領域における時系列データの予測向け機械学習システムとして、 ML Connect -Forecastをサービスとして提供しています。 ML Connect とは、要約すると機械学習による学習と推論 (時系列予測モデルの場合は予測) の自動化システムであり、時系列データの将来値予測向けに ML Connect - Forecast 、時系列データの異常検知向けに ML Connect - Anomaly Detection の2種類のサービスを提供しています。 ML Connect - Forecast では、多様な時系列データに対応することを目的として、本記事で紹介した Azure ML のAutoML による時系列予測 (forecasting) モデルの構築機能をモデル学習用の仕組みとして利用しています。
ML Connect - Forecast は、 IoT データ基盤と連携することにより、以下の機能を実現することができます。
また、 ML Connect - Forecast は当社が提供する IoT 基盤サービスである IoT Core Connect (ICC) と連携して運用することを想定して設計されています。 ICC とデータ連携することにより、ゲートウェイデバイスのデータ取得から、機械学習による学習と予測の実行、そして予測結果の可視化まで一貫したサービスとして提供することが可能となっています。以下の画像は、 ML Connect - Forecast の予測結果を ICC で可視化した際のレポート画面のサンプルとなります。
なお、本サービスにて構築できる時系列予測モデルの主な活用先としては、以下の様な領域が例として挙げられます。
次に Azure ML や AutoML による自動機械学習を活用したことによって、 ML Connect - Forecast がどの様な利点を持ったのかについて説明したいと思います。以下が Azure ML や AutoMLの活用による、本サービスの主な利点です。
一方で、以下に記載する様に、 ML Connect - Forecast による時系列予測が向かないデータや対象も存在します。
もし、以上の様な条件での時系列予測に関するご要望がある場合は、当社の機械学習導入支援サービスにて、予測モデル構築の実証実験 (PoC) 段階からサポートすることが可能です。そのため、この様なご要望がある場合でも、ぜひ当社にご相談いただければと思います。
本記事では、 Microsoft 社が提供している、 Azure Machine Learning (Azure ML) の自動機械学習(AutoML)機能、その中でも特に AutoML による時系列予測 (forecasting) 機能についてご紹介しました。自動機械学習を用いた機械学習モデルの構築は、専門的な知見を持たないユーザーでも機械学習を用いたサービスの展開を可能とし、今後のAIの民主化を推進する上でも重要な技術の一つになると考えられます。本記事が、自動機械学習の概念やイメージをつかむ上で、少しでも皆様の参考になれば幸いです。
また、当社では時系列データを対象とした機械学習システムとして、時系列データの将来値予測向けに ML Connect - Forecast 、時系列データの異常検知向けに ML Connect - Anomaly Detection の 2 種類のサービスを提供しています。もし、自社で取得している時系列データについて、その活用方法を見出せていないなどの課題をお持ちのご担当者の方がいましたら、ぜひ当社までお問い合わせいただければと思います。
なお、当社では時系列データに限らず、画像、言語、マーケティング、 Web サイト、 IoT機器のセンサーデータなど、様々な領域のデータについて、 AI や機械学習を活用するための支援を行っております。業務で収集しているデータを活用したい、 AI を使用してみたいが何をすればよいかわからない、やりたいことのイメージはあるがどの様なデータを取得すればよいか判断できないなど、データ活用に関する課題であれば広くサポートいたしますので、その際はぜひ当社までお気軽にご相談いただければと思います。
関連ページ
AI を利用したデータ解析サービス - ML Connect |