LoslegenKostenlos loslegen

Q-Learning-Aktualisierungsregel implementieren

Q-Learning ist ein Off-Policy-Algorithmus im Reinforcement Learning (RL), der die beste Aktion für einen gegebenen aktuellen Zustand sucht. Anders als SARSA, das die tatsächlich als Nächstes ausgeführte Aktion berücksichtigt, aktualisiert Q-Learning seine Q-Werte mit der maximal erwarteten zukünftigen Belohnung – unabhängig von der tatsächlich gewählten Aktion. Dieser Unterschied ermöglicht es Q-Learning, die optimale Policy zu erlernen, selbst wenn die verfolgte Policy explorativ oder sogar zufällig ist. Deine Aufgabe ist es, eine Funktion zu implementieren, die eine Q-Tabelle anhand der Q-Learning-Regel aktualisiert. Die Q-Learning-Aktualisierungsregel ist unten dargestellt; implementiere eine Funktion, die eine Q-Tabelle basierend auf dieser Regel aktualisiert.

Die NumPy-Bibliothek wurde als np importiert.

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

Diese Übung ist Teil des Kurses

Reinforcement Learning mit Gymnasium in Python

Kurs anzeigen

Anleitung zur Übung

  • Rufe den aktuellen Q-Wert für das gegebene Zustands-Aktions-Paar ab.
  • Bestimme den maximalen Q-Wert für den nächsten Zustand über alle möglichen Aktionen in actions.
  • Aktualisiere den Q-Wert für das aktuelle Zustands-Aktions-Paar mithilfe der Q-Learning-Formel.
  • Aktualisiere die Q-Tabelle Q, wobei ein Agent in Zustand 0 die Aktion 0 ausführt, eine Belohnung von 5 erhält und in Zustand 1 wechselt.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen