Kom igångKom igång gratis

Implementera Q-learnings uppdateringsregel

Q-learning är en off-policy-algoritm inom förstärkningsinlärning (RL) som syftar till att hitta den bästa åtgärden utifrån det aktuella tillståndet. Till skillnad från SARSA, som tar hänsyn till den faktiskt valda nästa åtgärden, uppdaterar Q-learning sina Q-värden med hjälp av den maximala framtida belöningen oavsett vilken åtgärd som vidtas. Den här skillnaden gör att Q-learning kan lära sig den optimala policyn även när agenten följer en utforskande eller slumpmässig policy. Din uppgift är att implementera en funktion som uppdaterar en Q-tabell enligt Q-learnings uppdateringsregel, som visas nedan.

NumPy-biblioteket har importerats som np.

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

Den här övningen är en del av kursen

Reinforcement Learning med Gymnasium i Python

Visa kurs

Övningsinstruktioner

  • Hämta det aktuella Q-värdet för det givna tillstånds-åtgärdsparet.
  • Bestäm det maximala Q-värdet för nästa tillstånd över alla möjliga åtgärder i actions.
  • Uppdatera Q-värdet för det aktuella tillstånds-åtgärdsparet med Q-learnings formel.
  • Uppdatera Q-tabellen Q givet att en agent utför åtgärd 0 i tillstånd 0, får en belöning på 5 och övergår till tillstånd 1.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod