最新AI論文をキャッチアップ

時系列機械学習ライブラリ2件

時系列機械学習ライブラリ2件

Time-series

3つの要点
✔️ 時系列機械学習ライブラリが立て続けに2つ発表されました
✔️ Merlionは、時系列の異状検出と予測ライブラリを提供します
✔️ Dartsは、最新の機械学習予測アプローチを民主化し、共通のユーザーフレンドリーなAPIの下で統合する試みです

Merlion: A Machine Learning Library for Time Series
written by Aadyot BhatnagarPaul KassianikChenghao LiuTian LanWenzhuo YangRowan CassiusDoyen SahooDevansh ArpitSri SubramanianGerald WooAmrita SahaArun Kumar JagotaGokulakrishnan GopalakrishnanManpreet SinghK C KrithikaSukumar MaddineniDaeki ChoBo ZongYingbo ZhouCaiming XiongSilvio SavareseSteven HoiHuan Wang
(Submitted on 20 Sep 2021)
Comments: Published on arxiv.

Subjects: Computer Vision and Pattern Recognition (cs.CV)

code: 
 

Darts: User-Friendly Modern Machine Learning for Time Series
written by Julien HerzenFrancesco LässigSamuele Giuliano PiazzettaThomas NeuerLéo TaftiGuillaume RailleTomas Van PottelberghMarek PasiekaAndrzej SkrodzkiNicolas HugueninMaxime DumonalJan KościszDennis BaderFrédérick GussetMounir BenheddiCamila WilliamsonMichal KosinskiMatej PetrikGaël Grosch
(Submitted on 7 Oct 2021 (v1), last revised 8 Oct 2021 (this version, v2))
Comments: Published on arxiv.

Subjects:  Machine Learning (cs.LG); Computation (stat.CO)

code:  

本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。  

はじめに

時系列機械学習ライブラリが立て続けに2つ発表されましたので、まとめて紹介します。 

1つめはSalesforceグループのMerlionです。 

時系列は、IT運用管理、製造業、サイバーセキュリティなどの実際のアプリケーションにおける複雑なシステムの動作のモニターにあらゆるところに存在しています。これらは、コンピューティングリソースの主要評価指標、ビジネス指標、またはSNSでのマーケティングキャンペーンのフィードバックを表すことができます。これらすべてのアプリケーションで、主要な指標の傾向と値を正確に予測し、それらの指標の異状を迅速かつ正確に検出することが重要です。実際、ソフトウェア業界では、オペレーターにタイムリーに通知する異状検出は、ITシステムの可用性を向上させるための問題とインシデントの識別を自動化するための重要な機械学習手法の1つです。

時系列分析のさまざまな潜在的なアプリケーションを考慮して、多数のツールが提案されていますが、時系列分析に関する今日の業界ワークフローには、依然として多くの問題点があります。データセットとモデル間での一貫性のないインターフェース、学術論文と産業用アプリケーション間の一貫性のない評価指標、および後処理、AutoML、モデルの組み合わせなどの実用的な機能のサポートの相対的な欠如などです。これらの問題により、複数のデータセットと設定、多様なモデルにわたってベンチマークを行い、対象タスクに最適なモデルについてデータに基づいた決定を下すことが困難になっています。

ここで紹介する時系列インテリジェンス用のPythonライブラリMerlionは、データの読み込みと変換、モデルの構築とトレーニング、モデル出力の後処理、モデルの性能の評価を含む、エンドツーエンドの機械学習フレームワークを提供します。単変量と多変量の両方の時系列の予測と異状検出を含む、さまざまな時系列学習タスクをサポートします。 Merlionの主な機能は次のとおりです。

  • データの読み込み、前処理、および幅広い時系列予測および異状検出タスクのベンチマークのための、標準化され簡単に拡張可能なフレームワーク
  • 共有インターフェースの下で統合された、異状検出と予測の両方のための多様なモデルのライブラリ。モデルには、古典的な統計手法、決定木アンサンブル、および深層学習手法が含まれます。上級ユーザーは、必要に応じて各モデルを完全に組み合わせできます
  • 効率的で堅牢に優れたパフォーマンスを実現し、新規ユーザーに出発点を提供するDefaultDetectorおよびDefaultForecasterモデルを抽象化します
  • 自動化されたハイパーパラメータ調整とモデル選択のためのAutoML
  • 偽陽性率を低減しながら、異状スコアをより解釈しやすくする、業界に着想を得た実用的な異状検出器の後処理ルール
  • 複数のモデルの出力を組み合わせてより堅牢なパフォーマンスを実現する使いやすいアンサンブル
  • 本番環境でのモデルのライブ展開と再訓練をシミュレートし、予測と異状検出の両方でパフォーマンスを評価する柔軟な評価パイプライン
  • モデル予測を視覚化するためのネイティブサポート

Table1は他のライブラリと比較したMerlionの機能表です。

Merlionのコードは、Githubに、APIについてのドキュメントは下記のサイトにあります。

https://github.com/salesforce/Merlion

https://opensource.salesforce.com/Merlion/v1.0.1/index.html

ライブラリの代表的な使用法は次のようになります。

from merlion.models.defaults import DefaultDetectorConfig, DefaultDetector
model = DefaultDetector(DefaultDetectorConfig())
model.train(train_data=train_data)
test_pred = model.get_anomaly_label(time_series=test_data)

アーキテクチャと設計原則

Merlionのモジュールアーキテクチャは5つのレイヤーからなります。「データ層」は生データをロードし、それをMerlionのTimeSeriesデータ構造に変換し、必要な前処理を実行します。「モデリング層」は、自動化されたハイパーパラメーターチューニング用のAutoMLを含む、予測と異常検出それぞれの幅広いモデルをサポートします。 「後処理層」は、相互作用性を改善し、異常検出モデルの偽陽性率を低減するための実用的なソリューションを提供します。 次の「アンサンブル層」は、透過的なモデルの組み合わせとモデル選択をサポートし、最後の「評価層」は、本番環境でのモデルのライブ展開をシミュレートする関連する評価指標とパイプラインを実装します。Fig. 1は、これらのモジュール間の関係を示しています。

データ層

Merlionのコアデータ構造はTimeSeriesです。これは、一般的な多変量時系列TをUnivariateTimeSeries U(i)の集まりとして表します。この定式化は、個々の単変量が異なるレートでサンプリングされたり、異なるタイムスタンプで欠落したデータが含まれたりする可能性があるという現実を反映しています。TimeSeriesを生データから初期化した後、merlion.transformモジュールはTimeSeriesをモデルに渡す前に適用できる前処理操作です。前処理には、リサンプリング、正規化、移動平均、時間差分などが含まれます。

モデル層

単一のモデルがすべての時系列およびすべてのユースケースでうまく機能するわけではないため、ユーザーが幅広い異種モデルから選択できる柔軟性を提供することが重要です。Merlionは、予測と異常検出の両方にさまざまなモデルを実装しています。これらすべての選択肢をユーザーに透過的に見せるために、すべてのMerlionモデルを2つの一般的なAPI(1つは予測用、もう1つは異常検出用)に統合します。すべてのモデルは、実装固有のハイパーパラメーターを含み、model.train(time_series)メソッドをサポートするconfigオブジェクトで初期化されます。一般的な多変量時系列が与えられると、予測器は単一のターゲット単変量の値を予測するように学習されます。次に、model.forecast(time_stamps)を呼び出すことにより、将来のタイムスタンプのセットに対するモデルの予測を取得できます。

同様に、model.get_anomaly_score(time_series)を呼び出すだけで、時系列の異状検出器の異状スコアのシーケンスを取得できます。 予測ベースの異常検出器は、model.forecast(time_stamps)とmodel.get_anomaly_score(time_series)の両方を提供します。

追加の計算が必要なモデルの場合、Layerインターフェイスを実装し、これが提供するautoML機能の基礎となります。Layerは、モデルコード自体に適切に適合されない既存のモデル定義の上に、追加のロジックを実装するために使用されます。例えば、季節性の検出やハイパーパラメータの調整などです。Layerは、ハイパーパラメーター候補θを生成するためのgenerate_theta、θの品質を評価するためのevaluate_theta、および選択したθを基になるモデルに適用するためのset_thetaの3つのメソッドを実装するインターフェイスです。別のクラスForecasterAutoMLBaseは、Layerクラスのメソッドを活用して予測モデルを完成させるforecastメソッドとtrainメソッドを実装します。最後に、すべてのモデルは、学習に使用されるデータとは異なる履歴データtime_series_prevで予測を調整する能力をサポートしています。これらの条件付き予測は、model.forecast(time_stamps、time_series_prev)またはmodel.get_anomaly_score(time_series、time_series_prev)を呼び出すことで取得できます。

後処理層

翻訳結果

すべての異状検出器には、model.get_anomaly_score(time_series)の出力に重要な後処理を適用するpost_ruleがあります。 これには、キャリブレーションおよびしきい値処理ルールが含まれます。 後処理された異状スコアはmodel.get_anomaly_label(time_series)を呼び出すことにより、直接取得できます。

アンサンブルとモデル選択

アンサンブルは、複数の基礎となるモデルの組み合わせを表すモデルとして構造化されています。 このために、単一の時系列T上のm個の基礎となるモデルから予測Y1、...、Ymを取得するプロセスを抽象化する基本EnsembleBaseクラスと、結果Y1、...、Ymアンサンブルの出力に結合するCombinerクラスがあります 。 これらの組み合わせには、従来の平均アンサンブルのほか、sMAPEなどの評価指標に基づくモデル選択が含まれます。 

評価パイプライン

時系列モデルが本番環境でライブ展開される場合、学習と推論は通常、完全な時系列でバッチで実行されません。むしろ、モデルは通常の間隔で再学習され、可能な場合は、ストリーミングモードで推論が実行されます。この設定をより現実的にシミュレートするために、次の評価ループを実装するEvaluatorBaseクラスを提供します。

  1. 最近の履歴学習データで初期モデルを学習します
  2. 定期的に(たとえば、1日に1回)、最新のデータでモデル全体を再学習します。これは、履歴全体、またはより限定されたウィンドウ(4週間など)のいずれかです。
  3. 再学習の間に発生する時系列値のモデルの予測(予測または異状スコア)を取得します。ユーザーは、これをバッチ、ストリーミング、または中間のリズムで実行するかどうかをカスタマイズできます。
  4. モデルの予測を正解と比較し、定量的な評価指標を報告します

また、それぞれ列挙型ForecastMetricおよびTSADMetricとして実装された、予測と異状検出の両方の幅広い評価メトリックを提供します。最後に、スクリプトbenchmark_forecast.pyとbenchmark_anomaly.pyを提供します。これにより、ユーザーはこのロジックを使用して、ts_datasetsモジュールに含まれるデータセットのモデルパフォーマンスを簡単に評価できます。

時系列予測

Merlionには、単変量時系列予測用のモデルが多数含まれています。これらには、ARIMA、SARIMA、ETS(エラー、トレンド、季節性)などの古典的な統計手法、Prophetなどの最近のアルゴリズム、著者グループ作成の以前のアルゴリズムMSES(Cassius et al.、2021)、深層自己回帰LSTMが含まれます。ここで使用する多変量予測モデルは、自己回帰と決定木アンサンブルアルゴリズムに基づいています。自己回帰アルゴリズムには、時間の経過とともに変化する複数のシーケンス間の関係を捉えるベクトル自己回帰モデルを採用しています。決定木アンサンブルの場合、ベースモデルとしてランダムフォレストと勾配ブースティングを検討します。モデルが、VARなどの従来のモデルと同様に、任意の予測期間の予測を生成できるようにします。さらに、すべての多変量予測モデルは、単変量予測モデルと共通のAPIを共有しているため、単変量と多変量の両方の予測タスクに共通です。

AutoML

翻訳結果

時系列予測モデルのAutoMLモジュールは、従来の機械学習モデルのautoMLとは少し異なります。これは、従来のハイパーパラメーターの最適化だけでなく、時系列のいくつかの特性の検出も考慮しているためです。例えばSARIMAでは、自己回帰パラメーター、差次数、移動平均パラメーター、季節的自己回帰パラメーター、季節的差次数、季節的移動平均パラメーター、および季節性が含まれます。

次のようにして、autoMLモジュールの学習時間をさらに短縮しています。比較的少ない最適化反復で良好な性能を達成する候補モデルの初期リストを取得します。 次に、モデルが収束するまでこれらの候補のそれぞれを再学習し、最後にAICによって最適なモデルを選択します。

アンサンブル

Merlionの予測器のアンサンブルを使用すると、ユーザーは2つの方法でモデルを透過的に組み合わせることができます。 まず、各タイムスタンプですべてのモデルによって予測された平均値または中央値を報告する従来のアンサンブルをサポートします。 次に、自動モデル選択をサポートします。 モデル選択を実行するとき、学習データを学習用と検証用に分割し、学習用データで各モデルを学習し、検証用データの予測を取得します。 次に、ユーザー指定の評価指標を使用してこれらの予測の品質を評価し、完全な学習データで再学習した後、最高の性能を達成したモデルを返します。 

予測モデルの精度を評価する方法はたくさんあります。 MerlionのForecastMetricは、MAE, RMSE, sMAPE, MARREその他の指標を提供ます。

時系列異状検知

Merlionには、単変量時系列異常検出に特化したモデルが多数含まれています。これらは、予測ベースと統計の2つのグループに分類されます。 Merlionの予測器は、一般的な時系列で特定の単変量の値を予測するため、異常検出に簡単に適応できます。異常スコアは、予測された時系列値と実際の時系列値の間の残差であり、オプションで、基礎となる予測器の予測された標準誤差によって正規化されます。単変量統計手法では、Spectral Residualと、2つの単純なベースラインWindStatsおよびZMSを提供しています。加えて、統計的手法と、単変量および多変量異状検出の両方を処理できる深層学習モデルの両方を提供します。統計的手法には、Isolation ForestおよびRandom Cut Forest が含まれます。 深層学習モデルにはオートエンコーダー、ディープオートエンコーディングガウス混合モデル、LSTMエンコーダーデコーダー、および変分オートエンコーダーを含みます。

Merlionは、異状検出器の2つの主要な後処理ステップであるキャリブレーションとしきい値処理をサポートしています。 キャリブレーションはモデルの解釈可能性を向上させるために重要ですが、しきい値処理は一連の連続異状スコアを個別のラベルに変換し、偽陽性率を低減します。

Merlionのすべての異状検出器は、異状スコアstを返します。 異状の重度と正の相関があります。 ただし、これらの異状スコアのスケールと分布は大きく異なります。 たとえば、Isolation Forestは、異状スコアst∈[0,1]を返します。Spectral Residualは、正規化されていない顕著性マップを返します。 DAGMMは、負の対数確率を返します。

・キャリブレーション

モデルを正常に使用するには、モデルが返す異常スコアを解釈できる必要があります。そうすると、特定の実装に慣れていないユーザーが多くのモデルをすぐに使用できなくなります。キャリブレーションは、すべての異状スコアをzスコア、つまり標準正規分布から抽出された値として解釈できるようにすることで、このギャップを埋めます。 この単純な後処理ステップにより、個々のモデルによって返される異状スコアの解釈可能性が劇的に向上します。 

・しきい値処理

個々のタイムスタンプtが異常であるかどうかを判断する最も一般的な方法は、異常スコアstをしきい値τと比較することです。ただし、多くの実際のシステムでは、異常が検出されるたびに人間に警告が発せられます。偽陽性率が高いと、各アラートを調査するユーザーの負荷が増加し、ユーザーが信頼できないシステムになる可能性があります。この問題を回避する方法は、人間への警告前に合格すべき追加の自動チェックを含めることです。これらの手順で、再現性に悪影響を与えることなく精度を大幅に向上させることができます。Merlionは、ユーザーが構成可能なAggregateAlarms後処理ルールに、これらすべての機能を実装します。

アンサンブル

時系列とそれに含まれる異状の両方が非常に多様であるため、単一のモデルがすべてのユースケースに最適であるとは考えられません。原則として、モデルの異種アンサンブルは、そのアンサンブル内の個々のモデルよりも一般化する可能性があります。すべてのMerlionモデルの異常スコアをzスコアとして解釈できるため、個々のモデルから返された平均キャリブレーション済み異常スコアを報告し、しきい値を適用するだけで、異常検出器のアンサンブルを構築できます。経験的に、アンサンブルは、単変量(Table 10)と多変量(Table 13)の両方の異常検出について、複数のオープンソースおよび内部データセット全体で、最強または競争力のある性能を確実に達成することがわかります。

評価指標 

時系列異常検出の適切な評価メトリックを設計する際の重要な課題は、異状がほとんどの場合、離散点ではなく時間フレームであるという事にあります。したがって、正解ラベルシーケンスと比較した予測異常ラベルシーケンスのポイントワイズ(PW)適合率、再現率、およびF1スコアを計算するのは簡単ですが、これらのメトリックは、人間のオペレーターが関心を持つ量を反映していません。

この問題の解決策としてポイント調整(PA)メトリックを提案します。正解異状ウィンドウ内のいずれかのポイントが異状としてラベル付けされている場合、セグメント内のすべてのポイントが真陽性として扱われます。ウィンドウに異状のフラグが立てられていない場合、すべてのポイントに偽陰性のラベルが付けられます。異常ウィンドウの外側で予測された異常は、誤検知として扱われます。適合率、再現率、およびF1は、これらの調整された真/偽陽性/陰性カウントに基づいて計算できます。ただし、PAメトリックの欠点は、短い異状よりも長い異状を検出するための報酬モデルに偏っているということです。

代替案として、アップデートされたポイント調整(RPA)メトリックもあります。この場合、正解異状ウィンドウ内のいずれかのポイントが異状としてラベル付けされている場合、1つの真陽性が登録されます。ウィンドウに異状のフラグが立てられていない場合、1つの誤検知が記録されます。異状ウィンドウの外側で予測された異状は、誤検知として扱われます。

実験

Merlionはライブラリなのでここまでの説明のような様々な手法が備えられていますが、ここでは性能比較が行われているので、選択する際の参考にするとよいでしょう。

いくつかの時系列データセットにわたってポピュラーなベースラインモデルで、Merlionを使用して生成されたベンチマーク結果を示します。

単変量予測

主に、評判の高い時系列予測コンペティションであるM4ベンチマークでモデルを評価します。 データセットには、金融、業界、人口統計の予測など、さまざまなドメインの100,000の時系列が含まれています。 サンプリング頻度は1時間ごとから1年ごとです。Table 2は、データセットをまとめたものです。 さらに、Table 3で説明するクラウドKPIの3つの内部データセットを評価します。 外れ値の影響を軽減するために、各メソッドの平均MAPEと中央値MAPEの両方を示します。

ARIMA、Prophet(Taylor and Letham、2017)、ETS(Error、Trend、Seasonality)、およびMSESを比較します。これらはmerlion.models.automlmoduleを使用して実装されます。

Table 4と5は、それぞれ公開データセットと内部データセットでの各モデルの性能を示しています。Table 6は、autoMLモジュールを使用して達成された平均的な改善を示しています。 

 

 

多変量予測

公開データセットと内部データセット(Table 7)を収集し、データの学習分割でモデルを学習します。 一部のデータセットでは、指定された粒度でデータをリサンプリングします。 時系列ごとに、学習分割でモデルを学習して、最初の単変量をターゲットシーケンスとして予測します。 モデルを再トレーニングしませんが、評価パイプラインを使用して、ローリングウィンドウを使用してテスト分割の予測を段階的に取得します。 以前の21のタイムスタンプで予測を条件付けながら、次の3つのタイムスタンプの時系列値を予測します。 テスト分割のすべてのタイムスタンプでこれらの3ステップの予測を取得し、可能な場合はsMAPEを使用し、それ以外の場合はRMSEを使用して予測の品質を評価します。

使用する多変量予測モデルは、自己回帰および決定木アンサンブルアルゴリズムに基づいています。 VAR、勾配ブースティングアルゴリズムに基づくGB Forecaster、およびランダムフォレストアルゴリズムに基づくRF Forecasterを比較します。

 

Table 8に、各モデルの性能を示します。 GBForecasterは、4つのデータセットのうち3つで最良の結果を達成しています。 VARモデルは1つのデータセットでのみ競争力のある性能を示します。このため、GBForecasterは、新規ユーザーや初期の探索に適した「デフォルト」モデルであると考えています。

単変量異状検知

4つの公開データセットと内部データセットの結果を報告します(Table 9)。内部データセットとNumentaAnomaly Benchmarkには、すべての時系列とすべてのアルゴリズムに対して単一の(キャリブレーションされた)検出しきい値を選択します。AIOpsチャレンジには、ラベル付きの異状を使用します。学習分割でF1を最適化する検出しきい値を選択するための、各時系列のトレーニング分割。 UC Riverside Time Series Anomaly Archiveでは、テスト分割でF1を最適化する検出しきい値を選択します。これは、データセットが非常に多様であるためです(したがって、単一のしきい値がすべての時系列に適用されるわけではありません)。Table 9は、これらのデータセットと評価の選択肢をまとめたものです。評価パイプラインを使用して、各モデルを評価します。時系列の学習分割で初期モデルを学習した後、その時点まで(キャリブレータまたはしきい値を調整せずに)完全なデータで監視なしでモデルを毎日または毎時再学習します。次に、完全な予測異状スコアを段階的に取得します。時系列、ライブ展開シナリオをシミュレートする方法。バッチ予測も検討します。バッチ予測では、最初の学習済みモデルが、再学習なしで、テスト分割全体の異状スコアを単一のステップで予測します。 UCRデータセットにはタイムスタンプが含まれていないことに注意してください。1分に1回サンプリングされているかのように扱いますが、これは不完全な仮定です。効率上の理由から、このデータセットのバッチ予測と「毎日」の再トレーニングのみを考慮します。

モデルの2つのクラスを評価します:予測ベースの異状検出器と統計的手法予測ベースの手法には、ARIMA、AutoETS、およびAutoProphetを使用します。統計的手法には、IsolationForestを使用します。 RandomCutForestおよびSpectralResidualは、2つの単純なベースラインWindStatsおよびZMSとしても考慮されます。AutoETS、RRCF、およびZMSのアンサンブルも検討します。

Table 10は、各データセットの各モデルによって達成された修正されたポイント調整済みF1スコアを示します。AutoETS、RRCF、およびZMSのアンサンブルは、4つのデータセットのうち2つで最高の性能を達成し、他のデータセットでは2番目に優れていることがわかります。

Table 11は、すべてのデータセットにわたって平均された、各モデルの再学習スケジュールの影響を調べています。予測ベースのモデルと提案されたアンサンブルの毎日および毎時の再学習により、異状検出の性能が大幅に向上することがわかります。

 

多変量異状検知

 多変量異状検出の評価設定は、単変量異状検出の評価設定とほぼ同じです。Table 12に、この実験の多変量時系列異常検出データセットを示します。これらすべてのデータセットの異状検出を完全に教師なし学習タスクとして扱うことに注意してください。 単変量設定では、効率上の理由から、バッチ予測と毎週の再トレーニングのみを考慮します。

統計的手法と深層学習モデルの2つのクラスのモデルを検討します。統計的手法については、IsolationForestとRandomCutForestを評価します。 深層学習アプローチでは、オートエンコーダー、DeepAutoencodingGaussianMixtureModel、LSTMエンコーダーデコーダー、および変分オートエンコーダーを評価します。 RandomCutForestとVariationalAutoencoderのアンサンブルも選択できます。

Table 13は、各モデルによって達成された修正されたポイント調整済みF1スコアを示しています。すべてのデータセットにわたって明確な勝者はありませんが、提案されたアンサンブルは、各データセットの最良のモデルと比較して、一貫してF1スコアの小さなギャップを達成します。LSTMエンコーダーデコーダーは達成します。 同様の平均ギャップですが、変動が大きくなります。したがって、アンサンブルは、複数のデータセットにわたって妥当な性能を確実に取得するため、新規ユーザーまたは初期の探索に適した「デフォルト」モデルであると考えています。 最後に、単変量の場合と同様に、Table 14は、再学習の影響が、考慮されるすべての多変量統計モデル(最初のブロック)と深層学習モデル(2番目のブロック)であいまいであることを示しています。 

 

まとめ(Merlion)

時系列のオープンソースの機械学習ライブラリであるMerlionを紹介しました。これは、時系列の異状検出と予測に関する今日の業界ワークフローの多くの問題点に対処するように設計されています。幅広いモデルとデータセットに統合された、簡単に拡張可能なインターフェースと実装、複数の予測モデルの性能を一貫して改善するautoMLモジュール、解釈可能性を改善して誤検出率を低減する異状検出器の後処理ルール、および透過性を提供します。複数のベンチマークデータセットで優れた性能を確実に達成するアンサンブルを提供します。これらの機能は、モデルの性能を定量的に評価する柔軟なパイプラインと、より定性的な分析のための視覚化モジュールで結び付けられています。Merlionのさらなる開発と改善が積極的に行われているとしています。計画されている将来の作業には、最新の深層学習モデルやオンライン学習アルゴリズムなど、より多くのモデルのサポートの追加、実際の実稼働環境でのモデルの展開を容易にするストリーミングプラットフォームの開発、多変量時系列分析の高度な機能の実装が含まれます。

 

Darts

Darts: User-Friendly Modern Machine Learning for Time Series
written by Julien HerzenFrancesco LässigSamuele Giuliano PiazzettaThomas NeuerLéo TaftiGuillaume RailleTomas Van PottelberghMarek PasiekaAndrzej SkrodzkiNicolas HugueninMaxime DumonalJan KościszDennis BaderFrédérick GussetMounir BenheddiCamila WilliamsonMichal KosinskiMatej PetrikGaël Grosch
(Submitted on 7 Oct 2021 (v1), last revised 8 Oct 2021 (this version, v2))
Comments: Published on arxiv.

Subjects:  Machine Learning (cs.LG); Computation (stat.CO)

code:  

もう一つの時系列ライブラリDartsは、スイスのUnit8が、古典的な予測モデルとMLベースの予測モデルを統合する新しい比較的高レベルのAPIを提案しています。

Dartsには、1つの時系列を表す独自のTimeSeriesデータコンテナタイプがあります。 TimeSeriesは不変であり、データが正しい形状、タイプ、およびソートされた時間インデックスを持つ整った形式の時系列を表すことを保証します。 TimeSeriesは、Pandas DatetimeIndexまたはInt64Indexのいずれかを使用してインデックスを作成できます。 TimeSeriesは、3次元のxarray DataArrayをラップしています。次元は(時間、コンポーネント、サンプル)です。ここで、コンポーネントは多変量系列の次元を表し、サンプルは確率的時系列のサンプルを表します。 TimeSeriesクラスは、Pandas DataframesやNumPy配列など、他の一般的なタイプとの間で変換するためのいくつかのメソッドを提供します。また、数学演算、インデックス作成、分割、時間差分、補間、マッピング関数、タイムスタンプの埋め込み、プロット、限界分位数の計算などの便利な演算を実行することもできます。不変性のために、TimeSeriesはデータの独自のコピーを保持し、コピーせずにデータに効率的にアクセスするためにNumPyビューに大きく依存しています(モデルの学習時など)。このような保証を提供する専用タイプを使用する主な利点は、DartsのすべてのモデルがTimeSeriesを使用および生成できることです。これにより、一貫性のあるAPIを提供できます。たとえば、他のモデルの出力を使用するモデルを作成するのは簡単です。

予測API 

Dartsのすべてのモデルは、同じ基本的なfit(series:TimeSeries)->Noneおよびpredict(n:int)-> TimeSeriesインターフェースをサポートし、単一のシリーズseriesで学習され、シリーズの終了後nタイムステップを予測します。さらに、ほとんどのモデルはより豊富な機能も提供します。たとえば、時系列のシーケンスで学習する機能(fit([series1、series2、...])などの呼び出しを使用)。モデルはさまざまな内部メカニズム(シーケンス間、固定長、反復、自己回帰など)を持つことができ、この統合APIにより、内部の動作を知らなくても、さまざまなモデルをシームレスに比較、バックテスト、およびアンサンブルできます。執筆時点でDartsに実装されているモデルには、(V)ARIMA、指数平滑化、AutoARIMA、Theta、Prophet、 FFTベースの予測、DeepARに類似したRNNモデル、N-BEATS、TCN、およびいかなる外部表形式の回帰モデルをラップアラウンドできる一般的な回帰モデル(scikit-learnモデルなど)。リストは絶えず拡大しており、新しいモデルの外部実装とリファレンス実装を歓迎します。

メタラーニング

Dartsの重要な部分は、メタ学習のサポート、または潜在的に多数の個別の時系列で1つのモデルを学習する機能です。 darts.utils.dataモジュールには、時系列データセットのさまざまな実装が含まれています。これらのデータセットは、系列(および潜在的な共変量)を学習サンプルにスライスする方法を指定します。Dartsはモデル固有のデフォルトのスライスロジックを選択しますが、必要に応じてカスタムの方法でユーザー定義することもできます。 すべてのニューラルネットワークはPyTorchを使用して実装され、GPU学習と推論をサポートします。 カスタムシーケンス実装に依存してデータを遅延的にロードすることにより、メモリに保持されない大きなデータセットを使用する可能性があります。

過去/未来の共変量

いくつかのモデルは、ターゲット系列の予測に役立つ可能性のある外部データを指定する方法として、共変量系列をサポートしています。 Dartsは、未来に知られている未来の共変量(天気予報など)を、過去にしか知られていない過去の共変量と区別します。 モデルは、過去の共変量および/または将来の共変量の引数を受け入れます。これにより、推論時に将来の値が必要かどうかが明確になり、間違いを犯すリスクが軽減されます。 共変量系列は、それぞれの時間軸に基づいてスライスロジックによって位置合わせが行われるため、ターゲットと位置合わせする必要はありません。

確率的予測 

Dartsの一部のモデル(およびほぼすべての深層学習モデル)は、確率的予測をサポートしています。 コンポーネントと時間の同時分布は、モンテカルロサンプルをTimeSeriesオブジェクトに直接格納することによって表されます。 この表現は、パラメトリック形式に依存せず、任意の同時分布をキャプチャできるため、非常に柔軟性があります。 サンプルはバッチ処理を使用してベクトル化された方法で効率的に計算できるため、サンプリングの計算コストは通常無視できます。 確率的深層学習モデルは、負の対数尤度損失が微分可能である限り、任意の尤度形式に適合できます。 執筆時点で、Dartsはすぐに使用できる16の分布(連続と離散、単変量と多変量の両方)を提供しています。 最後に、出力分布に関する事前信念を指定する方法として、分布のパラメーターに時間に依存しない事前分布を指定する方法を提供します。

その他の特徴 

Dartsには、データ前処理用のトランスフォーマーとパイプライン、バックテスト(すべてのモデルがbacktest()メソッドを提供)、モデル選択のグリッド検索、広範なメトリック、動的タイムワーピングモジュールなどの多くの追加機能が含まれています。 およびアンサンブルモデル(回帰モデルを使用してアンサンブル自体を学習する可能性があります)。 Dartsには、時系列の確率的モデリングを提供するカルマンフィルターやガウス過程などのフィルタリングモデルも含まれています。 最後に、darts.datasetsモジュールには、TimeSeriesとして便利にロードできるさまざまな公開データセットが含まれています。

使用例 

以下のコードは、単一のTCNモデルを2つの異なる(そして完全に異なる)シリーズのデフォルトのハイパーパラメーターに適合させ、そのうちの1つを予測する方法を示しています。 ネットワークは、ラプラス分布のパラメーターを出力します。 このコードには、データの読み込みと前処理から、任意の分位数を使用した予測のプロットまで、完全な予測パイプラインが含まれています(右側に表示)。

 

まとめ (Darts)

Dartsは、最新の機械学習予測アプローチを民主化し、それらを(従来のアプローチとともに)共通のユーザーフレンドリーなAPIの下で統合する試みです。 ライブラリはまだ活発に開発中であり、将来の作業の一部には、異常検出および時系列分類モデルを含むようにAPIを拡張すること、不規則な間隔のデータ(たとえば、ポイントプロセス)をサポートすること、およびコンピュータビジョンおよびNLPドメインに存在するものと同様の大規模データセットで事前トレーニングされたモデルのコレクションを提供することが含まれます。 

まとめ

データ活用の多くの場面で重要である時系列データ解析に伴う様々な事情を考慮したライブラリが2つ公開されました。手厚くデータ分析業務を支援する機能群で安定した性能を確保できるようになるのではないでしょうか。

友安 昌幸 (Masayuki Tomoyasu) avatar
JDLA G検定2020#2, E資格2021#1 データサイエンティスト協会 DS検定 日本イノベーション融合学会 DX検定エキスパート 合同会社アミコ・コンサルティング CEO

記事の内容等について改善箇所などございましたら、
お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。
どうぞよろしくお願いします。

お問い合わせする