Utilisation des distributions discrètes
Vous allez bientôt travailler avec des politiques stochastiques : des politiques qui représentent le comportement de l'agent dans un état donné sous forme de distribution de probabilité sur les actions.
PyTorch peut représenter des distributions discrètes à l'aide de la classe torch.distributions.Categorical, que vous allez maintenant tester.
Vous constaterez qu'il n'est en réalité pas nécessaire que les nombres utilisés comme données d'entrée totalisent 1, comme c'est le cas pour les probabilités ; ils sont normalisés automatiquement.
Cet exercice fait partie du cours
Apprentissage par renforcement profond en Python
Instructions
- Instancier la distribution de probabilité catégorielle.
- Veuillez prélever un échantillon de la distribution.
- Veuillez indiquer trois nombres positifs dont la somme est égale à 1, qui représenteront les probabilités.
- Veuillez indiquer cinq nombres positifs ; Categorical les normalisera silencieusement pour obtenir des probabilités.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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, ____, ____, ____, ____])