Zacznij terazZacznij za darmo

Implementacja reguły aktualizacji Q-learningu

Q-learning to algorytm uczenia off-policy w uczeniu ze wzmocnieniem (RL), którego celem jest wyznaczenie najlepszej akcji do podjęcia w danym stanie. W przeciwieństwie do algorytmu SARSA, który uwzględnia faktycznie wybraną kolejną akcję, Q-learning aktualizuje wartości Q na podstawie maksymalnej przyszłej nagrody – niezależnie od podjętej akcji. Dzięki temu Q-learning może uczyć się optymalnej polityki, nawet stosując politykę eksploracyjną lub losową. Twoim zadaniem jest zaimplementowanie funkcji, która aktualizuje tablicę Q zgodnie z regułą Q-learningu. Reguła ta jest przedstawiona poniżej.

Biblioteka NumPy jest dostępna pod nazwą np.

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

To ćwiczenie jest częścią kursu

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Pobierz bieżącą wartość Q dla podanej pary stan–akcja.
  • Wyznacz maksymalną wartość Q dla następnego stanu, biorąc pod uwagę wszystkie możliwe akcje z actions.
  • Zaktualizuj wartość Q dla bieżącej pary stan–akcja, korzystając z formuły Q-learningu.
  • Zaktualizuj tablicę Q Q, przyjmując, że agent podejmuje akcję 0 w stanie 0, otrzymuje nagrodę 5 i przechodzi do stanu 1.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod