Výběr akce v algoritmu REINFORCE
Napiš funkci select_action pro algoritmus REINFORCE, kterou bude tvůj agent používat k výběru akce v každém kroku.
Zatímco v DQN vracel dopředný průchod sítě Q-hodnoty, v algoritmu REINFORCE vrací pravděpodobnosti akcí, ze kterých lze akci přímo vzorkovat.
V prostředí máš načtenou policy network a stav.
torch.distributions.Categorical byl importován jako Categorical.
Toto cvičení je součástí kurzu
Deep Reinforcement Learning v Pythonu
Pokyny k cvičení
- Získej pravděpodobnosti akcí jako torch tensor.
- Získej torch rozdělení (Distribution) odpovídající pravděpodobnostem akcí.
- Vzorkuj akci z tohoto rozdělení.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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}')