¿Es una buena idea usar CNN para clasificar la señal 1D?


20

Estoy trabajando en la clasificación de la etapa del sueño. Leí algunos artículos de investigación sobre este tema, muchos de ellos usaron SVM o método de conjunto. ¿Es una buena idea usar una red neuronal convolucional para clasificar la señal EEG unidimensional?
Soy nuevo en este tipo de trabajo. Disculpe si pregunto algo mal?


Una señal 1D se puede transformar en una señal 2D dividiendo la señal en cuadros y tomando la FFT de cada cuadro. Para el audio esto es bastante infrecuente.
MSalters

Respuestas:


23

Supongo que por señal 1D te refieres a datos de series de tiempo, donde asumes dependencia temporal entre los valores. En tales casos, las redes neuronales convolucionales (CNN) son uno de los enfoques posibles. El enfoque de red neuronal más popular para tales datos es usar redes neuronales recurrentes (RNN), pero también puede usar CNN o enfoque híbrido (redes neuronales cuasi-recurrentes, QRNN) como se discutió por Bradbury et al (2016) , y también ilustrado en su figura a continuación. También hay otros enfoques, como usar solo la atención, como en la red Transformer descrita por Vaswani et al (2017) , donde la información sobre el tiempo se pasa a través de las características de la serie Fourier .

ingrese la descripción de la imagen aquí

Con RNN , usaría una celda que toma como entrada el estado oculto anterior y el valor de entrada actual, para devolver la salida y otro estado oculto, de modo que la información fluya a través de los estados ocultos . Con CNN, usaría una ventana deslizante de cierto ancho, que vería ciertos patrones (aprendidos) en los datos, y apilaría dichas ventanas una encima de la otra, de modo que las ventanas de nivel superior buscarían patrones dentro del nivel inferior patrones. El uso de estas ventanas deslizantes puede ser útil para encontrar elementos como la repetición de patrones dentro de los datos (por ejemplo, patrones estacionales). Las capas QRNN mezclan ambos enfoques. De hecho, una de las ventajas de las arquitecturas CNN y QRNN es que son más rápidas que RNN .


12

Ciertamente puede usar una CNN para clasificar una señal 1D. Como está interesado en la clasificación de la etapa del sueño, vea este documento . Es una red neuronal profunda llamada DeepSleepNet, y utiliza una combinación de capas convolucionales 1D y LSTM para clasificar las señales de EEG en etapas de sueño.

Aquí está la arquitectura:

DeepSleepNet

Hay dos partes en la red:

  • Capas de aprendizaje representativo: consta de dos redes convolucionales en paralelo. La principal diferencia entre las dos redes es el tamaño del núcleo y el tamaño máximo de la ventana de agrupación. El izquierdo usa el tamaño del kernel = (donde es la frecuencia de muestreo de la señal) mientras que el derecho usa el tamaño del kernel = . La intuición detrás de esto es que una red intenta aprender características "finas" (o de alta frecuencia), y la otra intenta aprender características "gruesas" (o de baja frecuencia).Fs/ /2FsFs×4 4
  • Capas de aprendizaje secuencial: las incrustaciones (o características aprendidas) de las capas convolucionales se concatenan y se introducen en las capas LSTM para aprender las dependencias temporales entre las incrustaciones.

Al final hay una capa softmax de 5 vías para clasificar las series de tiempo en una de las cinco clases correspondientes a las etapas de sueño.


4

Quiero enfatizar el uso de un enfoque híbrido apilado (CNN + RNN) para procesar secuencias largas :

  • Como ya sabrá, las CNN 1D no son sensibles al orden de los pasos de tiempo (no más allá de una escala local); por supuesto, al apilar muchas capas de convolución y agrupación una encima de la otra, las capas finales pueden observar subsecuencias más largas de la entrada original. Sin embargo, eso podría no ser un enfoque efectivo para modelar dependencias a largo plazo. Aunque, las CNN son muy rápidas en comparación con las RNN.

  • Por otro lado, los RNN son sensibles al orden de los pasos de tiempo y, por lo tanto, pueden modelar muy bien las dependencias temporales. Sin embargo, se sabe que son débiles al modelar dependencias a muy largo plazo, donde un paso de tiempo puede tener una dependencia temporal con los pasos de tiempo muy atrás en la entrada. Además, son muy lentos cuando el número de pasos de tiempo es alto.

Por lo tanto, un enfoque efectivo podría ser combinar CNN y RNN de esta manera: primero usamos capas de convolución y agrupación para reducir la dimensionalidad de la entrada. Esto nos daría una representación bastante comprimida de la entrada original con características de nivel superior. Entonces podemos alimentar esta secuencia 1D más corta a los RNN para su posterior procesamiento. Por lo tanto, estamos aprovechando la velocidad de las CNN y las capacidades de representación de las RNN al mismo tiempo. Aunque, como cualquier otro método, debe experimentar con esto en su caso de uso específico y conjunto de datos para averiguar si es efectivo o no.

Aquí hay una ilustración aproximada de este método:

--------------------------
-                        -
-   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, recomendaré revisar la Red Convolucional Temporal de este artículo (no soy el autor). Tienen una idea clara para usar CNN para datos de series de tiempo, es sensible al orden de tiempo y puede modelar secuencias arbitrariamente largas (pero no tiene memoria).

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.