Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Небольшая предыстория. Я студент третьего курса и меня всегда интересовала работа мозга. В ноябре по счастливому стечению обстоятельств появилась возможность поработать с нейрогарнитурой Emotiv Epoc+. Данную статью можно рассматривать как краткий список того, на что стоит обратить внимание при работе с ЭЭГ и Emotiv Epoc+ в частности.
Что такое электроэнцефалограмма
Электроэнцефалография - метод исследования мозга, основанный на регистрации его электрических потенциалов.
В нашем мозге миллионы нейронов, которые постоянно обмениваются информацией. Поэтому при совместной активации большой группы, разность потенциалов становится настолько значительной, что устройство способно её уловить.
Свою роль в ЭЭГ вносят и генераторы ритмической активности (альфа, тета, гамма...), активирующие и подавляющие системы.
Если вы решаете сложный пример в уме - работает высокочастотный генератор ритмов.
Если расслаблены, то генератор альфа ритмов и так далее.
Активирующие и подавляющие системы позволяют переключаться между ритмами. Например, заставляют вечером чувствовать сонливость и засыпать, а утром будят.
Чтобы понять к чему относится сигнал с датчиков, нужно примерно понимать функциональные различия зон мозга.
Если идти от лба к затылку, и перечислять зоны по очереди, то в районе лба находится центр принятия решений и выбора программы.
Чуть дальше моторная кора обеспечивающая произвольные движения и соматосенсорная кора, отвечающая за восприятие тела.
Далее ассоциативная кора, что отвечает за нашу "карту мира" - значение слов, абстракций, наименование вещей, соединяя звуковое и зрительное восприятие.
В затылочной области расположена зрительная кора, а чуть выше уха - слуховая кора.
На используемой нейрогарнитуре в каждой из основных зон есть как минимум пара датчиков, что нас вполне устраивает.
Если хочется посмотреть/послушать о работе мозга подробнее, то из открытых источников курс на сайте "Открытое образование" - Нейрофизиология поведения. Также есть неплохой курс от ВШЭ совместно с Jet Brains - Вычислительная Нейробиология. И там и там очень подробно про механизм работы мозга.
Нейрогарнитура Emotiv Epoc+
Точность
Должна ли нас устраивать точность нейрогарнитуры, которая стоит намного меньше лабораторных устройств, имеет не самое большое количество датчиков (14) и не самую большую частоту работы (128Гц)?
Здесь приводится сравнение энцефалографа Neuroscan с Emotiv Epoc+. Для тех кому лень читать - качество не сильно хуже, хотя из-за меньшей частоты обновлений и возникают небольшие различия в ЭЭГ.
Бесплатный софт
Для получения сигнала с нейроинтерфейса можно использовать бесплатную библиотеку CyKit. Для работы она требует Python 3.7, но есть пока только для Windows.
Там же в репозитории лежат скрипты с примерами. При подключении гарнитуры 128 раз в секунду печатаются вектора из 14 чисел. Выглядят данные примерно так:
Вопросы, с которыми можно столкнуться при записи данных
Артефакты от движений мышц лица, моргания, физических движений
Пример артефактов от моргания. Ритмичные (и не очень всплески).
На следующем рисунке приведены примеры артефактов от движений мышц лица. Для сравнения во время записи я поднимал брови, опускал брови и просто сидел, расслабившись. На графике результат показан соответственно зеленым, красным и синим цветом. Как можно заметить, движение мышц лица довольно сильно влияют на энцефалограмму.
Для удаления артефактов можно использовать библиотеку mne модуль preprocessing - independent components analysis (ICA). Но какая-нибудь сверточная нейросеть вполне может выучить эти признаки по отдельности и корректно обрабатывать.
Прочие проблемы
Высохшие датчики, сдвинутые электроды, помехи от работающих устройств - все это влияет на запись ЭЭГ.
Отдельно стоит поговорить про корреляцию.
Можно наблюдать корреляцию данных с параллельных датчиков и с датчиков, находящихся в смежных зонах. Несмотря на то, что для некоторых методов это понижает точность предсказания, более глубокий анализ позволит выявить некоторые закономерности.
В целом сигнал с датчиков можно рассматривать, как степень активности зон мозга. Зоны общаются между собой. Например, зона А дает команду зоне Б, зона Б выполняет какую то работу и отдает ответ зоне А. В течение короткого времени будет наблюдаться корреляция между этими двумя зонами, но с небольшим различием во времени.
Постановка эксперимента
Какой интервал времени можно использовать для классификации
Для классификации эмоций, удобно использовать интервал времени 1 - 10 минут в зависимости от задачи. Пример раз. Тот же пример, но с большим количеством технических деталей.
Для классификации напряженности/расслабленности можно использовать окно от 100 мс до 1-2 секунд. Пример (на русском языке), пример 2 (на английском языке, Малайзия)
Предъявляемые стимулы
Различают следующие виды вызванных потенциалов, в зависимости от модальности предъявляемых стимулов.
зрительные
слуховые
соматосенсорные
тактильные
обонятельные
вкусовые
вестибулярные
кинестетические
У здоровых людей время вызванного ответа на первые четыре стимула очень схож (100-200 мс). Время ответа на последние четыре стимула имеет ярко выраженную индивидуальность. Это стоит учитывать при постановке эксперимента.
Ключевые слова для поиска P100, N100, P200, N200
Если вас интересует исследование когнитивных процессов, связанных с предъявляемым стимулом, то в данном случае наибольший всплеск активности происходит через 300 мс после предъявляемого стимула.
Какие признаки можно использовать
Для работы с ЭЭГ существует множество способов извлечения признаков. Самые распространенные это:
Стандартное отклонение (numpy.std)
Квантили
Частотные характеристики
Коэффициенты вейвлетных разложений (pywt.wavedec)
Быстрое преобразование Фурье (numpy.fft)
Оконное преобразование Фурье
Метод шейплетов
Интегральная оценка спектральной плотности энергии сигнала (Welch's method)
Разделение сигналов по ритмам (альфа и тд...) и их отдельный анализ (scipy.signal.butter)
По собственному опыту на записях размером от полсекунды и больше, один из наилучших признаков - это стандартное отклонение. В комбинации с разделением по ритмам качество вырастает на порядок (простые эксперименты на стандартных классификаторах sklearn'а показывают качество порядка 98%).
Для вейвлетов можно выбрать уровни 4-7. Собственно комбинация этих трех признаков дало наилучший результат.
Надеюсь что-то вам пригодилось. Статья скорее всего будет дополняться и исправляться.