AI-For-Beginners/translations/sv/lessons/6-Other/22-DeepRL
localizeflow[bot] c55d809b23 chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:00:53 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:00:53 +00:00
CartPole-RL-PyTorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +00:00
CartPole-RL-TF.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:00:53 +00:00
notebook.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +00:00
tmp.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +00:00

README.md

Djup FörstÀrkningsinlÀrning

FörstÀrkningsinlÀrning (RL) ses som en av de grundlÀggande paradigmerna inom maskininlÀrning, vid sidan av övervakad inlÀrning och oövervakad inlÀrning. Medan vi i övervakad inlÀrning förlitar oss pÄ dataset med kÀnda resultat, bygger RL pÄ att lÀra genom att göra. Till exempel, nÀr vi först ser ett datorspel börjar vi spela, Àven utan att kÀnna till reglerna, och snart kan vi förbÀttra vÄra fÀrdigheter bara genom att spela och justera vÄrt beteende.

Quiz före förelÀsningen

För att utföra RL behöver vi:

  • En miljö eller simulator som sĂ€tter reglerna för spelet. Vi bör kunna köra experiment i simulatorn och observera resultaten.
  • NĂ„gon form av belöningsfunktion, som indikerar hur framgĂ„ngsrikt vĂ„rt experiment var. NĂ€r det gĂ€ller att lĂ€ra sig spela ett datorspel skulle belöningen vara vĂ„r slutpoĂ€ng.

Baserat pÄ belöningsfunktionen bör vi kunna justera vÄrt beteende och förbÀttra vÄra fÀrdigheter, sÄ att vi spelar bÀttre nÀsta gÄng. Den största skillnaden mellan andra typer av maskininlÀrning och RL Àr att vi i RL vanligtvis inte vet om vi vinner eller förlorar förrÀn vi har avslutat spelet. DÀrför kan vi inte sÀga om ett visst drag i sig Àr bra eller inte - vi fÄr bara en belöning i slutet av spelet.

Under RL utför vi vanligtvis mÄnga experiment. Under varje experiment behöver vi balansera mellan att följa den optimala strategi vi har lÀrt oss hittills (exploatering) och att utforska nya möjliga tillstÄnd (utforskning).

OpenAI Gym

Ett utmÀrkt verktyg för RL Àr OpenAI Gym - en simuleringsmiljö som kan simulera mÄnga olika miljöer, frÄn Atari-spel till fysiken bakom balans med en stÄng. Det Àr en av de mest populÀra simuleringsmiljöerna för att trÀna förstÀrkningsinlÀrningsalgoritmer och underhÄlls av OpenAI.

Note: Du kan se alla miljöer som finns tillgÀngliga frÄn OpenAI Gym hÀr.

Balans med CartPole

Ni har förmodligen alla sett moderna balansapparater som Segway eller Gyroscooters. De kan automatiskt balansera genom att justera sina hjul baserat pÄ signaler frÄn en accelerometer eller gyroskop. I detta avsnitt kommer vi att lÀra oss att lösa ett liknande problem - att balansera en stÄng. Det liknar en situation dÀr en cirkusartist behöver balansera en stÄng pÄ sin hand - men denna balans sker endast i 1D.

En förenklad version av balansproblemet Àr kÀnt som CartPole-problemet. I CartPole-vÀrlden har vi en horisontell slider som kan röra sig Ät vÀnster eller höger, och mÄlet Àr att balansera en vertikal stÄng ovanpÄ slidern medan den rör sig.

en cartpole

För att skapa och anvÀnda denna miljö behöver vi nÄgra rader Python-kod:

import gym
env = gym.make("CartPole-v1")

env.reset()
done = False
total_reward = 0
while not done:
   env.render()
   action = env.action_space.sample()
   observaton, reward, done, info = env.step(action)
   total_reward += reward

print(f"Total reward: {total_reward}")

Varje miljö kan nÄs pÄ exakt samma sÀtt:

  • env.reset startar ett nytt experiment
  • env.step utför ett simuleringssteg. Det tar emot en action frĂ„n action space, och returnerar en observation (frĂ„n observation space), samt en belöning och en flagga för avslutning.

I exemplet ovan utför vi en slumpmÀssig handling vid varje steg, vilket gör att experimentets livslÀngd blir mycket kort:

icke-balanserande cartpole

MĂ„let med en RL-algoritm Ă€r att trĂ€na en modell - den sĂ„ kallade policyn π - som kommer att returnera handlingen som svar pĂ„ ett givet tillstĂ„nd. Vi kan ocksĂ„ betrakta policyn som probabilistisk, t.ex. för varje tillstĂ„nd s och handling a kommer den att returnera sannolikheten π(a|s) att vi bör ta a i tillstĂ„ndet s.

Policy Gradients-algoritm

Det mest uppenbara sÀttet att modellera en policy Àr att skapa ett neuralt nÀtverk som tar tillstÄnd som input och returnerar motsvarande handlingar (eller snarare sannolikheterna för alla handlingar). PÄ ett sÀtt skulle det likna en vanlig klassificeringsuppgift, med en stor skillnad - vi vet inte i förvÀg vilka handlingar vi bör ta vid varje steg.

Idén hÀr Àr att uppskatta dessa sannolikheter. Vi bygger en vektor av kumulativa belöningar som visar vÄr totala belöning vid varje steg av experimentet. Vi tillÀmpar ocksÄ belöningsdiskontering genom att multiplicera tidigare belöningar med en koefficient γ=0.99, för att minska betydelsen av tidigare belöningar. Sedan förstÀrker vi de steg lÀngs experimentvÀgen som ger större belöningar.

LĂ€s mer om Policy Gradients-algoritmen och se den i aktion i exempelfilen.

Actor-Critic-algoritm

En förbÀttrad version av Policy Gradients-metoden kallas Actor-Critic. Huvudidén bakom den Àr att det neurala nÀtverket ska trÀnas för att returnera tvÄ saker:

  • Policyn, som avgör vilken handling som ska utföras. Denna del kallas actor.
  • En uppskattning av den totala belöningen vi kan förvĂ€nta oss att fĂ„ i detta tillstĂ„nd - denna del kallas critic.

PÄ ett sÀtt liknar denna arkitektur en GAN, dÀr vi har tvÄ nÀtverk som trÀnas mot varandra. I Actor-Critic-modellen föreslÄr aktören den handling vi behöver utföra, och kritikern försöker vara kritisk och uppskatta resultatet. Men vÄrt mÄl Àr att trÀna dessa nÀtverk i samspel.

Eftersom vi kÀnner till bÄde de verkliga kumulativa belöningarna och resultaten som kritikern returnerar under experimentet, Àr det relativt enkelt att bygga en förlustfunktion som minimerar skillnaden mellan dem. Det skulle ge oss critic loss. Vi kan berÀkna actor loss genom att anvÀnda samma metod som i Policy Gradients-algoritmen.

Efter att ha kört en av dessa algoritmer kan vi förvÀnta oss att vÄr CartPole beter sig sÄ hÀr:

en balanserande cartpole

✍ Övningar: Policy Gradients och Actor-Critic RL

FortsÀtt ditt lÀrande i följande notebook-filer:

Andra RL-uppgifter

FörstÀrkningsinlÀrning Àr idag ett snabbt vÀxande forskningsomrÄde. NÄgra intressanta exempel pÄ förstÀrkningsinlÀrning Àr:

  • Att lĂ€ra en dator att spela Atari-spel. Den utmanande delen i detta problem Ă€r att vi inte har ett enkelt tillstĂ„nd representerat som en vektor, utan snarare en skĂ€rmdump - och vi behöver anvĂ€nda CNN för att konvertera denna skĂ€rmbild till en funktionsvektor eller för att extrahera belöningsinformation. Atari-spel finns tillgĂ€ngliga i Gym.
  • Att lĂ€ra en dator att spela brĂ€dspel, sĂ„som schack och Go. Nyligen har toppmoderna program som Alpha Zero trĂ€nats frĂ„n grunden av tvĂ„ agenter som spelar mot varandra och förbĂ€ttras vid varje steg.
  • Inom industrin anvĂ€nds RL för att skapa styrsystem frĂ„n simulering. En tjĂ€nst som Bonsai Ă€r specifikt utformad för detta.

Slutsats

Vi har nu lÀrt oss hur man trÀnar agenter att uppnÄ goda resultat bara genom att ge dem en belöningsfunktion som definierar det önskade tillstÄndet för spelet och genom att ge dem möjlighet att intelligent utforska sökrymden. Vi har framgÄngsrikt testat tvÄ algoritmer och uppnÄtt ett bra resultat pÄ relativt kort tid. Men detta Àr bara början pÄ din resa inom RL, och du bör definitivt övervÀga att ta en separat kurs om du vill fördjupa dig.

🚀 Utmaning

Utforska de applikationer som nÀmns i avsnittet 'Andra RL-uppgifter' och försök implementera en!

Quiz efter förelÀsningen

Granskning & SjÀlvstudier

LÀr dig mer om klassisk förstÀrkningsinlÀrning i vÄr MaskininlÀrning för nybörjare-kurs.

Titta pÄ denna fantastiska video som handlar om hur en dator kan lÀra sig spela Super Mario.

Uppgift: TrÀna en Mountain Car

Ditt mÄl under denna uppgift Àr att trÀna en annan Gym-miljö - Mountain Car.