Erste SchritteKostenlos loslegen

Epsilon-Grausamkeit

In dieser Übung wirst du eine select_action() Funktion implementieren, die die abklingende Epsilon-Grausamkeit anwendet.

Die Epsilon-Gier wird deinen Agenten dazu ermutigen, die Umgebung zu erkunden, was das Lernen verbessern sollte!

Der Epsilon-Greediness-Plan bestimmt einen Schwellenwert \(\varepsilon\) für jede beliebige step. Er ergibt sich aus der Formel: $$\varepsilon = end + (start-end) \cdot e^{-\frac{step}{decay}}$$

select_action() sollte eine zufällige Aktion mit der Wahrscheinlichkeit \(\varepsilon\) und die Aktion mit dem höchsten Q-Wert mit der Wahrscheinlichkeit \(1-\varepsilon\) zurückgeben.

Diese Übung ist Teil des Kurses

Deep Reinforcement Learning in Python

Kurs anzeigen

Anleitung zur Übung

  • Berechne den Schwellenwert epsilon für den gegebenen Wert von step.
  • Ziehe eine Zufallszahl zwischen 0 und 1.
  • Gib mit der Wahrscheinlichkeit epsilon eine zufällige Aktion zurück.
  • Gib mit der Wahrscheinlichkeit 1-epsilon die Aktion mit dem höchsten Q-Wert zurück.

Interaktive Übung zum Anfassen

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

def select_action(q_values, step, start, end, decay):
    # Calculate the threshold value for this step
    epsilon = end + (____) * math.exp(____ / ____)
    # Draw a random number between 0 and 1
    sample = random.____
    if sample < epsilon:
        # Return a random action index
        return random.____
    # Return the action index with highest Q-value
    return torch.____.item()
      
for step in [1, 500, 2500]:
    actions = [select_action(torch.Tensor([1, 2, 3, 5]), step, .9, .05, 1000) for _ in range(20)]
    print(f"Selecting 20 actions at step {step}.\nThe action with highest q-value is action 3.\nSelected actions: {actions}\n\n")
Bearbeiten und Ausführen von Code