Если только он не бежит к вам, то за бегом гепарда приятно наблюдать. Было бы здорово, если бы вы могли написать код, который заставляет гепарда учиться бегать? На самом деле это не так сложно, я покажу вам это, объяснив основной принцип. Как только вы уловите суть, вы сможете легко прочитать остальную часть кода.

Давайте сначала начнем с основ обучения с подкреплением.

  • Обучение с подкреплением позволяет машинам (или программным агентам) автоматически определять идеальное поведение в конкретном контексте, чтобы максимизировать общее вознаграждение.
  • Чтобы агент узнал о своем поведении, требуется простая обратная связь с вознаграждением; это называется сигналом подкрепления.

Есть много замечательных статей, в которых объясняются различные алгоритмы обучения с подкреплением. Мы бы использовали Deep Deterministic Policy Gradients или DDGP для обучения нашего Cheetah. Я бы порекомендовал читателю эту статью для общего понимания RL и DDGP.

Короче говоря, Actor Network пытается предсказать наилучшее действие на основе состояния, в то время как Critic Network предсказывает основу того, что хорошо, а что плохо, то есть Q-value.

Значение Q (s, t) определяет общую дисконтированную будущую награду для пары текущего состояния и действия. Критик пытается узнать это значение, удовлетворяя уравнение Беллмана:

Q (s, a) = r + 𝛾Q (s ’, a’), где s ’- следующее состояние после s, а a’ - следующее действие.

Гиперпараметры DDGP

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

  1. γ (Гамма): коэффициент дисконтирования, который определяет степень важности будущих вознаграждений по сравнению с настоящим.
  2. Количество шагов развертывания: количество шагов, после которых сети обучаются на K шагов поезда. Это шаги, разрешенные для случайного накопления опыта исследования.
  3. Стандартное отклонение шума действия: Мы используем процесс Орнштейна-Уленбека для добавления шума действия, который подходит для систем с инерцией. Изменяя отклонение, мы меняем степень разведки.
  4. Количество шагов обучения: мы обучаем параметры Актера и Критика для K количества шагов после шагов исследования.

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

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