リザバーコンピューティングで、時系列データを解く  その2

時系列データは、リザバーコンピューティング(RC)で解く その2です。

RCリザバープールノードの重み値は固定・修正しない??の意味が掴めないので、感覚として捕まえるために、少し手を動かして、遊んでみることにした。githubで、reservoir-computingを確認すると、20数件のサンプルが見つかる。その中から、EchoTorch と、simple echo state network を動かした。

時系列予測のベンチマークとしてNARMA10の4000データで学習して、1000データを予測。自分PC(iCore7)でも、数秒で結果が得られる。

すぐにモデルにフィットし、予測値にずれがあるようには見えない。その時の、アクティビティの出力結果は、毎回実行するたびにノードの出力は変わるものの、予測誤差がない。これは、なかなかの印象です。

そしてリザーブプールノードの重み値が変えない恩恵だが、学習時間が短い。このケースでも、IoTセンシングのサンプリングレート100Hz (100msec)なら、4000ポイントであれば、40秒+αで学習できそうな印象。何やら、たくさんのGPUユニットに深いノードで、収束させるのに比べると、このライトな感じは一体・・・・

時系列データパターンの何を教師データとして見抜かせるのか、パターン周期のどこをポイントにするかは、こちらの利用しやすい場所をいかに指示するかにより、その実装センスを持ち合わせる技術者が必要になる。

いま私は、睡眠の解析をしていて、ノイズありの時系列データからあるパターンの特徴抽出したい。そして、この技術を適用できるかもしれない。

もちろん、非線形ダイナミクスを表現する内部ノード構成、時系列パターンにマッチさせるノード構成は、今後の研究を待つことになろうが、現時点でも実用的なサービスに落とし込めそうな感じのする技術であるリザバーコンピューティングは、IoTセンサーや時系列データに応用できそうである。

時系列データは、リザバーコンピューティングで解く。

センサーシートの呼吸数・心拍数を時系列データを扱うには、時系列データを扱う仕組みがどうしても必要です。大学にいた頃から時系列データ処理の扱いにはずーと悩みを抱いてきた。時系列データ処理は、非常に根の深い問題を本質的に抱えている。

時系列データをラベル化するなどの応用には、リザーブコンピューティングが使えるかもしれない。

2019年2月小特集:
”リザバーコンピューティングの概念と最近の傾向 田中剛平”の紹介にあるように、階層型NNではない、再帰的NN(内部ノードの重みは固定が特徴、だから学習時間も抑制される)を使い、出力部だけに学習をさせる新しい学習方式である。

入力データを、リザーブしてあるノード上が有する非線形特性により、高次元の特徴空間に写像し、線形分離の可能性を高める。リザバー・ノードの重みは、最初から固定であり、逆誤差伝搬法のように修正の必要がない。しかも、リザーブノードの性質は、非線形の物理ダイナミクスを有することが分かってきたこともあり、そういう特性を持つデバイスがあれば計算に応用もできることから、光デバイスへの応用(格段の性能報告有)も進められている。

これは、ブレークスルーである。

2009年8月論文:(最初の提案論文は2004年らしい)
“Reservoir computing approaches to recurrent neural network training” MantasLukoševičius Herbert Jaeger

この方式の性能は、入力表現の構造、ノード数の構造とサイズ、学習アルゴ、そして出力表現(ラベル化)に依存して決まる。技術者には、対象とする問題・課題にマッチする能力が必要そうだ。

一番の利点は、少ない学習データで、学習できることに見える。これまでの深層学習は、大量に学習データを用意しなければならないのと、その訓練にも時間と計算パワーがかかってしまい、負担費用を事前に予測できない。

リザバーコンピューティングは、少ないサンプルデータが得られれば、高速に学習ができる。そして、リアルタイムデータを入力すれば、小型デバイスでも十分計算できることから、エッジ処理に向いていると思われる。深層学習同様に、専用チップが動作してくるだろう。

今後、実時間・空間から様々なIoTデータがクラウドにあがるが、これらのデータリソースもリザバーコンピューティングエンジンに処理させて、性能異常・状態のラベル化なども進んでいくと思われる。

本日ceatec2019でQuantum Core 社からお話を伺うことができ、久しぶりに、社会への実用応用性の高い技術に出会えた。