CommencerCommencer gratuitement

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

Afficher le cours

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