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
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_qSimpel 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
2Kilder
1- Reinforcement Learning: An Introduction (Sutton & Barto)