Aan de slagGa gratis aan de slag

Q-learning-bijwerkregel implementeren

Q-learning is een off-policy algoritme in reinforcement learning (RL) dat zoekt naar de beste actie gegeven de huidige toestand. In tegenstelling tot SARSA, dat de daadwerkelijk genomen volgende actie meeneemt, werkt Q-learning zijn Q-waarden bij met de maximale toekomstige beloning, ongeacht welke actie is genomen. Dankzij dit verschil kan Q-learning het optimale beleid leren terwijl het een explorerend of zelfs willekeurig beleid volgt. Je taak is om een functie te implementeren die een Q-tabel bijwerkt op basis van de Q-learning-regel. De Q-learning-bijwerkregel staat hieronder; jouw taak is om een functie te schrijven die een Q-tabel volgens deze regel bijwerkt.

De NumPy-bibliotheek is voor je geïmporteerd als np.

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

Deze oefening maakt deel uit van de cursus

Reinforcement Learning met Gymnasium in Python

Cursus bekijken

Oefeninstructies

  • Haal de huidige Q-waarde op voor het gegeven toestand-actiepaar.
  • Bepaal de maximale Q-waarde voor de volgende toestand over alle mogelijke acties in actions.
  • Werk de Q-waarde voor het huidige toestand-actiepaar bij met de Q-learning-formule.
  • Werk de Q-tabel Q bij, gegeven dat een agent actie 0 neemt in toestand 0, een beloning van 5 ontvangt en naar toestand 1 gaat.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren