CommencezCommencez gratuitement

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

Voir le cours

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, ____, ____, ____, ____])
Modifier et exécuter le code