Začněte nyníZačněte zdarma

Epsilon-hladovost

V tomto cvičení implementuješ funkci select_action(), která využívá epsilon-hladovost s postupným poklesem.

Epsilon-hladovost povzbuzuje agenta k prozkoumávání prostředí, což by mělo zlepšit jeho učení!

Harmonogram epsilon-hladovosti určuje práh \(\varepsilon\) pro daný krok step podle vzorce: $$\varepsilon = end + (start-end) \cdot e^{-\frac{step}{decay}}$$

Funkce select_action() by měla s pravděpodobností \(\varepsilon\) vrátit náhodnou akci a s pravděpodobností \(1-\varepsilon\) akci s nejvyšší hodnotou Q.

Toto cvičení je součástí kurzu

Deep Reinforcement Learning v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej práh epsilon pro danou hodnotu step.
  • Vygeneruj náhodné číslo mezi 0 a 1.
  • S pravděpodobností epsilon vrať náhodnou akci.
  • S pravděpodobností 1-epsilon vrať akci s nejvyšší hodnotou Q.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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")
Upravit a spustit kód