Echo State Network (ESN) ですって【基礎編】
概要
以前投稿した記事に対し, 勉強会のなかで「Transformer系の時系列モデルはオンライン学習できるのか?」という質問がでてきた.
そのときに「Echo State Network (ESN)」というRNNの一種を知った. どうやらRNNをかなり高速に学習できるようにしたものらしい. オンライン学習にも適用できそうで, いわゆる「データ同化」的なリアルタイムセンシング+予測のような使い方ができそうだ.
ググってみたらいくつか記事はあるものの, その更新も2022年以前でとまっている.
「いまあいつ(ESN)どうしているんだろう🧐」な感じで, ESNを調査しつつ,今後の展望を個人的にまとめたい.
まず【基礎編】では, ESNの生まれた背景や基本構成について説明しESNの特徴をまとめる.
主に以下のレビュー論文を参考にする. 読破メモはすでに他者から公開されているので必要であれば参考にしてほしい.
忙しい人向け
- Echo State Network (ESN) はRNNの一種で, 高速が学習ができる
- ESNには, 入力層, リザーバー層, リードアウト層(出力層)を基本としている
- そして, リードアウト層(出力層)の重みだけを学習対象としている
- 入力層, リザーバー層の初期状態はランダムで,学習過程で更新されない
- リザーバー層は, 入力となる時系列データの性質をしっかりと捉えつつ, そしてリードアウト層から見て識別しやすいような情報を保存している, とみなせる.
- Echo State Property(ESP)により, リザーバー層自体の初期状態の影響は極力抑えられているのが特徴
RNNの課題
まずは Echo State Network (ESN) が必要となった背景をみていこう.
ここで, 深層学習の時系列モデルとして代表的なRNNをもちだす.
以下に代表的な RNN の構造である. (こちらの資料から引用)
RNNでは, 時点
このときの, 各層でのつながり(重み)を学習することで時系列を予測する.
また,
ここで注目してほしいのは, 各層が全結合であり, すべてが学習の対象となっていることである.
この分岐の多さ(bifurcations)により, 学習が収束しづらく, 計算コストが高く, そして, 局所解に陥る可能性がある.
NN系特有の誤差逆伝播(BP)を行うと, RNNの場合は勾配消失の問題により長期予測に弱いことはみなさんご存知だろう.
この"勾配消失の問題により長期予測できない"問題を解消したのが LSTM (Long Short-Memory)である.
以下にLSTMのアーキテクチャをのせておく(こちらのサイトから引用)
LSTMはその構造によりRNNの欠点を補うことができたが, 他方でLSTMの各層には 4つの全結合層が含まれており, LSTM自体が巨大化すればもれなく計算コストが膨大となる. さらに, パラメータが増えるほど過学習の危険性が高まる.
さて, RNN/LSTMの問題としては, この「全結合層」というのがあるらしい. これを素直に学習しようすると, 計算コストが高くなるだけでなく, 精度が悪化する可能性すらある.
Echo State Network (ESN)は RNNのこの構造的な問題を解消することで, より効率的に学習できるようにしたのだ.
Echo State Network (ESN)
リザーバーコンピューティング(Reservior Computing; RC)は, RNNの勾配降下法(gradient decent methods)の代替手段として研究がすすられてきた. Echo State Network (ESN)も, そのRCの一種である.
以下の記事などを参考にしつつ説明していく
ESNの基本構造
その一般的な構造は以下の図のとおりである.
RC系モデルは, 入力層(input), リザーバー層(Reservoir), そして, リードアウト層/出力層(Readout/output)から構成される.
注目すべきは, リザーバー層内のニューロン(ノード)間の接続である. 図をみれば, 別のノードへの接続(一方向、双方向), 自己ループ, エッジなし, といったさまざまな接続があることがわかる.
RNNと比べると, リザーバー層はいわば中間層であるが, RNNの中間層が内部のニューロン間で接続関係がないのに対し, ESNのリザーバー層内でニューロン同士が自由に接続している.
さて, もうひとつESNの大きな特徴として, 学習する重みはESNの出力側, つまり, リードアウト層へのつながりのみである. これが, ESNの計算効率がとても良好である理由となっている.
つまり,
- RNNの構造が, 各層で全結合であったこと, そして, すべての結合の重みを学習していたことに対し,
- ESNでは, リザーバー層のニューロンのつながりが比較的スパースであること, そして, 学習の対象がリードアウト層へのつながりのみであるため, 学習コストがとても低い
ESNの式
実はESNはとても簡単な式で記述することができる.
まずは記号を載せておこう.
データ
- 入力データ:
,u(t) \in R^{D \times 1} は時点t - リザーバー層のニューロン群:
,X(t) \in R^{N \times N} は時点t - リザーバー層内の各ニューロンの状態 :
x_{i}(t) \in R^{N \times 1} - つまり,
X(t) = (x_{1}(t), x_{2}(t) \cdots x_{N}(t))
- つまり,
- 出力データ:
,y(t) \in R^{M \times 1} は時点t
重み
- 入力層重み:
W_{in} \in R^{N \times D} - リザーバー層重み:
W_{res} \in R^{N \times N} -
リードアウト層重み:
W_{out} \in R^{M \times N} - この重みのみが学習対象!!
- 出力からのフィードバック重み:
W_{backout} \in R^{N \times M}
活性化間数
- リザーバー層の活性化関数:
f(x) - 一般的にtanh, sigmoid
- 出力層の活性化関数:
g(x) - 一般的に恒等関数、sigmoid
状態の更新式
さて, もっともベーシックなESNは以下の更新式となる.
簡単に説明すると, 時点
学習時には, 予測誤差を以下の二乗誤差で計算する.
つまり, この式を最小化する重み
先述した通り, ESNで学習するのは,
その他の重み(
リザーバー層に目を向けると, 層内のニューロンたちはランダムな接続を持ち, 適切に初期化されている.
全体の学習プロセスをみると, リザーバー層を通してESNは静的な部分での情報をキャプチャし, タスク別の予測などの動的な部分はリードアウト層のみで調整が行われている, といえる.
ハイパーパラメータ
学習するのは
-
: 入力層の重みw^{in} の各要素の値をスケーリングするもので,W_{in} の範囲で一様分布で初期化される(のが一般的)[-w^{in}, w^{in}] -
:\alpha のスパース性に関するもの. つまり, リザーバー層でのニューロン間の接続数に関するものW_{res} -
:\rho (W_{re}) のスペクトル半径(spectral radius).W_{res} -
となるように設定. いわゆる, 記憶の保持期間に関係し, これがESNのとても重要な機能を提供する(後述)\rho (W_{re}) < 1
-
- まず同サイズの行列
を, 各要素がW の一様分布でランダムに初期化[-1,1] -
の固有値W を求め,\lambda_{max}(W) と一緒に,\rho (W_{re}) を初期化W_{res}
Echo State Property (ESP)
さて, 読者のみなさんは次の疑問をもったのではないだろうか.
「なぜリードアウト層
その違和感の原因として,
そう考えると, 動的に更新されるリードアウト層の重み
なぜなら, 時系列の入力データ
この時系列入力データ
すなわち, 異なる初期状態のリザーバー層
条件さえ整えば, リザーバー層の状態は漸近的に(asymptotically)入力データの履歴にのみ依存するようになる.
これゆえ, リザーバー層の状態は, 時系列入力データのEchoとなる.
そして, どんな初期状態から学習をスタートしてもこのEchoな状態に到達するには, 初期状態の影響が徐々になくなる仕組みが必要である.
これが, ハイパーパラメータで設定した,
ここで本記事の式(1)に戻ってほしい. 時点
時点
つまり,
特に,
ここらへんの説明は Jaeger先生の以下の論文や, スライドを参考にするとよい
結局何をしている?
ESNの性質は説明したが, 結局のところ何をしているのか?ということを説明しておこう.
注目すべきはやはりリザーバー層. リザーバー層は, 時系列入力データの写し(Echo)となっており, 学習したい時系列データに関する情報を保存するように設計されている.
ここで, 入力層 -> リザーバー層では, より高次元へと写像させている. これにより, 高次元空間では元のデータが持つ複雑な関係性がより明確に表現され, 線形分離が可能となる. いわばカーネル法(カーネルトリック)に似たことをしている.
リザーバー層は, 入力となる時系列データの性質をしっかりと捉えつつ, そしてリードアウト層から見て識別しやすいような情報を保存している, とみなせる.
そして, ESPにあるように, リザーバー層自体の初期状態の影響は極力抑えられているのが特徴だ.
もしアルゴリズムの設計・実装に興味があれば以下の記事が参考にできる.
まとめ
今回の記事では, ESNの生まれた背景や基本構成について説明しESNの特徴をまとめた.
次回は, レビュー論文を参考に, ESNのデザインの問題や現状どうなっているの?みたいな部分をまとめていきたい.
Discussion