Begreper & referanser
Alle nøkkelbegrepene, formlene og referansene fra Forsterkningslæring, samlet på én side. Bruk denne som oppslag når du leser, øver flashcards eller tar quiz.
Begreper
Sentrale begreper fra kapittelet med korte definisjoner.
Agenten velger handlinger, mens miljøet svarer med neste tilstand og belønning.
Informasjonen agenten bruker som beskrivelse av situasjonen på et bestemt tidspunkt.
Et numerisk signal fra miljøet som vurderer den siste overgangen, ikke nødvendigvis hele løsningen.
En regel eller sannsynlighetsfordeling som bestemmer hvilken handling agenten velger i hver tilstand.
Forventet framtidig retur fra en tilstand eller et tilstand–handling-par under en bestemt policy.
En off-policy metode som lærer handlingsverdier mot den beste estimerte fortsettelsen.
Avveiingen mellom å prøve usikre handlinger og å velge handlingen som hittil ser best ut.
Neste tilstand og belønning avhenger bare av nåværende tilstand og handling, ikke av historien før. Tilstanden må derfor oppsummere alt som er relevant fra fortiden.
Tallet som bestemmer hvor sterkt framtidige belønninger teller i returen. Med teller bare neste belønning, og med nær 1 teller fjerne belønninger nesten like mye som nære.
Forskjellen mellom læringsmålet og nåværende estimat . Positiv TD-feil øker estimatet, negativ senker det.
Læring der policyen som læres, er en annen enn policyen som samler inn data. Q-learning lærer verdien av den grådige policyen mens agenten handler ε-greedy.
Formler
Hver formel: hva den heter, hvordan den ser ut, og hva symbolene betyr.
Diskontert retur
Returen summerer fremtidige belønninger og demper fjerne belønninger med .
Tilstandsverdi
Verdien er forventet retur fra tilstand når policyen følges.
Bellmans optimalitetsligning
Optimal handlingsverdi består av umiddelbar belønning og beste diskonterte fortsettelse.
Q-learning-oppdatering
Q-learning flytter den gamle verdien mot et mål som bruker belønningen og beste verdi i neste tilstand.
Epsilon-greedy policy
Policyen velger oftest beste kjente handling, men utforsker tilfeldig med sannsynlighet .
Markov-egenskapen
Gitt nåværende tilstand og handling gir historien ingen ekstra informasjon om neste tilstand.
TD-feil
Mål minus gammelt estimat. Er terminal, faller leddet med bort.
Returen rekursivt
Returen er neste belønning pluss diskontert retur fra neste tidssteg. Læringsalgoritmene erstatter med et estimat av framtiden.
Kodesnutter
Kodesnutter fra kapittelet, vist literal.
Bellman-ligningen sprer verdien bakover
import numpy as npimport matplotlib.pyplot as plt # Korridor med fem tilstander. Policyen kjører alltid mot høyre,# og tilstand 4 (laderen) er terminal.belonning = np.array([-1.0, -1.0, -1.0, 10.0]) # for steget ut av tilstand 0, 1, 2, 3gamma = 0.9 # @param 0..1 0.05V = np.zeros(5) plt.figure()for runde in range(1, 5): V = np.append(belonning + gamma * V[1:], 0.0) # Bellman: r + γ·V(s′) med s′ = s + 1 if runde in (1, 2, 4): plt.plot(range(5), V, label=f"etter runde {runde}")print(f"V etter 4 runder: {np.round(V, 2)}")print(f"V(S0) = {V[0]:.2f}") plt.xticks(range(5), ["S0", "S1", "S2", "S3", "lader"])plt.xlabel("tilstand")plt.ylabel("V(s)")plt.legend()plt.tight_layout()plt.show()Prøv: Dra gamma ned mot 0,5 og se om «V(S0)» fortsatt er positiv, altså om laderen fortsatt er verdt turen derfra.
Én Q-learning-oppdatering
import numpy as np rng = np.random.default_rng(4172)Q = rng.normal(0, 0.05, size=(4, 3))s, a, neste_s = 1, 2, 3r = 1.0alpha = 0.25gamma = 0.90 gammel = Q[s, a]maal = r + gamma * np.max(Q[neste_s])td_feil = maal - gammelQ[s, a] = gammel + alpha * td_feil print(f"gammel={gammel:.3f}")print(f"mål={maal:.3f}, TD-feil={td_feil:.3f}")print(f"ny={Q[s, a]:.3f}")Oppdateringen flytter bare det besøkte tilstand–handling-paret en andel α mot Bellman-målet. De andre Q-verdiene står uendret i dette steget.
Q-learning med ε-greedy på en kjede
import numpy as npimport matplotlib.pyplot as plt rng = np.random.default_rng(4172)n, alfa = 6, 0.5 # tilstand 5 er måletgamma = 0.9 # @param 0..1 0.05eps = 0.2 # @param 0..1 0.05Q = np.zeros((n, 2)) # handling 0 = venstre, 1 = høyre for episode in range(200): s = 0 while s != n - 1: if rng.random() < eps: a = int(rng.integers(2)) # utforsk else: a = int(rng.choice(np.flatnonzero(Q[s] == Q[s].max()))) # utnytt s2 = max(s - 1, 0) if a == 0 else s + 1 r = 10.0 if s2 == n - 1 else -1.0 mal = r if s2 == n - 1 else r + gamma * Q[s2].max() Q[s, a] += alfa * (mal - Q[s, a]) s = s2 for s in range(n - 1): print(f"S{s} ({n - 1 - s} steg fra målet): venstre {Q[s, 0]:5.2f} · høyre {Q[s, 1]:5.2f}")print("grådig policy: " + ", ".join(f"S{s} {"høyre" if a else "venstre"}" for s, a in enumerate(Q[:-1].argmax(axis=1)))) plt.figure()plt.plot(range(n - 1), Q[:-1].max(axis=1), marker="o")plt.xticks(range(n - 1), [f"S{s}" for s in range(n - 1)])plt.xlabel("Tilstand (målet S5 ligger til høyre)")plt.ylabel("Beste Q-verdi (maks over handlinger)")plt.tight_layout()plt.show()Prøv: Dra gamma ned og se «venstre»- og «høyre»-verdiene for S0 krympe; sett eps til 1 og se om agenten likevel lærer de samme verdiene.
Læringsmål
Hva du skal kunne etter å ha lest kapittelet.
- 01Beskriv et problem som en MDP med agent, miljø, tilstand, handling og belønning, og forklar Markov-egenskapen
- 02Skill mellom policy og verdifunksjon, og mellom belønning og retur
- 03Regn ut diskontert retur og forklar hvordan påvirker hva agenten lærer
- 04Bruk Bellman-ligningen til å velge handling, og regn ut én Q-learning-oppdatering, også med terminaltilstand
- 05Regn ut ε-greedy-sannsynligheter og forklar avveiingen mellom utforskning og utnyttelse
- 06Forklar hvorfor synkende TD-tap ikke betyr at belønningen øker