Reinforcement learning — grunderna
Kunna förklara agent, miljö, belöning och policy, och implementera en enkel policy-gradient.
Förkunskaper
Intuition
I övervakad inlärning får modellen facit per exempel. I RL får agenten bara en belöning — ofta sent, ofta sparsam — och måste själv lista ut vilka handlingar som ledde dit.
Ordlista: tillstånd s (vad agenten ser), handling a, belöning r, policy π(a|s) (agentens beteende, ofta ett neuronnät), avkastning G = summan av (diskonterade) belöningar från nu.
Policy gradient (REINFORCE): kör en episod, och för varje handling: gör den mer sannolik om avkastningen efter den var hög, mindre om låg. Gradienten är ∑ₜ ∇log π(aₜ|sₜ)·Gₜ. Enkelt, men bullrigt — en episod säger lite om vilken handling som var bra (kredittilldelning). Man drar ifrån en baslinje (medelavkastning) för att minska variansen.
RLHF för språkmodeller är precis detta: tillstånd = prompten hittills, handling = nästa token, belöning = en belöningsmodells poäng på hela svaret.
Kod
import numpy as np
rng = np.random.default_rng(0)
# Miljö: gå från 0 till 5 på en linje; handling 0 = vänster, 1 = höger; belöning 1 vid mål, max 20 steg
def episode(theta):
s, traj = 0, []
for _ in range(20):
p = 1 / (1 + np.exp(-theta[s])) # π(höger | s)
a = int(rng.random() < p)
traj.append((s, a, p))
s = min(5, max(0, s + (1 if a else -1)))
if s == 5: return traj, 1.0
return traj, 0.0
theta = np.zeros(6); lr = 0.5; baseline = 0.0
for it in range(300):
traj, G = episode(theta)
adv = G - baseline; baseline = 0.9 * baseline + 0.1 * G
for s, a, p in traj:
theta[s] += lr * adv * ((a - p)) # ∇log π för Bernoulli/sigmoid
print(np.round(1 / (1 + np.exp(-theta)), 2)) # → nära 1 överallt: «gå höger»
Formellt
Mål: maximera . Policy gradient-satsen: , där baslinjen inte ändrar väntevärdet men sänker variansen. Med blir en skattning av advantage — grunden för actor–critic och PPO. Diskontering med ger ändlig avkastning och kortare kredittilldelningshorisont.
Behärskning innebär
- Definierar agent, miljö, tillstånd, handling, belöning, policy
- Implementerar REINFORCE på en enkel miljö
- Förklarar varför RL är svårt: kredittilldelning, varians, utforskning
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- Sutton & Barto — Reinforcement Learning: An Introduction (fri PDF) — fri läsning
- arXiv — Training language models to follow instructions with human feedback — arXiv (öppen åtkomst; licens per artikel)