説明
N-BEATSは、単変量時系列予測に特化して設計された洗練されたニューラルネットワークベースのモデルです。ServiceNow Researchからの重要な貢献であり、その起源はElement AIに遡ります。このプロジェクトは、N-BEATSアルゴリズムの堅牢な実装を提供し、研究者や実務家が関連論文で提示された実験結果を再現できるようにすることを目的としています。
リポジトリは、容易なアクセスと利用を促進するように構造化されています。N-BEATSモデルのコアとなるPyTorch実装は、`models/nbeats.py`ファイル内にあります。データ処理のため、論文で使用された様々なデータセットのデータセットローダーは、`datasets/*.py`ディレクトリに配置されています。`experiments/*`ディレクトリには、論文の結果を再現するために必要な実験設定が格納されており、それぞれにトレーニングと予測ロジック用の`main.py`スクリプトと、汎用モデルおよび解釈可能なモデルの両方の設定ファイルが含まれています。
結果とパフォーマンスメトリックは、`notebooks`ディレクトリに文書化されており、各実験には専用のノートブックがあります。これらのノートブックは、最終スコアと異なるアンサンブルサイズの有効性に関する洞察を示しており、小さいアンサンブルでも大きいアンサンブルと同等の結果が得られることが多いことに注意してください。この実装は、オリジナルのN-BEATSの「軽量版」として説明されており、一般的に同じ最先端レベルのパフォーマンスを提供し、結果には時折ばらつきが見られます。
このプロジェクトはDockerによる再現性を重視しており、NVIDIA GPUの有無にかかわらずユーザーが利用できるようにしています。`Makefile`には、Dockerイメージの初期化、データセットのダウンロード、テストの実行、実験のビルド、CPUおよびGPUでの予測の実行のためのコマンドが用意されています。環境設定、Dockerイメージのビルド、データセットのダウンロード、およびリピート数やルックバック期間などのカスタマイズ可能なパラメータを使用した実験の実行に関する詳細な手順が提供されています。実験の出力(ログ、損失、スナップショット、最終予測など)は、`storage/experiments`ディレクトリに保存されます。
N-BEATSは、時系列分析、予測、および予測モデリングに関わるデータサイエンティスト、機械学習エンジニア、および研究者にとって特に価値があります。その解釈可能性と最先端のパフォーマンスは、様々な分野の単変量データにおける将来のトレンドを理解し予測するための強力なツールとなります。
N-BEATSのハイライト
単変量時系列予測のためのニューラルネットワークベースのモデル
N-BEATSアルゴリズムの実装
再現性のある実験結果
利用可能なPyTorch実装
様々なデータセットのためのデータセットローダー
汎用モデルおよび解釈可能なモデルの設定ファイル
環境設定のためのDockerサポート
CPUおよびGPU実行サポート
再現のための詳細な手順
実験ログ、損失、予測のためのストレージ
N-BEATSをはじめる
環境設定: Dockerがインストールされていることを確認し、環境に合わせてMakefileを調整してください。
Dockerイメージのビルド: `make init`を実行してDockerイメージをビルドします。
データセットのダウンロード: `make dataset`を実行して必要なデータセットをダウンロードします。
実験のビルド: `make build config=<path_to_config.gin>`を使用して実験設定を生成します。
実験の実行: CPUの場合は`make run command=<path_to_command>`、GPUの場合は`make run command=<path_to_command> gpu=<gpu-id>`を使用します。
実験統計の取得: `make notebook port=<port>`を介してJupyterLabノートブックを実行し、パフォーマンスを分析します。
N-BEATSの使用例
- 時系列予測
- 予測分析
- 需要予測
- 金融予測
- リソース計画







