Delay embeddingという手法
つい最近、研究室の論文紹介で目にしたのがDelay embeddingという手法。計測データを行列として評価した時に、各変数を時間軸方向にズラしたものを一緒に内包させる手法。何回か目にしてきたのと、少しわかった気になったのでひとまずメモしておく。
手法のイメージはこんな感じ。ラボで紹介してもらった論文はこれ。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があるらしい。実際先の論文でも、線虫の動きのデータに適用する前にローレンツアトラクターにこの手法を適用している。
ふむ、奥が深そうだが、今はこの辺で。
この記事が気に入ったらサポートをしてみませんか?