Bekerja dengan distribusi diskret
Anda akan segera bekerja dengan kebijakan stokastik: kebijakan yang merepresentasikan perilaku agen pada suatu keadaan sebagai distribusi probabilitas atas aksi.
PyTorch dapat merepresentasikan distribusi diskret menggunakan kelas torch.distributions.Categorical, yang akan Anda coba sekarang.
Anda akan melihat bahwa sebenarnya tidak perlu angka-angka yang digunakan sebagai masukan berjumlah 1 seperti probabilitas; angka-angka tersebut akan dinormalisasi secara otomatis.
Latihan ini adalah bagian dari kursus
Deep Reinforcement Learning dengan Python
Petunjuk latihan
- Instansiasikan distribusi probabilitas kategorikal.
- Ambil satu sampel dari distribusi tersebut.
- Tentukan 3 angka positif yang berjumlah 1, untuk bertindak sebagai probabilitas.
- Tentukan 5 angka positif; Categorical akan menormalkannya secara diam-diam untuk memperoleh probabilitas.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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, ____, ____, ____, ____])