Q-table

En tabel, der i forstærkningslæring gemmer den forventede samlede belønning (Q-værdi) for hver kombination af tilstand og handling.

Kort fortalt

Q-tabellen er et centralt værktøj i Q-learning, hvor den holder styr på, hvor godt det er at vælge en bestemt handling i en bestemt situation.

Kategori
begreb
Niveau
øvet

Betydninger

1
  1. 1

    En datastruktur (typisk en matrix eller et opslag), der i forstærkningslæring mapper fra tilstande og handlinger til deres forventede fremtidige belønning (Q-værdi).

    • Agenten opdaterer Q-tabellen efter hvert tidskridt ved hjælp af Bellman-ligningen.

Hvornår bruges det

Q-tabellen anvendes i Q-learning og andre forstærkningslæringsalgoritmer til at gemme og opdatere Q-værdier under træning. Den initialiseres typisk med nul eller små vilkårlige værdier og opdateres iterativt via Bellman-ligningen.

Formel

Q(s, a) ← Q(s, a) + α [r + γ max_a' Q(s', a') - Q(s, a)]

Kodeeksempel

# Q-table initialiseret som et dictionary
q_table = {}
def update_q(state, action, reward, next_state, alpha, gamma):
    current_q = q_table.get((state, action), 0)
    max_next_q = max([q_table.get((next_state, a), 0) for a in actions])
    new_q = current_q + alpha * (reward + gamma * max_next_q - current_q)
    q_table[(state, action)] = new_q

Simpel Python-kode til at initialisere og opdatere en Q-tabel.

Oprindelse

Q står for 'quality' (kvalitet), og tabellen er netop en tabel over kvaliteten af handlinger.

Afledte ord

2

Kilder

1
  • Reinforcement Learning: An Introduction (Sutton & Barto)