CMD + K

Kapittel 14Begreper & formler · Forsterkningslæring
Referanseside · Kapittel 14

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.

Øv med flashcards23 kort fra dette kapittelet

Begreper

Sentrale begreper fra kapittelet med korte definisjoner.

01Agent og miljø

Agenten velger handlinger, mens miljøet svarer med neste tilstand og belønning.

02Tilstand

Informasjonen agenten bruker som beskrivelse av situasjonen på et bestemt tidspunkt.

03Handling

Et valg agenten kan gjøre i en tilstand.

04Belønning

Et numerisk signal fra miljøet som vurderer den siste overgangen, ikke nødvendigvis hele løsningen.

05Policy

En regel eller sannsynlighetsfordeling som bestemmer hvilken handling agenten velger i hver tilstand.

06Verdifunksjon

Forventet framtidig retur fra en tilstand eller et tilstand–handling-par under en bestemt policy.

07Q-learning

En off-policy metode som lærer handlingsverdier mot den beste estimerte fortsettelsen.

08Utforskning–utnyttelse

Avveiingen mellom å prøve usikre handlinger og å velge handlingen som hittil ser best ut.

09Markov-egenskapen

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.

10Diskonteringsfaktor

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.

11TD-feil

Forskjellen mellom læringsmålet og nåværende estimat . Positiv TD-feil øker estimatet, negativ senker det.

12Off-policy

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

Diskontert retur

Returen summerer fremtidige belønninger og demper fjerne belønninger med .

R_(t+k+1)belønning k steg fram i tid
γdiskonteringsfaktor mellom 0 og 1
G_tretur fra tidspunkt t
tilstandsverdi

Tilstandsverdi

Verdien er forventet retur fra tilstand når policyen følges.

πpolicy
stilstand
G_tframtidig retur
V^π(s)forventet retur fra s under π
bellman-optimalitet

Bellmans optimalitetsligning

Optimal handlingsverdi består av umiddelbar belønning og beste diskonterte fortsettelse.

Q*(s,a)optimal handlingsverdi
R_(t+1)umiddelbar belønning
γdiskonteringsfaktor
S_(t+1)neste tilstand
q-learning-oppdatering

Q-learning-oppdatering

Q-learning flytter den gamle verdien mot et mål som bruker belønningen og beste verdi i neste tilstand.

αlæringsrate
robservert belønning
γdiskonteringsfaktor
Q(s,a)gammel handlingsverdi
epsilon-greedy

Epsilon-greedy policy

Policyen velger oftest beste kjente handling, men utforsker tilfeldig med sannsynlighet .

εsannsynlighet for tilfeldig utforskning
Amengden mulige handlinger
π(a|s)sannsynlighet for handling a i tilstand s
markov-egenskap

Markov-egenskapen

Gitt nåværende tilstand og handling gir historien ingen ekstra informasjon om neste tilstand.

S_ttilstand ved tid t
A_thandling ved tid t
S_(t+1)neste tilstand
td-feil

TD-feil

Mål minus gammelt estimat. Er terminal, faller leddet med bort.

δTD-feil
robservert belønning
γdiskonteringsfaktor
Q(s,a)nåværende estimat
retur-rekursjon

Returen rekursivt

Returen er neste belønning pluss diskontert retur fra neste tidssteg. Læringsalgoritmene erstatter med et estimat av framtiden.

G_tretur fra tid t
R_(t+1)neste belønning
γdiskonteringsfaktor

Kodesnutter

Kodesnutter fra kapittelet, vist literal.

Kode

Bellman-ligningen sprer verdien bakover

Python
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.

Kode

Én Q-learning-oppdatering

Python
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.

Kode

Q-learning med ε-greedy på en kjede

Python
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.

  1. 01Beskriv et problem som en MDP med agent, miljø, tilstand, handling og belønning, og forklar Markov-egenskapen
  2. 02Skill mellom policy og verdifunksjon, og mellom belønning og retur
  3. 03Regn ut diskontert retur og forklar hvordan påvirker hva agenten lærer
  4. 04Bruk Bellman-ligningen til å velge handling, og regn ut én Q-learning-oppdatering, også med terminaltilstand
  5. 05Regn ut ε-greedy-sannsynligheter og forklar avveiingen mellom utforskning og utnyttelse
  6. 06Forklar hvorfor synkende TD-tap ikke betyr at belønningen øker