Implementacja iteracji wartości
Iteracja wartości to kluczowa metoda w uczeniu ze wzmocnieniem, służąca do wyznaczania optymalnej polityki. Polega na iteracyjnym ulepszaniu funkcji wartości dla każdego stanu aż do jej zbieżności, co prowadzi do odkrycia optymalnej polityki. Zaczniesz od zainicjalizowanej funkcji wartości V oraz policy – obie są już wczytane. Następnie będziesz je aktualizować w pętli, dopóki funkcja wartości nie osiągnie zbieżności, i zobaczysz politykę w działaniu.
Funkcja get_max_action_and_value(state, V) jest już wczytana.
To ćwiczenie jest częścią kursu
Uczenie przez wzmacnianie z Gymnasium w Pythonie
Instrukcje do ćwiczenia
- Dla każdego stanu znajdź akcję z maksymalną wartością Q (
max_action) oraz odpowiadającą jej wartość (max_q_value). - Zaktualizuj słownik
new_Vorazpolicyna podstawiemax_actionimax_q_value. - Sprawdź zbieżność, weryfikując, czy różnica między
new_vaVdla każdego stanu jest mniejsza niżthreshold.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
threshold = 0.001
while True:
new_V = {}
for state in range(num_states-1):
# Get action with maximum Q-value and its value
max_action, max_q_value = ____
# Update the value function and policy
new_V[state] = ____
policy[state] = ____
# Test if change in state values is negligeable
if all(abs(____ - ____) < ____ for state in ____):
break
V = new_V
render_policy(policy)