Научная статья на тему 'УПРАВЛЕНИЕ ДВИЖЕНИЕМ ОБЪЕКТА ПО ПОЛЮ С ПРЕПЯТСТВИЯМИ ПРИ ПОМОЩИ РЕКУРРЕНТНОЙ НЕЙРОННОЙ СЕТИ'

УПРАВЛЕНИЕ ДВИЖЕНИЕМ ОБЪЕКТА ПО ПОЛЮ С ПРЕПЯТСТВИЯМИ ПРИ ПОМОЩИ РЕКУРРЕНТНОЙ НЕЙРОННОЙ СЕТИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
66
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕЙРОННАЯ СЕТЬ / ОБУЧЕНИЕ С ПОДКРЕПЛЕНИЕМ / ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / ДВИЖЕНИЕ ОБЪЕКТА / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ляхов Александр Фёдорович, Королев Денис Алексеевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

CONTROLLING THE MOVEMENT OF AN OBJECT ON A FIELD WITH BARRIER USING A RECURRENT NEURAL NETWORK

Consider control model recurrent neural network moving object on a field with barrier using a recurrent neural network. Via genetic algorithm create two neural network different complexity. For each neural network describe algorithm reinforcement learning. Comparison of the effectiveness of their work.

Текст научной работы на тему «УПРАВЛЕНИЕ ДВИЖЕНИЕМ ОБЪЕКТА ПО ПОЛЮ С ПРЕПЯТСТВИЯМИ ПРИ ПОМОЩИ РЕКУРРЕНТНОЙ НЕЙРОННОЙ СЕТИ»

Компьютерные инструменты в образовании, 2022 №1:5-15

УДК: 004.891 :004.032.26

http://cte.eltech.ru

doi:10.32603/2071 -2340-2022-1 -5-15

алгоритмическая математика и математическое моделирование

УПРАВЛЕНИЕ ДВИЖЕНИЕМ ОБЪЕКТА ПО ПОЛЮ С ПРЕПЯТСТВИЯМИ ПРИ ПОМОЩИ РЕКУРРЕНТНОЙ НЕЙРОННОЙ СЕТИ

Ляхов А. Ф.1, кандидат физико-математических наук, доцент, И Alf19545@rambler.ru Королев Д. А.2, инженер-программист, Иcorolyov1998@gmail.com

Национальный исследовательский Нижегородский государственный университет им. Н. И. Лобачевского,

пр. Гагарина, 23, 603022, Нижний Новгород, Россия 2000 «Научно-производственное предприятие «ПРИМА»,

Сормовское шоссе, д. 1Ж, 603950, Нижний Новгород, Россия

Аннотация

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

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

Цитирование: Ляхов А. Ф., Королев Д. А. Управление движением объекта по полю с препятствиями при помощи рекуррентной нейронной сети // Компьютерные инструменты в образовании. 2022. № 1. С. 5-15. doi: 10.32603/2071-2340-2022-1-5-15

1. ВВЕДЕНИЕ

Современное развитие вычислительной техники, ІТ-технологий позволяют создавать автоматизированные системы управления движением объектов. Диапазон задач управления движением очень широк: это космические планетоходы, роботизированные летательные аппараты, подводные аппараты, но самая важная задача связанна с созданием автоматизированного автомобильного транспорта.

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

В данной работе описаны две нейронные сети — однослойная нейронная сеть прямого распространения и двухслойная рекуррентная нейронная сеть, — управляющие движением объекта по смоделированному полю. Объект самостоятельно совершает манёвры, обходит препятствия, уклоняется от границ поля, целенаправленно выбирает призовые клетки.

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

2. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ДВИЖЕНИЯ ОБЪЕКТА

Объект перемещается по полю, которое представлено в виде дискретной сетки на плоскости размером N х М. Движение объекта ограниченно границами поля и случайно сгенерированными препятствиями в отдельных клетках. При столкновении с препятствием объект останавливается и прекращает движение. Объект может совершать ограниченное число шагов, равное 2{N х М). На поле сгенерированы «призовые» клетки, то есть клетки, которые имеют приоритет при выборе направления движения объекта. Когда объект заходит на клетку с «призом», «приз» исчезает, а его запас хода становится равен начальному 2{N х М). Призовая клетка создаётся вновь на свободной клетке поля.

Объект получает информацию об окружающих его восьми клетках: о клетках по вертикали, горизонтали и диагоналях. Объект может перемещаться на одну клетку по вертикали или горизонтали (рис. 1).

Цель управления движением объекта состоит в том, чтобы объект прошёл наибольший путь.

+ у

Рис. 1. Объектна игровом поле. Красная клетка — объект, черные клетки — препятствия, зелёные клетки — призовые

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

Границы поля имеют координаты

х = 0и х = N, Vy, у = 0 и у = М, Ух.

Перемещение объекта можно записать в следующем виде

(1)

X{ti) =X{ti-i) + x{ti)-At, 7(fi) = 7(fi_i) + y(fi)-Af,

где ti — номер хода, X{ti),Y{t{) — координаты объекта после перемещения, 1), Y{ti-1) — координаты объекта до перемещения. Время в рассматриваемой модели движения изменяется дискретно ti+1 = ti + At, At = 1, x{ti) — горизонтальная проекция, a y{ti) — вертикальная проекция скорости. Проекции скорости объекта принимают значения либо 0, либо 1 в зависимости от направления движения.

Скорость движения объекта

V{ti) = x{ti)ei + y{ti)e2, |V'(?i)| = l, Vi. (3)

Условие того, что объект не покинет поле:

[0 < X{ti) < N,

\ (4)

[0 <ҮШ<М.

Путь, пройдённый за і шагов, будет равен

S(ti) = \V(ti-1)\At + S(ti-1), (5)

S(f,0 =1.

Задача управления движением объекта состоит в том, чтобы объект прошёл максимально большой путь S{ti), не сталкиваясь с препятствиями, то есть совершил максимальное число шагов.

Объект имеет координаты (X{ti), F(i;)) и получает информацию из восьми клеток окружающих его

(X(fi) + l,7(fi)), (X(fi)-l,7(fi) + l), (X(fi),7(fi) + 1), (X(fi) + l,7(fi) + l).

Если в клетках

(X(fi),7(fi)-1), (X(fi),7(fi) + 1), (X(fi)-l,7(fi)), {X(ti) + 1, Y(ti))

обнаружено препятствие, то объекту запрещено перемещаться в их сторону.

На первом этапе исследования для управления объектом была создана однослойная нейронная сеть на основе персептрона Розеблатта. Созданная нейронная сеть имеет восемь входных нейронов по числу клеток, которые может «видеть» объект, а выходной слой — четыре нейрона, соответствующие направлениям движения (рис. 2). Данные об окружении объекта отправляются на вход в нейронную сеть. После вычислений, выполненных нейронной сетью, объект совершает некоторое действие и вновь считывает данные об окружающих клетках. При реальном использовании нейронной сети данные об окружении собираются датчиками, расположенными на объекте.

В качестве функции активации нейронов был выбран гиперболический тангенс

1-е~х

act{x) =------

1 + е х

(6)

Преимущество данной функции заключается в нелинейности функции, непрерывной области значений и непрерывной области определения

Е{х) = (-сю,+оо), D{act) = {—1,1).

Область значений функции включает в себя две ключевые подобласти: область меньше нуля и область больше нуля. Эти особенности позволяют создавать более гибкие связи между нейронами, так как значение нейрона может быть не только положительным, но и отрицательным. Такая нейронная сеть при добавлении скрытых слоёв даёт более точные ответы, но при этом усложняется обучение.

Входные Веса

данные данных

Рис. 2. Развёрнутый граф нейронной сети

Неизвестной величиной является вектор-столбец величин нейронов на выходе

V VA Л

act =

' ЫЦд ... W4>8 ' Г V\ л r t0l ' \ f vi

+ =

, W4д ... W4>8 , і < щ , і k to4 J 0j < v'4 ;

(7)

где Wij — веса нейронной сети, v\ — величина нейрона (сигнала), fiy — пороговое значение нейронов следующего слоя, пороговые значения имеют все нейроны, кроме нейронов входного слоя, индекс і означает, что данные значения принадлежат входному слою, индекс о означает, что значения принадлежат выходному слою.

Обучение нейронной сети заключается в том, что необходимо найти значение весов и пороговых значений, при которых объект совершит максимальное количество шагов. При обучении значения /у входных и выходных слоёв заданы, в качестве неизвестных выступают переменные іщ-j и tok. Веса и пороговые значения в дальнейшем будут называться просто веса.

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

Для поиска оптимальных весов нейронной сети используется генетический алгоритм (ГА) с турнирным отбором [2]. Генетический алгоритм представляет собой комбинированный подход. Механизмы скрещивания и мутации реализуют переборную часть метода, а отбор лучших решений — градиентный спуск [3].

3. МАТЕМАТИЧЕСКОЕ ОПИСАНИЕ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ОБУЧЕНИЯ НЕЙРОННОЙ СЕТИ

Рассмотрим пространство весов нейронной сети В36. В качестве целевой функции задачи оптимизации весов S(W) выберем количество шагов, сделанных объектом, где W — точка в этом пространстве.

/: S(W) —► +оо, (8)

W = {wi,...,w36}. (9)

Функция S(W) является дискретным счётчиком шагов.

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

Алгоритм представляет собой итерационный численный метод. ГА имеет преимущество над другими итерационными методами. В обычных итерационных методах осуществляется сходимость к единственному наилучшему решению. При применении генетического алгоритма ищется набор потенциальных решений, одно из которых является лучшим. При этом вероятность попасть в локальный оптимум целевой функции ниже, чем при применении обычных методов [4].

Начальная популяция размером к является набором точек в 36-мерном пространстве, где координатами точки являются веса нейронной сети:

V = {wiД,..., w4>8, w0l,..., wq4і. (10)

Для тестирования особей создаётся набор обучающих полей. В набор входят всевозможные комбинации полей размером 3 х 3, с пустой клеткой в центре и со сгенерированными на этих полях препятствиями и призами. Рассматривается все множество таких полей за исключением полей с тупиковыми ситуациями, то есть полей в которых препятствия одновременно расположены по вертикальной и горизонтальной осях относительно центра поля. Испытуемая особь помещается в центр поля и совершает один шаг. Если шаг успешный, то он засчитывается, и прибавляется к счётчику шагов. Если шаг

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

Выбираем особи, которые показали наилучший результат на обучающих полях и применяем к ним метод кроссинговера, где р — случайная величина, а Гк — пороговое значение для данного метода [5]:

Затем применяем к ним метод мутации, где р и. q — случайные величины, Гм — пороговое значение для данного метода, ас — коэффициент мутации:

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

Начальная популяция создаётся из объектов, гены которых сгенерированы случайным образом. Каждая особь последовательно запускается на все обучающие поля. При этом ведётся подсчёт сделанных шагов, количество шагов, сделанных в сторону еды, определяет число очков. Сортируем особи по шагам, где первая особь будет особь, сделавшая наибольшее число шагов. Если особей с наибольшим числом шагов больше одной, то их сортируем по количеству очков. Фиксируем первую особь, она без изменений в генах переходит в следующее поколение. Далее выбираем первые десть процентов особей и попарно применяем к ним метод кроссинговера.

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

Процесс кроссинговера применяется до тех пор, пока число особей новой популяции не будет равно числу особей предыдущей.

Ко всем особям новой популяции применяется операция мутации. Каждый ген особи, подверженной мутации, изменяется случайным образом. Если случайное число меньше или равно пороговому значению, то к гену прибавляется или вычитается коэффициент мутации, операция выбирается случайным образом, обе операции имеют одинаковую вероятность. Коэффициент мутации равен 1, и с каждым поколением уменьшается на шаг, равный 0,01, до значения 0.01. Алгоритм выполняется до тех пор, пока не будет выполнен критерий останова [2].

cross{vl,

(И)

р, Те [0,1], р, Гк є R.

(12)

р, Те [0,1], p,TMeR, q є [0,1], q є Z.

Для исследования движения объекта и эффективности его управления была написана программа MOVE_FNN на языке программирования C++. Тест программы проводился на компьютере с процессором Intel Core І5 7200u, ОЗУ 8Гб.

Было проведено десять тестов при следующих параметрах:

1. Объем популяция — 100 особей.

2. Пороговое значение для кроссинговера 0,5.

3. Пороговое значение для мутации 0,5.

4. Количество поколений — неограниченно.

5. Требуемая точность 0,999.

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

ЗАіФАі+пІ2, і = 1,...,п, 2^n^h-w. (13)

где At — точка с координатами (X/, У/), і — номер хода, h,w — натуральные числа, обозначающие высоту и ширину поля. Второй этап — когда нейронная сеть принимает одни и те же решения, вследствие чего объект ходит по одному и тому же маршруту:

V/ = 1,...,л/2, Ai = Ai+ni2, 2^n^h-w. (14)

Эта проблема возникает из-за того, что нейронная сеть обрабатывает каждый ход независимо от предыдущих ходов.

Для устранения возможного зацикливания движения объекта создана рекуррентная нейронная сеть (РНС), которая использует данные двух последовательных ходов (рис. 3).

Итерация 1 2 N

Рис. 3. Взаимодействие данных в РНС между итерациями

За основу РНС взята однослойная нейронная сеть, созданная на предыдущем этапе работы. Входной и выходной слои остаются без изменений. Создаётся дополнительный скрытый слой и блок памяти. Размер скрытого слоя равен 24 нейронам, это следует из условия, что каждая клетка вокруг объекта может принимать одно из трёх значений. Блок памяти равен скрытому слою. Такая архитектура обеспечит синхронизированные последовательности входов и выходов во время движения объекта на поле [6].

Входной слой нейронной сети — это вектор-столбец, размер которого равен восьми. Он полносвязно соединён со скрытым слоем. Скрытый слой — это вектор-столбец, который равен двадцати четырём нейронам. Он соединён с блоком памяти и полносвязно с выходным слоем. Блок памяти — это вектор-столбец такого же размера, что и скрытый слой. Ему передаются значения из текущего скрытого слоя без изменений, при следующем подсчёте РНС с помощью полной связи блок памяти передаёт значения в текущий скрытый слой. Выходной слой — это вектор-столбец размером, равным четырём. Полная связь реализована при помощи весов и пороговых значений [7]:

act(Wn>m х Xm>i — ТпЛ) = Хп^, (15)

где Wn>m — матрица весов текущего слоя, Хпк\ — вектор-столбец нейронов текущего слоя, Тпд — вектор-столбец пороговых значений для слоя назначения, Х'п1 — вектор-столбец нейронов слоя назначения, функция активации используется для нормализации значений:

act(Vm>m х Xm,i ~ Rm,і) = Xm ^. (16)

Для поиска оптимальных весов решается задача математического программирования, целевая функция которой — это количество шагов, сделанных объектом. Для РНС пространство весовых коэффициентов будет иметь размерность Д916.

Для нахождения оптимальных весов вновь использовался генетический алгоритм. Обучение было разделено на два этапа.

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

На втором этапе обучения используется блок памяти. Значения нейронов в блоке памяти приравниваются к нулевому вектору соответствующего размера. В качестве начальной, то есть нулевой популяции выбирается последняя популяция первого этапа. Каждая особь помещается в поле модели, и ведётся подсчёт количества шагов. Отбираются особи, совершившие наибольшее число шагов. Из лучших особей при помощи скрещивания создаётся новая популяция. К каждой особи новой популяции применяется мутация. Скрещивание и мутация применяются ко всем весам. Цикл продолжается до тех пор, пока не будет достигнут критерий останова. На рис. 4 показана структура применения ГА для обучения РНС.

Для реализации ГА были написаны программа MOVE_RNN на языке C++. Тест программы проводился на компьютере с процессором Intel Core І5 7200u, ОЗУ 8Гб.

Было проведено десять тестов, для каждого теста были выбраны параметры:

1. Популяция равна 50000.

Для первого этапа обучения

2. Пороговое значение для кроссинговера 0,5.

3. Пороговое значение для мутации 0,5.

4. Количество поколений — 50000.

5. Точность 0,999.

Для второго этапа

6. Количество поколений 100000.

Рис. 4. Структурная схема применения генетического алгоритма для создания рекуррентной нейронной оси

Данная архитектура РНС позволила решить проблему с зацикливанием ходов, однако при этом снизилась точность правильных решений. Из 10 тестов успешно были пройдены 7. Тест считается успешно пройдённым, если объект под управлением нейронной

сетью сделал шагов больше, чем четырёхкратное значение площади. Не пройдённые тесты заканчивались заходом объекта на препятствие.

Можно сделать вывод, что это происходило из-за того, что в блоке памяти РНС в ходе последовательных вычислений накапливаются значения, которые становятся шумом и мешают принять верное решение.

4. ЗАКЛЮЧЕНИЕ

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

Список литературы

1. Чернодуб А. Н., Дзюба Д. А. Обзор методов нейроуправления // Проблемы программирования. 2011. № 2. С. 79-94.

2. Классические задачи Computer Science на языке Python. СПб.: Питер, 2020. 256 с.

3. Килин Г. А., Ждановский Е. О. Преимущества использования обучения с подкреплением для обучения нейронных сетей // Материалы всероссийской научно-технической конференции «Автоматизированные системы управления и информационные технологии». Пермь, 17 мая 2018 года. Пермь: Пермский национальный исследовательский политехнический университет, 2018. Т. 1. С. 152-158.

4. Пратик Д. Искусственный интеллект с примерами на Python. СПб.: ООО «Диалектика», 2019. 448 с.

5. Николенко С. И. Тулупъев А. Л. Самообучающиеся системы. М.: МЦНМО, 2009. 288 с.

6. Николенко С., Кадурин А., Архангельская Е. Глубокое обучение. СПб.: Питер, 2018. 480 с.

7. Еудфеллоу Я., Бенджио И., Курвиллъ А. Глубокое обучение / пер. с анг. А. А. Слинкина. 2-е изд., испр. М.: ДМК Пресс, 2018. 652 с.

Поступила в редакцию 22.02.2022, окончательный вариант — 24.03.2022.

Ляхов Александр Фёдорович, кандидат физико-математических наук, доцент кафедры теоретической, компьютерной, экспериментальной механики Институт Информационных технологий, математики и механики ИНГУ, ИAlf19545@rambler.ru

Королев Денис Алексеевич, инженер-программист ООО НПП «ПРИМА»,

И corolyov1998@gmail.com

Computer tools in education, 2022

№1:5-15

http://cte.eltech.ru

doi:10.32603/2071-2340-2022-1-5-15

Controlling the Movement of an Object on a Field with Barrier Using

a Recurrent Neural Network

Lyakhov A. F.1, PhD, Associate Professor, И Alf19545@rambler.ru Korolev D. A.2, Software Engineer, El corolyov1998@gmail.com

1 Lobachevsky State University of Nizhny Novgorod, 23 Prospekt Gagarina, 603022, Nizhny Novgorod, Russia 2PRIMA Research & Production Enterprise, LLC, 1Zh, Sormovskoye Shosse, 603950, Nizhny Novgorod, Russia

Abstract

Consider control model recurrent neural network moving object on a field with barrier using a recurrent neural network. Via genetic algorithm create two neural network different complexity. For each neural network describe algorithm reinforcement learning. Comparison of the effectiveness of their work.

Keywords: neural network, reinforcement learning, genetic algorithm, movement object, artificial intelligence.

Citation: A. F. Lyakhov and D. A. Korolev, "Controlling the Movement of an Object on a Field with Barrier Using a Recurrent Neural Network," Computer tools in education, no. 1, pp. 5-15, 2022 (in Russian); doi: 10.32603/2071-2340-2022-1-5-15

References

1. A. N. Chernodub and D. A. Dzyuba, “Review of neurocontrol methods,” Problemy programmirovaniya, no. 2, pp. 79-94, 2011 (in Russian).

2. D. Kopec, Classic Computer Science Problems in Python, St. Petersburg, Russia: Piter, 2020 (in Russian).

3. G. A. Kilin and E. O. Zhdanovsky, “Benefits of using reinforcement learning for training neural networks,” in Proc. Review of Automated control systems and information technologies neurocontrol methods, Perm, Russia, 17 May 2018, Perm, Russia: Perm National Research Polytechnic University, vol. 1, 2018, pp. 152-158 (in Russian).

4. J. Prateek, Artificial intelligence with Python, St. Petersburg, Russia: OOO "Dialektika 2019 (in Russian).

5. S. I. Nikolenko and A. L. Tulup’ev, Self-learning systems, Moscow: MCCME, 2009 (in Russian).

6. S. Nikolenko, A. Kadurin, and E. Arkhangelskaya, Deep learning, St. Petersburg, Russia: Piter, 2018 (in Russian).

7. I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning, Moscow: DMK Press, 2018 (in Russian).

Received 22-02-2022, the final version — 24-03-2022.

Alexander Lyakhov, PhD, Associate Professor, Institute of Information Technologies, Mathematics and Mechanics Department of Theoretical, Computer, Experimental Mechanics, Lobachevsky State University of Nizhny Novgorod, El Alf19545@rambler.ru

Denis Korolev, Software Engineer PRIMA RPE LLC, E corolyov1998@gmail.com

АЛГОРИТМИЧЕСКАЯ МАТЕМАТИКА И МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

15

i Надоели баннеры? Вы всегда можете отключить рекламу.