題:
使用CNN分類一維信號是個好主意嗎?
Fazla Rabbi Mashrur
2019-04-17 11:00:48 UTC
view on stackexchange narkive permalink

我正在研究睡眠階段分類。我閱讀了一些有關此主題的研究文章,其中許多使用SVM或集成方法。使用卷積神經網絡對一維腦電信號進行分類是一個好主意嗎?
我是這種工作的新手。請問我有什麼問題嗎?

通過將信號分解為多個幀並進行每幀的FFT,可以將一維信號轉換為二維信號。對於音頻,這是很不常見的。
四 答案:
Tim
2019-04-17 11:54:09 UTC
view on stackexchange narkive permalink

我猜想1D信號表示時間序列數據,其中假設值之間存在時間依賴性。在這種情況下,卷積神經網絡(CNN)是可能的方法之一。此類數據最流行的神經網絡方法是使用遞歸神經網絡(RNN),但您也可以使用CNN或混合方法(準遞歸神經網絡,QRNN),如 Bradbury et al(2016)所述。,並在下面的圖中進行了說明。還有其他方法,例如單獨使用注意力,如 Vaswani等人(2017年)所述的Transformer網絡中,有關時間的信息是通過 Fourier系列特徵傳遞的。

enter image description here

對於 RNN,您將使用一個單元格,該單元格將先前的隱藏狀態和當前輸入值作為輸入,以返回輸出和另一個隱藏狀態,因此信息會通過隱藏狀態流動。使用CNN,您將使用一定寬度的滑動窗口,它將看起來像數據中的某些(學習過的)模式,並將這些窗口彼此堆疊,以便更高級別的窗口看起來用於較低級別模式中的模式。使用此類滑動窗口可能有助於查找諸如重複數據中的模式(例如季節性模式)之類的內容。 QRNN層混合了這兩種方法。實際上,CNN和QRNN架構的優點之一是它們比RNN更快

kedarps
2019-04-17 19:06:24 UTC
view on stackexchange narkive permalink

您當然可以使用CNN對一維信號進行分類。由於您對睡眠階段分類感興趣,請參見本文。它是一個稱為DeepSleepNet的深度神經網絡,它使用1D卷積層和LSTM層的組合將EEG信號分類為睡眠階段。

這是架構:

DeepSleepNet

網絡有兩個部分:

  • R代表性學習層: 它由兩個並行的捲積網絡組成。這兩個網絡之間的主要區別是內核大小和最大池窗口大小。左邊的使用內核大小= $ F_s / 2 $ span>(其中 $ F_s $ span>是信號),而右邊的則使用內核大小= $ F_s \ times 4 $ span>。這背後的直覺是,一個網絡試圖學習“精細”(或高頻)特徵,而另一個網絡試圖學習“粗”(或低頻)特徵。
  • S順序學習層:來自卷積層的嵌入(或學習的特徵)被合併並饋入LSTM層,以學習嵌入之間的時間依賴性。

最後,有一個5向softmax層將時間序列分為對應於睡眠階段的五種類別之一。

today
2019-04-18 00:53:36 UTC
view on stackexchange narkive permalink

我想強調在處理長序列時使用堆疊式混合方法(CNN + RNN):

  • 您可能已經知道,一維CNN對時間步長的順序並不敏感(不超過本地範圍)。當然,通過在彼此之上堆疊許多卷積和池化層,最終的層能夠觀察到原始輸入的更長子序列。但是,這可能不是建模長期依賴關係的有效方法。儘管CNN與RNN相比非常快。

  • 另一方面,RNN對時間步長敏感,因此可以很好地建模時間依賴性。但是,眾所周知,它們在建模非常長期的依存關係方面較弱,因為時間步長可能具有時間依存關係,並且時間步長在輸入中很遠。此外,當時間步長很高時,它們非常慢。

因此,一種有效的方法可能是以這種方式組合CNN和RNN:首先,我們使用卷積和池化層來減少輸入的維數。這將為我們提供具有較高功能的原始輸入的壓縮圖像。然後,我們可以將此較短的1D序列饋送到RNN,以進行進一步處理。因此,我們同時利用了CNN的速度和RNN的表示能力。儘管,與其他方法一樣,您應該針對特定的用例和數據集進行試驗,以了解其是否有效。

以下是此方法的粗略說明:

  --------------------------
--
-一維長序列-
--
--------------------------
            |
            |
            v
=========================
= =
=轉化+匯總層=
= =
=========================
            |
            |
            v
---------------------------
--
-簡短表示-
-     (更高層次       -
-CNN功能)-
--
---------------------------
            |
            |
            v
==========================
= =
=(RNN圖層的堆棧)=
= =
==========================
            |
            |
            v
==============================
= =
=分類器,回歸器等=
= =
==============================
 
kampta
2019-04-18 01:51:44 UTC
view on stackexchange narkive permalink

FWIW,我建議您從本文中檢查時間卷積網絡(我不是作者)。他們有一個很好的想法,可以使用CNN來處理時間序列數據,對時間順序敏感,可以對任意長序列進行建模(但沒有內存)。

enter image description here



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...