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 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, ____, ____, ____, ____])