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