データ補完のためのグアシアのプロセス


7

私は最近、ゲルマンらのガウスプロセスに出くわしました。(2013)、そして私は時系列データの補完に使用するためのそれらの潜在的なアプリケーションについてもっと学びたいと思っています。対象となるデータは、フォトプレチスモグラム(PPG、人の指の先に取り付けられ、血液量の変化を測定する光学センサー)を使用して収集された個人の心拍数の単一の可変時系列です。

問題は、乱雑なデータの特定のセクションがあることです。これらのアーティファクトを処理するために既存の編集戦略が開発されましたが、それらは主にEKGセンサーから収集されたデータに基づいて最適化されました。PPGの低速波形は、取得したデータへのアプリケーションを時々少し不格好にします。

簡単に言うと、データの手動編集を改善するために作成したR Shiny Appからの適切な信号に囲まれた孤立した乱雑なセクションの例を次に示します。

ここに画像の説明を入力してください

薄い灰色の線は、元の信号を表します(2kHから100Hzにダウンサンプリング)。赤い点が付いた黒い実線は、時間の経過とともにプロットされた心拍間隔(連続する心拍の間の秒単位の時間)のプロットです。心拍間隔は、これらのデータの分析における主要な変数になります。

たとえば、個人の心拍間隔を使用して、心拍変動を評価できます。残念ながら、ほとんどの編集戦略はばらつきを抑える傾向があります。さらに、これらのアーティファクトが存在する可能性が高い場合(参加者の移動のため)、特定のタスクがあります。つまり、これらの乱雑なセクションに削除のマークを付けて、ランダムに欠落しているものとして扱うことができませんでした。

利点は、心拍数の特性について多くのことを知っていることです。たとえば、成人の安静時の範囲は通常60〜100 BPMです。また、心拍数は呼吸周期の関数として変化することもわかっています。呼吸周期は、それ自体、静止している可能性のある周波数の範囲がわかっています。最後に、心拍数の変動に影響を与える低周波サイクルがあることを知っています(心拍数に対する交感神経と副交感神経の影響の組み合わせによって影響を受けると考えられています)。

上記の「悪いデータ」の比較的小さなセクションは、実際には私の主要な関心事ではありません。私は、このような孤立したケースでうまく機能するように見える、ある程度正確な季節補間アプローチを開発しました。

悪い信号と良い信号が定期的に混在しているデータセクションを処理するときに、さらに問題が発生します。

ここに画像の説明を入力してください

私がゲルマンらから理解しているように。(2013)、ガウス過程に対していくつかの異なる共分散関数を指定することが可能であるようです。これらの共分散関数は、観測されたデータと、成人(または子供)の心拍出量と呼吸出力の測定値について、かなりよく知られている事前分布によって通知されます。

たとえば、いくつかの心拍数が観測されたとします(fHR)、その平均心拍数に支配されるガウス過程を次のように指定することができます(これらのモデルを適用しようとするのは今回が初めてなので、ここで計算が終わっているかどうかをお知らせください)。

g1(t)GP(0,k1)

どこ

k1(t,t)=σ12exp(2sin2(π(tt)fHRHz)2l12)

ここで、はサンプリングレート、は時間のインデックスです。Hzt

例に基づくGelman et al。(2013)彼らのテキストで提供して、この共分散関数を修正して特定の期間にわたる変動を可能にすることは可能であるようです。私にとっては、呼吸サイクル内および上記の低周波心拍変動サイクル内での推定値の変動を考慮したいと思います。fHR

私の理解する最初の目標を達成するには、呼吸速度()のガウスプロセスと共分散関数、および共分散関数に両方のプロセスの機能を組み込んだガウスプロセスを指定する必要があります。fR

g2(t)GP(0,k2)

どこ

k2(t,t)=σ22exp(2sin2(π(tt)fRHz)2l22)

そして...

g3(t)GP(0,k3)

どこ

ktt=σ2eバツp2s2πttfHRHzl12eバツp2s2πttfRHz2l22

この時点で停止すると、私のモデルは次のようになります。

ytt=g1t+g2t+gt+εt

編集/更新

まず、私の3つのガウスプロセスのより正確な仕様は次のとおりです。

二乗指数共分散カーネルから始めます。

g1tN0k1

k1tt=σ12eバツptt22l12

次に、個人の心拍数に基づく準周期パターンを組み込んだ共分散関数。

g2tN0k2

k2tt=σ22eバツp2s2πttfHRl22eバツptt22l2

そして最後に、呼吸周期の関数として心拍数変動をモデル化する共分散関数:

gtN0k

ktt=σ2eバツp2s2πttfHRl42eバツp2s2πttfRl52

以前の質問斜体で更新された回答付き):

1)Guassianプロセスについてほとんど知らない場合、これは防御可能なアプリケーションのように見えますか?それらは非常に柔軟に見え、データの真の変動をできるだけ多く保持するという私の問題に対処できる多くの望ましい特性を持っているように見えますが、私は最近それらに遭遇し、失望しないようにしたいと思います。このウサギの穴を下って

この質問に対するこれまでの私の回答は、これはうさぎの穴ではなく、少なくとも非生産的な穴ではありませんでした。私はこれらのモデルを他のどのモデルよりも、乱雑な信号の「真の」値を回復することに近づきました。実行時間を短縮する方法を見つけられるといいのですが、これらのモデルは計算にコストがかかるためです。私はここで進歩を遂げていますが(スタンとを使用した付記rstan)、まだ進む方法があります。

2)共分散関数の基本的な特徴を正しく理解して表現していますか?さらに重要なのは、関数として変動を許可しようとする試みです(つまり、関数)?fHRfRgt

上記で指定したカーネルは、私の主要なモデリング目的と一致していると思います。そうは言っても、複雑さを軽減する方法があり、確かに私の実行時間が非常に長くなる可能性があります。これは、基本を把握した今、モデルを最適化しようとしている私が引き続き積極的に追求している領域です。

3)より技術的に言えば、値を特定するにはどうすればよいですか?そして、が各共分散関数で正確に何を表しているのですか?それも私が以前の分布を指定しなければならないことのように思われますが、この場合それが何を表しているのか完全には理解していません。おそらく何らかの分散です...lσ2

現在、そしてほぼ間違いなく私の収束時間の要因として、これらの値をデータから推定しています。これらの値を修正するか、以前の分布を厳しく制限して、モデルがカバーするパラメータースペースを(防御可能に)縮小することができれば、実行時間を改善するための長い道のりになると思います。

4)ガウス過程について検討し始めている追加の情報源を見つけました(Rasmussen&Williams、2006)。これらのモデルの理解を深めるために検討すべき他の推奨リソースはありますか?

私は、最終的なモデリング戦略の継続的な追求に役立つ追加のソースをいくつか見つけました。下記参照。

大規模なデータセットでガウシアンプロセスをトレーニングするための高速な方法-Moore et al。、2016

スタンでの高速ガウス過程モデル-Nate Lemoine

スタンでさらに高速なガウシアンプロセス-Nate Lemoine

スタンにおける堅牢なガウス過程-マイケル・ベタンクール

スタンにおける階層的ガウス過程-Trangucci、2016年


新しい質問

  1. 私が使用している周波数(1.5 Hz、0.25 Hzおよびx軸(秒単位で10 Hzにダウンサンプリング))に基づいてモデル(の)の長さスケールパラメーターを制約するための防御可能な方法はありますか?l

  2. モデリング時間を短縮するために注意すべき要素は何ですか?その一部がstanコードの最適化であることはわかっていますが、モデルのパラメーター化に関して他に何かしたり、変更したりできることはありますか?


これまでの結果これ は、これまでの最良の結果です(大幅にダウンサンプリングされたデータセット)。赤い線は「真の」信号を表します。青色は、同じ期間のモデル推定信号です。

ここに画像の説明を入力してください

:見積もりを高速化して少しスムーズにできれば、この結果に大いに満足します。


Gelman、A.、Carlin、JB、Stern、HS、Dunson、DB、Vehtari、A。、およびRubin、DB(2013)。ベイジアンデータ分析(第3版)。CRCプレス:ニューヨーク。

ラスムッセン、CE、およびウィリアムズ、CKI(2006)。機械学習のためのガウス過程。MIT Press:マサチューセッツ州ボストン。


1
Stanドキュメンテーションサイトで Guassianプロセスに関する有用な情報を見つけたので、ここで簡単に更新します。関連する章は、バージョン2.17.0の時点で18です。
Matt Barstead、

そして別のアップデート。このリンクは、を使用したモデルのコーディング方法に関する多くの実用的な情報を提供するスタンの完全なガウスプロセスチュートリアルで参照されましたrstan
Matt Barstead、

あなたは6つの質問をしているが、どれもかなり技術的または広範に見えるため、答えるのは難しい。この質問をいくつかの小さな質問に分割できますか?
MachineEpsilon 2018

この時点で、私の主な関心は、私の「新しい質問」に関する新しい洞察/情報を取得することです(そのため、あなたが指摘した6つのうち2つのみ)。以前の質問の残りの部分と見つけた回答の一部を保持したいので、a)思考/努力の継続的な記録を保持し、b)限られた例を挙げて、私の立場にいる人々にリソースと推論を提供しましたこれらのモデルに関連する適切な選択を行うためにそこから引き出します。
Matt Barstead、2018

1
うん、いいよ。Rasmussen et al。の議論例を見ましたか?5.4.3モデルのハイパーパラメータの特定について 関連すると思われる記憶から。ポイント2について、どの程度の作業を行ってもよいですか?モデルの適合に必要なコレスキー分解は複雑さを持っているため、根本的な障害があり ます。とはいえ、人々はこれに関してさまざまな方法を試みています。GPFlowのようなものを見たことがありますか?ON
MachineEpsilon 2018

回答:


1

私はあなたの質問のすべてに答えることはできませんが、評判の欠如のためにこれに応えてコメントを投稿することはできません:

>私が使用している周波数(1.5 Hz、0.25 Hz、および10 Hzにダウンサンプリングされた秒単位のx軸)に基づいて、モデル(lの)の長さスケールパラメーターを制約するための防御可能な方法はありますか?

スペクトル混合カーネルを確認するとよいでしょう。これは基本的に、共分散行列をフーリエ変換で表すことを含むため、距離ではなく周波数を扱います。これにより、以前の情報の一部がより自然にエンコードされる場合があります。

これが面白そうに聞こえ、元の論文がここにある場合、このページが役立つかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.