DX station

AI の民主化を実現する:Azure ML の自動機械学習 (AutoML) による時系列予測モデル構築機能のご紹介

大山 祥彦

大山 祥彦

こんにちは。データサイエンスチームの大山です。

近年では、 AI やその一領域である機械学習を用いたサービスが徐々に社会に浸透し、様々な産業で活用され始めています。そんな中、 AI に関する専門知識を持たないユーザーでも AI を活用することができる様になるという、 AI の民主化という概念が提唱されています。今後、 AI を使うことのハードルが下がっていく結果、更に広い領域で AI や機械学習を活用した製品やサービスが広まっていくことが期待されています。現在はその様な流れの中で、機械学習やデータサイエンスに関する知見を持たないユーザーであっても、機械学習技術を使った様々な機能を使用できることを謳ったサービスが、続々と各社から提供されてきています。本記事では、その様なAIの民主化を促すと目される技術の一つである、 Microsoft 社が提供する Azure Machine Learning (Azure ML) の自動機械学習 (AutoML) 機能、その中でも製造業やマーケティング分野など幅広い領域で需要がある、時系列予測 (forecasting) 機能について、ご紹介できればと思います。

また、当社が提供する機械学習サービス ML Connect - Forecast でも、 AzureML の AutoML が活用されています。そのため本記事では、 ML Connect - Forecast について、そのサービスの特徴、および AutoML を活用したことによる本サービスの利点などについても解説できればと考えています。



AI を利用したデータ解析サービス - ML Connect

機械学習導入支援サービス

顧客の声を読み取るスピード解析ツール - CogEra


Azure Machine Learning (Azure ML) とは

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 公式リファレンスをご参照ください。



AI を利用したデータ解析サービス - ML Connect

機械学習導入支援サービス

顧客の声を読み取るスピード解析ツール - CogEra


自動機械学習 (Automated Machine Learning: AutoML) とは

機械学習モデルの構築を行う際、これまでは、データサイエンティストなどの専門家による試行錯誤を伴う作業が一般的に行われてきました。この構築作業には、専門的な知見や経験が要求される複数の作業プロセスが必要であり、時間面や金銭面、そして人的リソース面において、高いコストがかかってしまいます。自動機械学習 (Automated Machine Learning: AutoML) は、その様な専門家による機械学習モデルの構築作業を一部自動化することが可能な技術のことです。本技術は、機械学習を使ったサービス開発における金銭的・時間的コストや人的リソースの問題を解決できる可能性がある手法として、近年話題になる AI の民主化という文脈でも注目を集めています。

現在、自動機械学習を実現するツールとして、クラウドベース、コードベースそれぞれにおいて様々なサービスやライブラリが存在していますが、 Azure ML においても AutoML 機能として、この自動機械学習の機能が提供されています。 Azure ML の AutoML 機能は、 Azure ML SDK for Python によるコードベースで操作をすることも可能ですが、 Azure ML スタジオ を利用すれば、完全ノーコードで利用することも可能となっています。

Azure ML が提供する AutoML 機能では、本来データサイエンティストが試行錯誤する以下の作業について、自動化することを可能とし、機械学習に関する専門知識を持たないユーザーであっても、機械学習モデルの構築を行うことが可能となっています。

  • 基本的な前処理の実行 : 欠損値補完、 ID 列やハッシュ値列の除去
  • 特徴量エンジニアリングの実行 : カテゴリカル変数の数値へのエンコード、日時特徴量の生成、テキストデータの単語ベクトルへの埋め込み、など
  • スケーリング・正規化・次元削減の実行 : 標準化、最大最小正規化、 PCA による次元削減、など
  • アンサンブルモデルの構築 : Voting モデル, Stacking モデルの自動構築
  • 最適な機械学習モデルの探索 : アルゴリズムの探索、ハイパーパラメータの探索
  • 交差検証による学習済みモデルの評価
  • 機械学習モデルの説明性の評価(説明可能な AI):特徴量重要度、 SHAP による局所説明

また、 AutoML で利用できる機械学習タスクの種類として、本記事執筆時点では以下の 4 種類のタスクが提供されています。本記事では、これらの機械学習タスクの内、特に AutoML による時系列予測タスクの概要について紹介します。

  • 回帰 (regression) : テーブルデータ(データベースや CSV などの表形式の構造化データ)に対応
  • 分類 (classification) : テーブルデータに対応
  • 時系列予測 (forecasting) : テーブルデータ形式の時系列データ (一定のサンプリング間隔で値が測定されている日時列を含む表形式の構造化データ) に対応
  • Computer Vision : 画像分類、画像内の物体検知、画像のセグメンテーション (ただし全てプレビュー段階)

Azure ML の AutoML について、その詳細に興味がある方は、以下の AutoML 機能に関するAzure ML の公式リファレンスを参照いただければと思います。



AI を利用したデータ解析サービス - ML Connect

機械学習導入支援サービス

顧客の声を読み取るスピード解析ツール - CogEra


Azure ML の AutoML による時系列予測 (forecasting) モデルの構築機能

時系列データとは

時系列予測とは、時系列データの将来の値を推定する手法全般のことを指しますが、まずはその対象である時系列データについて説明します。

時系列データとは、なんらかの時間的に変化する現象について、その時間変化を記録したデータのことを指します。身近な例としては、気温や気圧などの物理量の時間変化や、株価や為替、 GDP などの経済指標、売上金額や販売数などの小売りデータなどが挙げられます。また、機器のセンサーが測定した加速度や電流などのセンシングデータ、電力需要、空調用の熱量の需要などの時間変化の様に、製造業に関連する時系列データもあり、幅広い産業分野にわたって時系列データは存在していると言えます。

時系列予測 (forecasting) とは

この様な各種の時系列データに対して、例えば在庫管理のために将来の製品の需要を予測したい、エネルギー供給の最適化のために電力需要を予測したいなどといった、対象の将来の予測値を知ることが業務改善やコストの最適化に役立つ場面は広く存在しています。そのため、時系列データの予測手法については、これまで様々な方法が提案されており、実際に各産業分野で時系列予測は活用されています。

こうした時系列データに対する予測モデルを構築する際は、対象となる時系列データの特徴を表す様々な情報を組み合わせて、数理モデルを構成する必要があります。例えば以下の様な情報が、時系列データを特徴付ける代表的な要素として挙げられます。

  • 時系列データの長期的傾向 (トレンド、移動平均)
  • 周期的な変化 (季節性も含む)
  • 過去のデータとの相関 (自己相関、相互相関)
  • 相関のある外部要因(外部説明変数:例えば電力需要に対する気温や、平日・休日の情報、など)

以下の図は、 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) について、トレンド成分と周期成分の分解を行い、横軸を時間、縦軸を電力需要としてそれぞれのデータをプロットしたグラフになります。図からわかるように、トレンド成分は時系列データ全体の大まかな変動を表し、周期成分はその名の通り周期的な変動の成分を表しています。

  • 補足:このデータには 1 年間という長期の周期が存在しており、このグラフ中でトレンドの変動として捉えられている成分は、本来は 1 年周期の大きな変動を表しています。ただしここでは、トレンド成分と周期成分の大まかな説明のため、データを一定期間だけを抜き出し、 1 年周期の大きな変動はトレンド成分とみなして、トレンド・周期分解を行いグラフとして可視化しています。)

時系列予測モデルには、この様なトレンドや周期性など様々な時系列特徴をどの様に組み合わせて数理モデル化するかによって、多数のバリエーションが存在しています。そのため、精度の高い時系列予測モデルを構築することは、統計学や機械学習に関する専門知識だけでなく、予測対象自体への知見も必要とされるため、一般に難しいタスクの一つであると言えます。

Azure ML の Auto ML による時系列予測モデル構築機能

時系列予測モデルの構築は比較的難易度の高いタスクであると言えますが、 Azure ML の Auto ML 機能は、時系列データに対する特徴量構築やモデル選定など多くの作業を自動化し、専門的な知見を持たないユーザーであっても、ある程度の品質で時系列予測モデルの構築を行うことが可能となっています。

AutoML による時系列予測モデルの構築は、基本的には他の自動機械学習タスクと同様の流れ(前処理、特徴量エンジニアリング、機械学習モデルやハイパーパラメータの自動探索)で行われますが、以下の様に時系列予測モデル構築時のみ実施される処理も存在します。

  • 前処理の実行 : 時系列データのサンプリング周期の検出、サンプリング周期から欠損している時点についての欠損値補完の実施、
  • 特徴量エンジニアリングの実行 : 自己相関を表すラグ特徴量の生成、移動平均特徴量の生成、季節性とトレンド成分の分解 (STL分解) の実施
  • 最適な機械学習モデルの探索 : 機械学習による回帰モデルだけでなく、指数平滑法や ARIMA モデル、 Prophet (Facebook製で、ベイズ構造時系列モデルの一つ) などの時系列予測に特化したモデルについての探索
  • 時系列予測向けの交差検証 (ローリングオリジン交差検証) の実施

操作も他の 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 の公式リファレンスや公式ブログを参照いただければと思います。



AI を利用したデータ解析サービス - ML Connect

機械学習導入支援サービス

顧客の声を読み取るスピード解析ツール - CogEra


AutoML の forecasting 機能を活用した当社サービス (ML Connect – Forecast) のご紹介

当社では、 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 データ基盤と連携することにより、以下の機能を実現することができます。

  • 複数の時系列データに対して、定期的に機械学習モデルの学習処理を実行する機能
  • 複数の時系列データに対して、定期的に学習済みモデルを用いて将来値の予測を実行する機能
  • 予測実行時は、 Azure Maps の Weather API と連携し、気温、湿度などの天気予報データを取得することが可能。本機能により、天気関連の情報と相関するデータについて、予測精度を向上させることができると期待される。
  • 休日・祝日の情報についても、企業ごとに稼働日が異なることを想定し、設定によって個別にカスタマイズすることが可能。

また、 ML Connect - Forecast は当社が提供する IoT 基盤サービスである IoT Core Connect (ICC) と連携して運用することを想定して設計されています。 ICC とデータ連携することにより、ゲートウェイデバイスのデータ取得から、機械学習による学習と予測の実行、そして予測結果の可視化まで一貫したサービスとして提供することが可能となっています。以下の画像は、 ML Connect - Forecast の予測結果を ICC で可視化した際のレポート画面のサンプルとなります。

なお、本サービスにて構築できる時系列予測モデルの主な活用先としては、以下の様な領域が例として挙げられます。

  • 工場や設備、各建築物などのエネルギー (電力や熱量など) の需要予測
  • 製品・部品・材料などの需要予測
  • 施設の人流予測

次に Azure ML や AutoML による自動機械学習を活用したことによって、 ML Connect - Forecast がどの様な利点を持ったのかについて説明したいと思います。以下が Azure ML や AutoMLの活用による、本サービスの主な利点です。

  • Auto ML によるモデル探索の自動化によって、少ない労力で多様な時系列データの予測に対応が可能。これにより、時間的にも金銭的にも高コストとなりがちな AI の実証実験 (Proof of Concept : PoC) を実施することなく、もしくは最小限の PoC 実施によって、時系列予測モデルを構築できることが期待されます。
  • Azure ML の Pipeline 機能を利用することにより、手動で管理を行うことが困難な多数のデータについて、学習・推論処理の自動定期実行が可能となりました。 ML Connect - Forecast の Premium プランの範囲では、100デバイス (データ) まで対応しています。なお、設計上はそれ以上の数のデバイスやデータとの連携も可能ですが、その場合はカスタム料金となります。
  • 計算リソースとして、 Azure ML computing cluster を用いることにより、効率的な自動スケーリング化を実現しています。このスケーリングの効率化によって、計算リソースを常に必要な分だけ利用することができ、複数のモデルについて並列処理を実行する際も、運用コストの低下を実現しています。
  • エンタープライズ向けに設計されたセキュリティの仕組みを利用しているため、セキュアなシステムとしてサービスを提供することが可能となっています。

一方で、以下に記載する様に、 ML Connect - Forecast による時系列予測が向かないデータや対象も存在します。

  • Azure ML の Auto ML に含まれないタイプの時系列予測モデル (状態空間モデル、 GARCH モデル、複雑な構造時系列モデル、など) が適合するタイプの現象の予測には、向かない可能性があります。例としては、高周波数特性が主要な特徴となる機器の信号データ、音声データ、株価指数、比較的長期 (数十時点以上) の自己相関を持つデータ、などが挙げられます。
  • AutoML の仕組み上、トレンド成分、周期成分、自己相関成分、外部説明変数を元に時系列予測を行うため、それらの成分から予測が困難な対象については、適合できない可能性高いです。例としては、変動が周期性もトレンドも持たず、時間的にも完全にランダムに変化する様なデータなどです。
  • ML Connect - Forecast で想定していない外部説明変数 (天気関連の情報や休日・祝日関連以外の情報のこと、例えばイベントの実施情報など) が、特徴量として予測に重要となる時系列データについては、十分な予測精度が達成できない恐れがあります。
  • 1分未満の間隔で予測する必要がある対象は、 Auto ML の周期抽出や日時特徴量生成の仕様により、予測することが困難な恐れがあります。
  • リアルタイムでの処理が必要となる時系列予測は、 ML Connect - Forecast ではサポートしていません。例としては、機器の制御のためにリアルタイムで最適な設定値やセンサー値を予測する必要がある場合などです。

もし、以上の様な条件での時系列予測に関するご要望がある場合は、当社の機械学習導入支援サービスにて、予測モデル構築の実証実験 (PoC) 段階からサポートすることが可能です。そのため、この様なご要望がある場合でも、ぜひ当社にご相談いただければと思います。



AI を利用したデータ解析サービス - ML Connect

機械学習導入支援サービス

顧客の声を読み取るスピード解析ツール - CogEra


おわりに

本記事では、 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
機械学習導入支援サービス
顧客の声を読み取るスピード解析ツール - CogEra

お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録