È una buona idea usare la CNN per classificare il segnale 1D?


20

Sto lavorando alla classificazione della fase del sonno. Ho letto alcuni articoli di ricerca su questo argomento, molti dei quali hanno utilizzato il metodo SVM o ensemble. È una buona idea utilizzare una rete neurale convoluzionale per classificare il segnale EEG monodimensionale?
Sono nuovo di questo tipo di lavoro. Mi scusi se chiedo qualcosa di sbagliato?


Un segnale 1D può essere trasformato in un segnale 2D suddividendo il segnale in frame e prendendo la FFT di ciascun frame. Per l'audio questo è abbastanza raro.
Salterio

Risposte:


23

Immagino che per segnale 1D intendi i dati di serie temporali, dove si assume la dipendenza temporale tra i valori. In tali casi le reti neurali convoluzionali (CNN) sono uno dei possibili approcci. L'approccio di rete neurale più popolare a tali dati è l'uso di reti neurali ricorrenti (RNN), ma in alternativa è possibile utilizzare CNN o approccio ibrido (reti neurali quasi ricorrenti, QRNN) come discusso da Bradbury et al (2016) , e anche illustrato nella figura seguente. Esistono anche altri approcci, come l'utilizzo dell'attenzione da solo, come nella rete Transformer descritta da Vaswani et al (2017) , in cui le informazioni sul tempo vengono trasmesse tramite le funzionalità della serie di Fourier .

inserisci qui la descrizione dell'immagine

Con RNN , useresti una cella che accetta come input lo stato nascosto precedente e il valore di input corrente, per restituire output e un altro stato nascosto, in modo che le informazioni scorrano attraverso gli stati nascosti . Con la CNN, useresti una finestra scorrevole di una certa larghezza, che guarderebbe alcuni schemi (appresi) nei dati, e impilare tali finestre una sopra l'altra, in modo che le finestre di livello superiore cerchino modelli all'interno del livello inferiore modelli. L'uso di tali finestre scorrevoli può essere utile per trovare elementi come la ripetizione di schemi all'interno dei dati (ad esempio schemi stagionali). I livelli QRNN mescolano entrambi gli approcci. In effetti, uno dei vantaggi delle architetture CNN e QRNN è che sono più veloci di RNN .


12

Puoi certamente usare una CNN per classificare un segnale 1D. Poiché sei interessato alla classificazione della fase del sonno, consulta questo documento . È una rete neurale profonda chiamata DeepSleepNet e utilizza una combinazione di livelli 1D convoluzionali e LSTM per classificare i segnali EEG in fasi del sonno.

Ecco l'architettura:

DeepSleepNet

Esistono due parti della rete:

  • Livelli di apprendimento rappresentativi: si tratta di due reti convoluzionali in parallelo. La differenza principale tra le due reti è la dimensione del kernel e la dimensione della finestra di max pooling. Quello di sinistra usa kernel size =FS/2 (dove FS è la frequenza di campionamento del segnale) mentre quella a destra usa kernel size = FS×4. L'intuizione alla base di ciò è che una rete cerca di apprendere funzioni "fini" (o ad alta frequenza) e l'altra cerca di apprendere caratteristiche "grossolane" (o a bassa frequenza).
  • Livelli di apprendimento sequenziali: gli incorporamenti (o funzioni apprese) dagli strati convoluzionali vengono concatenati e inseriti negli strati LSTM per apprendere le dipendenze temporali tra gli incorporamenti.

Alla fine c'è un layer softmax a 5 vie per classificare le serie temporali in una delle cinque classi corrispondenti alle fasi del sonno.


4

Voglio enfatizzare l'uso di un approccio ibrido sovrapposto (CNN + RNN) per l' elaborazione di lunghe sequenze :

  • Come forse saprai, le CNN 1D non sono sensibili all'ordine dei timestep (non oltre una scala locale); naturalmente, impilando molti livelli di convoluzione e raggruppando uno sopra l'altro, gli strati finali sono in grado di osservare sequenze più lunghe dell'input originale. Tuttavia, potrebbe non essere un approccio efficace per modellare le dipendenze a lungo termine. Tuttavia, le CNN sono molto veloci rispetto alle RNN.

  • D'altra parte, gli RNN sono sensibili all'ordine dei timestep e quindi possono modellare molto bene le dipendenze temporali. Tuttavia, sono noti per essere deboli nel modellare dipendenze a lungo termine, in cui un timestep può avere una dipendenza temporale con i timestep molto indietro nell'input. Inoltre, sono molto lenti quando il numero di timestep è elevato.

Quindi, un approccio efficace potrebbe essere quello di combinare CNN e RNN in questo modo: per prima cosa utilizziamo i livelli di convoluzione e pooling per ridurre la dimensionalità dell'input. Questo ci darebbe una rappresentazione piuttosto compressa dell'input originale con funzionalità di livello superiore. Quindi possiamo alimentare questa sequenza 1D più corta agli RNN per ulteriori elaborazioni. Quindi stiamo sfruttando la velocità delle CNN e le capacità di rappresentazione delle RNN allo stesso tempo. Anche se, come qualsiasi altro metodo, dovresti sperimentarlo sul tuo caso d'uso specifico e sul set di dati per scoprire se è efficace o meno.

Ecco un'illustrazione approssimativa di questo metodo:

--------------------------
-                        -
-   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, ti consiglio di dare un'occhiata alla Rete convoluzionale temporale da questo documento (non sono l'autore). Hanno un'idea chiara dell'uso della CNN per i dati delle serie temporali, sono sensibili all'ordine temporale e possono modellare sequenze arbitrariamente lunghe (ma non hanno memoria).

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.