時系列予測モデルの仕組み

GeoAI ツールボックスの時系列 AI ツールでは、ディープ ラーニング ベースの時系列予測モデルを使用して時空間キューブの各ロケーションにおける将来の値を予測します。 これらのモデルは既存の時系列データで [時系列予測モデルのトレーニング (Train Time Series Forecasting Model)] ツールを使用してトレーニングされます。トレーニング済みモデルを使用して、[時系列モデルを使用した予測 (Forecast Using Time Series Model)] ツールで予測を実行できます。 主な出力は、最終的に予測された時間ステップのマップ、情報メッセージ、およびポップアップ チャートです。 他の説明変数を指定して分析変数の予測を改善できます。

このツールでは、時系列予測にさまざまなタイプのディープ ニューラル ネットワークを使用します。 サポート対象のネットワーク アーキテクチャには、完全接続ネットワークの他、時系列予測用の畳み込みニューラル ネットワークと LSTM (長・短期記憶) も含まれます。 モデル アーキテクチャの詳細については後ほど説明します。

モデルのトレーニングに使用するトレーニング データは、入力時系列データの変数ごとのタイム ウィンドウを使って構築されます。 時系列データは複雑なトレンドに従うことができ、複数レベルの季節性があります。 ディープ ラーニング ベースのモデルは学習能力が高く、トレーニング データの量が十分であれば、さまざまな種類の時系列とロケーションでこうしたパターンを学習できます。 トレーニング ツールでは、各ロケーションのトレーニング データを使用する単一のグローバル予測モデルをトレーニングします。 このグローバル モデルを使用して、予測ツールによって各ロケーションの将来の値を予測します。

適用例

ディープ ラーニング ベースのモデルはデータの複雑なトレンドを学習できるため、さまざまな場面で使用されています。 他の予測方法と比較して、データに複雑なトレンドや季節性がある場合、これらの関係性の学習に十分なだけのトレーニング データがある場合に最も有効です。

たとえば、以下の用途で時系列 AI ツールセットを使用できます。

  • 小売店のマネージャーは過去の売上データに基づいて消費者向け商品の需要を予測し、それに合わせて在庫を確保できます。
  • 疫学者は感染症患者の増加をモデル化し、翌週に入院が必要になるであろう患者の数を予測できます。
  • 風力エネルギー プラントでは、過去のトレンドと気象データに基づいて風力発電量を予測できます。
  • 不動産投資家は、過去のデータ、および貸出金利、金価格、株式市場の指標などの係数との関係に基づいて、住宅価格のトレンドを推定できます。
  • 政策立案者は都市部における住宅、電気、水道の需要を予測できます。
  • 気象学者は気候変数、および熱帯東太平洋における風向きと海面温度などの指標に基づいて、エル ニーニョ南方振動 (ENSO) を予測できます。

モデルのトレーニングと予測

[時系列予測モデルのトレーニング (Train Time Series Forecasting Model)] ツールを使用して、履歴データによってディープ ラーニング ベースの時系列予測モデルをトレーニングします。 1 つ以上の変数を説明変数として使用できます。また、モデルでは複数のロケーションの履歴データの時間スライスを使用して、トレンド、季節性、パターン、過去データ間の関係性、解析変数の値を後続の時間ステップで学習します。

予測のエラー (ロスとも呼ばれる) を使用して、勾配降下でモデルのトレーニングを進めます。 データ全体 (エポック) に対してトレーニングを複数回重ねることでモデルが徐々に改善され、トレーニングが進むにつれて計算済みエラー (予測と次の時間ステップのグランド トゥルース値の差) が減っていきます。 [モデルの改善がなくなった時点でトレーニングを停止] チェックボックスがオフになっている場合を除き、デフォルトでは、5 回の連続エポックの後に整合チェック データのロスで改善が登録されない場合にモデルのトレーニングを停止します。 トレーニング済みモデルはディープ ラーニング パッケージ (.dlpk) として保存され、[時系列モデルを使用した予測 (Forecast Using Time Series Model)] ツールによる未知の時系列データの予測に使用できます。

モデル構造

サポート対象のモデル構造は以下のとおりです。

LSTM (長・短期記憶)

時系列データには一時的または連続的という性質があり、こうした性質はリカレント ニューラル ネットワーク (RNN) で処理できます。 RNN は過去の情報を記憶し、現在の入力状態にそれを渡します。 ただし、通常の RNN では勾配が消滅するため、長期的な依存関係を記憶できません。 RNN のアップグレード バージョンである LSTM ならこの問題を解決できます。 LSTM はユニットで構成されています。各ユニットは、新しい入力と過去の出力の情報を使用してセルの状態を更新するために使用される 4 つのニューラル ネットワークで構成されています。

LSTM モジュール

[モデル タイプ] のパラメーター値として [LSTM] を選択すると、次のモデル引数を指定して、デフォルトを使用しない場合のモデルをカスタマイズできます。

名前デフォルト値説明

hidden_layer_size

100

非表示レイヤーのサイズ

完全畳み込みネットワーク (FCN)

完全畳み込みネットワーク (FCN) はこれまで、セマンティック セグメンテーションなどのコンピューター ビジョンの問題を解決するために主に画像に使用されてきました。 FCN では画像が入力として取られ、一連の畳み込みレイヤーに渡すことで特徴量の重要度を抽出します。 このようなニューラル ネットワークでは時系列データのトレンドと季節性も抽出でき、時系列予測において驚くほど良い結果を出すことができます。 入力時系列データがあれば、1 次元フィルターが畳み込みレイヤーごとにスライドすることで、高い予測能力で時間的に不変な識別的特徴が抽出されます。

畳み込みレイヤーでは入力レイヤーと出力レイヤー間のローカル接続が提供されるため、パラメーターの数が減ることで計算効率が高くなります。 パラメーターの共有でも、各フィルターのカーネルの重み付けを同じにすることで、必要になるパラメーターの数が大幅に削減されます。 畳み込みニューラル ネットワーク最大のメリットはシフト不変です。シフト不変では、データ内のロケーションに関係なく重要な特徴量が検出された際にネットワークが堅牢になります。

FCN の時系列モデルでは、ストライドとプールのない 3 つの 1 次元畳み込みレイヤーを使用します。 平均プールはアーキテクチャの最後のレイヤーで実行されます。 畳み込みが終わるたびに一括正規化が実行され、正規化線形ユニット (ReLU) が活性化関数で使用されます。 ネットワーク アーキテクチャは以下のとおりです。

FCN アーキテクチャ
時系列予測の完全畳み込みネットワーク アーキテクチャが表示されています。

InceptionTime

この CNN (畳み込みニューラル ネットワーク) は、画像分類用に以前に提案されたインセプション ネットワーク「Going Deeper with Convolutions」(2015) [1] をベースにしています。 InceptionTime が登場するまで、ニューラル ネットワークの計算能力はその深さに基づいていました。 この論文で提案されているインセプション モジュールでは、さまざまな畳み込みを平行して使用して出力を連結するため、計算予算を一定に保ちながら、ネットワークの深さを深め、幅を広げることができます。

InceptionTime モデルでは時系列予測にこのアーキテクチャを適用します。 このモデルでは、カーネル サイズの長さが 10、20、40 で、最大プール レイヤーのサイズが 3 の 1 次元畳み込みレイヤーに対して連結が行われます。 また、次の図に示すように、インセプション モジュール 3 つごとに残差接続が導入されます。 インセプション ネットワークではボトルネック レイヤーも多様されます。長さが 1、ストライドが 1 のフィルターを使用することで、過剰適合を防止しながら、時系列の次元性とモデルの複雑性が抑制されます。 このような複数のインセプション ブロックがネットワーク内に続いてグローバル平均プール レイヤーで使用されます。

InceptionTime アーキテクチャ
時系列予測の InceptionTime アーキテクチャが表示されています。

ResNet

複雑なタスクを学習するためのパラメーターはまだまだあるため、ネットワークが深くなるほどパフォーマンスが高くなるというのがディープ ニューラル ネットワークの常識となっています。 一方で、勾配の消滅の問題によって、深さが増すほど実際にはモデルのパフォーマンスが下がるという事象が見られました。 この問題を解決するために、ResNet アーキテクチャに残差ブロックが導入されました。 このモデルはスキップ接続 (ショートカット接続とも言う) が追加される残差ブロックで構成されています。 これらのダイレクト コネクションにより、ネットワークの前のレイヤーに妨げられることなく勾配を循環させながら適切に学習できます。

時系列予測では、2016 年に Wang などが発表した論文「Time Series Classification from Scratch with Deep Neural Networks: A Strong Baseline」で このアーキテクチャが適用されています。 次の図にあるように、このネットワークでは 3 つの残差ブロックを使用します。 各ブロックには 3 つの畳み込みと一括正規化の組み合わせが含まれており、ReLU を活性化関数として使用しています。 スキップ接続が入力と出力に追加されます。 ここで使用されるフィルター サイズの長さはそれぞれ 64,128 と 128 で、最後のレイヤーではグローバル平均プール設定を使用します。

ResNet アーキテクチャ
時系列予測の ResNet アーキテクチャが表示されています。

ResCNN

このネットワークは ResNet と畳み込みニューラルネットワークを組み合わせたものです。 単一のスキップ接続をネットワークに追加することで、情報の転送を改善します。 すべての残差ブロックのスキップ接続による過剰適合を解決するために、以下の図に示すように、このアーキテクチャでは最初のブロックのスキップ接続のみを使用します。 ReLU、LReLU、PReLU、ELU などのさまざまな活性化関数をレイヤーごとに使用することで妥当な抽象化を実現します [2]。

ResCNN のアーキテクチャ

予測および検証

モデルのパフォーマンスを確認するために、このツールでは 2 つのメトリックを使用します。 1 つ目が予測メトリックで、2 つ目が検証メトリックです。 予測メトリックを見ることで、予測が既存データにどの程度適合しているかがわかります。検証メトリックを見れば、モデルのトレーニング時に除外された検証データをモデルがどの程度適切に予測しているかがわかります。

  • 予測メトリック

    このツールでは、時空間キューブのさまざまなロケーションのデータを組み合わせることで単一モデルをトレーニングします。モデルは各ロケーションのデータのなかでも特に目立つ特徴を学習します。 トレーニング済みモデルは将来の時間スライスにおける予測に使用されます。 既存のトレーニング データに対するモデルの適合度は予測 RMSE (二乗平均平方根誤差) によって測定され、モデルが学習した値と時系列の実際の値における平均自乗差の平方根と同等です。

    予測 RMSE

    ここで T は時間ステップの数、ct はモデルが学習した値、rt は時間 t における時系列の未処理の値です。

    次の図は、時系列モデルが学習した値に沿った時系列の未処理の値を示しています。 予測 RMSE は、これら 2 つの時系列がどのくらい異なっているかを計測します。

    予測モデル

    予測 RMSE は、カーブが未処理の時系列の値にどの程度良く適合するかのみを計測します。 トレーニング済みモデルが未来の値をどの程度良く予測するかを計測しません。 モデルの時系列に対する適合度が高い一方で外挿する場合の予測精度が高くないことが一般に知られているため、検証 RMSE の方がメトリックとしての信頼性は上です。

  • 検証メトリック

    検証モデルは、各時系列の将来値に対する予測モデルの予測精度を決定するために使用します。 このモデルは、各時系列における最終時間ステップをいくつか除外し、除外しなかったデータでモデルをトレーニングすることで構築します。 このモデルは、保留しなかったデータの値を予測するために使用し、予測値は非表示の raw 値と比較されます。 デフォルトでは、時間ステップの 10 パーセントが検証で保留されますが、この数は [検証で除外する時間ステップ数] パラメーターを使用して変更できます。 除外した時間ステップ数は時間ステップの 25 パーセントを超えることはなく、0 が指定された場合は検証は実施されません。 予測精度は、検証 RMSE 統計を計算することで測定します。これは、除外した時間ステップの予測値と raw 値における平均自乗差の平方根と同等です。

    検証 RMSE

    ここで T は時間ステップの数、m は検証用に保留されている時間ステップの数、ct は最初の T-m 個の時間ステップから予測された値、rt は時間 t において検証用に保留されている時系列の生データ値です。

    次の図は、モデルによって時系列の前半に適合され、時系列の後半を予測するために外挿された値を示しています。 検証 RMSE は、予測値と保留された時間ステップにおける raw 値との差を測定します。

    検証モデル

ツールの出力

このツールの 1 次出力は、フィールドとして保存されたその他の全時間ステップの予測を使った最終予測時間ステップによってシンボル化された [入力時空間キューブ] にそれぞれのロケーションを表示する 2D フィーチャクラスです。 各ロケーションは独立して予測され、空間リレーションシップは考慮されませんが、マップは、類似する時系列と共に、エリアの空間パターンを表示することができます。

ポップアップ チャート

[マップ操作] ナビゲーション ツールを使用してマップ上のいずれかのフィーチャをクリックすると、当てはめ値および予測値と共に時空間キューブの値を示すチャートが [ポップアップ] ウィンドウに表示されます。 時空間キューブの値は青色で表示され、青色のラインで接続されます。 適合値はオレンジで表示され、オレンジの破線で結ばれます。 予測値はオレンジで表示され、フォレスト モデルの予測を表すオレンジの実線で結ばれます。 チャート内のいずれかのポイントの上にポインターを置き、そのポイントの日付および値を参照することができます。

予測方法

ポップアップ チャートは、元の値、当てはめ値、および予測値を表示します。

ジオプロセシング メッセージ

このツールは、ツールの実行に関する情報を含む複数のメッセージを提供します。 これらのメッセージは、3 つのメイン セクションを含んでいます。

[入力時空間キューブの詳細] セクションには、入力時空間キューブのプロパティが時間ステップの数、ロケーションの数、時空間ビンの数に関する情報とともに表示されます。 この 1 番目に表示されるプロパティは、キューブが最初にどのように作成されたかによって決まるため、キューブごとに情報が変わります。 [解析の詳細] セクションは、予測された時間ステップの数、検証のために除外された時間ステップの数、および予測された時間ステップに関する情報を含む、予測結果のプロパティを表示します。

[ロケーション全体の精度のサマリー] セクションには、すべてのロケーションにおける予測 RMSE および検証 RMSE の統計サマリーが表示されます。 それぞれの値について、最小値、最大値、平均値、中央値、および標準偏差が表示されます。

注意:

ジオプロセシング メッセージは、ツールの実行中に [ジオプロセシング] ウィンドウの下部に表示されます。 このメッセージにアクセスするには、進行状況バーにマウス カーソルを合わせるか、ポップアップ ボタン 別ウィンドウに表示 をクリックするか、[ジオプロセシング] ウィンドウのメッセージ セクションを展開します。 ジオプロセシング履歴を使用して、以前に実行したツールのメッセージにアクセスすることもできます。

出力フィールド

オブジェクト ID、ジオメトリ フィールド、およびポップアップ チャートを含んでいるフィールドに加えて、出力フィーチャは以下のフィールドを含みます。

  • ロケーション ID (LOCATION) - 時空間キューブの対応するロケーションのロケーション ID です。
  • (時間ステップ) の (解析変数) の予測 (FCAST_1FCAST_2 など) - 各将来時間ステップにおける予測値です。 フィールド エイリアスは解析変数の名前と予測日を表示します。 このタイプのフィールドは各予測時間ステップに対して作成されます。
  • 予測二乗平均平方根誤差 (F_RMSE) - 予測 RMSE です。
  • 検証二乗平均平方根誤差 (V_RMSE) - 検証 RMSE です。 検証で除外した時間ステップがない場合、このフィールドは作成されません。
  • 予測方法 (METHOD) - 使用する時系列 AI モデルのタイプとシーケンス長を表示するテキスト フィールドです。

参考文献

ディープ ラーニング ベースの時系列予測モデルの詳細については、次の参考文献をご参照ください。

  1. Szegedy, Christian, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. "Going deeper with convolutions." In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 1-9. 2015.
  2. Ismail Fawaz, Hassan, Benjamin Lucas, Germain Forestier, Charlotte Pelletier, Daniel F. Schmidt, Jonathan Weber, Geoffrey I. Webb, Lhassane Idoumghar, Pierre-Alain Muller, and François Petitjean. "Inceptiontime: Finding alexnet for time series classification." Data Mining and Knowledge Discovery 34, no. 6 (2020): 1936-1962.
  3. Wang, Zhiguang, Weizhong Yan, and Tim Oates. "Time series classification from scratch with deep neural networks: A strong baseline." In 2017 International joint conference on neural networks (IJCNN), pp. 1578-1585. IEEE, 2017.
  4. Zou, Xiaowu, Zidong Wang, Qi Li, and Weiguo Sheng. "Integration of residual network and convolutional neural network along with various activation functions and global pooling for time series classification." Neurocomputing 367 (2019): 39-45.
  5. Hochreiter, Sepp, and Jürgen Schmidhuber. "Long short-term memory." Neural computation 9, no. 8 (1997): 1735-1780.

関連トピック