Erste SchritteKostenlos loslegen

Arbeiten mit diskreten Verteilungen

Du wirst bald mit stochastischen Richtlinien arbeiten: Richtlinien, die das Verhalten des Agenten in einem bestimmten Zustand als Wahrscheinlichkeitsverteilung über Aktionen darstellen.

PyTorch kann diskrete Verteilungen mithilfe der Klasse torch.distributions.Categorical darstellen, mit der du jetzt experimentieren wirst.

Du wirst sehen, dass es nicht notwendig ist, dass die Summe der Zahlen, die als Eingabe verwendet werden, gleich 1 ist, wie es bei Wahrscheinlichkeiten der Fall ist; sie werden automatisch normalisiert.

Diese Übung ist Teil des Kurses

Deep Reinforcement Learning in Python

Kurs anzeigen

Anleitung zur Übung

  • Instanziere die kategorische Wahrscheinlichkeitsverteilung.
  • Ziehe eine Stichprobe aus der Verteilung.
  • Gib 3 positive Zahlen an, die sich zu 1 summieren und als Wahrscheinlichkeiten dienen.
  • Gib 5 positive Zahlen an; Categorical normalisiert sie stillschweigend, um Wahrscheinlichkeiten zu erhalten.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

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, ____, ____, ____, ____])
Bearbeiten und Ausführen von Code