Deep-ESN: A Multiple Projection-encoding Hierarchical Reservoir Computing Framework

概要

Jaegerらが提唱した単層Echo State Network(ESN)は、計算量を抑えながらうまく時系列データを扱えるモデルとして有名だが、多くの時系列が持つマルチスケール構造うまく表現することが難しいと言う欠点がある。これに対してESNを多重化する方向性でさまざまな試行錯誤が試みられてきたが、上手くいかなかった。そこで、Deep-ESNを提案する。

前提知識

ESNの多重化、階層化は色々試みられていて、基本的な課題は以下の通り。

  • システムの安定性
  • Echo State Property(ESP, 重みの初期値がどんなものでも同じ学習データで学習すると同じ重みに収束する特性)の保持
  • 計算量の増加を抑える

で、色々試行錯誤した結果のモデルが以下の通り。

  • Dynamical Feature Discoverer(DFD) by Jaeger…リザバーを積み重ねたモデル。学習則が勾配ベース出会ったため計算量が増加した。
  • cascaded ESNs by Triefenbach et al…前のリザバーの出力を教師付きで次のリザバーに食わせるらしい。どっから教師持ってきたんだ…問題設定的にそれが可能だったのかな。
  • Multilayered echo-state machine(MESM)…同じサイズのリザバー内部行列を接続したモデル。DFDとの大きな違いは学習で、元のESNと同様に最後の行列のみを最適化させるらしい。ESPもあり、かつ単層ESNより性能もいい感じ。でも同じサイズだったら単純にリザバー間で既知の情報を受け渡ししているだけで、高次元への投射というESNの旨みを活かせてなくない?というのが筆者の主張。これは解釈だが、高次元への投射によって隠れていた情報を発見できる(カーネル法のような)ので、それができてないよねって意味だと思う。多分。
  • φ-ESN…random-static-projection technique(Extreme Learning Machineとも言う。なんぞこれ)の利点を活かしたモデル。具体的には、ELMの順伝播層をreservoirに組み込み、次元数と分離性を増やせるらしい。???

これらの思考を通じてわかってきたことが以下の通り。

  • 同じサイズのリザバーを積み重ねてもあんまり性能は変わらない…ESNの利点は高次元への射影にあるため。
  • リザバー内に存在する高次元データを低次元に符号化する必要がある…ESNが抱える問題として、collonearity problemがある。これは、リザバーは疎なRNNであるため、高次元の情報と言っても冗長になりやすいと言うもの。

提案手法

上記の問題を解決するため、投影層(つまりリザバーのこと)と符号化層を交互に組み合わせたモデルを提案する。具体的には、リザバーに入力時系列を投影したのち、符号化層で低次元に符号化する。考え方はAutoEncoderと同じっすね。学習では一番最後の行列だけを最適化する。これは単層ESNと同じで、計算コストも低い。

モデル構造自体はかなり単純。  i番目のリザバー内部のベクトル {\bf x}_{res}^{(i)}(t)は、以下の式で表現される。


{\bf x}_{res}^{(i)}(t+1)=(1-\gamma){\bf x}_{res}^{(i)}(t)+\gamma f({\bf W}^{res(i)}{\bf x}_{res}^{(i)}(t)+{\bf W}^{in(i)}{\bf x}_{in}^{(i)}(t+1))

ここで、 {\bf x}_{in}^{(i)}(t+1) i番目のリザバーへの入力ベクトルを指す。当たり前だが、 i=1の時は {\bf x}_{in}^{(i)}(t+1)は最初の入力ベクトルに等しい。

また、 j番目の符号化層による符号化後のベクトル {\bf x}_{enc}^{(j)}(t)は、以下の式で表現される。


{\bf x}_{enc}^{(j)}(t)= f_{enc}({\bf W}^{enc(j)}{\bf x}_{res}^{(j)}(t))

最後の出力は以下の通り。


y(t+1)= f^{out}({\bf W}^{out}{\bf M}(t+1))

ここで、 {\bf M}(t+1)は最後のリザバー層の出力と元々の入力、各符号化層の出力を組み合わせた行列で、


{\bf M}(t+1)=[{\bf x}_{res}^{(K)}(t+1)^{T}, {\bf u}(t+1)^{T}, {{\bf x}_{enc}^{(1, ..., K-1)}(t+1)^{T}}^T ]

と表現される。で、この中の {\bf W}^{out}をチューニングするらしい。  {\bf W}^{enc(j)}の決定方法は、以下の3種類。 1. PCA まあ基本っすね。省略。 2. ELM-based Auto-Encoder 3. Random Projection(RP) よくわからん。あとハイパーパラメタは遺伝的アルゴリズムで決めるらしい。

シミュレーション

2つのカオスシステムと2つの実世界時系列に対してやってみた。 1. Mackey-Glass System 2. NARMA System 3. 月別黒点系列 4. 日別最低温度系列 まあ解析元のシステムについての説明はいいでしょもう。

結果

単層ESNや階層型ESNよりも良い感じみたいっす。

感想

構造自体はシンプルだな〜と思った。オートエンコーダを挟むのは面白い、というか理にかなっていると思う。てっきり符号化の際の行列もランダムなのかと思ったが、おそらくそれでは単層ESNと本質的に何も変わらないモデル構造になってしまうのだろう。でもPCAとかで逐次最適化するならやっぱり計算量増えるじゃんね。というかPCAって回帰問題に使えましたっけ?