Delay embeddingという手法

つい最近、研究室の論文紹介で目にしたのがDelay embeddingという手法。計測データを行列として評価した時に、各変数を時間軸方向にズラしたものを一緒に内包させる手法。何回か目にしてきたのと、少しわかった気になったのでひとまずメモしておく。

画像1

手法のイメージはこんな感じ。ラボで紹介してもらった論文はこれ。Capturing the continuous complexity of behaviour in Caenorhabditis elegans

論文の内容としては線虫の動きを複数の変数として表して、それをDelay embeddingを用いて時間変化の情報を含めて解析することで、低次元空間にて線虫の動きを表せるというもの。うーん上手く説明できてないがひとまずいいか。

で、Delay embedding。何回か目にしてきた手法。これのポイントが、先ほど少しいった通り、「時間変化の情報を含める」こと。

例えばt=10の変数1の値が3だったとしよう。その値だけ見ても、システム全体がどういう状態にあるかわからない。もう少し具体的に言えばその変数1が次のt=11において増えるのか減るのか変わらないのかがわからない。その情報は内部状態とか隠れ状態とかヒストリー(履歴)とか、その辺の言葉に相当するのではないだろうか。

これを、変数1を時間軸に沿ってズラしたデータを一緒くたに扱うことで、ここには変数1のt=9やt=11の値などが件のt=10の値と一緒に解析されることになる。これによって、例えばt=9で値が2、t=10では値が3、t=11では値が4となっていった場合、t=10では変数1は増加傾向にあるとわかる。

このように前後の時間の値は時間変化の情報を持っている。

そのためこれらを含めて解析すると、つまりDelay embeddingすると、生のデータに加えて各変数の"状態"を合わせて解析することになる。

先の論文ではその結果、線虫の動きの時間遷移をしっかりと低次元で表現できている。

感覚的な理解はこんな感じ。線形代数をちゃんと勉強して、しっかり扱えるようになりたい。

少しググるとターケンスの定理とかDelay Embeddingの定理というものがあるらしい。(参考:Wikipedia)

動的なシステムにおいて、カオスなシステムでも表現できる手法としてこのDelay embeddingがあるらしい。実際先の論文でも、線虫の動きのデータに適用する前にローレンツアトラクターにこの手法を適用している。

ふむ、奥が深そうだが、今はこの辺で。

この記事が気に入ったらサポートをしてみませんか?