ComeçarComece gratuitamente

Trabalho com distribuições discretas

Em breve, você trabalhará com políticas estocásticas: políticas que representam o comportamento do agente em um determinado estado como uma distribuição de probabilidade sobre as ações.

O PyTorch pode representar distribuições discretas usando a classe torch.distributions.Categorical, com a qual você fará experimentos agora.

Você verá que, na verdade, não é necessário que os números usados como entrada somem 1, como acontece com as probabilidades; eles são normalizados automaticamente.

Este exercício faz parte do curso

Aprendizado por reforço profundo em Python

Ver Curso

Instruções de exercício

  • Instanciar a distribuição de probabilidade categórica.
  • Pegue uma amostra da distribuição.
  • Especifique 3 números positivos somando 1, para atuar como probabilidades.
  • Especifique 5 números positivos; o Categorical os normalizará silenciosamente para obter probabilidades.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

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, ____, ____, ____, ____])
Editar e executar código