Реализация ICA для удаления артефактов из многомерных сигналов

Вы на коктейльной вечеринке.

И это здорово! Вы гуляете с друзьями и получаете массу удовольствия !! Однако вы также тайно подслушиваете симпатичную девушку, которую заметили через комнату, разговаривая со своими друзьями десять минут назад 😉

Проблема в том, что это БОЛЬШАЯ вечеринка. Из-за того, что сотни людей разговаривают одновременно, очень сложно понять, что именно она говорит. Вы в отчаянии топаете ногами - что поделаешь?

Это проблема коктейльной вечеринки (также известная как разделение слепых источников). Похожий сценарий: 3 микрофона записывают 3 человека, говорящего на в то же время. Каждый микрофон будет улавливать звук из всех трех динамиков - как мы сможем выделить отдельную речь каждого человека из трех записей?

Та же проблема возникает в мозговых волнах ЭЭГ! Интерфейс мозг-компьютер состоит из нескольких электродов, помещенных в мозг, каждый из которых регистрирует электрическую активность срабатывающих нейронов вместе с другими источниками, такими как движение мышц или моргание глаз. Эти источники шума загрязняют мозговые волны ЭЭГ и должны быть удалены для получения точных показаний.

Точное чтение позволит нам извлечь настоящие мозговые волны, а не быть заполненными шумом. Если мы хотим использовать BCI для сбора данных о мозговой активности, нам потребуются точные показания мозга! Например, если мы используем волны ЭЭГ, чтобы определить, какое слово думает пациент, шум может заставить его определить «грузовик», а не «автомобиль». 😬

Итак ... каково решение проблемы коктейльной вечеринки ??? 🤔

Ответ - независимый компонентный анализ!

Независимый компонентный анализ, более известный как ICA, представляет собой подмножество контролируемого машинного обучения. ICA может отделять независимые источники друг от друга - в примере с 3 микрофонами и 3 людьми он сможет создавать записи каждого из 3 человек, говорящих в одиночку! И работает неплохо!

Как работает ICA?

Теперь, чтобы использовать ICA, на данные должны быть наложены некоторые условия. Во-первых, участвующие источники должны быть не гауссовскими или иметь нормальное распределение. Во-вторых, они должны быть независимыми друг от друга и не должны повторять одни и те же данные.

Почему?

Это сводится к цели алгоритма ICA: максимальная статистическая независимость генерируемых источников. ICA возьмет запись, заполненную разными голосами, и разделит отдельные голоса, на основании того, что голоса отличаются друг от друга. Это максимизирует точность модели, поскольку чем больше различаются сгенерированные источники, тем больше вероятность того, что они будут разными людьми / источниками, вместо того, чтобы каждый источник был похож, но все они были случайным сочетанием всех голосов.

Целью является сочетание двух компонентов: минимизация взаимной информации источников вместе с максимизацией негауссовости источников. Ага, теперь мы видим, почему сами источники должны быть негауссовскими и независимыми - это заложено в самой цели алгоритма ICA! 🔑

Остается еще один вопрос: откуда ICA знает, сколько существует источников? Нет. 🙁 Мы должны указать алгоритму, сколько существует источников, и иногда это может немного запутаться (это будет обсуждаться позже в статье).

ВСА для ЭЭГ

В случае ЭЭГ источниками будут фактическая активность мозга (мы хотим сохранить) и источники шума, такие как моргание, движения мышц, движения глаз и частота от электрической сети. Мы можем использовать ICA для разделения каждого из источников, чтобы сохранить исходную мозговую активность! 🧠

Процесс ICA

ICA - сложный процесс, состоящий из нескольких этапов. Я буду обсуждать основные из них на высоком уровне.

Шаг 1: Центрирование

Первый шаг - центрирование данных. Среднее значение данных вычисляется, а затем вычитается из набора данных, эффективно уменьшая среднее значение до нуля.

Шаг 2: отбеливание

Следующим шагом является отбеливание данных, которое нормализует дисперсию / стандартное отклонение во всех направлениях или преобразует данные в единичную ковариационную матрицу.

Шаг 3: уменьшение размерности

Наконец, мы выполняем уменьшение размерности (с использованием анализа главных компонентов), который в основном просто снижает размерность данных для удаления неважных данных при сохранении исходной ковариационной матрицы.

Шаг 4: ICA

Наконец-то мы можем проводить ICA! Реализуя ряд операций линейной алгебры с предварительно обработанными данными, мы можем извлечь исходные источники!

Для ЭЭГ основными методами выполнения ICA являются FastICA, infomax, JADE, kernel-ICA! Конвейер обработки также более сложен для шумоподавления ЭЭГ и включает в себя гораздо больше шагов. В следующей статье я расскажу подробнее!

И мы закончили !! Ооочень что это?

Проблемы с ICA

Хотя ICA - довольно хороший алгоритм, у него все еще есть некоторые серьезные проблемы. 😬

Одна из них (как упоминалось ранее) - это неспособность алгоритма ICA определить количество имеющихся источников; он должен быть указан пользователем. Это может привести к недоопределению (когда прогноз пользователя ниже, чем фактическое количество фактических источников) или переопределению (когда прогноз пользователя превышает количество фактических источников) . Хотя существуют различные методы, используемые для определения фактического количества источников, они все еще не идеальны и по-прежнему являются проблемой для ICA.

Другая проблема заключается в том, что ICA не может упорядочить генерируемые им источники. Мы не знаем, какие источники являются фактическими мозговыми волнами ЭЭГ (что нам нужно), пока мы не начнем вручную искать их на выходе! 🔍

Наконец, ICA не производит правильного масштабирования исходных сигналов, что может быть серьезной проблемой, поскольку мы не знаем фактическую величину мозговых волн на основе выходных данных алгоритма (мы не Даже не знаю, правильный ли знак!).

Как это исправить?

В настоящее время я работаю над проектом по использованию рекуррентных нейронных сетей для шумоподавления мозговых волн, который может быть даже лучше, чем существующие алгоритмы ICA, поскольку он реализует глубокое обучение, оказалось мощным инструментом для шумоподавления изображений. Посмотрите мое видео здесь!

Ключевые выводы

  • Мы можем использовать ICA для решения проблемы коктейльной вечеринки
  • Источники должны быть независимыми и негауссовскими.
  • Процесс ICA высокого уровня: центрирование, отбеливание, уменьшение размеров и алгоритм ICA.
  • Проблемы с ICA заключаются в недостаточной / чрезмерной детерминации, а также в неупорядоченном и неверно масштабированном выводе.
  • В настоящее время я работаю над использованием RNN для подавления мозговых волн! (скорее всего окажется более точным и эффективным, чем ICA)

В моей следующей статье я расскажу о ICA более подробно и технически, а также раскрою больше его проблем и того, как этот процесс можно улучшить с помощью глубокого обучения! Будьте на связи! 📻

Надеюсь, вам понравилась эта статья с подробным обзором ICA! Если вам понравилась эта статья, свяжитесь со мной в LinkedIn и подписывайтесь на меня! 👋