Вы когда-нибудь хотели предсказать чьи-то эмоции или вы настолько талантливы, что знаете все? Что ж, у нас, людей, может и не быть такого таланта, но благодаря машинному обучению у нас есть возможность узнать, как кто-то отреагирует.
Вот как я создал рекуррентную нейронную сеть, используя данные с повязки Muse Headband для прогнозирования эмоциональных состояний.
Как я создал программу, которая предсказывает эмоции
1. Сбор данных
Еще до того, как я начал кодировать программу, мне нужно было собрать данные…
Нам нужны были данные электроэнцефалограммы (ЭЭГ), которые в основном представляют собой данные вашего мозга. Я нашел эти данные с помощью повязки Muse Headband, которая использовалась для записи мозговой активности 1 мужчины и 1 женщины во время просмотра фильмов.
Это связано с тем, что обычно эмоции людей во время фильма непоследовательны, а это означает, что наша модель имеет больше данных для работы.
Для каждого субъекта были записаны 3 минуты данных для каждого эмоционального состояния: положительного, нейтрального и отрицательного.
Вот названия киносцен, которые смотрели испытуемые:
- Marley and Me — Negative (Twentieth Century Fox)
Сцена смерти - Вверху — негатив (Walt Disney Pictures)
Открытие сцены смерти - My Girl — Negative (Imagine Entertainment)
Сцена похорон - La La Land — Positive (Summit Entertainment)
Открывающий музыкальный номер - Slow Life — Positive (BioQuest Studios)
Замедленная съемка природы - Funny Dogs — Positive (MashupZone)
Смешные клипы с собаками
Данные файл связаны.
2. Рекуррентная нейронная сеть
Как уже упоминалось, мы будем создавать рекуррентную нейронную сеть, которая по сути является «типом искусственной нейронной сети, использующей последовательные данные или данные временных рядов».
В краткой форме нейронная сеть, которая представляет собой компьютерную систему, основанную на человеческом мозге, использующую данные для работы, является рекуррентной нейронной сетью.
Теперь, чтобы настроить эту нейронную сеть, мы будем использовать Google Colab, полезный инструмент от Google Research, который позволяет писать и получать вывод кода Python в браузере. Это настоятельно рекомендуется для машинного обучения, которое мы собираемся использовать.
Мы будем использовать Python для создания этого проекта.
После доступа к Google Colab создайте учетную запись с учетными данными учетной записи Google. После этого создайте новый блокнот, наведя указатель мыши на «Файл», расположенный в левом верхнем углу. Затем нажмите «Новый блокнот», чтобы открыть новое пространство для кодирования.
Убедитесь, что ваш проект имеет заголовок вверху, и именно так должна выглядеть ваша страница.
Я решил добавить комментарий (строка со знаком #), чтобы отдать предпочтение читателю моего кода. Однако этот шаг является необязательным, но будет полезен в будущем, если вы вернетесь к проекту.
Мой комментарий довольно простой, но важный: # Эта программа нацелена на точное предсказание эмоциональных состояний субъекта во время просмотра различных сцен фильма с учетом его показаний ЭЭГ с использованием рекуррентной нейронной сети.
3. Импорт библиотек
Теперь мы перейдем к важным библиотекам, используемым в коде, введя код в поле рядом с кнопкой воспроизведения.
Краткое описание библиотек:
- Numpy and Pandas: используется для интерпретации данных ЭЭГ с повязки Muse.
- Matplotlib и Seaborn: используется для визуализации данных, чтобы мы могли лучше понять данные и ознакомиться с тем, с чем мы работаем.
- Tensorflow и train_test_split: используются для машинного обучения и подготовки данных.
- confusion_matrix и classfication_report: для проверки уровней производительности.
4. Понимание данных
Теперь пришло время превратить наши данные в переменную, чтобы сохранить их в коде.
Во-первых, загрузите файл: file и убедитесь, что он называется emotions.csv. Это наш файл данных ЭЭГ, который мы введем в наш код.
Теперь нажмите кнопку +Code и используйте первую строку с изображения. Это говорит компьютеру, чтобы он рассматривал этот файл в перспективе.
Затем создайте еще одно поле кода и введите код из второй строки. Это предложит выбрать файл «emotions.csv» на своем компьютере.
Чтобы проверить, что данные были введены, я добавил оператор печати для данных. Это выводит таблицу со всеми данными ЭЭГ.
Кроме того, мы получим график данных ЭЭГ. Итак, мы создаем новую ячейку кода и вводим этот код, который в конечном итоге заставит компьютер взять данные ЭЭГ и преобразовать их в график, чтобы программа могла лучше интерпретировать данные.
5. Предварительная обработка
Теперь нам нужно подготовить данные для прохождения через нейронную сеть.
С помощью «label_mapping» мы в основном информируем программу о том, что из таблицы данных все отрицательные эмоции обозначаются как 0, нейронные — как 1, а положительные — как 2. Это может помочь. программа вводит данные в нейронную сеть.
Исходя из этого, мы разделяем данные на две разные группы: тестирование и обучение. Где некоторые данные будут использоваться для обучения RNN, а другие будут использоваться для проверки и сравнения фактических результатов с исходными данными. Наша обучающая группа будет состоять из 70% всех данных.
6. Моделирование RNN
Пришло время создать рекуррентную нейронную сеть.
Это структура рекуррентной нейронной сети со слоями вентилируемой рекуррентной единицы (GRU). Эти слои используют меньше памяти и обычно работают быстрее.
7. Составление РНН
Теперь пришло время собрать нашу RNN и получить результаты.
Итак, мы собираемся пройти через X_train и y_train (обучение и тестирование) с разделением проверки 20% и размером пакета 32, что является количеством выборок, которые необходимо обработать перед обновлением внутренних параметров модели, и 50 эпох. , то есть количество раз, когда весь обучающий набор данных будет пропущен через модель.
Таким образом, после каждой эпохи модель будет рассчитывать потери при проверке и поможет рассчитать точность модели.
8. Расчет точности
Это получение результатов и получение процента точности модели.
9. Отчет о классификации
На последнем этапе мы создаем отчет со всеми предположениями, созданными моделью, по сравнению с фактическим количеством эмоциональных состояний.
Полученные результаты
Теперь пришло время запустить нашу модель и получить результаты…
Вы можете сделать это, нажав «Время выполнения» вверху, а затем нажав «Запустить все».
Теперь вот результаты…
Точность модели составляет около 96%!
А вот отчет…
Поздравляем! Вы создали рекуррентную нейронную сеть, которая будет предсказывать эмоции! В рамках этого проекта мы исследовали данные ЭЭГ и рекуррентные нейронные сети.
Вот GitHub с кодом.
Спасибо за интерес к этой статье.
Меня зовут Видхи Джаджу, я 14-летняя ученица старшей школы, каждый день исследующая безграничные возможности и узнавающая все больше об интерфейсах мозг-компьютер.
Не стесняйтесь отправить мне сообщение на LinkedIn.
Чтобы найти похожие статьи и оставаться со мной в курсе, подписывайтесь на мой Медиум.