Short-term Traffic Flow Prediction Based on Improved Deep Echo State Network

概要

交通量の予測にImproved Deep Echo State Network(IDESN)を適用する。IDESNと従来のDeep Echo State Network(DESN)との違いは以下の二点。

活性化関数の改良

circular greedy algorithmによるハイパーパラメタの最適化 さらにthe Wavelet threthold denoising algorithmを使ってノイズ除去を行なった。そしたらMSEがESNと比べて減少した。

前提知識

DESN…Jager[2001]が提案したEcho State Network(ESN)を多層化したもの。リザバー層が多層化されている。各リザバー層での更新則は以下の通り。

 
x(t) = aF(W_{in}u(t)) + (1 - a)Wx(t - 1) + \beta

ここで、 x(t), u(t)はそれぞれ時刻 tにおけるリザバー内部のベクトル、入力ベクトルで、 W_{in} はリザバー内部の行列。 aはリーク率。単層ESNならここでリードアウトするが、DESNではこの x(t)を入力としてさらに2層目のリザバーに投入するみたい(もちろん投入の際は W_{in}を掛ける。1層目と2層目で区別するため原文では W_{in}^{(1)}, W_{in}^{(2)}と区別していた)。

最後の層まで行ったらリザバー状態ベクトルを列ベクトルとして束ねた行列 X(t)を作成して、以下の式から出力 y(t)を求める。


y(t) = W_{out}x(t)

学習は W_{out}をリッジ回帰で調整するっぽい?要確認。

ウェーブレット分解…ノイズ除去アルゴリズム。詳細は不明。これも要確認。

提案手法

Cyclic greedy algorithm…目標値が収束するまで貪欲法を繰り返すアルゴリズム

  1. ハイパーパラメタをランダムに決める
  2. 各パラメタの取りうる値の範囲からstep size(恐らく更新量)を決定
  3. 各パラメタを参照し最適なものは残す、そうでないものは更新
  4. 2, 3を繰り返す
  5. パラメタが変わらなくなったら終了

活性化関数…普通はtanh関数を用いるが、提案手法では複数の関数を組み合わせたものを用いている。


f(x) = \sum_{i=1}^{6} a_{i}f_{i}(b_{i}x)

各活性化関数の詳細は面倒なので省略。 a_{i}, b_{i}によって調整可能としている。

シミュレーション

カルフォルニアの交通量を予測する。使用するデータは3, 4, 5月のデータの3つで、最初の20日分を学習、次の5日分を検証、最後の5日分を試験データとしている。

結果

DESNと比べて50%ほどMSEが改善されたみたい。

感想

ESNの良さである高速計算が貪欲法で相殺されてないか心配になった、計算時間がみたい。またパラメタが最適かどうかの判定ってどうしてるんだろう…最適でなかったとして増やすのか減らすのかってのも気になる。もしかして最小値からインクリメントしていってるだけ? 活性化関数の件はまぁ…そこ探し出すとキリがない気がするというか。トレードオフかな。 DESNは発想としてとても面白い。参考文献読んでみようと思った。