НачатьНачать бесплатно

Выбор действия в REINFORCE

Реализуйте функцию select_action для алгоритма REINFORCE — она будет использоваться агентом для выбора действия на каждом шаге.

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

В вашем окружении уже загружены сеть политики и состояние.

torch.distributions.Categorical импортирован как Categorical.

Это упражнение является частью курса

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

Посмотреть курс

Инструкции к упражнению

  • Получите вероятности действий в виде тензора torch.
  • Получите распределение torch, соответствующее вероятностям действий.
  • Выполните выборку действия из этого распределения.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

def select_action(policy_network, state):
  # Obtain the action probabilities
  action_probs = ____
  print('Action probabilities:', action_probs)
  # Instantiate the action distribution
  action_dist = Categorical(____)
  # Sample an action from the distribution
  action = ____
  log_prob = action_dist.log_prob(action)
  return action.item(), log_prob.reshape(1)

state = torch.rand(8)
action, log_prob = select_action(policy_network, state)
print('Sampled action index:', action)
print(f'Log probability of sampled action: {log_prob.item():.2f}')
Редактировать и запускать код