Travailler avec des distributions discrètes
Vous allez bientôt travailler avec des politiques stochastiques : des politiques qui représentent le comportement de l'agent, pour un état donné, par une distribution de probabilité sur les actions.
PyTorch peut représenter des distributions discrètes à l'aide de la classe torch.distributions.Categorical, avec laquelle vous ferez maintenant des essais.
Vous verrez qu'il n'est en fait pas nécessaire que les nombres fournis en entrée totalisent 1, comme des probabilités ; ils sont normalisés automatiquement.
Cette activité fait partie du cours
Deep Reinforcement Learning en Python
Instructions de l’exercice
- Instanciez la distribution de probabilité catégorielle.
- Prélevez un échantillon à partir de la distribution.
- Indiquez 3 nombres positifs dont la somme est 1, pour servir de probabilités.
- Indiquez 5 nombres positifs ; Categorical les normalisera automatiquement pour obtenir des probabilités.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
from torch.distributions import Categorical
def sample_from_distribution(probs):
print(f"\nInput: {probs}")
probs = torch.tensor(probs, dtype=torch.float32)
# Instantiate the categorical distribution
dist = ____(probs)
# Take one sample from the distribution
sampled_index = ____
print(f"Taking one sample: index {sampled_index}, with associated probability {dist.probs[sampled_index]:.2f}")
# Specify 3 positive numbers summing to 1
sample_from_distribution([.3, ____, ____])
# Specify 5 positive numbers that do not sum to 1
sample_from_distribution([2, ____, ____, ____, ____])