IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
状態空間モデル(SSM)は、内部状態が時間とともにどのように変化するかを微分方程式でモデル化することで、動的システムに関する予測を行う機械学習アルゴリズムの一種です。制御システム工学で歴史的に利用されてきたSSMは、ほとんどの系列モデリングタスクに適用可能な非常に柔軟な数学的基盤です。MambaはSSMに基づくニューラル・ネットワーク・アーキテクチャーであり、言語モデリング性能においてTransformerに匹敵します。
状態空間モデルは制御システム工学に起源を持ち、1960年代のアポロ計画における航法計算で重要な役割を果たしました。1 また、SSMは電気工学でも広く用いられており、信号処理、制御理論、ロボティクスの基盤となっています。しかし、SSMの最も重要な特性は、その汎用性であり、とりわけ多入力多出力システムに対して有効です。
SSMを支えているのは2つの単純な方程式です。1つは直接観測できないシステムの内部動態を記述し、もう1つはその内部動態が観測可能な結果とどのように関連するかを記述します。この単純で柔軟な定式化は、さまざまな多変量時系列データに非常に適応できます。
経済学において、SSMはトレンドや季節性が株価にどのように影響するかをモデル化できます。神経科学においては、SSMを用いて測定可能な脳信号(fMRIなど)と基礎的な神経活動との関係をマッピングできます。また、生態学において、SSMは個体群動態、動物の移動、捕獲再捕獲データのモデル化に役立ちます。2同様に、SSMは天気予報やその他の時系列分析にも活用されています。
近年、状態空間モデルに関する研究はディープラーニングでの活用に焦点が当てられており、SSM方程式のパラメーターとしてニューラル・ネットワークを統合する取り組みが進められています。ごく最近では、この取り組みから大規模言語モデル(LLM)向けのMambaモデル・アーキテクチャーが生まれました。これはTransformerに基づくモデルと同等の性能を発揮しつつ、より優れた速度と効率性を実現することが証明されています。
任意の時点におけるシステムの状態は、複数のシステム変数の特定の値によって決定されます。状態空間を効果的にモデル化する目的は、システムを完全に記述するために必要な最小のシステム変数の部分集合を特定することです。このシステム変数の部分集合は状態変数と呼ばれます。状態空間とは、軸(次元)が状態変数で構成され、それぞれのn個の状態変数のあらゆる可能な値を含むn次元空間のことです。
これらの状態変数はそれぞれ線形独立でなければなりません。言い換えれば、いずれの状態変数も他の状態変数の加減算による組み合わせで表されてはならないということです。
任意の時点におけるシステムの特定の状態は状態ベクトルとして表すことができ、このベクトルの各要素は対応する状態変数の値を表します。状態ベクトルは、状態空間そのものと同じ次元数を持ちます。ある状態ベクトルは、状態空間における特定の「座標」の集合として理解できます。
一定の速度で直線のレール上を進むおもちゃの車を想像してください。状態空間は2つの状態変数でモデル化できます。1つは車の位置(スタート・ラインからの距離で測定)、もう1つは速度です。したがって、任意の時刻tにおけるシステムの状態は、2次元の状態ベクトル \[positiont, velocityt] として表すことができます。この単純なシステムでは、ある時点で車の正確な位置と速度、つまり現在の状態が分かれば、次の瞬間にどこにいるかを予測できます。
速度そのものは、速さと方向という2つのシステム変数から成り立っています。車は直線のレール上を動いているため、後方への移動は負の速度、前方への移動は正の速度として単純に表現できます。しかし、効率的ではないものの、速度という1つの状態変数を、速さと方向という2つの状態変数で置き換えることも可能です。
おもちゃの車が直線のレールではなく開けたフィールドを走行している場合、状態空間は4次元になります。これは、車の位置とその動きのいずれも、完全に記述するためには少なくとも2次元が必要となるためです。
実際には、状態空間の「次元」は、私たちがよく知る物理世界の直感的にイメージしやすい次元に対応することはほとんどありません。例えば、三目並べの盤面を考えてみましょう。9つのマスそれぞれを状態変数として扱うことができます。その値は空白を「0」、Xを「1」、Oを「2」とし、9次元の状態空間で表現できます。盤面のあらゆる配置は、状態空間の形式で9次元の状態ベクトルとして表現できます。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
状態空間モデルは、システムへの入力が出力にどのように反映されるか、そしてシステム自体の状態が特定の入力に応じて時間とともにどのように変化するかの両方を予測することを目的としています。
各時刻tにおいて、SSMは入力系列x(t)を受け取り、それを現在の状態h(t)および出力系列y(t)に写像します。状態h(t)はしばしば潜在状態と呼ばれます。これは、システムの出力とは異なり直接観測できない、すなわち潜在的(隠れた)ものであるためです。
システムの状態空間表現は、2つの1階微分方程式を用いて計算されます。
SSMの主要なパラメーターはA、B、C、Dであり、通常は行列の形を取ります。各行列の各要素は、ある状態変数と他の変数(外部入力変数、別の状態変数、またはその変数自身)との関係を、1階導関数として表しています。行列を用いることで、状態空間手法は複雑な多入力多出力(MIMO)システムをコンパクトかつ標準化された形式で表現できる、強力でスケーラブルな手法となります。
制御理論や関連分野では、これらの行列はしばしば直接定義されます。これらは確立されたシステムのダイナミクスを表し、SSMは望ましい出力yや最適な状態hにつながる入力xを見つけるために用いられます。より現代的なSSMの概念では、これらの行列そのものが機械学習によって最適化されるパラメーターとなり、トレーニング・データセットにおけるパターンを最も適切に反映するよう調整されます。ディープラーニング・モデルにおいて、この「パラメーター化」はニューラル・ネットワークの学習可能な重みとして表現されます。
状態空間方程式(または単に状態方程式)は、その名称が示すとおり、A行列とB行列を介して表されるシステムの状態を記述します。この表記において、h(0)はシステムの初期状態、h(t)は時刻tにおける潜在状態、そしてh’(t)(h(t)に関する1階微分方程式)は、時刻tにおける状態の変化の仕方を表します。
微分方程式や行列といった抽象的な概念を文脈化するために、パラメーターA、B、C、Dがすでに既知である動的システムの、簡略化された直感的な例を通じて考察することができます。
この例では、孤立した島に小さな生態系があり、そこには魚の個体群と、その魚を捕食するペリカンの個体群が存在すると想像してください。このシステムは、2つの状態変数を使って表すことができます。 つまり、(魚の数)と (ペリカンの数)です。私たちの目的は、状態ベクトルとして表される状態がどのように変化するかを記述する関数を 定義することです。 、 時刻tに変化しています。
A行列は遷移行列とも呼ばれ、2つの状態変数で表される島の生態系が、外部からの影響を受けずに時間とともにどのように変化していくかを記述します。より具体的には、現在の状態hが将来の状態にどのように影響を与えるかを記述します。
魚とペリカンの個体数のダイナミクスが非常に単純かつ一定であると仮定しましょう。
これらの動態はそれぞれ単純な方程式で表すことができ、その方程式をサイズ n x nの行列で表すことができます。ここで、 = 状態変数の数を指します。2x2のA行列の各列は状態変数を表し、各行は各状態変数に対する変化率、つまり一次導関数を表します。明確にするためにイタリック体の注釈を追加しました。
この単純化されたシナリオでは個体数変化の割合が一定であるため、A行列の要素は単純な定数となります。現実のシナリオでは、より多くの状態変数やそれらの間の数学的に複雑な関係が関わることが多いですが、それらの関係が対応する遷移行列Aの格子内で表現される方法は同じです。
外部からの影響がまったく存在しないと仮定すると、h’(t)=A*h(t) で島の生態系の状態が時間とともにどのように変化するかを記述するのに十分です。
この方程式を解析的に解くには、A行列の固有値と固有ベクトルを計算する必要がありますが、それは本記事の範囲を超えています。しかし、この生態系は放置すると持続可能ではないことが分かります。魚とペリカンの個体数は互いに関連しながらますます極端な増減のサイクルを繰り返し、最終的には壊滅的な崩壊に至ります。
生態系に影響を与える外部要因も存在する場合はどうなるでしょうか。B行列は入力行列とも呼ばれ、状態方程式のもう一方の部分を構成し、与えられた入力が各状態変数にどのように影響するかを記述します。それはn × mの大きさを持つ行列であり、ここでnは状態変数の数、mは外部の入力変数の数を表します。制御理論の本質は、システム全体にとって望ましい状態や結果を達成するためのシステム入力x(t)を決定することにあります。
島の生態系の例をさらに発展させるために、1つの入力変数を追加しましょう。それは、時刻tに投下される魚のエサx(トン単位で測定)です。空輸された魚のエサ1トンごとに魚の個体数がさらに30%増加し、ペリカンの個体数には影響を与えないと仮定します。
状態変数が2つ、入力変数が1つあるため、それらを2×1の入力行列で表現します。B行列の上段は、A行列に合わせてFを表します。
これで、完全な状態方程式を用いて、時刻tにおける島の生態系の状態をモデル化できます。
この場合の目標は、生態系を安定させるために、魚の個体数が減少しているときに入力x(t)を追加するための最適な規則を特定することです。これらの規則は通常、状態変数の関数として要素が表される別の行列によって表現されます。
前述のとおり、状態方程式の目的は、直接観測することのできない「隠れた状態」hを記述することにあります。SSMは、真の状態を反映した何らかのものが直接観測可能であると仮定します(ただし、ノイズを含んだり不完全である可能性があります)。そして、それを出力方程式(観測方程式とも呼ばれます)を用いてモデル化します。
これは単純な生態系の例でも同様です。実際には、島にいるすべての魚や鳥を文字どおり数えることはおそらく不可能でしょう。その代わりに、生態学的な調査では空撮ドローンや水中カメラを用いて魚やペリカンの個体数の一部を客観的に調査し、それらの測定値が生態系の真の状態とどのように関連しているかについて仮定を立てることがあります。
C行列(または出力行列)は、内部状態変数と出力yとの関係を決定します。出力そのものはベクトルとして表され、その要素は各出力変数に対応する観測値となります。生態系の例では、4つの出力変数を追加してみましょう。魚の個体数を観測するための水中カメラ2台と、ペリカンの個体数を観測するための空撮ドローン2台です。
これらの出力変数は、p × n の行列Cで表すことができます。ここで、n は状態変数の数、pは測定対象の出力信号の数です。これまでの行列と整合させるために、左側の列は各出力変数との関係に対応し、 右側の列はそれぞれの関係に対応します。 .
これで、時刻 t におけるシステム出力 y を次のようにモデル化できます。
理論的には、状態方程式と出力方程式を参照することで、出力測定値 y から真の状態 h を導き出すことができます。
実際には、出力測定値と真の状態との正確な関係を知ることはほとんど不可能であり、出力測定値そのものも不完全で、ノイズによる変動を受けやすいものです。例えば、ドローン1が島にいるペリカンのちょうど25%を発見できると仮定するのは非現実的です。カルマン・フィルターは、ノイズを含むシステム出力を用いて、真の状態を最尤推定するために広く使用されている手法です。
D行列は、入力が観測されたシステム出力にどのように直接影響を与えるかを表します。これは状態そのものとは直接の関係がなく、実質的に「モデル」を完全に迂回してしまうため、SSMの図や議論では省略されることがよくあります。
例えば、生態系の例で、島の水域の潮流によって空から投下された魚の餌がカメラ2付近に沈むと想像してみてください。これにより、システム入力が増加するたびに、カメラ2が通常よりも多くの魚個体群を記録し(逆にカメラ1は通常より少ない割合のFを捉える)、という結果になる可能性があります。p × m の D行列は、このような効果を各出力変数に反映します。
場合によっては、入力と出力の間にそのような直接的なつながりが存在せず、Dはモデルから完全に省かれます。
カルマン・フィルターを用いてシステム出力をシステムの真の状態にマッピングするには、あらかじめAとBのパラメーターが既知である必要があります。しかし多くの場合、状態空間システムのダイナミクス、すなわちパラメーターA、B、Cは当初は不明です。システムについて有意義な予測を行うためにSSMフレームワークを利用するには、正しいパラメーターを特定する必要があります。
既知の入力とそれに対応する既知の出力から、相互作用を記述する2つの関連する方程式を用いて、A、B、Cの値を導き出すために、いくつかの機械学習アルゴリズムを利用することができます。モデルが線形時不変(LTI)であり、そのダイナミクスが時間を通じて一貫していて、出力が入力に比例してスケールする場合、期待値最大化アルゴリズムや N4SID などの部分空間法を用いることで、モデルのパラメーターを効率的に推定できます。
近年では、SSMパラメーターを学習する手段としてディープラーニングがますます一般的になってきています。このようなアプローチでは、A、B、Cの各行列をニューラル・ネットワークの重みとして表現します。反復的なプロセスでは、次のようになります。
この教師あり学習(または自己教師あり学習)のプロセスを用いることで、モデルは状態空間システムのダイナミクスを暗黙的に学習します。これは最適なSSMパラメーターを学習するための堅牢で多用途な手法ですが、大量の訓練データを必要とします。
従来のSSMとは異なり、ニューラル・ネットワーク・ベースのSSMは解釈可能ではありません。行列の値は、先ほどの例のように状態変数と他のモデル・パラメーターとの関係を直感的に示すものではなくなります。これはディープSSM特有の欠点ではなく、ディープラーニング・モデル全般に共通する性質です。
従来のSSMは、電気信号や移動する物体の軌道などの連続したシーケンスをモデル化するように設計された連続時間モデルです。しかし、テキスト、分子構造、ユーザー行動、時系列データなど、最新のディープラーニング・モデルが処理する多くのデータモダリティは、一般的に離散的な シーケンスである。SSMを使用して離散シーケンスをモデル化するには、連続信号の一部としてその明確な特定のタイムステップを表現する手段が必要です。
概念的には、離散化とは、連続関数の値を特定の時点で「スナップショット」としてサンプリングすることに相当します。これは、新しいパラメーターであるステップサイズ ∆ を導入することを意味し、各離散的な時刻 t において、そのスナップショットがどのくらいの時間「保持されるか」を決定します。∆ の調整は、時系列データにおける解像度や、映像データにおけるフレームレートといった特性の変更に相当します。一般的な離散化手法には、双一次法、オイラー法、そして多くの最新のSSM(Mambaを含む)で使用される単純なゼロ次ホールド(ZOH)法があります。
連続時間SSMが関数 x(t) を関数 y(t) にマッピングするのに対し、離散時間SSMはシーケンス・ツー・シーケンス・モデルです。数学的に言えば、離散化されたSSMはリカレント・ニューラル・ネットワーク(RNN)と同等であり、システムの潜在状態はRNNの「隠れ状態」に相当します。
SSMの方程式において入力や状態を表す文字は場合によって異なり、前者がu、後者がxで表されることもあります。しかし、このRNNとの関連性こそが、多くの機械学習の文脈で状態を表す記号としてhが用いられる理由となっています。RNNとの関係性が、Mambaのような最新のSSMベースのアーキテクチャーの開発につながりました。
離散化されたSSMのパラメーターや方程式は、連続時間のものと区別するために、通常RNNで用いられる添字表記を使って書き換えられます。この表記では、htはモデルが生成する更新後の状態空間を表し、ht-1はその前の状態、すなわち現在の状態空間を表します。A、B、Cの表記も、離散化された形式を反映するように変更されます。
この離散的な定式化では、各タイムステップ t ごとに(状態方程式を用いて)システムの状態が更新され、その更新された状態が次のタイムステップにおける出力方程式に反映されます。
多くの利点がある一方で、標準的な離散SSMはRNNといくつかの重要な欠点を共有しています。最も重要な欠点の2つは、2021年にAlbert Gu氏らによって提案された構造化状態空間系列モデル(または「S4モデル」)によって解決されました。それは、長い系列を処理できないことと、モデルのトレーニングにおける本質的な非効率性です。
前者については、トレーニングに先立ちSSMのパラメーターを初期化するための独自の戦略によって解決されました。後者については、SSMと畳み込みニューラル・ネットワーク(CNN)との重要な関連性の発見によって解決されました。
標準的なRNNと同様に、従来型の離散SSMは長距離依存関係のモデリングが本質的に苦手です。言い換えれば、段落の冒頭と末尾の単語のように、系列内で離れたステップ間の関係を理解するのが苦手であり、そのため長い系列(テキスト・データなど)のモデリング全体に弱いのです。
この課題を解決するために、Gu氏らはHiPPO(High-order Polynomial Projection Operatorsの略)と呼ばれる手法を用いて、A行列とB行列の挙動を定義することを提案しました。
多項式関数は、1つ以上の項を組み合わせたものです。各項は、ある変数の係数と基底関数で構成されます。例えば、3x²は係数が3で、基底がx²である項です。 多項式の「次数」は、その中に含まれる基底の最高次の指数によって決まります。例えば、3x² + 5x は「2次多項式」です。多項式の次数が高いほど、その曲線でより複雑な細部を表現できます。
直交多項式関数は、複数の次数にわたる特別な「族」の多項式であり、それぞれの多項式が数学的に互いに独立しているため、冗長な重なりや情報的な依存関係が生じないようになっています。また、小さな丸め誤差に対しても非常に強く、より複雑な関数を近似するのに役立ちます。直交多項式の族は、それ自体が三項間漸化式と呼ばれる規則によって生成されます。HiPPO手法は、このような漸化式を用いてA行列とB行列を構築します。
本質的には、各時刻において状態htが状態方程式によって更新されるたびに、状態ベクトルhtの要素が、多項式表現の係数として機能し、元の入力を近似します。古い入力は、広範で低周波(長期的)な特徴を捉える低次の多項式によって近似され、より新しい入力は、きめ細かく高周波(短期的)な特徴を捉える高次の多項式によって近似されます。選択された多項式は直交しているため、情報が重複することはありません。本質的には、この構造により状態空間は入力履歴全体を効率的に「圧縮」し、固定サイズの係数ベクトルにまとめることで「記憶」することを強いられます。
S4論文では、「単にSSMのランダム行列Aを[HiPPO行列] に変更するだけで、Sequential MNISTベンチマークにおける性能が60%から98%に向上し、SSMの長期記憶の問題を事実上解決した」と記されています。DSS、S5、Mambaといった後発の構造化SSMのバリエーションでは、AとBに対して異なる(多くの場合より単純な)初期化方式を採用していますが、HiPPOの基本原則は維持されています。
従来のRNNと同様に、それに相当する離散SSMも自己回帰型推論において非常に高速です。この同等性の欠点は、RNNのトレーニングが非常に遅いという点です。
幸いなことに、離散化SSMには他のRNNと異なる重要な特性がある。言い換えれば、使用するのは単純で簡単な乗算と追加のオペレーションのみです。S4 論文で示されているように、これらの単純で繰り返される相互依存の線形回帰は、1 次元畳み込みカーネル に展開することができ、これはインプットx を1 ステップでアウトプットyに直接マッピングします。これは高速フーリエ変換を使用して非常に効率的に計算できます。
唯一の "キャッチ "は、インプットシーケンスの全ステップがわかっている場合にのみ可能だということだ。推論のポイントは、モデルを使ってシーケンスの次のステップを反復的に予測 することである。しかしトレーニング中は、モデルがサンプルシーケンスを与えられ、その予測精度を向上させるために最適化されるとき、シーケンス全体が既知となる 。
これにより、構造化SSMは両者の長所を享受できます。すなわち、トレーニング時にはCNNとして非常に効率的に動作し、推論時にはRNNとして非常に効率的に動作します。
Mambaは、構造化SSMの特別なバリエーションである選択的状態空間モデルに基づいて構築されたニューラルネットワーク・アーキテクチャーです。自己回帰型言語モデルなどのタスクにおいて、Mambaモデルは多くの学術ベンチマークでTransformerモデルに匹敵するか、それを上回る性能を示しており、推論とトレーニングの両方において大幅に高速かつメモリー効率に優れています。
通常、SSMは、入力履歴全体を使用して入力を出力にマッピングするように明示的に設計されています。これは、一部のシーケンス・モデリング・タスクでは許容または望ましい場合もありますが、ほとんどの高度な言語モデリング・タスクでは大きな障害となります。選択的状態空間モデルは、MambaにこれまでTransformerアーキテクチャーのセルフアテンション・メカニズムによってのみ提供されていた重要な機能を提供します。それは、現在の関連性に基づいて、過去の入力履歴の特定の部分に選択的に焦点を合わせたり無視したりする機能です。
従来のSSM設計では、A、B、C、D、∆の各パラメーターは固定されています。つまり、モデルのトレーニングを通じて最適化された後は、すべての入力に対して同じになります。選択的SSMでは、SSMのパラメーターは入力依存型です。すなわち、入力ベクトルをモデルの重みレイヤーに掛け合わせ(「射影」し)、その結果として生成されます。この重みレイヤー自体もトレーニングによって最適化されます。
しかし、選択的SSMは線形時不変(LTI)ではないため、トレーニング中にCNNとして動作することはできません。Mambaの著者は、ハードウェア対応のパラレルスキャンによってこのトレードオフに対処しました。これは、グラフィックス・プロセッシング・ユニット(GPU)がメモリー階層内のモデルの計算を処理する方法を最適化して、速度と計算効率を最大化するアルゴリズムです。
watsonxプラットフォームにある基盤モデルのIBMライブラリーを探索し、ビジネスに合わせて自信を持って生成AIを拡張します。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。
1.「The Apollo 11 Moon Landing: Spacecraft Design Then and Now」、MathWorks社、2019年
2.「A guide to state–space modeling of ecological time series」、Econological Society of America学会、2021年6月14日