Werken met discrete verdelingen
Je gaat straks werken met stochastische policies: policies die het gedrag van de agent in een gegeven staat weergeven als een kansverdeling over acties.
PyTorch kan discrete verdelingen representeren met de klasse torch.distributions.Categorical, waar je nu mee gaat experimenteren.
Je zult zien dat het niet nodig is dat de getallen die je als invoer gebruikt optellen tot 1, zoals kansen dat doen; ze worden automatisch genormaliseerd.
Deze oefening maakt deel uit van de cursus
Deep Reinforcement Learning in Python
Oefeninstructies
- Maak een instantie van de categorische kansverdeling.
- Neem één steekproef uit de verdeling.
- Geef 3 positieve getallen op die optellen tot 1 als kansen.
- Geef 5 positieve getallen op; Categorical zal ze stilzwijgend normaliseren tot kansen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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, ____, ____, ____, ____])