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?
neural-networks
svm
conv-neural-network
signal-processing
Fazla Rabbi Mashrur
fuente
fuente
Respuestas:
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 .
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 .
fuente
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:
Hay dos partes en la red:
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.
fuente
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:
fuente
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).
fuente