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
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}')