Чи корисно використовувати CNN для класифікації 1D-сигналу?


20

Я працюю над класифікацією сну. Я прочитав деякі дослідницькі статті з цієї теми, багато з них використовували метод SVM або ансамблю. Чи корисно використовувати звивисту нейронну мережу для класифікації одновимірного ЕЕГ-сигналу?
Я новачок у цій роботі. Вибачте мене, якщо я попрошу щось не так?


1D сигнал може бути перетворений у 2D сигнал шляхом розбиття сигналу на кадри та взяття FFT кожного кадру. Для аудіо це досить рідко.
MSalters

Відповіді:


23

Я здогадуюсь, що під 1D сигналом ви маєте на увазі дані часових рядів, де ви припускаєте часову залежність між значеннями. У таких випадках конволюційні нейронні мережі (CNN) є одним із можливих підходів. Найпопулярніший підхід нейронної мережі до таких даних полягає у використанні рекурентних нейронних мереж (RNN), але ви можете альтернативно використовувати CNN або гібридний підхід (квазірецидивні нейронні мережі, QRNN), як обговорювали Bradbury et al (2016) , а також проілюстровано на малюнку нижче. Існують також інші підходи, як, наприклад, використання лише уваги, як у мережі Transformer, описаній Vaswani et al (2017) , де інформація про час передається за допомогою функцій серії Фур'є .

введіть тут опис зображення

За допомогою RNN ви б використовували комірку, яка приймає за вхід попереднє приховане стан і поточне вхідне значення, щоб повернути вихід і інший прихований стан, тому інформація протікає через приховані стани . За допомогою CNN ви б використовували розсувне вікно певної ширини, яке виглядало б певними (вивченими) візерунками в даних, і складати такі вікна один на одного, щоб вікна вищого рівня шукали шаблони в нижньому рівні візерунки. Використання таких розсувних вікон може бути корисним для пошуку речей, таких як повторення шаблонів у даних (наприклад, сезонних моделей). QRNN шари змішують обидва підходи. Фактично, однією з переваг архітектур CNN та QRNN є те, що вони швидші, ніж RNN .


12

Ви, звичайно, можете використовувати CNN для класифікації 1D-сигналу. Оскільки вас цікавить класифікація стадій сну, дивіться цей документ . Його глибока нейронна мережа називається DeepSleepNet і використовує комбінацію 1D згорткового шару та LSTM шарів для класифікації сигналів ЕЕГ на стадії сну.

Ось архітектура:

DeepSleepNet

До мережі є дві частини:

  • Жс/2ЖсЖс×4
  • Послідовні шари навчання: Вбудовування (або засвоєні особливості) із звивистих шарів з'єднуються і подаються в шари LSTM для вивчення тимчасових залежностей між вкладеннями.

В кінці є 5-ти сторонній шар softmax для класифікації часових рядів на один із п’яти класів, що відповідають етапам сну.


4

Я хочу наголосити на застосуванні гібридного підходу з накопиченням (CNN + RNN) для обробки довгих послідовностей :

  • Як ви можете знати, 1D CNN не чутливі до порядку часу (не далі локального масштабу); звичайно, розміщуючи безліч згортки та об'єднуючи шари один на одного, кінцеві шари можуть спостерігати довші підрядки початкового вводу. Однак це може бути не ефективним підходом до моделювання довгострокових залежностей. Хоча CNN дуже швидкі порівняно з RNN.

  • З іншого боку, RNN чутливі до порядку часових кроків і тому можуть дуже добре моделювати тимчасові залежності. Однак, як відомо, вони слабкі у моделюванні дуже довгострокових залежностей, де часовий крок може мати часову залежність, а часові кроки - дуже далекі у вході. Далі вони дуже повільні, коли кількість часових кроків велика.

Таким чином, ефективним підходом може бути поєднання CNN та RNN таким чином: спочатку ми використовуємо згортання та об'єднання шарів для зменшення розмірності вводу. Це дало б нам досить стислий вигляд оригінального входу з особливостями вищого рівня. Тоді ми можемо подати цю коротшу 1D послідовність до RNN для подальшої обробки. Таким чином, ми використовуємо швидкість CNN, а також представницькі можливості RNN одночасно. Хоча, як і будь-який інший метод, вам слід експериментувати з цим у конкретному випадку використання та наборі даних, щоб з’ясувати, чи ефективний він чи ні.

Ось приблизна ілюстрація цього методу:

--------------------------
-                        -
-   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, я рекомендую перевірити тимчасову згорткову мережу з цього документу (я не автор). Вони мають чітку ідею використання CNN для даних часових рядів, чутливі до порядку часу і можуть моделювати довільно довгі послідовності (але не мають пам'яті).

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.