Поймите, как простой шлем может преобразовать ваши мысли в компьютерные команды.

Почему классификация?

Это отличный вопрос!

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

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

Классификация сигналов — это четвертый шаг в построении BCI. Если вы хотите ознакомиться с предыдущими шагами, ознакомьтесь с другими моими сообщениями.

Теперь давайте подробно ответим на вопрос «Почему классификация?»!

Многие приложения BCI требуют выбора одной из Nкоманд, например:
· Программы проверки правописания Word: выбор одной из 26–29букв
· Меню с параметрами : выбор одной из N опций
· Полуавтономные роботы: выбор одной из Nкоманд высокого уровня

Так! Классифицируя сигналы мозга, мы можем уравнять определенные наборы извлеченных признаков, чтобы они соответствовали определенным командам. Например, как показано ниже, набрав ничего, кроме силы мысли! (и электроэнцефалограф (ЭЭГ), но.. Тссс, подробности!)

В самом простом случае можно использовать методы классификации, чтобы разделить заданный мозговой сигнал на один из нескольких классов, например бинарную классификацию (2 класса).

Схемы классификации

В этом посте я расскажу о 5 категориях часто используемых схем классификации: линейные классификаторы, классификаторы нейронной сети (NN), нелинейные байесовские классификаторы, классификаторы ближайшего соседа и комбинации классификаторов.

Если большая часть этого была похожа на чтение жаргона, не беспокойтесь. Я помогу вам понять основы каждой темы.

Основы

Во-первых, давайте начнем с определения того, что такое классификация и классификатор.

Классификация биомедицинских сигналов (из записей колебаний головного мозга) — это процесс категоризации электрической активности, измеряемой нашим записывающим устройством. Другими словами, это процесс группировки значений набора на основе свойства, общего для всех значений в этом наборе. В результате мы получаем набор подгрупп в наборе данных. Визуализируя этот процесс, мы наблюдаем пример распознавания образов. (посмотрите на диаграмму на изображении ниже; пример классификации «LDA»)

Классификатор — это вычислительный инструмент, используемый для получения классификации. Оптимальные классификаторы основаны на статистических методах, начиная от простых линейных классификаторов и заканчивая более сложными системами машинного обучения на основе нейронных сетей. Хотя часто бывает так, что чем сложнее классификатор, тем больше классификаций можно получить, необходимо также учитывать вычислительные требования выбранного классификатора. Использование глубокой нейронной сети для простой бинарной классификации, которую можно решить с помощью линейной дискриминации, было бы пустой тратой вычислительной мощности и сделало бы систему BCI медленной и неэффективной.

Подводя итог: схема классификации — это описательная информация для расположения или разделения объектов на группы на основе общих характеристик объектов, полученная с помощью классификатора.

Во-вторых, давайте установим три ключевых момента:

  1. Сигналы ЭЭГ очень зашумлены, т.е. следует проводить шумоподавление.
  2. Мы должны стремиться выбрать лучшие признаки для классификации
  3. Приоритизация наиболее важных каналов для данной функции помогает классификации (уменьшению размерности).

Шумоподавление лучше всего достигается с помощью клетки Фарадея, но, поскольку она далека от оптимальной в практических условиях, мы можем работать над настройкой наших алгоритмов и применять фильтры на этапе обработки сигнала, чтобы уменьшить шум и артефакты в наших записях.

После классификации извлеченных признаков мы можем столкнуться с возможностью наблюдения нескольких категорий признаков для одного и того же события. Приоритизация функций зависит от предполагаемых приложений.

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

Подробнее о методах уменьшения размерности для BCI читайте здесь

Основы классификации

Чтобы классифицировать сигналы ЭЭГ, мы должны преобразовать каждый сигнал ЭЭГ в вектор признаков. Давайте назовем этот вектор признаков для x.

С помощью приведенной выше функции мы можем получить следующее:

Это, в свою очередь, позволяет нам получить набор векторов признаков в виде матрицы с учетом следующего:

После извлечения признаков можно выполнить классификацию:

Алгоритмы классификации для систем BCI

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

Мы рассмотрим пять классификаторов:

  1. Линейные классификаторы
  2. Нейросетевые классификаторы
  3. Нелинейные байесовские классификаторы
  4. Классификаторы ближайших соседей
  5. Комбинации вышеперечисленного

Пойдем!

1. Линейные классификаторы

Линейные классификаторы — это дискриминантные алгоритмы, которые используют линейные функции для различения классов.

Два примера:

  • Линейный дискриминантный анализ (LDA, также известный как LDA Фишера (FLDA))
  • Методы опорных векторов (SVM)

Линейный дискриминантный анализ (LDA)

LDA — очень популярный метод бинарной классификации.

Он основан на средних векторах и ковариационных матрицах шаблонов для отдельных классов.

LDA в основном использует гиперплоскости для разделения классов.

Преимущество использования LDA в качестве классификатора заключается в том, что они требуют очень низкой вычислительной мощности (нагрузки), которая подходит для онлайн-систем BCI.

Кроме того, он прост в использовании и, как правило, показывает хорошие результаты с простыми наборами данных.

Недостатки: его линейность дает плохие результаты на сложных наборах данных ЭЭГ.

Хорошо. Давайте визуализируем это!

D-мерный вектор признаков x проецируется на более низкое измерение (здесь скалярное), так что проецируемые средние значения классов находятся далеко друг от друга, а разброс проецируемых данных мал:

- это можно реализовать путем оптимизации функции стоимости, связанной с матрицей ковариации внутри класса (S_w) и матрицей ковариации между классами (S_b):

Решение функции стоимости определяется выражением:

Наконец, мы можем выбрать оптимальный порог z_0, а затем классифицировать любой x по:

Машины опорных векторов (SVM)

На мой взгляд, SVM в чем-то близки к простейшему алгоритму машинного обучения с учителем.

SVM используют дискриминантные гиперплоскости для идентификации классов.

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

Кроме того, SVM используют параметр регуляризации.

Используя «трюк с ядром», можно создавать нелинейные границы решений с помощью SVM, тем самым отображая данные в более высокие измерения с помощью функций ядра (гауссова и радиальные базисные функции (RBF)).
Они известны как гауссовские SVM и RBF SVM.

Гиперпараметры (параметр регуляризации и ширина RBF) необходимо найти вручную.

Еще раз.. визуализация!

Предположим, мы хотели бы классифицировать следующий набор данных:

Это может показаться довольно прямолинейным. Если вы думаете: «Ну, это просто прямая линия между классом 1 и классом 2!», вы совершенно правы! Но... какая прямая будет лучшей прямой?

В конце концов, разве ничего из этого не подойдет?

Чтобы найти лучшую строку, сначала мы должны определить поле классификатора. Отступ классификатора линейного классификатора — это ширина, на которую можно увеличить границу, прежде чем она достигнет какой-либо точки данных. (показано желтым цветом ниже)

Классификатор линейная максимальная маржа — это линейный классификатор с максимальной маржой.

Это самый простой вид SVM (называемый LSVM, показанный ниже):

Теперь вы можете подумать: «почему максимальная маржа?» — я рад, что вы спросили!

  • Интуитивно он кажется самым безопасным
  • Если мы допустили небольшую ошибку в расположении границы из-за того, что ее трясет в перпендикулярном направлении, это дает нам наименьшие шансы вызвать неверную классификацию.
  • Мы можем применить перекрестную проверку с исключением одного исключения* (LOOCV), которая представляет собой простой метод проверки, поскольку модель невосприимчива к удалению любых точек данных, не являющихся опорными векторами.
  • Опытным путем доказано, что он работает очень-очень хорошо!

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

Я хотел бы сделать пост исключительно о SVM. Просто слишком много, чтобы охватить все здесь! Дайте мне знать в разделе комментариев, если нужно написать конкретный пост SVM :)

Среди прочего, он будет охватывать, как SVM можно использовать в одномерных наборах данных, используя «более жесткие» одномерные измерения, позволяя нелинейным базисным функциям сделать линейную регрессию намного лучше, перекрестные проверки, выбор модели, функции ядра SVM (многочлены ) и другие базовые функции очень высокой размерности, которые можно реализовать с помощью функций ядра в стиле радиального базиса и функций ядра в стиле нейронной сети.

Нейронные сети (НС)

Нейронные сети используют многослойные персептроны (MLP), которые создают универсальные аппроксиматоры.

Это делает нейронные сети чувствительными к переоснащению. Особенно с зашумленными и нестационарными данными.

Поэтому нужно подходить с тщательным подбором архитектуры и регуляризации.

NN отлично подходят для наборов данных, которые требуют нелинейной классификации.

Сети работают путем «обучения» и корректировки веса ​​w , который минимизирует общую квадратичную ошибку вывода (функция стоимости) для всех единиц вывода, которые, несмотря на обратное распространение, могут изменить свое собственное значение веса ​​ .

Также была разработана модель глубокого обучения (DL), способная повысить точность классификации, превосходящая современные методы, оцениваемые на эталонных наборах данных, и относительно эффективная в вычислительном отношении. Модель С. Puthusserypady (2018 г.) сочетает в себе две архитектуры глубокого обучения:
· 2 многоуровневых сверточных нейронных сети (CNN) для извлечения признаков
· Полностью подключенный выходной слой (softmax)
(см. ниже).

Вкратце: нейронные сети глубокого обучения

Глубокое обучение — это мощный инструмент машинного зрения и обработки естественного языка.

Высокая производительность моделей глубокого обучения наряду с разработками в области параллельных вычислений на графических процессорах позволяет им превзойти другие современные алгоритмы классификации.

В последние годы он был широко адаптирован во многих приложениях в различных отраслях.

Это требует формулирования проблемы в рамках DL.

Точно так же для лучшего обобщения требуются огромные объемы данных.

Как и в случае с SVM, я мог бы писать целые посты о NN, CNN и DL. Еще раз, дайте мне знать, если вы хотели бы видеть сообщения на эти темы с акцентом на BCI / нейротехнологии / нейронауки!
Для общих знаний по этим темам в Интернете есть гораздо лучшие ресурсы, чем я могу создать на носителе формат блога :)

Нелинейные байесовские классификаторы

В основном в системах BCI используются два типа неложных байесовских классификаторов:

  1. байесовский квадратичный
  2. Скрытая марковская модель (HMM)

Они работают, создавая нелинейные границы решений.

Они являются генеративными (поэтому позволяют им выполнять эффективное отбрасывание сомнительных выборок по сравнению с дискриминантными классификаторами).

Нелинейные байесовские классификаторы не так популярны, как классификаторы LDA, SVM и NN в приложениях BCI.

Байесовская классификация сводится к трем пунктам:
i. Присваивает наивысшую вероятность вектору признаков того класса, к которому он принадлежит
ii. Правило Байеса используется для расчета апостериорной вероятности
iii. Используя правило максимального апостериорного (MAP) и вычисленные вероятности, можно определить класс вектора признаков.

ХМ резюмировал:

HMM — популярные динамические классификаторы в распознавании речи.

Они показали себя как хорошие классификаторы при использовании временных рядов (что делает их подходящими для BCI на основе ЭЭГ).

HMM можно рассматривать как своего рода вероятностный автомат, который может обеспечить вероятность наблюдения заданной последовательности векторов признаков.

Для использования, связанного с BCI, эти вероятности обычно представляют собой смешанные модели Гаусса (также известные как GMM).

HMM ввода-вывода (IOHMM) — это еще один тип HMM, который используется в приложениях BCI.

Классификаторы ближайших соседей

Классификаторы ближайших соседей просты.

Короче говоря, они являются дискриминативными нелинейными классификаторами.

Модели присваивают вектор признаков классу в соответствии с его ближайшими соседями. Сосед может быть вектором признаков из обучающего набора, как в случае k ближайших соседей (kNN), или прототипом класса, как в расстоянии Махаланобиса (MD).

Классификатор на основе MD прост, но надежен. Он даже оказался подходящим для многоклассовых или асинхронных систем BCI. Несмотря на это и его хорошие характеристики, он редко встречается в литературе по BCI.

В случае использования kNN цель состоит в том, чтобы назначить невидимую точку в доминирующем классе среди своих kNN в обучающем наборе (для BCI ближайшие соседи получаются с использованием метрических расстояний).

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

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

Комбинация классификаторов

Причина использования комбинации классификаторов заключается в повышении производительности системы BCI.

Существуют разные стратегии объединения классификаторов в системах BCI:

  • Усиление: использование нескольких классификаторов в каскаде
    . Это позволяет создать мощный классификатор, объединив несколько слабых. Маловероятно, что это приведет к перетренированности.
     — Однако есть тенденция к неправильной маркировке.
     – Бустирование было опробовано с помощью MLP.
  • Голосование: Используется несколько классификаторов, каждый из которых присваивает входной вектор признаков классу
     – окончательным классом будет класс большинства
    - Голосование - самый популярный способ объединения классификаторов в исследованиях BCI, поскольку он прост и эффективен (например, были предприняты попытки голосования с помощью NN, MLP и SVM)
  • Стекирование:несколько классификаторов, каждый из которых классифицирует входной вектор признаков (классификаторы уровня 0)
     –
    выходные данные каждого из этих классификаторов затем передаются в мета-классификатор (классификатор 1-го уровня) для принятия окончательного решения (например, HMM — SVM в BCI).
    — Основное преимущество стекирования заключается в том, что комбинация схожих классификаторов, скорее всего, превзойдет классификаторы по своей эффективности. own.
    — Известно, что комбинация уменьшает дисперсию и, следовательно, ошибку классификации.

Показатели эффективности

Метрика производительности данного алгоритма или схемы классификации обычно оценивается с использованием точности классификаторов.

Сравнение классификаторов с разных сторон может быть выполнено с использованием разных метрик (чувствительность, специфичность, дискриминантная мощность индекса Юдена и время вычислений/нагрузка).

Производительность классификаторов может быть улучшена на этапе постобработки.

Некоторые параметры классификатора можно оптимизировать по некоторым измерениям в блоке постобработки, чтобы уменьшить количество ложных срабатываний.

Я оставлю вам эту таблицу (Ф. Лотте и Л. Фабрис, 2007 г., я знаю, что она датирована 😅); показаны свойства классификаторов, используемых в исследованиях BCI

Следующие публикации в этой серии будут посвящены приложениям BCI (в основном на основе ЭЭГ)
В той же серии:

* От сигналов мозга к командам компьютера, часть 2: обработка сигналов мозга
* От сигналов мозга к командам компьютера, часть 1: получение сигналов
* Краткое введение в нейронную инженерию, нейротехнологии и Интерфейсы мозг-компьютер

На этом пост окончен. Дайте мне знать, какие темы для освещения в комментариях ниже. Отзывы также высоко ценятся 🙌