ÎncepețiÎncepe gratuit

Implementarea regulii de actualizare Q-learning

Q-learning este un algoritm off-policy în învățarea prin recompensă (RL) care urmărește să găsească cea mai bună acțiune de luat în starea curentă. Spre deosebire de SARSA, care ține cont de acțiunea efectiv următoare, Q-learning actualizează valorile Q folosind recompensa viitoare maximă, indiferent de acțiunea aleasă. Această distincție îi permite algoritmului să învețe politica optimă chiar și atunci când urmează o politică exploratorie sau aleatoare. Sarcina ta este să implementezi o funcție care actualizează un tabel Q pe baza regulii Q-learning. Regula de actualizare Q-learning este prezentată mai jos.

Biblioteca NumPy a fost importată ca np.

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

Acest exercițiu face parte din cursul

Reinforcement Learning cu Gymnasium în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Extrage valoarea Q curentă pentru perechea stare-acțiune dată.
  • Determină valoarea Q maximă pentru starea următoare, luând în calcul toate acțiunile posibile din actions.
  • Actualizează valoarea Q pentru perechea stare-acțiune curentă folosind formula Q-learning.
  • Actualizează tabelul Q Q, știind că agentul execută acțiunea 0 în starea 0, primește o recompensă de 5 și trece în starea 1.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul