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

Implementace aktualizačního pravidla Q-learningu

Q-learning je off-policy algoritmus v oblasti reinforcement learningu (RL), jehož cílem je najít nejlepší akci pro aktuální stav. Na rozdíl od algoritmu SARSA, který bere v úvahu skutečně zvolenou další akci, Q-learning aktualizuje své Q-hodnoty pomocí maximální budoucí odměny – bez ohledu na to, jaká akce byla ve skutečnosti provedena. Díky tomu se Q-learning dokáže naučit optimální strategii i při sledování průzkumné nebo zcela náhodné politiky. Tvým úkolem je implementovat funkci, která aktualizuje Q-tabulku podle pravidla Q-learningu. Aktualizační pravidlo Q-learningu je znázorněno níže.

Knihovna NumPy je k dispozici pod názvem np.

Image showing the mathematical formula of the Q-learning update rule.

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

Reinforcement Learning with Gymnasium in Python

Zobrazit kurz

Pokyny k cvičení

  • Získej aktuální Q-hodnotu pro danou dvojici stav–akce.
  • Urči maximální Q-hodnotu pro následující stav přes všechny možné akce v actions.
  • Aktualizuj Q-hodnotu pro aktuální dvojici stav–akce pomocí vzorce Q-learningu.
  • Aktualizuj Q-tabulku Q pro případ, kdy agent v stavu 0 provede akci 0, obdrží odměnu 5 a přejde do stavu 1.

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

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

actions = ['action1', 'action2'] 
def update_q_table(state, action, reward, next_state):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Determine the maximum Q-value for the next state
    next_max = ____
    # Compute the new value of the current state-action pair
    Q[state, action] = ____

alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)
Upravit a spustit kód