ÎncepețiÎncepe gratuit

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

Vezi cursul

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; Categorical le 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, ____, ____, ____, ____])
Editează și rulează codul