Ayrık dağılımlarla çalışmak
Yakında stokastik politikalarla çalışacaksın: bir durumda ajan davranışını eylemler üzerindeki olasılık dağılımı olarak temsil eden politikalar.
PyTorch, ayrık dağılımları torch.distributions.Categorical sınıfıyla temsil edebilir; şimdi bununla denemeler yapacaksın.
Girdi olarak kullanılan sayıların, olasılıklarda olduğu gibi toplamının 1 olmasının aslında gerekli olmadığını göreceksin; otomatik olarak normalize edilirler.
Bu egzersiz
Python ile Deep Reinforcement Learning
kursunun bir parçasıdırEgzersiz talimatları
- Kategorik olasılık dağılımını başlat.
- Dağılımdan bir örnek al.
- Olasılık olarak davranması için toplamı 1 olan 3 pozitif sayı belirt.
- 5 pozitif sayı belirt; Categorical bunları sessizce normalize ederek olasılıklara dönüştürecek.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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, ____, ____, ____, ____])