状態を持つシステム

システムは、静的なシステム(static systems)と動的なシステム(dynamic systems)に分けることができる。

静的なシステムは入力に対して一意に出力が定まるシステムである。たとえば入力 U が 0 でれば出力 Y も 0 で変化しなシステムF(・)や、のせた重り(入力)に対する重さが表示(出力)される秤などが静的なシステムである。 Y = F(U) と書ける。

動的なシステムは、状態を持つシステムのことである。時刻 t の出力 Y_t が状態 X_t と入力 U_t の組み合わせで定まり、状態 X_t も直前の状態 X_{t-1} と入力U_t で変化するシステムである。離散時間システムでは Y_t = F(X_t, U_t), X_{t+1} = G(X_t, U_t)と書ける。連続時間システムの場合は微分方程式で dX/dt = G(X, U)と書ける。このとき、状態変更を司る関数 G(・)を状態遷移関数と呼ぶ。

この動的なシステムは、入力の変化がないとき(例えばずっと 0)であっても、状態はそれ自身で変化し、出力も状態に合わせて変化する。例えば勢いの付いたブランコは、位置と速度の組みを状態として持ち、人が漕ぐことが入力である。漕ぐと位置と速度(状態)が変化し揺れかたが変わる。漕がずにいても、静止はせず位置と速度(状態)は変化を続ける。

物理的なシステムを精密に見れば、すべて何らかの状態をもつ動的なシステムである。ハカリも物を乗せてしばらくは、手を離してもバネの効果で目盛りの値が変化する動的なシステムである。

ソフトウェアや論理回路で作られるデジタルシステムにおいて、状態は記憶として保持される。このため、記憶を持つシステムと呼ばれることもある。論理回路では、フリップフロップを用いて記憶を行い、過去の入力系列に依存した出力を生成する。これを順序回路と呼ぶ。

人工ニューラルネットの分野での入力から出力へストレートに連なっている通常の回路は、ディープ(超多段)であっても、静的なシステムである。リカレントニューラルネットと呼ばれる、出力から入力へ帰還する構造のネットワークは動的なシステムである。時間依存する時系列データの学習を比較的小規模のネットワークで行うときに利用される。言語処理で用いられたのLSTM型のニューラルネットもリカレント型で状態を持つシステムである。