Ist es eine gute Idee, CNN zur Klassifizierung von 1D-Signalen zu verwenden?


20

Ich arbeite an der Einstufung des Schlafstadiums. Ich habe einige Forschungsartikel zu diesem Thema gelesen, von denen viele die SVM- oder Ensemble-Methode verwendeten. Ist es eine gute Idee, das eindimensionale EEG-Signal mithilfe eines neuronalen Faltungsnetzwerks zu klassifizieren?
Ich bin neu in dieser Art von Arbeit. Verzeihen Sie mir, wenn ich etwas falsches frage?


Ein 1D-Signal kann in ein 2D-Signal umgewandelt werden, indem das Signal in Frames aufgeteilt und die FFT jedes Frames genommen wird. Für Audio ist dies eher ungewöhnlich.
MSalters

Antworten:


23

Ich vermute, dass Sie mit 1D-Signal Zeitreihendaten meinen, bei denen Sie eine zeitliche Abhängigkeit zwischen den Werten annehmen. In solchen Fällen sind Faltungs-Neuronale Netze (CNN) einer der möglichen Ansätze. Die beliebtesten neuronales Netzwerk Zugang zu solchen Daten ist rekurrente neuronale Netze (RNN) zu verwenden, aber Sie können alternativ CNNs verwenden oder Hybrid - Ansatz (quasi-rezidivierenden neuronale Netze, QRNN) , wie sie diskutiert Bradbury et al (2016) , und auch auf ihrer Abbildung unten dargestellt. Es gibt auch andere Ansätze, wie die Verwendung von Aufmerksamkeit allein, wie bei dem von Vaswani et al. (2017) beschriebenen Transformer-Netzwerk , bei dem die Information über die Zeit über Fourier-Reihen-Merkmale weitergegeben wird .

Bildbeschreibung hier eingeben

Mit RNN würden Sie eine Zelle verwenden, die den vorherigen verborgenen Zustand und den aktuellen Eingabewert als Eingabe verwendet, um die Ausgabe und einen anderen verborgenen Zustand zurückzugeben, sodass die Informationen über die verborgenen Zustände fließen . Bei CNN würden Sie ein Schiebefenster mit einer gewissen Breite verwenden, das nach bestimmten (erlernten) Mustern in den Daten aussieht, und solche Fenster übereinander stapeln, sodass Fenster auf höherer Ebene nach Mustern auf niedrigerer Ebene suchen Muster. Die Verwendung solcher Schiebefenster kann hilfreich sein, um beispielsweise sich wiederholende Muster in den Daten zu finden (z. B. saisonale Muster). QRNN-Schichten mischen beide Ansätze. Einer der Vorteile von CNN- und QRNN-Architekturen besteht darin, dass sie schneller sind als RNN .


11

Sie können eine CNN durchaus zur Klassifizierung eines 1D-Signals verwenden. Da Sie sich für die Klassifizierung von Schlafstadien interessieren, lesen Sie diesen Artikel . Es ist ein tiefes neuronales Netzwerk namens DeepSleepNet und verwendet eine Kombination aus 1D-Faltungs- und LSTM-Schichten, um EEG-Signale in Schlafstadien zu klassifizieren.

Hier ist die Architektur:

DeepSleepNet

Das Netzwerk besteht aus zwei Teilen:

  • Repräsentative Lernschichten: Diese bestehen aus zwei parallelen Faltungsnetzwerken. Der Hauptunterschied zwischen den beiden Netzwerken ist die Kernelgröße und die maximale Größe des Pooling-Fensters. Die linke verwendet die = (wobei die Abtastrate des Signals ist), während die rechte die = . Die Intuition dahinter ist, dass ein Netzwerk versucht, "feine" (oder hochfrequente) Merkmale zu lernen, und das andere versucht, "grobe" (oder niederfrequente) Merkmale zu lernen.Fs/2FsFs×4
  • Sequentielle Lernschichten: Die Einbettungen (oder gelernten Merkmale) aus den Faltungsschichten werden verkettet und in die LSTM-Schichten eingespeist, um die zeitlichen Abhängigkeiten zwischen den Einbettungen zu lernen.

Am Ende befindet sich eine 5-Wege-Softmax-Schicht, die die Zeitreihen in eine von fünf Klassen unterteilt, die den Schlafstadien entsprechen.


4

Ich möchte die Verwendung eines Stacked-Hybrid-Ansatzes (CNN + RNN) zur Verarbeitung langer Sequenzen hervorheben :

  • Wie Sie vielleicht wissen, reagieren 1D-CNNs nicht auf die Reihenfolge der Zeitschritte (nicht weiter als auf einer lokalen Skala). Durch Übereinanderstapeln vieler Faltungs- und Bündelungsschichten können die letzten Schichten natürlich längere Teilsequenzen der ursprünglichen Eingabe beobachten. Dies ist jedoch möglicherweise kein wirksamer Ansatz zur Modellierung langfristiger Abhängigkeiten. Obwohl CNNs im Vergleich zu RNNs sehr schnell sind.

  • Andererseits sind RNNs empfindlich gegenüber der Reihenfolge von Zeitschritten und können daher die zeitlichen Abhängigkeiten sehr gut modellieren. Es ist jedoch bekannt, dass sie bei der Modellierung sehr langfristiger Abhängigkeiten schwach sind, wobei ein Zeitschritt eine zeitliche Abhängigkeit haben kann, wobei die Zeitschritte sehr weit hinten in der Eingabe liegen. Außerdem sind sie sehr langsam, wenn die Anzahl der Zeitschritte hoch ist.

Ein effektiver Ansatz könnte daher sein, CNNs und RNNs auf diese Weise zu kombinieren: Zuerst verwenden wir Faltungs- und Pool-Schichten, um die Dimensionalität der Eingabe zu reduzieren. Dies würde uns eine ziemlich komprimierte Darstellung der ursprünglichen Eingabe mit Merkmalen höherer Ebene geben. Dann können wir diese kürzere 1D-Sequenz den RNNs zur weiteren Verarbeitung zuführen. Wir nutzen also gleichzeitig die Geschwindigkeit der CNNs und die Darstellungsmöglichkeiten der RNNs. Wie bei jeder anderen Methode sollten Sie auch hiermit an Ihrem speziellen Anwendungsfall und Datensatz experimentieren, um herauszufinden, ob er effektiv ist oder nicht.

Hier ist eine grobe Illustration dieser Methode:

--------------------------
-                        -
-   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, ich empfehle, das Temporal Convolutional Network in diesem Artikel zu lesen (ich bin nicht der Autor). Sie haben eine gute Idee, CNN für Zeitreihendaten zu verwenden, reagieren auf die Zeitreihenfolge und können beliebig lange Sequenzen modellieren (haben aber kein Gedächtnis).

Bildbeschreibung hier eingeben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.