УДК 004.942
О ПРИМЕНЕНИИ САМОНАСТРАИВАЮЩЕГОСЯ АЛГОРИТМА ГЕНЕТИЧЕСКОГО ПРОГРАММИРОВАНИЯ ПРИ СТРУКТУРНОЙ АДАПТАЦИИ РЕКУРРЕНТНЫХ
НЕЙРОННЫХ СЕТЕЙ*
Д. Ю. Мамонтов
Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31
E-mail: mamontov.bs@yandex.ru
Описывается способ структурной адаптации рекуррентных нейронных сетей с помощью самонастраивающегося алгоритма генетического программирования, способный упростить решение задач проектирования и управления ракетно-космическими системами.
Ключевые слова: самонастраивающийся алгоритм генетического программирования, рекуррентные нейронные сети, структурная адаптация.
ON APPLICATION OF SELF-CONFIGURING GENETIC PROGRAMMING FOR RECURRENT NEURAL NETWORK STRUCTURE ADAPTATION
D. Yu. Mamontov
Reshetnev Siberian State University of Science and Technology 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: mamontov.bs@yandex.ru
This article describes a way for structure adaptation of recurrent neural network with the help of self-configuring genetic programming that can make the process of design and control in space and rocket systems easier.
Keywords: self-configuring genetic programming, recurrent neural network, structure adaptation
В современном мире, с увеличением возможностей по сбору и хранению различного рода данных, требуются мощные алгоритмы их анализа, позволяющие извлекать полезную информацию. Одним из таких алгоритмов являются рекуррентные нейронные сети (РНС), однако он требует настройки структуры, что является трудоемким процессом. Настройка структуры нейронных сетей (НС) подразумевает изменение таких гиперпараметров как количество и размер слоев, а также их активационные функции. В данном исследовании для структурной адаптации предлагается использовать самонастраивающийся алгоритм генетического программирования (СГП). СГП уже успешно применялся при проектировании различных систем, например, системы управления на нечеткой логике [1]. Исследования производились с использованием популярной библиотеки для моделирования нейронных сетей Keras на Python, а также C++.
Данные, использованные в настоящей работе, были собраны в Ульмском Университете специально для исследований в области распознавания уровня боли [2; 3]. В базе содержится информация по 40 участникам (20 мужчин, 20 женщин). Все участники представлены двумя наборами данных: независимые экс-
перименты на левом и правом предплечье, далее задача 1 и задача 2 соответственно.
В функциональное множество СГП были включены две операции: последовательное объединение и последовательное объединение с включением дропаут слоя. С зафиксированными несколькими разными коэффициентами k = {0.1, 0.2, ... ,0.9}.
В терминальное множество были включены следующие типы слоев: SimpleRNN, LSTM, Dense, GRU. Также нам необходимо использовать специальный слой RepeatVector. Мы используем его в качестве первого слоя, поскольку решаемая задача не имеет временной зависимости, а для применения рекуррентных нейронный сетей это необходимо, пусть n = {3; 5}. Активационные функции: softmax, elu, selu, softplus, softsign, relu, tanh, sigmoid, hard_sigmoid, linear. Количество нейронов для каждого слоя от 1 до 40.
В генетическом программировании решения кодируются в виде дерева. Предлагается следующий способ кодирования рекуррентных сетей в дерево (см. рисунок).
Такой способ позволяет кодировать различные структуры нейронных сетей с неограниченным количеством слоев.
Исследование выполнено при поддержке Красноярского краевого фонда науки в рамках прохождения стажировки «Рекуррентные нейронные сети глубинного обучения для интеллектуального анализа видеоизображений».
Математические методы моделирования, управления и анализа данных
Эффективность различных структур РНС на 1 и 2 задаче
Задача 1 Задача 2
Базовый уровень СГП_3 СГП_5 Базовый уровень СГП_3 СГП_5
1 эпоха
Среднее, % 77.17 79.92 79.58 77.87 79.07 78.82
Стандартное отклонение, % 11.94 11.78 12.54 12.18 13.44 12.58
3 эпохи
Среднее, % 81.24 81.54 81.37 79.31 80.68 80.85
Стандартное отклонение, % 11.73 12.61 12.64 14.02 12.45 11.93
Пример кодирования нейронной сети для алгоритма генетического программирования
Предложенный подход был протестирован на задаче 1 и 2 с использованием 77 признаков кожно-гальванической реакции. Задача бинарной классификации заключается в отделении 1 от 4 уровня боли по данным 77 признакам.
Параметры СГП при тестировании: максимальная глубина = 3, полный рост на этапе инициализации, размер популяции = 100 индивидов, количество поколений = 100.
После просчета 100 поколений СГП лучшая найденная структура для задачи 1:
1 слой-GRU (количество нейронов 29, активаци-онная функция = 'linear')
2 слой-SimpleRNN (количество нейронов 37, акти-вационная функция = 'linear')
3 слой-GRU (количество нейронов 26, активаци-онная функция = 'softsign')
4 слой-SimpleRNN (количество нейронов 37, акти-вационная функция = 'linear')
Как можно заметить полученная нейронная сеть состоит из 4 слоев с двумя типами слоев GRU и Sim-pleRNN.
Применение аналогичной процедуры для задачи 2 дало следующий результат:
1 слой-SimpleRNN (количество нейронов 30, акти-вационная функция = ' tanh ')
2 слой-SimpleRNN (количество нейронов 40, акти-вационная функция = ' tanh ')
3 слой-SimpleRNN (количество нейронов 40, акти-вационная функция = ' tanh ')
В данном случае 3 слоя SimpleRNN и на каждом слое активационная функция tanh.
В таблице представлены результаты кросс-валидации полученных структур по всем 40 пациентам. Дублирование входных векторов 3 и 5 раз (СГП_3 и СГП_5). Также сравнивалась эффективность по обучению на 1 и 3 эпохах. В качестве базового уровня отражена эффективность однослойной полносвязной НС с количеством нейронов 39 (половина признаков).
Как можно заметить, лучшая эффективность классификации достигнута при обучении на 3 эпохах структуры, полученной с помощью СГП и дублированием входного вектора 3 раза для задачи 1, и 5 раз для задачи 2 (выделенные жирным значения).
Сравнения показали, что структурная адаптация РНС с помощью СГП демонстрирует точность классификации не хуже базового уровня, однако и заметных улучшений достичь не удалось, что может быть обусловлено спецификой применения рекуррентных нейронных сетей к решению данной задачи. В дальнейшем планируется исследовать предложенный подход и на других задачах.
Библиографические ссылки
1. Мамонтов Д. О применении генетического программирования для разработки систем на нечеткой логике // Материалы XXI Международной научно-практической конференции, посвященной памяти генерального конструктора ракетно-космических систем академика М. Ф. Решетнева. Красноярск, 2017. С. 215-216.
2. Thiam P. et al. Audio-visual recognition of pain intensity // IAPR Workshop on Multimodal Pattern Recognition of Social Signals in Human-Computer Interaction. Springer, Cham, 2016. С. 110-126.
3. Velana M. et al. The senseemotion database: A multimodal database for the development and systematic validation of an automatic pain-and emotion-recognition system // IAPR Workshop on Multimodal Pattern Recognition of Social Signals in HumanComputer Interaction. - Springer, Cham, 2016. С. 127139.
References
1. Mamontov D. On application of genetic programming in fuzzy logic systems design // Materialy XXI Mezhdunarodnoj nauchno-prakticheskoj konferencii, pos-vjashhennoj pamjati general'nogo konstruktora raketno-kosmicheskih sistem akademika M. F. Reshetneva. Kras-nojarsk, 2017. P. 215-216. (In Russ.)
2. Thiam P. et al. Audio-visual recognition of pain intensity //IAPR Workshop on Multimodal Pattern Recognition of Social Signals in Human-Computer Interaction. Springer, Cham, 2016. P. 110-126.
3. Velana M. et al. The senseemotion database: A multimodal database for the development and systematic validation of an automatic pain-and emotion-recognition system //IAPR Workshop on Multimodal Pattern Recognition of Social Signals in Human-Computer Interaction. Springer, Cham, 2016. P. 127-139.
© Мамонтов Д. Ю., 2018