предисловие
Doom, шутер от первого лица, разработанный ID Software, является пионером шутеров от первого лица. ViZDoom — это исследовательская платформа искусственного интеллекта, основанная на играх Doom, в основном для исследований в области глубокого обучения с подкреплением. Платформа ViZDoom позволяет ИИ-ботам использовать информацию об игровом изображении для сражений.Отличие от традиционных встроенных игровых ботов заключается в том, что традиционные встроенные игровые боты знают информацию обо всей игре. Игровая информация, получаемая агентом на основе искусственного интеллекта, такая же, как и у человека, и ему необходимо постоянно исследовать карту и выполнять соответствующие действия. В этом разделе в основном представлены две сцены в ViZDoom: сцена стрельбы с использованием алгоритма глубокого Q-обучения; сцена сбора аптечки с использованием политики. Алгоритм градиентов. Два сценария показаны ниже:
В сцене стрельбы монстры случайным образом появляются на одном конце интерфейса, и у агента есть три действия: движение влево, вправо и стрельба.Монстр будет убит, если в него попадут один раз. Игра заканчивается, когда монстр убит или монстр не был убит после 100 действий. При убийстве монстра агент получает 101 бонусное очко, при выполнении стрельбы монстр не поражен, агент получает награду -5 очков, при выполнении левого или правого действия монстр еще жив, агент Получите награду -1 очко.
В сцене сбора аптечки вся карта прямоугольная, а земля представляет собой кислотную едкую жидкость, которая периодически будет разъедать здоровье агента. По карте разбросано несколько аптечек, и время от времени появляются новые. Чтобы выжить на карте, агенту необходимо собирать аптечки и восстанавливать здоровье. Когда агент умирает или время истекло, игра окончена. У агента есть три действия: влево, вправо и вперед. После каждого действия, если агент выживает, он получает 1 бонусное очко, а если погибает, то получает 100 штрафных очков.
Эта статья в основном основана на двух сценариях в ViZDoom, объясняя основную идею обучения с подкреплением, алгоритм Q-Learning, как алгоритм Deep Q-Learning применяется к сцене стрельбы и как алгоритм Policy Gradient применяется к сцене. сцена сбора аптечек.
обучение с подкреплением
Обучение с подкреплением является важной ветвью машинного обучения и широко используется в игровых играх, управлении роботами, автоматическом вождении, диалоге между человеком и машиной, планировании оптимизации и других областях. В настоящее время обычно используемые алгоритмы глубокого обучения с подкреплением в основном включают глубокое Q-обучение, градиенты политики, критику актера и PPO (оптимизация проксимальной политики). Основная идея обучения с подкреплением заключается в том, что в среде агент (агент) непрерывно взаимодействует с окружающей средой, выполняет различные действия, а затем получает соответствующие вознаграждения. Таким образом, в процессе непрерывных попыток агент усваивает оптимальную стратегию выполнения цели, тем самым получая наивысшее кумулятивное вознаграждение.
Основными элементами, включенными в архитектуру обучения с подкреплением, являются: агент, среда (env), состояние (state), действие (action) и вознаграждение (reward). Следующее:
Среда (env) на картинке выше — это классическая игра Super Mario; агента (agent) можно рассматривать как робота с ИИ, который постоянно пытается играть в эту игру, чтобы реализовать самоэволюцию агента; состояние ( состояние) — это информация о положении агента (Super Mario Bros) в игровом интерфейсе в определенный момент времени, которую можно рассматривать как снимок экрана игрового интерфейса; действие — это действие, предпринятое агентом в соответствии с информацией о текущем состоянии, например как указано выше, Вниз, влево, вправо, прыжок, что эквивалентно взаимодействию между агентом и окружающей средой; когда агент завершает действие, агент перейдет из текущего состояния в следующее состояние, то есть в следующее кадр игры; наградой является счет, полученный агентом после выполнения действия.Например, после выполнения действия вперед, если агент не умирает, счет увеличивается на 1. Основная идея обучения с подкреплением заключается в том, что агент может максимизировать ожидаемое совокупное вознаграждение, которое можно выразить как:
Q-Learning
Q Learning в основном использует Q Table для записи ожидаемого вознаграждения в будущем после выполнения различных действий в состоянии s. Следующее:
Среди них каждый квадратик на рисунке представляет состояние агента, всего 5*5=20 состояний, и соответствующий агент в каждом состоянии может выполнять 4 действия, перемещаясь вверх, вниз, влево и вправо, если он 0, это означает, что его нельзя перемещать. Таким образом, в соответствии с состоянием и действием может быть сгенерирована таблица Q-Table, и оценка в каждой ячейке представляет собой меру, которая дает максимальное ожидаемое вознаграждение после выполнения соответствующего действия над состоянием. 4 столбца в таблице представляют перемещение влево, вправо, вверх и вниз соответственно; каждая строка в таблице представляет состояние агента. В соответствии с игрой с поеданием сыра мышью, упомянутой в предыдущем разделе, после создания Q-таблицы выберите строку, соответствующую состоянию и действию с наибольшим количеством очков. Основная цель алгоритма Q-Learning состоит в том, чтобы иметь возможность изучить Q-функцию следующим образом:
Q-функция принимает состояние и действие в качестве входных параметров и возвращает ожидаемое совокупное вознаграждение, соответствующее входному состоянию. Алгоритм Q-Learning получает функцию Q путем итеративной оптимизации таблицы Q. Процесс обучения алгоритма выглядит следующим образом:
Deep Q-Learning
Алгоритм Q-Learning в основном изучает оптимизированную Q-функцию, постоянно обновляя Q-Table. Однако для больших пространств состояний агентов, таких как Go, стрелялки, сложно определить и обновить 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 на основе способа воспроизведения опыта и вознаграждения за текущее действие.
__Tue Jun 26 2018 10:30:17 GMT+0800 (CST)____Tue Jun 26 2018 10:30:17 GMT+0800 (CST)__# 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))__Tue Jun 26 2018 10:30:17 GMT+0800 (CST)____Tue Jun 26 2018 10:30:17 GMT+0800 (CST)__
Policy Gradient
Deep Q-Learning — это алгоритм подкрепления, основанный на ценностях, тогда как Policy Gradients — это алгоритм подкрепления, основанный на политике.Цель состоит в том, чтобы изучить функцию политики уравнения политики и напрямую реализовать сопоставление состояния агента с действием.Оптимизация целью является уравнение политики π. В обучении с подкреплением есть два типа политик: детерминированные и стохастические. Детерминированная стратегия используется в детерминированной среде, и агент имеет детерминированный вывод после выполнения действия; случайная стратегия заключается в выводе распределения вероятностей выбора агентом различных действий в текущем состоянии, и в основном используется случайная стратегия. для недетерминированности окружения.
Существует три основных преимущества использования алгоритма градиента политики. Во-первых, алгоритм градиента политики имеет лучшую сходимость. Алгоритм градиента политики будет обновлять параметры в уравнении политики в направлении градиента. Обновление параметра стабильно при каждой итерации, и сходимость алгоритма будет сравниваться хорошо. Во-вторых: алгоритм градиента политики более эффективен в многомерном пространстве действий.Градиент политики будет напрямую выводить действие, которое должно быть выполнено, в соответствии с состоянием агента, без вычисления значения Q. Третье: алгоритм градиента политики может быть адаптирован к недетерминированным средам.
Основная идея алгоритма градиента политики состоит в том, чтобы изменить распределение вероятностей политики путем оптимизации θ, чтобы агент мог получить высокое ожидаемое вознаграждение.Метод оптимизации заключается в следующем:
Метод предварительной обработки данных для сцены сбора аптечки аналогичен сцене стрельбы, а структура модели следующая:
__Tue Jun 26 2018 10:30:17 GMT+0800 (CST)____Tue Jun 26 2018 10:30:17 GMT+0800 (CST)__#与射击场景的模型的差异在于,输出为该状态下执行action的概率分布,如下所示:
self.action_distribution = tf.nn.softmax(self.logits)
#损失函数计算如下所示,其中,discounted_episode_rewards_为该状态下的累积奖励,logits为模型输出的logist值,actions为对应状态下选择执行的行动。
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_)__Tue Jun 26 2018 10:30:17 GMT+0800 (CST)____Tue Jun 26 2018 10:30:17 GMT+0800 (CST)__
Суммировать
В этом документе впервые представлена ViZDoom, исследовательская платформа искусственного интеллекта для игр Doom, включая сцены стрельбы и сцены сбора медицинских комплектов; в нем представлены основные идеи обучения с подкреплением, включая агентов, среду, состояния, действия и награды. Затем он объяснил три часто используемых алгоритма обучения с подкреплением: Q-Learning, Deep Q-Learning, Policy Gradient; применение Deep Q-Learning в сценах съемки; применение Policy Gradient в сценах сбора аптечек. Пользователи могут применять обучение с подкреплением к связанным сценариям в промышленных областях, таких как игровые игры, управление роботами, автоматическое вождение, диалог человек-машина и оптимальное планирование.
Ссылаться налитература
[1] Саймон INI Thomas.GitHub.IO/deep_Re info….
об авторе
У Вэй(WeChat: allawnweiwu): доктор философии, сейчас архитектор IBM. В основном занимается платформой глубокого обучения и исследованиями приложений, исследованиями и разработками в области больших данных.