Zacznij terazZacznij za darmo

Wybór akcji w algorytmie REINFORCE

Zaimplementuj funkcję select_action dla algorytmu REINFORCE – będzie ona używana przez agenta do wyboru akcji na każdym kroku.

W DQN przejście w przód przez sieć zwracało wartości Q; w REINFORCE zwraca prawdopodobieństwa akcji, z których można bezpośrednio próbkować akcję.

Sieć polityki (ang. policy network) oraz stan środowiska zostały już załadowane do twojego środowiska.

torch.distributions.Categorical został zaimportowany jako Categorical.

To ćwiczenie jest częścią kursu

Głębokie uczenie ze wzmocnieniem w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Oblicz prawdopodobieństwa akcji w postaci tensora torch.
  • Utwórz rozkład torch odpowiadający tym prawdopodobieństwom akcji.
  • Wylosuj akcję z tego rozkładu.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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}')
Edytuj i uruchom kod