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

(Если вы еще не читали их, вот ссылки на первое и второе руководства из этой серии. Каждое руководство основано на последнем, поэтому, если вы новичок в обучении с подкреплением, я предлагаю прочитать их в хронологическом порядке.)

Что такое модель и зачем ее использовать? В этом случае модель будет нейронной сетью, которая пытается изучить динамику реальной среды. Например, в CartPole мы хотели бы, чтобы модель могла предсказывать следующую позицию корзины с учетом предыдущей позиции и действия. Изучая точную модель, мы можем обучать нашего агента, используя модель, вместо того, чтобы каждый раз использовать реальную среду. Хотя это может показаться менее полезным, когда реальная среда сама по себе является симуляцией, как в нашей задаче CartPole, она может иметь огромные преимущества при попытке изучить политики для действий в физическом мире.

В отличие от компьютерного моделирования, для навигации по физическим средам требуется время, а физические правила мира не позволяют реализовать такие вещи, как простой сброс среды. Вместо этого мы можем сэкономить время и энергию, построив модель окружающей среды. С такой моделью агент может «вообразить», каково это, перемещаться по реальной среде, и мы можем тренировать политику на этой воображаемой среде в дополнение к реальной. Если бы нам была предоставлена ​​достаточно хорошая модель среды, агент мог бы быть обучен полностью на этой модели и даже хорошо работать при первом размещении в реальной среде.

Как мы собираемся добиться этого в Tensorflow? Как я упоминал выше, мы собираемся использовать нейронную сеть, которая будет изучать динамику перехода между предыдущим наблюдением и действием, а также ожидаемым новым наблюдением, вознаграждением и состоянием готовности. Наша процедура обучения будет включать переключение между обучением нашей модели с использованием реальной среды и обучением политики нашего агента с использованием модельной среды. Используя этот подход, мы сможем изучить политику, которая позволяет нашему агенту решать задачу CartPole, фактически никогда не обучая политику в реальной среде! Прочтите записную книжку iPython ниже, чтобы узнать, как это делается.

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

Если этот пост был для вас ценным, рассмотрите возможность пожертвовать, чтобы помочь в поддержке будущих руководств, статей и реализаций. Любой вклад приветствуется!

Если вы хотите следить за моей работой в области глубокого обучения, искусственного интеллекта и когнитивной науки, подписывайтесь на меня на Medium @ Arthur Juliani или в твиттере @awjliani.

Еще из моей серии "Простое обучение с подкреплением с помощью Tensorflow":

  1. Часть 0 - Агенты Q-Learning
  2. Часть 1 - Двуручный бандит
  3. Часть 1.5 - Контекстные бандиты
  4. Часть 2 - Агенты на основе политик
  5. Часть 3. RL на основе модели
  6. Часть 4 - Глубокие Q-сети и не только
  7. Часть 5 - Визуализация мыслей и действий агента
  8. Часть 6 - Частичная наблюдаемость и глубокие рекуррентные Q-сети
  9. Часть 7. Стратегии выбора действий для исследования
  10. Часть 8 - Асинхронные действующие и критические агенты (A3C)

Если вы хотите следить за моей работой в области глубокого обучения, искусственного интеллекта и когнитивной науки, подписывайтесь на меня на Medium @ Arthur Juliani или в твиттере @awjliani.