Zacznij terazZacznij za darmo

Praca z dyskretnym rozkładem prawdopodobieństwa

Niebawem zaczniesz pracować z politykami stochastycznymi – czyli takimi, które opisują zachowanie agenta w danym stanie jako rozkład prawdopodobieństwa po dostępnych akcjach.

PyTorch reprezentuje dyskretne rozkłady za pomocą klasy torch.distributions.Categorical, z którą teraz poeksperymentujesz.

Przekonasz się, że wartości podawane na wejściu nie muszą sumować się do 1 jak prawdopodobieństwa – są one automatycznie normalizowane.

To ćwiczenie jest częścią kursu

Głębokie uczenie ze wzmocnieniem w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz instancję kategorycznego rozkładu prawdopodobieństwa.
  • Pobierz jedną próbkę z tego rozkładu.
  • Podaj 3 dodatnie liczby sumujące się do 1, które posłużą jako prawdopodobieństwa.
  • Podaj 5 dodatnich liczb; klasa Categorical automatycznie je znormalizuje, aby uzyskać prawdopodobieństwa.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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, ____, ____, ____, ____])
Edytuj i uruchom kod