本文へスキップ

SysIdentPy

Wilson Rocha Lacerda Junior

SysIdentPy は、NARMAX 系モデルを用いて非線形動的システムを同定する Python ツールキットであり、構造選択、パラメータ推定、シミュレーション、予測を組み合わせています。

掲載情報の更新 ·

概要

SysIdentPy は、時系列データから非線形動的モデルを構築するための Python システム同定ツールキットです。中心となるフレームワークは NARMAX で、NARX、NAR、NFIR、ARX、ARMA などの変種があります。事前学習済みの予測器を提供するのではなく、モデリングのワークフローを提供します。ユーザーは自分のデータに合わせて、ラグ設定、基底関数、モデル選択手法、推定器を選択します。このパッケージは NumPy を基盤としており、宣言されている依存関係には SciPy と Matplotlib も含まれます。

提供されている例では、学習用の入力配列と出力配列をモデルの適合に渡し、その後、検証用配列を使って予測を生成します。多項式 NARX の例では、FROLS による構造選択と最小二乗推定を組み合わせ、選択された回帰項、推定パラメータ、誤差低減率を示します。別の例では、NARX 構成でカスタム PyTorch ニューラルネットワークまたは CatBoost 推定器を使用します。予測プロット、相対二乗誤差平方根、残差相関のユーティリティは、適合したモデルの評価に役立ちます。

適合に加えて、SysIdentPy は指定されたモデルを調べるための SimulateNARMAX を提供し、アフィン情報を用いた多目的パラメータ推定をサポートします。これらの機能は、動的プロセスモデルや非線形予測手法の評価に役立ちますが、提供されている例から、特定の化学プロセスや実運用への適合性が確立されているわけではありません。Array API ディスパッチは明示的に実験的な機能で、オプトインが必要です。NumPy 以外のバックエンドでの one-step prediction はバックエンド上で実行できますが、sequential prediction は現時点では CPU 上の NumPy にフォールバックしてから、結果を元に戻します。ニューラルネットワークの経路には PyTorch が必要ですが、パッケージのメタデータではオプション依存関係として記載されています。

主な機能

  • 設定可能な入力および出力ラグを用いて、NARX、NAR、NARMA、NFIR、ARMA、ARX などの NARMAX 系モデルを構築します。
  • FROLS、MetaMSS、AOLS、UOFR、Entropic Regression、Orthogonal Floating Search などの手法でモデル項を選択します。
  • 線形および非線形の基底関数、15 種類を超えるパラメータ推定手法、アフィン情報を用いた多目的推定を提供します。
  • カスタム PyTorch ニューラル NARX アーキテクチャと互換性のある外部推定器をサポートし、CatBoost NARX の例も提供します。
  • SimulateNARMAX、予測指標、モデル項の表示、予測プロット、残差相関のユーティリティを提供します。
  • 対応する選択アルゴリズム、シミュレーション、指標、ユーティリティ、および Polynomial、Fourier、Bilinear 基底関数で実験的な Array API ディスパッチを利用でき、sequential prediction のフォールバックについても説明されています。

用途

  • 評価案:記録されたプロセス測定値に非線形入出力モデルを適合させ、プロセス制御への利用を検討する前に、予測と残差相関を評価します。
  • 評価案:同じ学習・検証時系列を使って、多項式 NARX、ニューラル NARX、外部推定器を用いた NARX の各手法を比較します。
  • 評価案:SimulateNARMAX で公開済みの NARMAX モデルを調べ、異なるパラメータ推定手法を比較します。

使い方

  1. インストールガイドを読み、提供されているパッケージメタデータで Python と依存関係の要件を確認します。ニューラル NARX を評価する場合は PyTorch を含めてください。外部推定器の例では、追加パッケージが必要になる場合があります。

  2. クイックスタートガイドに従い、入力・出力配列、ラグ設定、学習・検証のワークフローを確認します。プロセス測定値に応用する前に、提供されているシミュレーションデータの例から始めてください。

  3. リポジトリの例を参考に、モデリングの経路を選びます。多項式の例では FROLS、Polynomial、LeastSquares を組み合わせています。別の例では NARXNN と CatBoost ベースの NARX を紹介しています。

  4. 学習データでモデルを適合させ、検証データで予測します。利用可能な場合は選択された項とパラメータを確認し、文書化されたユーティリティを使って予測プロット、相対二乗誤差平方根、残差相関を評価します。

  5. 別の配列バックエンドを評価する場合は、まず Array API ディスパッチガイドを確認します。バックエンド上で実行される one-step prediction と、文書に記載された NumPy/CPU のフォールバックを使う sequential prediction を区別してください。

関連リソース

do-mpc

オープンソース

do-mpc は、非線形およびロバストなモデル予測制御、移動ホライズン推定、シミュレーションのための Python ツールボックスであり、微分代数モデルと不確実性をサポートします。

オープンソースPython

プロセス制御 · デジタルツイン

GEKKO

オープンソース

GEKKOは、微分代数系向けのPythonモデリング・最適化ツールキットで、プロセスシミュレーション、パラメータ推定、混合整数最適化、非線形予測制御をサポートします。

オープンソースPython

プロセス最適化 · プロセス制御

PySINDy

オープンソース

PySINDy は、疎なシステム同定を用いて測定データから動力学方程式を推定する Python パッケージです。制約付き回帰やベイズ回帰のための最適化手法も任意で利用できます。

オープンソースPython

プロセス制御 · デジタルツイン

関連ガイド

ワークフロー

化学工学におけるAIワークフローの評価

プロセスモデリング、反応最適化、制御を切り分けて評価を計画します。実運用を検討する前に、入力、運転限界、時間を考慮した検証方法、承認ゲートを定義します。