Doom — это шутер от первого лица, разработанный компанией ID Software, пионером шутеров от первого лица. ViZDoom — это исследовательская платформа искусственного интеллекта, основанная на играх Doom, в основном для исследований в области глубокого обучения с подкреплением. Платформа ViZDoom позволяет ИИ-ботам использовать информацию об игровом изображении для сражений.Отличие от традиционных встроенных игровых ботов заключается в том, что традиционные встроенные игровые боты знают информацию обо всей игре. Игровая информация, которую получает Агент на основе ИИ, такая же, как и у человека, и ему необходимо постоянно исследовать карту и выполнять соответствующие действия.
В этом разделе в основном представлены две сцены в ViZDoom: сцена стрельбы, в которой используется алгоритм глубокого Q-обучения, и сцена с коробкой с лекарствами, в которой используется алгоритм градиентов политик. Два сценария показаны ниже:
В сцене стрельбы монстры случайным образом появляются на одном конце интерфейса, и у агента есть три действия: движение влево, вправо и стрельба.Монстр будет убит, если в него попадут один раз. Игра заканчивается, когда монстр убит или монстр не был убит после 100 действий. При убийстве монстра агент получает 101 бонусное очко; при выполнении выстрела монстр не поражен, агент получает награду -5 баллов; при выполнении действия влево или вправо монстр еще жив, агент Получите бонус -1 очко.
В сцене сбора аптечки вся карта прямоугольная, а земля представляет собой кислотную едкую жидкость, которая периодически будет разъедать здоровье агента. По карте разбросано несколько аптечек, и время от времени появляются новые. Чтобы выжить на карте, агенту необходимо собирать аптечки и восстанавливать здоровье. Когда агент умирает или время истекло, игра окончена. У агента есть три действия: влево, вправо и вперед. После каждого действия агент получает 1 бонусное очко, если он выживает, и 100 штрафных очков, если он умирает.
Эта статья в основном основана на двух сценариях в ViZDoom, объясняя основную идею обучения с подкреплением, алгоритм Q-Learning, как алгоритм Deep Q-Learning применяется к сцене стрельбы и как алгоритм Policy Gradient применяется к сбор медицинских наборов.
Для более качественного контента, пожалуйста, обратите внимание на паблик WeChat "AI Frontline" (ID: ai-front)
Обучение с подкреплением является важной ветвью машинного обучения и широко используется в игровых играх, управлении роботами, автоматическом вождении, диалоге между человеком и машиной, планировании оптимизации и других областях. В настоящее время широко используемые алгоритмы глубокого обучения с подкреплением в основном включают глубокое Q-обучение, градиенты политики, критику актера и PPO (оптимизация проксимальной политики). Основная идея обучения с подкреплением заключается в том, что в среде агент (агент) непрерывно взаимодействует с окружающей средой, выполняет различные действия, а затем получает соответствующие вознаграждения. Таким образом, в процессе непрерывных попыток агент усваивает оптимальную стратегию выполнения цели, тем самым получая наивысшее совокупное вознаграждение.
Основными элементами, включенными в архитектуру обучения с подкреплением, являются: агент, среда (env), состояние (state), действие (action) и вознаграждение (reward). Следующее:
Среда (env) на картинке выше — это классическая игра Super Mario; агента (agent) можно рассматривать как робота с ИИ, который постоянно пытается играть в эту игру, чтобы реализовать самоэволюцию агента; состояние ( Состояние) — это Информация о положении агента (Super Mario Bros) в игровом интерфейсе в определенный момент времени может рассматриваться как снимок экрана игрового интерфейса; действие — это действие, предпринятое агентом в соответствии с информацией о текущем состоянии, например как указано выше, Вниз, Влево, Вправо и Прыжок эквивалентны взаимодействию между агентом и средой; когда агент завершает действие, агент переходит из текущего состояния в следующее состояние, то есть в следующий кадр игры; наградой является количество очков, полученных агентом после выполнения действия.Например, после выполнения действия вперед, если агент не умирает, счет увеличивается на 1. Основная идея обучения с подкреплением заключается в том, что агент может максимизировать ожидаемое совокупное вознаграждение, которое можно выразить как:
Q Learning в основном использует Q Table для записи ожидаемого вознаграждения в будущем после выполнения различных действий в состоянии s. Следующее:
Среди них каждый квадратик на рисунке представляет состояние агента, всего 5*5=20 состояний, и соответствующий агент в каждом состоянии может совершать 4 действия, перемещаясь вверх, вниз, влево и вправо. равен 0, это означает, что он не может быть перемещен. Таким образом, в соответствии с состоянием и действием может быть сгенерирована таблица Q-Table, и оценка в каждой ячейке представляет собой меру, которая дает максимальное ожидаемое вознаграждение после выполнения соответствующего действия над состоянием. 4 столбца в таблице представляют перемещения влево, вправо, вверх и вниз соответственно; каждая строка в таблице представляет состояние агента. В соответствии с игрой с поеданием сыра мышью, упомянутой в предыдущем разделе, после создания Q-таблицы выберите строку, соответствующую состоянию и действию с наибольшим количеством очков. Основная цель алгоритма Q-Learning состоит в том, чтобы иметь возможность изучить Q-функцию следующим образом:
Q-функция принимает состояние и действие в качестве входных параметров и возвращает ожидаемое совокупное вознаграждение, соответствующее входному состоянию. Алгоритм Q-Learning получает функцию Q путем итеративной оптимизации таблицы Q. Процесс обучения алгоритма выглядит следующим образом:
Алгоритм Q-Learning в основном изучает оптимизированную Q-функцию, постоянно обновляя Q-Table. Однако для больших пространств состояний агентов, таких как го и стрелялки, сложно определить и обновить Q-Table, и алгоритм Q-Learning не будет работать. Алгоритм Deep Q-Learning может аппроксимировать значение Q-Value после выполнения действия в состоянии агента с помощью алгоритма нейронной сети. Следующее:
Среди них входом Deep Q является информация о состоянии, которая может быть серией изображений, а выходом является ожидание значения Q после выполнения различных действий. Чтобы лучше использовать наблюдаемые данные об опыте, при обучении DQN часто используется механизм воспроизведения опыта.Механизм воспроизведения опыта может в основном решать две проблемы: одна - не допустить, чтобы сеть забыла ранее изученную информацию об опыте, а другая это нейронная сеть. Обучающие данные сети распространяются независимо, в то время как данные, генерируемые обучением с подкреплением, обычно сериализуются, и эта последовательная структура может быть нарушена с помощью механизма воспроизведения опыта. Механизм воспроизведения опыта следующий:
Среди них строится структура данных ReplyBuffer, и информация (s, a, r, s') взаимодействия между агентом и средой помещается в буфер, а затем случайным образом отбираются обучающие данные пакета и вход в сеть DQN. Цель оптимизации DQN заключается в следующем:
В сцене съемки предварительная обработка данных выглядит следующим образом:
Среди них сначала считывается изображение игрового интерфейса, чтобы уменьшить размер обучающих данных, изображение игры преобразуется в изображение в градациях серого размером 84 * 84 после предварительной обработки изображения; затем, чтобы справиться с изменениями времени. состояния агента, такого как направление движения, сложите четыре предварительно обработанных изображения, чтобы сформировать обучающие данные 84 * 84 * 4. Структура сетевой модели Deep Q-learning, используемая в сцене съемки, показана на следующем рисунке:
Среди них используются три сверточные сети, и размер каждого слоя сверточных признаков составляет 20 * 20 * 32, 9 * 9 * 64, 3 * 3 * 128; затем, после полного слоя связи, окончательный вывод выполняет каждое действие. Значение Q после действия. Метод расчета функции потерь заключается в следующем, в котором Qtarget может быть рассчитан путем обновления значения Q в Q-leaning на основе способа воспроизведения опыта и вознаграждения за текущее действие.
# Q is our predicted Q value.
self.Q = tf.reduce_sum(tf.multiply(self.output, self.actions_), axis=1)
# The loss is the difference between our predicted Q_values and the Q_target
# Sum(Qtarget - Q)^2
self.loss = tf.reduce_mean(tf.square(self.target_Q - self.Q))
Deep Q-Learning — это алгоритм подкрепления, основанный на ценностях, тогда как Policy Gradients — это алгоритм подкрепления, основанный на политике.Цель состоит в том, чтобы изучить функцию политики уравнения политики и непосредственно реализовать сопоставление состояния агента с действием.Оптимизация целью является уравнение политики π. В обучении с подкреплением есть два типа политик: детерминированные и стохастические. Детерминированная стратегия используется в детерминированной среде, и агент имеет детерминированный вывод после выполнения действия; случайная стратегия заключается в выводе распределения вероятностей выбора агентом различных действий в текущем состоянии, и в основном используется случайная стратегия. для недетерминированности окружения.
Существует три основных преимущества использования алгоритма градиента политики. Во-первых, алгоритм градиента политики имеет хорошую сходимость. Алгоритм градиента политики будет обновлять параметры в уравнении политики в направлении градиента. Обновление параметра стабильно при каждой итерации, и сходимость алгоритма будет относительно хорошей. Во-вторых: алгоритм градиента политики более эффективен в многомерном пространстве действий.Градиент политики будет напрямую выводить действие, которое должно быть выполнено, в соответствии с состоянием агента, без вычисления значения Q. Третье: алгоритм градиента политики может быть адаптирован к недетерминированным средам.
Основная идея алгоритма градиента политики состоит в том, чтобы изменить распределение вероятностей политики путем оптимизации θ, чтобы агент мог получить высокое ожидаемое вознаграждение.Метод оптимизации заключается в следующем:
Метод предварительной обработки данных для сцены сбора аптечки аналогичен сцене стрельбы, а структура модели следующая:
Отличие от модели сцены стрельбы в том, что на выходе получается распределение вероятностей действия, совершаемого в этом состоянии, следующим образом:
self.action_distribution = tf.nn.softmax(self.logits)
Вычисление функции потерь выглядит следующим образом, где Discounted_episode_rewards_ — это кумулятивное вознаграждение в этом состоянии, логиты — это логарифмическое значение, выводимое моделью, а действия — это действия, выбранные для выполнения в соответствующем состоянии.
self.neg_log_prob = tf.nn.softmax_cross_entropy_with_logits_v2(logits = self.logits, labels = self.actions)
self.loss = tf.reduce_mean(self.neg_log_prob * self.discounted_episode_rewards_)
В этом документе впервые представлена ViZDoom, исследовательская платформа искусственного интеллекта для игр Doom, включая сцены стрельбы и сцены сбора медицинских комплектов; в нем представлены основные идеи обучения с подкреплением, включая агентов, среду, состояния, действия и награды. Затем объясняются три алгоритма, обычно используемые в обучении с подкреплением: Q-Learning, Deep Q-Learning и Gradient Policy; Deep Q-Learning применяется в сценариях стрельбы; а Gradient Policy применяется в сценариях сбора медицинских сумок. Пользователи могут применять обучение с подкреплением к соответствующим сценариям в промышленных областях, таких как игровые игры, управление роботами, автоматическое вождение, диалог между человеком и машиной и оптимальное планирование.
использованная литература
[1] https://simoninithomas.github.io/Deep_reinforcement_learning_Course.