ComenzarEmpieza gratis

Trabajar con distribuciones discretas

Pronto vas a trabajar con políticas estocásticas: políticas que representan el comportamiento del agente en un estado dado como una distribución de probabilidad sobre las acciones.

PyTorch puede representar distribuciones discretas utilizando la clase torch.distributions.Categorical, con la que ahora experimentarás.

Verás que en realidad no es necesario que los números utilizados como entrada sumen 1, como hacen las probabilidades; se normalizan automáticamente.

Este ejercicio forma parte del curso

Aprendizaje profundo por refuerzo en Python

Ver curso

Instrucciones de ejercicio

  • Instanciar la distribución de probabilidad categórica.
  • Toma una muestra de la distribución.
  • Especifica 3 números positivos que sumen 1, para que actúen como probabilidades.
  • Especifica 5 números positivos; Categórico los normalizará silenciosamente para obtener las probabilidades.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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 y ejecutar código