CNNを使用して1D信号を分類することをお勧めしますか?


20

私は睡眠段階の分類に取り組んでいます。私はこのトピックに関するいくつかの研究記事を読み、それらの多くはSVMまたはアンサンブル法を使用しました。たたみ込みニューラルネットワークを使用して1次元EEG信号を分類するのは良い考えですか?
私はこの種の仕事に慣れていない。何か間違ったことを聞いたらご容赦ください。


1D信号を2D信号に変換するには、信号をフレームに分割し、各フレームのFFTを取得します。オーディオの場合、これは非常にまれです。
MSalters

回答:


23

1Dシグナルとは、時系列データを意味していると思います。ここでは、値間の時間依存性を想定しています。このような場合、畳み込みニューラルネットワーク(CNN)は可能なアプローチの1つです。このようなデータに対する最も一般的なニューラルネットワークアプローチは、リカレントニューラルネットワーク(RNN)を使用することですが、Bradbury et al(2016)で説明されているように、代わりにCNNまたはハイブリッドアプローチ(準リカレントニューラルネットワーク、QRNN)を使用することもできます下の図に示されています。また、時間に関する情報がフーリエ級数機能を介して渡されるVaswani et al(2017)によって説明されているトランスフォーマーネットワークのように、注意だけを使用するなど、他のアプローチもあります

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

RNNので、あなたは、出力および他の隠された状態に戻すために、入力前の隠れ状態と現在の入力値として受け取り、細胞を使用した情報が隠された状態を経由して流れ。CNNでは、ある程度の幅のスライディングウィンドウ使用して、データ内の特定の(学習した)パターンを表示し、そのようなウィンドウを積み重ねて、上位レベルのウィンドウが下位レベル内のパターンを検索するようにします。パターン。このようなスライディングウィンドウを使用すると、データ内の繰り返しパターン(季節パターンなど)を見つけるのに役立ちます。QRNNレイヤーは両方のアプローチを組み合わせています。実際、CNNとQRNNアーキテクチャの利点の1つは、RNNよりも高速であることです。


11

確かにCNNを使用して1D信号を分類できます。睡眠段階の分類に興味があるので、このペーパーを参照してください。DeepSleepNetと呼ばれるディープニューラルネットワークであり、1D畳み込み層とLSTM層の組み合わせを使用して、EEG信号を睡眠段階に分類します。

アーキテクチャは次のとおりです。

DeepSleepNet

ネットワークには2つの部分があります。

  • Fs/2FsFs×4
  • 順次学習層:畳み込み層からの埋め込み(または学習された特徴)は連結され、LSTM層に供給されて、埋め込み間の一時的な依存関係を学習します。

最後に、時系列を睡眠段階に対応する5つのクラスの1つに分類する5ウェイソフトマックスレイヤーがあります。


4

長いシーケンス処理するために、スタックハイブリッドアプローチ(CNN + RNN)の使用を強調したい:

  • ご存知かもしれませんが、1D CNNはタイムステップの順序に敏感ではありません(ローカルスケール以上ではありません)。もちろん、多くの畳み込み層とプール層を積み重ねることにより、最終層は元の入力のより長いサブシーケンスを観察できます。ただし、それは長期的な依存関係をモデル化するための効果的なアプローチではない場合があります。ただし、CNNはRNNと比較して非常に高速です。

  • 一方、RNNはタイムステップの順序に敏感であるため、時間依存性を非常にうまくモデル化できます。ただし、それらは非常に長期的な依存関係のモデリングに弱いことが知られています。この場合、タイムステップには入力の非常に遠い時間ステップとの時間依存性があります。さらに、タイムステップの数が多い場合、非常に遅くなります。

したがって、この方法でCNNとRNNを組み合わせるのが効果的なアプローチかもしれません。最初に畳み込み層とプーリング層を使用して、入力の次元を減らします。これにより、高レベルの機能を備えた元の入力のかなり圧縮された表現が得られます。次に、この短い1Dシーケンスをさらに処理するためにRNNに送ります。そのため、CNNの速度とRNNの表現能力を同時に活用しています。ただし、他の方法と同様に、特定のユースケースとデータセットでこれを試して、効果があるかどうかを確認する必要があります。

この方法の大まかな説明は次のとおりです。

--------------------------
-                        -
-   long 1D sequence     -
-                        -
--------------------------
            |
            |
            v
==========================
=                        =
=  Conv + Pooling layers =
=                        =
==========================
            |
            |
            v
---------------------------
-                         -
- Shorter representations -
-     (higher-level       -
-      CNN features)      -
-                         -
---------------------------
            |
            |
            v
===========================
=                         = 
=  (stack of) RNN layers  =
=                         =
===========================
            |
            |
            v
===============================
=                             =
= classifier, regressor, etc. =
=                             =
===============================

4

FWIW、このペーパーの Temporal Convolutional Networkをチェックすることをお勧めします(著者ではありません)。時系列データにCNNを使用するためのきちんとしたアイデアがあり、時間順序に敏感で、任意の長いシーケンスをモデル化できます(ただし、メモリはありません)。

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

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