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

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

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

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

Важные термины:

  1. Агент:Агент — это тот, кто будет выполнять действия, в нашем примере собака.
  2. Окружающая среда: это место, где агент будет выполнять различные действия, и окружающая среда реагирует на это, в нашем примере это спальня.
  3. Действие. Возможные действия, которые агент может совершить в заданной среде. В нашем примере разорвать подушкуи не разорвать подушку.
  4. Состояние: полная конфигурация системы в данный момент времени, т. е. агент + среда, состояние изменяется в зависимости от различных факторов, в основном связанных с действиями агента.
  5. Награда: обратная связь, которая предоставляется агенту в зависимости от предпринятых им действий. В нашем примере это наказание и игра с этим.

Техническая настройка

Без лишних слов давайте перейдем к реализации… Все началось для меня с Gym, который был предоставлен OpenAI. Gym содержит несколько сред, которые в основном используются для начала работы над RL.

Для установки Gym используйте следующую команду

pip3 установить тренажерный зал

в терминале (при условии, что вы работаете с python 3 и ubuntu)

Я начал со сред MountainCar и CartPole, но вы можете начать с любой, которая вам нравится. Вы можете найти различные среды здесь gym.openai.com/envs.

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

pip3 установить ‘тренажерный зал [все]’

Эта команда сможет решить большинство проблем, но я настоятельно рекомендую начать работу только с базовыми средами. Если вы хотите пойти дальше и столкнулись с проблемой при установке полной версии, взгляните на этот pypi.org/project/gym/0.7.4/ .

Проверка окружающей среды

Теперь мы пишем программу на Python для проверки среды. Создайте файл .py с именем и запомните, где вы сохраняете этот файл.

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

gym.make("Имя среды")

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

Исходный файл можно получить, нажав кнопку Просмотреть исходный код на GitHub, как показано ниже. Эту страницу можно увидеть после нажатия на нужную среду из различных, которые вы видели ранее (например, на gym.openai.com/envs)

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

Чтобы выполнить предоставленный код, скопируйте его и вставьте в созданный файл .py. Теперь вернитесь в терминал и выполните команду

python3 имя_файла.py

Чтобы выполнить этот код, вы должны находиться в том же каталоге, что и файл .py. Вы можете использовать команды cd для изменения каталогов.

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



В следующей части вы получите представление о том, как использовать Q-обучение, чтобы заставить агента начать обучение. Он скоро будет доступен, а пока следите за обновлениями :)