Apakah ide yang baik untuk menggunakan CNN untuk mengklasifikasikan sinyal 1D?


20

Saya sedang mengerjakan klasifikasi tahap tidur. Saya membaca beberapa artikel penelitian tentang topik ini banyak dari mereka menggunakan metode SVM atau ensemble. Apakah ide yang baik untuk menggunakan jaringan saraf convolutional untuk mengklasifikasikan sinyal EEG satu dimensi?
Saya baru dalam pekerjaan semacam ini. Maafkan saya jika saya meminta sesuatu yang salah?


Sinyal 1D dapat diubah menjadi sinyal 2D dengan memecah sinyal menjadi bingkai dan mengambil FFT dari setiap frame. Untuk audio, ini sangat jarang.
MSalters

Jawaban:


23

Saya kira dengan sinyal 1D yang Anda maksud adalah data deret waktu, di mana Anda menganggap ketergantungan temporal antara nilai-nilai tersebut. Dalam kasus seperti itu jaringan saraf convolutional (CNN) adalah salah satu pendekatan yang mungkin. Pendekatan jaringan saraf yang paling populer untuk data tersebut adalah dengan menggunakan jaringan saraf berulang (RNN), tetapi Anda dapat menggunakan CNN, atau pendekatan hibrid (jaringan saraf kuasi-berulang, QRNN) sebagaimana dibahas oleh Bradbury et al (2016) , dan juga diilustrasikan pada gambar mereka di bawah ini. Ada juga pendekatan lain, seperti menggunakan perhatian saja, seperti dalam jaringan Transformer yang dijelaskan oleh Vaswani et al (2017) , di mana informasi tentang waktu diteruskan melalui fitur seri Fourier .

masukkan deskripsi gambar di sini

Dengan RNN , Anda akan menggunakan sel yang menjadi input kondisi tersembunyi sebelumnya dan nilai input saat ini, untuk mengembalikan output dan status tersembunyi lainnya, sehingga informasi mengalir melalui status tersembunyi . Dengan CNN, Anda akan menggunakan jendela geser dengan lebar tertentu, yang akan terlihat pola (pelajari) tertentu dalam data, dan menumpuk jendela seperti itu di atas satu sama lain, sehingga jendela tingkat yang lebih tinggi akan mencari pola dalam tingkat yang lebih rendah pola. Menggunakan jendela geser seperti itu mungkin membantu untuk menemukan hal-hal seperti pola berulang dalam data (misalnya pola musiman). Lapisan QRNN menggabungkan kedua pendekatan. Bahkan, salah satu kelebihan dari arsitektur CNN dan QRNN adalah bahwa mereka lebih cepat daripada RNN .


12

Anda tentu dapat menggunakan CNN untuk mengklasifikasikan sinyal 1D. Karena Anda tertarik pada klasifikasi tahap tidur lihat makalah ini . Ini adalah jaringan saraf yang dalam yang disebut DeepSleepNet, dan menggunakan kombinasi lapisan konvolusional 1D dan LSTM untuk mengklasifikasikan sinyal EEG ke dalam tahapan sleep.

Berikut adalah arsitekturnya:

DeepSleepNet

Ada dua bagian ke jaringan:

  • Fs/2FsFs×4. Intuisi di balik ini adalah bahwa satu jaringan mencoba mempelajari fitur "baik" (atau frekuensi tinggi), dan yang lain mencoba mempelajari fitur "kasar" (atau frekuensi rendah).
  • Lapisan pembelajaran sekuensial: Embeddings (atau fitur yang dipelajari) dari lapisan convolutional disatukan dan dimasukkan ke dalam layer LSTM untuk mempelajari dependensi temporal antara embeddings.

Pada akhirnya ada lapisan softmax 5 arah untuk mengklasifikasikan deret waktu menjadi satu dari lima kelas yang sesuai dengan tahapan tidur.


4

Saya ingin menekankan penggunaan pendekatan hybrid bertumpuk (CNN + RNN) untuk memproses urutan panjang :

  • Seperti yang Anda ketahui, CNN 1D tidak peka terhadap urutan waktu (tidak lebih dari skala lokal); tentu saja, dengan menumpuk banyak lilitan dan lapisan penyatuan di atas satu sama lain, lapisan terakhir dapat mengamati sub-urutan yang lebih panjang dari input asli. Namun, itu mungkin bukan pendekatan yang efektif untuk memodelkan ketergantungan jangka panjang. Meskipun, CNN sangat cepat dibandingkan dengan RNN.

  • Di sisi lain, RNN sensitif terhadap urutan waktu dan karenanya dapat memodelkan dependensi temporal dengan sangat baik. Namun, mereka diketahui lemah dalam memodelkan dependensi jangka panjang, di mana catatan waktu mungkin memiliki ketergantungan temporal dengan catatan waktu sangat jauh di belakang dalam input. Lebih jauh, mereka sangat lambat ketika jumlah timesteps tinggi.

Jadi, pendekatan yang efektif mungkin untuk menggabungkan CNNs dan RNNs dengan cara ini: pertama kita menggunakan lapisan konvolusi dan penyatuan untuk mengurangi dimensi input. Ini akan memberi kita representasi yang agak terkompresi dari input asli dengan fitur tingkat yang lebih tinggi. Kemudian kita bisa memberi makan urutan 1D yang lebih pendek ini ke RNN untuk diproses lebih lanjut. Jadi kami mengambil keuntungan dari kecepatan CNN serta kemampuan representasi RNN pada saat yang sama. Meskipun, seperti metode lainnya, Anda harus bereksperimen dengan ini pada use case dan dataset khusus Anda untuk mengetahui apakah itu efektif atau tidak.

Berikut ini ilustrasi kasar dari metode ini:

--------------------------
-                        -
-   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, saya akan merekomendasikan memeriksa Jaringan Konvolusional Temporal dari makalah ini (saya bukan penulis). Mereka memiliki ide yang rapi untuk menggunakan CNN untuk data deret waktu, sensitif terhadap urutan waktu dan dapat memodelkan urutan panjang yang sewenang-wenang (tetapi tidak memiliki memori).

masukkan deskripsi gambar di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.