Введение в метод градиента политики

Глубокое обучение с подкреплением на Python

Timothée Carayol

Principal Machine Learning Engineer, Komment

Введение в методы политики в глубоком обучении с подкреплением

 

Q-обучение:

  • Обучение функции ценности действий Q

Q-сеть: на входе — состояние, на выходе — ценности действий

  • Политика: выбор действия с наибольшей ценностью

 

Обучение политике:

  • Прямое обучение политике

Сеть политики: на входе — состояние, на выходе — вероятности действий

Глубокое обучение с подкреплением на Python

Обучение политике

 

  • Может быть стохастической
  • Работает в непрерывных пространствах
  • Прямая оптимизация целевой функции
  • Высокая дисперсия
  • Низкая выборочная эффективность

 

  • В Deep-Q-обучении политики детерминированы

 

$\pi_\theta(a_t | s_t)$:

  • Распределение вероятностей для $a_t$ в состоянии $s_t$, где:
    • $a_t$, $s_t$: действие и состояние на шаге $t$
    • $\theta$: параметры политики (веса сети)
Глубокое обучение с подкреплением на Python

Сеть политики (дискретные действия)

class PolicyNetwork(nn.Module):
  def __init__(self, state_size, action_size):
    super(PolicyNetwork, self).__init__()
    self.fc1 = nn.Linear(state_size, 64)
    self.fc2 = nn.Linear(64, 64)
    self.fc3 = nn.Linear(64, action_size)

  def forward(self, state):
    x = torch.relu(self.fc1(torch.tensor(state)))
    x = torch.relu(self.fc2(x))
    action_probs = torch.softmax(self.fc3(x), dim=-1)
    return action_probs

action_probs = policy_network(state) print('Action probabilities:', action_probs)
Action probabilities: tensor([0.21, 0.02, 0.74, 0.03])

Таблица с четырьмя возможными действиями: их индексами и вероятностями. Действие «вверх» — индекс 0, вероятность 0.21; «вправо» — индекс 1, вероятность 0.02; «вниз» — индекс 2, вероятность 0.74; «влево» — индекс 3, вероятность 0.03.

action_dist = (
    torch.distributions.Categorical(action_probs))

action = action_dist.sample()
Глубокое обучение с подкреплением на Python

Целевая функция

 

  • Политика должна максимизировать ожидаемую награду

    • Предполагается, что агент следует $\pi_\theta$
    • Путём оптимизации параметра политики $\theta$
  • Целевая функция:

Уравнение: J(pi theta) = математическое ожидание по траекториям tau, следующим pi theta, величины R_tau, где R_tau — накопленная награда за эпизод

 

  • Для максимизации $J$ необходим градиент по $\theta$:

Градиент J(pi_theta) по theta

Глубокое обучение с подкреплением на Python

Целевая функция

 

  • Политика должна максимизировать ожидаемую награду

    • Предполагается, что агент следует $\pi_\theta$
    • Путём оптимизации параметра политики $\theta$
  • Целевая функция:

Определение J(pi theta), как на предыдущем слайде

 

  • Для максимизации $J$ необходим градиент по $\theta$:

Градиент J(pi_theta) по theta называется градиентом политики

Глубокое обучение с подкреплением на Python

Теорема о градиенте политики

 

  • Даёт вычислимое выражение для $\nabla_\theta J(\pi_\theta)$
  • Математическое ожидание по траекториям, следующим $\pi_\theta$
    • Собираем траектории и наблюдаем накопленные награды

 

Теорема о градиенте политики: градиент J(pi_theta) по theta равен математическому ожиданию по траекториям tau, следующим pi_theta, от...

Глубокое обучение с подкреплением на Python

Теорема о градиенте политики

 

  • Даёт вычислимое выражение для $\nabla_\theta J(\pi_\theta)$
  • Математическое ожидание по траекториям, следующим $\pi_\theta$
    • Собираем траектории и наблюдаем накопленные награды
  • Для каждой траектории: учитываем награду $R_\tau$

 

Теорема о градиенте политики: градиент J(pi_theta) по theta равен математическому ожиданию по траекториям tau, следующим pi_theta, произведения накопленной награды за эпизод на...

Глубокое обучение с подкреплением на Python

Теорема о градиенте политики

 

  • Даёт вычислимое выражение для $\nabla_\theta J(\pi_\theta)$
  • Математическое ожидание по траекториям, следующим $\pi_\theta$
    • Собираем траектории и наблюдаем накопленные награды
  • Для каждой траектории: учитываем награду $R_\tau$
  • Умножаем на сумму градиентов логарифмических вероятностей выбранных действий
  • Интуиция: сдвигаем theta так, чтобы повысить вероятность всех действий из «удачного» эпизода

 

Теорема о градиенте политики: градиент J(pi_theta) по theta равен математическому ожиданию по траекториям tau, следующим pi_theta, произведения накопленной награды за эпизод на сумму градиентов логарифмических вероятностей действий по всем действиям в траектории.

Глубокое обучение с подкреплением на Python

 

Анимация игры в Pong

Глубокое обучение с подкреплением на Python

Давайте потренируемся!

Глубокое обучение с подкреплением на Python

Preparing Video For Download...