リザバーコンピューティング：Echo State Network概要

## 目次
- 前書き
  - 想定読者
- リザバーコンピューティングって何？
  - 特徴
  - 構造
  - エコーステートネットワーク
  - Echo State Propertyとモデル設計の指針

# 前書き

## 想定読者
- 初めてリザバーコンピューティングという単語を知った方
- リザバーコンピューティングという単語は知っているが、実装したことが無い方
- 機械学習に触れたことがある方

# リザバーコンピューティングって何？
リザバーコンピューティングとは、時系列データに適した高速な機械学習の枠組みです。構造が特徴的で、学習するパラメータが少ないにもかかわらず、多くのタスクで高い性能を期待できます。これにより、高速な学習が行え、エネルギー効率が高い機械学習デバイスを実現するための技術としても注目されています。

### 構造
リザバーコンピューティングモデルは、一般的に、このような構造を持ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/714116/7f3b6e91-3c7b-6891-b2dd-14a1656f0273.png)
このように、入力層・リザバー・リードアウトに分かれています。では、それぞれについて、詳しく見ていきましょう。


リザバーは、英語で「ため池」の意味で、入力データを変換し、特徴を誇張する役割、データを蓄積する役割を担っています。池に物体を連続に落とすと、それぞれの物体を落とした時の波紋が重なり、複雑な波紋になりますよね。こうした波紋の様子は、例えば、ビー玉とスマホを落とした時では、もちろん異なり、落とす順番・落とす時間の間隔によっても異なります。この時、この波紋は、時系列入力に依存しており、情報が蓄積されたものと考えることができます。よって、時系列入力は、リザバーの動的な波紋パターンに変換されるといえます。そして、このリザバーでの変換された情報から、入力データの特徴を取り出すことで、時系列データのパターン認識ができます。このような性質から、リザバーコンピューティングが得意とする時系列データの特徴として、「周期性・決定論性・定常性」が挙げられます。これらが含まれているデータは、リザバーで特徴を抽出しやすいです。リザバーには主に3つ求められていることがあります。

- 非線形性
  - 多くの機械学習タスクは入出力関係が非線形であるため。
- 高次元性
  - 後のリードアウト層でのパターン認識が簡単になり、精度が高くなりやすい。
- 短期記憶
  - 時系列入力データは、時間に依存するため。

実装では、事前に設定されたリカレントニューラルネットワークを用います。パラメータを固定することで、ディープラーニングのモデルのパラメータ全てを勾配法で最適化するよりも、学習計算量を大幅に削減できます。また、このリザバーには、様々な種類があり、代表的なモデルとして、入力データの過去の情報が反響して残る状態（エコーステート）を用いる「エコーステートネットワーク」とニューロンの発火現象やシナプス可塑性などの神経科学の大脳皮質の微小カラム構造のモデルとして提案された「リキッドステートマシン」があります。また、リザバーを物理的なプロセスで実現しようとする「物理リザバーコンピューティング」もあります。物理リザバーコンピューティングでは、リザバーに求められる要素は通常のリザバーコンピューティングと変わりません。実装例としては、量子コンピュータや光学的なプロセスを利用したもの、さらにはタコの足を使ったユニークな例も存在します。

リードアウトは、リザバーの動的状態を表す高次元時系列データから、時系列入力データの特徴を読み出す役割を持っています。リードアウトは、出力層でもあり、リザバー状態から、時系列入力データの特徴を線形回帰などの簡便な学習アルゴリズムで読み出し、回帰や分類などのパターン解析を行います。
# 全体的な学習の流れ

1. 入力層は、時系列データを受け取って適当な重み付けを行います。
2. リザバーは、入力層からの情報を非線形に変換します。
3. リードアウトは、パターン解析を行います。

# エコーステートネットワーク

エコーステートネットワークは、2001年にJaegerにより開発されたリザバーコンピューティングのモデルの一種で、信号処理・工学の分野で時系列データ解析のモデルとして提案されました。

- **f** : リザバー内の各ノードの活性化関数。エコーステートネットワークでは一般的にtanhを使用します。
- **W<sub>in</sub>**: 入力結合重み行列で、入力データがリザバーの状態に与える影響の度合いを決定します。
- **u(n+1)** : 時刻n + 1における入力ベクトル。
- **W** : リザバーのリカレント結合重み行列で、リザバーのノード間の結合の重みを表します。
- **W<sub>back</sub>** : 出力フィードバック結合重み行列。出力層のノードからリザバーのノードへのフィードバックの結合の重みを表します。
- **y(n)** : 時刻 n における出力ベクトル

時刻 n + 1 でのリザバー状態を示すベクトル x(n + 1) は、次の式で表すことができます。

$$
x(n + 1) = f(W_{in}u(n + 1) + Wx(n) + W_{back}y(n))
$$

同様に、ネットワークの出力は次の式で表せます。

- **y(n + 1)** : 時刻 n + 1 におけるネットワークの出力を示すベクトル。
- **W<sub>out</sub>** : 出力結合重み行列。リザバーから出力層への重みで、このパラメータを学習します。

$$
y(n + 1) = W_{out}(u(n + 1); x(n + 1))
$$

## Echo State Propertyとモデル設計の指針

**Echo State Property (ESP)** とは、エコーステートネットワークを構築するにあたって、リザバーが満たすべき性質の一つです。リザバー状態の時間発展は、時系列入力に依存しますが、同時に一定の再現性を保つ必要もあります。例えば、リザバー状態ベクトルが、時系列データが入力される度に更新されてしまったら、時系列入力に対するリザバーの応答が異なり、高い精度を得られないかもしれません。これを防ぐためにリザバーが満たすべき1つの性質がESPです。

ESPが成り立つための一般的な必要十分条件は完全に明らかではありません。しかし、活性化関数がtanhの時に限ると、リカレント結合行列 \( \mathbf{W} \) に関する次の必要条件が知られています。ここで、 \( \rho(\mathbf{W}) \) は、 \( \mathbf{W} \) のスペクトル半径です。

$$
\rho(\mathbf{W}) = \max_{i} (|\lambda_i|) < 1
$$

この条件を満たすと、多くの時系列入力データについて、ESPが成り立つことが経験的に知られています。ESPを満たすと、リザバーが時系列入力の影響を受け続け、過去の状態の影響が時間とともに減衰していくため、時系列データの予測や分類などのタスクに対して、高い精度を得られやすくなります。


## モデルの学習パラメータ

| パラメータ | 説明 | 種類 |
| --- | --- | --- |
| N_u | 入力層のノード数 | 固定 |
| N_x | リザバーのノード数 | 固定 |
| N_y | 出力層のノード数 | 固定 |
| W<sub>in</sub> | 入力結合重み行列 | 固定 |
| W | リザバーのリカレント結合重み行列 | 固定 |
| W<sub>back</sub> | 出力フィードバック結合重み行列 | 固定 |
| W<sub>out</sub> | 出力結合重み行列 | 学習 |


学習では、リザバーから出力層への出力結合重み行列のみを計算します。そのため、ディープラーニングと比べて高速に学習が行えるのです。

# Echo State Networkの特性とアプリケーション

エコーステートネットワークの特徴は、高い計算効率と柔軟性です。小規模なリザバーでも、複雑な時系列パターンを学習できる能力があります。また、時系列データの予測、分類、生成など、多様なアプリケーションで利用されています。

- **時系列予測** : 金融市場の動向、気象データの予測など、時系列データの未来の状態を予測するのに使われます。
- **パターン認識** : 音声認識、筆跡認識など、時系列データに含まれるパターンを識別するのに適しています。
- **非線形動的システムのモデリング** : エコーステートネットワークは非線形システムの挙動を模倣するのに有効です。


エコーステートネットワークは、時系列データの処理において高い潜在能力を持つモデルです。学習に必要な計算資源が少なく、データの非線形な特性を効率的に捉えることができます。今後も多様な分野での応用が期待されています。