Lucrul cu distribuții discrete
În curând vei lucra cu politici stocastice: politici care reprezintă comportamentul agentului într-o stare dată sub forma unei distribuții de probabilitate peste acțiuni.
PyTorch poate reprezenta distribuții discrete folosind clasa torch.distributions.Categorical, cu care vei experimenta acum.
Vei descoperi că, de fapt, nu este necesar ca numerele folosite ca intrare să sumeze la 1, precum probabilitățile; ele sunt normalizate automat.
Acest exercițiu face parte din cursul
Deep Reinforcement Learning în Python
Instrucțiuni pentru exercițiu
- Instanțiază distribuția de probabilitate categorială.
- Extrage un eșantion din distribuție.
- Specifică 3 numere pozitive cu suma egală cu 1, care să joace rolul probabilităților.
- Specifică 5 numere pozitive;
Categoricalle va normaliza automat pentru a obține probabilități.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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, ____, ____, ____, ____])