УДК 004.42
Ю. Б. ПОПОВА, С. В. ЯЦЫНОВИЧ
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ИСКУССТВЕННОЙ НЕЙРОННОЙ СЕТИ ДЛЯ УПРАВЛЕНИЯ ВИРТУАЛЬНЫМИ ОБЪЕКТАМИ
Белорусский национальный технический университет
Искусственные нейронные сети (ИНС) в настоящее время находят широкое применение в задачах управления и прогнозирования. Целью данной работы является реализация искусственной нейронной сети для управления виртуальными объектами в компьютерной игре в футбол. Для достижения указанной цели необходимо решить круг задач, связанных с математическим моделированием ИНС, алгоритмизацией и программной реализацией. В работе рассматриваются вопросы математического моделирования искусственной нейронной сети методом обратного распространения ошибки, приведены алгоритмы для расчета нейронов и для обучения ИНС. Программная реализация искусственной нейронной сети была выполнена на языке JavaScript с использованием библиотеки Node. js, которая взяла на себя роль сервера для управления процессом игры. Также использовались некоторые функции библиотеки Underscore. js для работы с массивами данных. Обучающая выборка состояла из более чем 1000 наборов входов и выходов, максимально отражая все возможные ситуации. Описаны результаты программной реализации искусственной нейронной сети на примере управления виртуальными футболистами для компьютерной игры. Результаты работы показывают, что ИНС с достаточно большой скоростью в режиме реального времени выдает необходимое направление для движения игрока. Использование искусственной нейронной сети позволило снизить использование процессорного времени, что является крайне важным в задачах, где требуется быстрое принятие решений, ведь сложные вычисления и алгоритмы предсказания не всегда могут вложиться в 20 мс, что чревато пропусками ходов и проигрышами. Смоделированная искусственная нейронная сеть и реализованный алгоритм ее обучения могут применяться для решения других задач, для чего необходимы только новые данные окружающего мира.
Ключевые слова: искусственная нейронная сеть, ИНС, нейрон, вес нейрона, обучение искусственной нейронной сети, метод обратного распространения ошибки.
Введение все этапы разработки от формирования усло-
В настоящее время наблюдается взрыв ин- вий работы сети до обУчения тод^щюш^ьк
тереса к искусственным нейронным сетям и связанных нейр°н°в [4]. В рамках данн°й
(ИНС), которые вошли в практику везде, где работы рассмотрим м°делир°вание и °буче-
нужно решать задачи прогнозирования, клас- ние искусственной нейр°нн°й сети на приме-
сификации или управления. Оригинальная идея ре управления виртуальными °6ьектами для
ИНС пришла в технику после исследования компьютерной игры в футбол. центральной нервной системы человека и ней- П°стан°вка задачи. Необходимо р^р^-
ронов. В модели нейронной сети простые узлы тать и обучить искусственную нейронную сеть
(их называют нейроны либо нейроды (neuro- для управления командой из трех футболистов
des), либо обрабатывающие элементы (ОЭ), в компьютерной игре в футбол. Управляемые
либо юниты) связаны друг с другом и образу- ИНС футболисты изображены красным цветом,
ют сеть узлов [1-3]. Одно из подобий ИНС их соперники - синим. Размер игрового поля
биологическим нейронным сетям заключается составляет 1200*600 пикселей. Стартовая по-
в том, что функции выполняются юнитами все зиция игроков представлена на рис. 1. Для упро-
вместе, параллельно. щения правил игры принимается, что фут-
Для того, чтобы создать действительно ра- больные ворота занимают всю левую или пра-
ботающую искусственную нейронную сеть, не- вую сторону (отмечены красной и синей линией
обходимо потратить немало времени и пройти на рис. 1). Игроки равнозначны по функцио-
(Х,У)
Скорость Х/»/-
Направление
т
Рис. 1. Стартовая позиция игроков
(х'У)
Рис. 2. Изменение положения игрока
Рис. 3. Искусственный нейрон [5]
нальным обязанностям и не разделяются априори на вратарей, нападающих и защитников, но должны выполнять эти роли в зависимости от ситуации. Игра длится 2 мин и делится на две половины. После первой половины игры команды меняются воротами.
Игровое время делится на тики по 20 мс. В течение каждого тика только один игрок команды может изменять свою скорость и направление. Перемещение игрока представлено на рис. 2, где (х, у) - первоначальное положение игрока, (х', у') - положение игрока после перемещения.
Искусственная нейронная сеть должна уметь выполнять следующие действия:
- изменять скорость движения управляемого игрока в зависимости от местоположения мяча и членов команды;
- изменять направление движения управляемого игрока в зависимости от местоположения мяча и членов команды;
- если футболист находится за мячом относительно своих ворот, он должен изменить свое направления и двигаться по дуге, максимально близко огибая мяч, но так, чтобы не забить гол в свои ворота;
- если члены команды находятся ближе к мячу, то управляемый игрок должен по возможности выдвинуться ближе к воротам для получения паса или перехвата;
- если игрок находится ближе, чем остальные игроки команды, к своим воротам и максимально удаленно от мяча, он осуществляет роль вратаря. При приближении мяча к игроку, он должен выбить мяч или пойти за ним.
Теоретические основы искусственной нейронной сети. Искусственный нейрон имитирует в первом приближении свойства биологического нейрона [5]. На вход искусственного нейрона поступает некоторое множество сигналов хь Х2,..., xn, каждый из которых является выходом другого нейрона. Каждый вход умножается на соответствующий вес wb W2,..., wn, аналогичный синаптической силе, и все произведения суммируются, определяя уровень активации нейрона. На рис. 3 представлена модель, которая реализует эту идею.
Суммирующий блок алгебраически объединяет взвешенные входы, создавая выход NET:
NET = Х w x i=1
-Wn
(1)
Рис. 4. Графическое представление метода обратного распространения ошибки
где wi - вес /-го нейрона; xi - выход /-го нейрона; n - количество нейронов, которые входят в обрабатываемый нейрон; w0 - биас или нейрон смещения.
Сигнал Wo позволяет сдвинуть начало отсчета функции активации, которая в дальнейшем приводит к увеличению скорости обучения. Полученный сигнал NET, как правило, обрабатывается функцией активации и дает выходной нейронный сигнал OUT. В качестве этой функции часто используется сигмоидаль-ная функция:
OUT =-(2)
1 + e
-NET '
единовременная корректировка всех весов, основываясь на их текущем значении, значении ошибки, соответствующей рассматриваемому нейрону и активационному значению нейрона.
Графическое представление метода обратного распространения ошибки приведено на рис. 4 [7] для К нейронов первого слоя, Мнейронов скрытого слоя и N нейронов выходного слоя.
Реализация искусственной нейронной сети. Основные вычисления и работа искусственной нейронной сети происходят в алгоритме прохода по всей системе и расчете выходных параметров. Обобщенная схема алгоритма расчета нейрона представлена на рис. 5.
В [5] указано, что сети, построенные из таких искусственных нейронов, обнаруживают свойства, сильно напоминающие биологическую систему. Там же приведены модели однослойных, многослойных ИНС, сетей с обратными связями и основы их обучения.
Метод обратного распространения ошибки. Обучение искусственной нейронной сети -это процесс, в котором параметры сети настраиваются посредством моделирования среды, в которую она встроена. Существует достаточно большое количество методов обучения искусственных нейронных сетей, однако для многослойных ИНС наиболее популярным является метод обратного распространения ошибки, включающий в себя три фазы [6]:
- проведение через сеть обучающего примера (фаза прямого распространения);
- вычисление значения ошибки между полученным выходом сети и ожидаемым, на основе которого затем вычисляются значения ошибок для каждого предыдущего слоя вплоть до входного (фаза обратного распространения ошибки);
Рис. 5. Схема алгоритма расчета нейрона
Вначале алгоритм проходит по входным нейронам и вычисляет выходные значения для каждого из них. Далее алгоритм циклически переходит на вычисление выходов для скрытого слоя на основе весов и ранее вычисленных выходов первого слоя. При вычислении выходов нейронов используется сигмоидальная функция активации. После работы алгоритма на выходе последнего слоя получается результат работы искусственной нейронной сети.
Для того, чтобы ИНС корректно работала, необходимо ее обучить, т. е. определить все веса. Для обучения сети был разработан алгоритм, реализующий описанный выше метод обратного распространения ошибки (рис. 6).
Перед началом обучения веса у сети проставляются случайным способом. На вход функция обучения принимает уже определенные наборы данных (входы-выходы), которые заведомо верные. На первоначальном этапе идет настройка системы, выставление количества итераций обучения и значения ошибки, которые являются очень важными показателями в обучении. Если превысить или уменьшить эти показатели, можно переобучить или недоучить систему. Поэтому обычно обучение проводится несколько раз с корректировкой этих параметров. На следующем этапе обучения происходит проход по сети на основе входных данных для обучения. Результатом прохода являются выходные данные для корректировки весов. Затем происходит проход по ИНС в обратном направлении с вычислением значения ошибки, на основе которой в дальнейшем будет происходить корректировка весов. Алгоритм работает до тех пор, пока не будет достигнут приемлемый уровень ошибки (критерий 1 на рис. 6) либо не закончены все итерации (критерий 2 на рис. 6).
В результате обучения искусственная нейронная сеть получает определенный набор весов, которые, если соответствуют ожиданиям, не изменяются, либо происходит корректировка значений допустимой ошибки или итераций обучения, и алгоритм запускается заново.
Программная реализация искусственной нейронной сети была выполнена на языке JavaScript с использованием библиотеки Node.js, которая взяла на себя роль сервера для управления процессом игры. Также использовались некоторые функции библиотеки Underscore.js
Рис. 6. Алгоритм обучения нейронной сети
для работы с массивами данных. Обучающая выборка состояла из более чем 1000 наборов входов и выходов, максимально отражая все возможные ситуации, предусмотренные правилами, приведенными в постановке задачи.
Анализ полученных результатов. В результате работы была реализована искусственная нейронная сеть для управления виртуальными объектами в компьютерной игре в футбол с двумя командами. Произведено обучение ИНС по описанному выше алгоритму. Обучение искусственной нейронной сети производилось несколько раз с изменениями как входного количества нейронов, так и с изменением количества итераций и значений ошибки обучения. Первоначальный вариант ИНС представлял собой сеть с 13 входами и 6 нейронами скрытого слоя. Однако из-за переизбытка ин-
формации входных данных обучить такую сеть не оказалось возможным. В итоге разработанная искусственная нейронная сеть получила 6 входов (направление к мячу, расстояние до мяча, расстояние и направление до первого и второго игроков команды), 3 нейрона на скрытом слое и 2 выхода (новые координаты, куда необходимо переместить игрока). После нескольких этапов обучения было получено оптимальное сочетание весов сети, что позволило прекратить обучение и интегрировать искусственную нейронную сеть в компьютерную игру.
Результаты работы компьютерной игры показывают, что ИНС с достаточно большой скоростью в режиме реального времени выдает необходимое направление для движения игрока, что сказывается на итогах игр. Так было запущено 3 игры, в которых:
1. Нейронная сеть играла со стандартным ботом, который просто бежал на мяч. Нейронная сеть одержала победу с большим отрывом.
2. Нейронная сеть играла против алгоритма предсказания и смогла победить. Однако здесь следует отметить, что такая победа в большей степени связана с неумением противника, чем с преимуществом разработанной ИНС.
3. На поле было две команды под управлением искусственных нейронных сетей. Поскольку обучение ИНС не учитывало расположение противника, то обе команды показали себя одинаково, ориентируясь только на игроков своей команды и на мяч.
В процессе тестирования разработанной искусственной нейронной сети было запуще-
но 20 игр с соперником на основе следования на мяч. Результаты показали, что в 80% случаев ИНС принимала правильное решение согласно правил, описанных выше. В 60% случаев искусственная нейронная сеть не выдавала оптимальные траектории движения для обхода мяча по окружности, если мяч оказывался за спинами игроков. Имеется предположение, что такой результат связан с небольшим количеством обучающих данных на основе описанной ситуации. В 20% случаев ИНС забивала себе по причине того, что все игроки были ориентированы на мяч и иногда находились на уровне с ним либо за ним.
Заключение
Разработанная искусственная нейронная сеть позволила в полной мере справиться с поставленной задачей, а именно, позволила управлять действиями виртуальных футболистов в компьютерной игре без написания большого количества алгоритмов и описания действий при различных состояниях окружающего мира. Также использование ИНС позволило снизить использование процессорного времени, что является крайне важным в задачах, где требуется быстрое принятие решений, ведь сложные вычисления и алгоритмы предсказания не всегда могут вложиться в 20 мс, а это чревато пропусками ходов и проигрышами.
Следует также добавить, что смоделированная искусственная нейронная сеть и реализованный алгоритм ее обучения могут применяться при решении других задач, для чего необходимы лишь новые данные окружающего мира.
Литература
1. Хайкин, С. Нейронные сети: полный курс / С. Хайкин. - Изд. 2-е. - М.: Вильямс, 2006. - 1104 с.
2. Kriesel, D. A Brief Introduction to Neural Networks [Электронный ресурс] / D. Kriesel. - Режим доступа - http:// www.dkriesel.eom/en/science/neural_ne1:works. - Дата доступа: 01.10.2017.
3. Жданов, А. А. Автономный искусственный интеллект [Электронный ресурс] / А. А. Жданов. - М.: БИНОМ. Лаборатория знаний, 2012. - 359 с.
4. Попова, Ю. Б. Нейронные сети в обучающих системах / Ю. Б. Попова, С. В. Яцынович // Информационные технологии в технических и социально-экономических системах: сб. материалов науч.-тех. конф. - Минск: РИВШ, 2016. - С. 9-11.
5. Уоссермен, Ф. Нейрокомпьютерная техника: теория и практика / Ф. Уоссермен. - М.: Мир, 1992. - 184 с.
6. Попова, Ю. Б. Обучение искусственных нейронных сетей методом обратного распространения ошибки [Электронный ресурс] / Ю. Б. Попова, С. В. Яцынович. - Режим доступа: http://www.bntu.by/news/67-conference-mido/ 4860-2016-11-18-15-47-40.html. - Дата доступа: 01.08.2017.
7. Парадигмы обучения нейронных сетей [Электронный ресурс]. - Режим доступа: http://apsheronsk.bozo.ru/ Neural/Lec3. htm - Дата доступа: 10.05.2017.
References
1. Hajkin, S. Nejronnye seti: polnyj kurs / S. Hajkin. - Izd. 2-e. - M.: Vil'jams, 2006. - 1104 s.
2. Kriesel, D. A Brief Introduction to Neural Networks [Jelektronnyj resurs] / D. Kriesel. - Rezhim dostupa - http:// www.dkriesel.com/en/science/neural_networks. - Data dostupa: 01.10.2017.
3. Zhdanov, A. A. Avtonomnyj iskusstvennyj intellekt [Jelektronnyj resurs] / A. A. Zhdanov. - M.: BINOM. Laboratorija znanij, 2012. - 359 s.
4. Popova, Ju. B. Nejronnye seti v obuchajushhih sistemah / Ju. B. Popova, S. V. Jacynovich // Informacionnye tehnologii v tehnicheskih i social'no-jekonomicheskih sistemah: sb. materialov nauch.-teh. konf. - Minsk: RIVSh, 2016. - S. 9-11.
5. Uossermen, F. Nejrokomp'juternaja tehnika: teorija i praktika / F. Uossermen. - M.: Mir, 1992. - 184 s.
6. Popova, Ju. B. Obuchenie iskusstvennyh nejronnyh setej metodom obratnogo rasprostranenija oshibki [Jelektronnyj resurs] / Ju. B. Popova, S. V. Jacynovich. - Rezhim dostupa: http://www.bntu.by/news/67-conference-mido/4860-2016-11-18-15-47-40.html. - Data dostupa: 01.08.2017.
7. Paradigmy obuchenija nejronnyh setej [Jelektronnyj resurs]. - Rezhim dostupa: http://apsheronsk.bozo.ru/Neural/ Lec3.htm. - Data dostupa: 10.05.2017.
Поступила После доработки Принята к печати
01.12.2017 12.12.2017 15.12.2017
Y. B. Popova, S. V. Yatsynovich
SOFTWARE IMPLEMENTATION OF THE ARTIFICIAL NEURAL NETWORK
FOR VIRTUAL OBJECTS ^NTROL
Belarusian National Technical University
Artificial neural networks (ANN) are now widely used in control andforecasting problems. The purpose of this work is the implementation of an artificial neural network for virtual objects control in a computer game of football. To achieve this goal, it is necessary to solve a number of problems related to mathematical modeling of ANN, algorithmization and software implementation. The paper deals with the mathematical modeling of an artificial neural network by the method of back propagation of an error, the algorithms for calculating neurons and for teaching ANN are presented. The software implementation of the artificial neural network was performed in the JavaScript language using the Node. js library, which assumed the role of a server for managing the game process. Some functions of the Underscore. js library were used to work with data arrays. The training sample consisted of more than 1000 sets of inputs and outputs, reflecting all possible situations. The results of software implementation of an artificial neural network are described on the example of virtual players control for a computer game. The results of the work show that ANN with a sufficiently high speed in real time gives the necessary direction for the player's movement. The use of an artificial neural network has reduced the use of CPU time, which is extremely important in problems where rapid decision making is required, because complex calculations and prediction algorithms can not always be invested in 20 ms, which is fraught with skipping moves and losses. The simulated artificial neural network and the implemented algorithm of its learning can be used to solve other problems, for which only new data of the surrounding world are needed.
Keywords: artificial neural network, ANN, neuron, neuron weight, ANN training, method of back propagation of error.
Yuliya B. Popova, PhD, Associate Professor of the Software Department of the Belarusian National Technical University. Her research interests focus on methods and algoritms of optimization in technical systems, engineering of adaptive learning systems and learning management systems (LMS), modeling of student knowledge, software testing and quality assurance. Email: [email protected]
Попова Юлия Борисовна, доцент, кандидат технических наук, доцент кафедры программного обеспечения вычислительной техники и автоматизированных систем БНТУ. Ее научные интересы связаны с методами и алгоритмами оптимизации технических систем, разработкой адаптивных обучающих систем, автоматизированных систем управления учебным процессом, моделированием знаний, а также с вопросами тестирования и качества программного обеспечения.
Siarhei Yatsynovich received the graduate degree in software engineering from the Belarusian National Technical University in 2014 and the Master's degree in system analysis and control of information processing in 2015. He is currently working on PhD degree program. His research interests are related to the methods of decision-making, neural networks, learning management systems and the development of web applications. Email: [email protected]
Яцынович Сергей Викторович закончил Белорусский национальный технический университет по специальности «Программное обеспечение информационных технологий» в 2014 году и магистратуру по специальности «Системный анализ, управление и обработка информации» в 2015 году. В настоящее время является аспирантом кафедры программного обеспечения вычислительной техники и автоматизированных систем БНТУ. Его научные интересы связаны с методами принятия решений, нейронными сетями, системами управления обучением, а также с разработкой веб-приложений.
Работа выполнялась в рамках научно-исследовательской работы ГБ 11-254 «Математическое и программное обеспечение систем обработки информации в образовании и автоматизированных систем управления техническими объектами».