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.

To ćwiczenie jest częścią kursu
Uczenie przez wzmacnianie z Gymnasium w Pythonie
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ę0w stanie0, otrzymuje nagrodę5i przechodzi do stanu1.
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)