Я работаю над классификацией стадии сна. Я читал некоторые исследовательские статьи на эту тему, многие из них использовали SVM или метод ансамбля. Является ли хорошей идеей использовать сверточную нейронную сеть для классификации одномерного сигнала ЭЭГ?
Я новичок в такой работе. Простите, если я спрошу что-то не так?
neural-networks
svm
conv-neural-network
signal-processing
Фазла Рабби Машрур
источник
источник
Ответы:
Я предполагаю, что под 1D-сигналом вы подразумеваете данные временных рядов, где вы предполагаете временную зависимость между значениями. В таких случаях сверточные нейронные сети (CNN) являются одним из возможных подходов. Наиболее популярный подход нейронной сети к таким данным - использование рекуррентных нейронных сетей (RNN), но вы можете альтернативно использовать CNN или гибридный подход (квазикуррентные нейронные сети, QRNN), как обсуждалось в Bradbury et al (2016) , а также показано на их рисунке ниже. Существуют и другие подходы, например использование только внимания, например, в сети Transformer, описанной Vaswani et al. (2017) , где информация о времени передается с помощью функций ряда Фурье .
При использовании RNN вы должны использовать ячейку, которая принимает в качестве входных данных предыдущее скрытое состояние и текущее входное значение, чтобы возвращать выходные данные и другое скрытое состояние, чтобы информация проходила через скрытые состояния . В CNN вы будете использовать скользящее окно некоторой ширины, которое будет выглядеть в определенных (изученных) шаблонах в данных, и размещать такие окна друг над другом, чтобы окна более высокого уровня искали шаблоны внутри более низкого уровня. узоры. Использование таких скользящих окон может быть полезно для поиска таких вещей, как повторяющиеся шаблоны в данных (например, сезонные модели). Слои QRNN смешивают оба подхода. Фактически, одно из преимуществ архитектур CNN и QRNN заключается в том, что они работают быстрее, чем RNN .
источник
Конечно, вы можете использовать CNN для классификации 1D сигнала. Так как вы заинтересованы в классификации стадии сна, смотрите эту статью . Это глубокая нейронная сеть, называемая DeepSleepNet, и использует комбинацию 1D сверточного и LSTM слоев для классификации сигналов ЭЭГ по стадиям сна.
Вот архитектура:
Сеть состоит из двух частей:
В конце есть 5-полосный слой softmax, чтобы классифицировать временные ряды в один из пяти классов, соответствующих стадиям сна.
источник
Я хочу подчеркнуть использование комбинированного подхода (CNN + RNN) для обработки длинных последовательностей :
Как вы, возможно, знаете, одномерные CNN не чувствительны к порядку временных шагов (не дальше локального масштаба); конечно, путем укладки большого количества слоев свертки и объединения слоев друг на друга, конечные слои могут наблюдать более длинные подпоследовательности исходного ввода. Однако это не может быть эффективным подходом к моделированию долгосрочных зависимостей. Хотя CNN очень быстр по сравнению с RNN.
С другой стороны, RNN чувствительны к порядку временных шагов и поэтому могут очень хорошо моделировать временные зависимости. Однако известно, что они слабы при моделировании очень долгосрочных зависимостей, где временной шаг может иметь временную зависимость с временными шагами очень далеко назад во входных данных. Кроме того, они очень медленные, когда количество временных шагов велико.
Таким образом, эффективный подход может состоять в том, чтобы объединить CNN и RNN таким образом: сначала мы используем слои свертки и объединения, чтобы уменьшить размерность входных данных. Это дало бы нам довольно сжатое представление исходного ввода с функциями более высокого уровня. Затем мы можем передать эту более короткую одномерную последовательность в RNN для дальнейшей обработки. Таким образом, мы одновременно используем скорость CNN, а также возможности представления RNN. Хотя, как и любой другой метод, вы должны поэкспериментировать с этим в вашем конкретном случае использования и наборе данных, чтобы выяснить, эффективен он или нет.
Вот примерная иллюстрация этого метода:
источник
FWIW, я рекомендую проверить Временную сверточную сеть из этой статьи (я не автор). У них есть хорошая идея использования CNN для данных временных рядов, они чувствительны к временному порядку и могут моделировать произвольно длинные последовательности (но не имеют памяти).
источник