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
Instrucciones del 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
Prueba este ejercicio y completa el 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, ____, ____, ____, ____])