CMD + K

Introduksjon til maskinlæringDyp forsterkningslæring: DQNBegreper & formler12
13 min lesing

Dyp forsterkningslæring: DQN

Erstatt Q-tabellen med et nevralt nettverk, og se hvorfor replay buffer og target network trengs for at læringen skal bli stabil.

Læringsmål
  • 01Forklar hvorfor en Q-tabell ikke skalerer, og hvordan et Q-nettverk generaliserer til tilstander det aldri har sett
  • 02Forklar hvorfor vektdeling gjør at ett gradientsteg endrer Q-verdiene til mange tilstander, og hvorfor det kan gi ustabil trening
  • 03Regn ut DQN-målet og det kvadrerte TD-tapet, også for terminale overganger
  • 04Forklar hva replay buffer med tilfeldige minibatcher og et frosset target-nettverk løser hver for seg
  • 05Regn ut under lineær annealing og tolk hvorfor utforskningen senkes gradvis
  • 06Kjenn igjen reward hacking i et scenario og foreslå et bedre belønningsdesign
0 av 21 aktiviteter
Kjerneidé

En Q-tabell er som en notatbok med én linje per situasjon: den husker nøyaktig det agenten har opplevd, men vet ingenting om situasjoner den aldri har vært i. DQN bytter notatboka mot et nevralt nettverk som regner ut Q-verdier fra tilstanden, omtrent som en erfaren sjåfør som aldri har kjørt akkurat denne veien, men som vet hvordan en våt kurve oppfører seg. Prisen er at alt henger sammen, så DQN trenger to grep for å holde treningen stabil: et minne den trekker tilfeldig fra, og et mål som holdes i ro.

Steg 1 av 7

Fra Q-tabell til Q-nettverk

Konsept

Q-learning fra kapittel 14 lagrer én verdi per tilstand–handling-par. Det fungerer så lenge tilstandsrommet er lite og diskret, men det bryter sammen av to grunner. Den første er størrelse: hver ny tilstandsvariabel multipliserer antall celler, og med et kamerabilde som tilstand finnes det langt flere mulige bilder enn atomer i universet. Den andre er verre: en tabell generaliserer ikke. En celle som aldri blir besøkt, får aldri en oppdatering, og to tilstander som er nesten like, deler ingenting. Agenten må lære hver situasjon på nytt, selv om den har sett tusen lignende.

Løsningen er funksjonsapproksimasjon: i stedet for å slå opp i en tabell regner vi den ut med en funksjon med parametre . Funksjonen ser på features i tilstanden, så tilstander som ligner, får lignende verdier, også tilstander den aldri har sett. Antall parametre er fast og mye mindre enn antall tilstander.

I praksis er funksjonen et Q-nettverk. Tilstanden går inn som en vektor eller et bilde, og utgangslaget har ett nevron per handling. Ett forward pass gir dermed alle Q-verdiene for tilstanden, og grådig valg er bare over utgangene. Utgangene er forventet avkastning, ikke sannsynligheter, så det er ingen softmax på slutten. Q-learning med et slikt nettverk og to stabiliseringsgrep som kommer senere i kapitlet, kalles DQN (Deep Q-Network).

Tilstanden må fortsatt være Markov. Ett stillbilde fra et spill viser ikke om ballen er på vei opp eller ned, så DQN-agenter for spill får gjerne de siste fire bildene stablet som input.

Nevralt nettverkEt Q-nettverk for en lagerrobot: fire tilstandsvariabler går gjennom ett skjult lag til fire utganger, én Q-verdi per handling. Utgangen for venstre er størst, 3,6.xyretningbatterih₁h₂h₃h₄h₅opp2,1ned0,4venstre = 3,6høyre = 1,8Tilstand sSkjult lagReLUQ(s, a; θ)
Figur 15.1Q-nettverk: én Q-verdi per handling, størst for venstre
Playground

Hvor mye av en Q-tabell blir noen gang besøkt?

Prøv: Dra bins og dims opp og se «besøkt minst én gang» falle mot 0 %, så «aldri besøkt» dekker nesten hele tabellen.

Pythonkap15-tabelldekning.py
RegneeksempelHvor mange Q-verdier må en tabell lagre for en lagerrobot på et 30 × 30-rutenett med 4 retninger, 3 batterinivåer og 4 handlinger?

Steg 1. Tilstandene er alle kombinasjoner av variablene: .

Steg 2. Tabellen har én Q-verdi per tilstand og handling: celler.

Steg 3. Legger vi til én variabel til, for eksempel om roboten bærer en pakke (2 verdier), dobles tabellen til celler. Hver ny variabel multipliserer størrelsen.

Steg 4. Bytter vi rutenettet med et gråtonebilde på piksler med 256 nivåer, finnes det mulige tilstander. Ingen tabell kan lagre det, og agenten ser nesten aldri samme bilde to ganger. Et Q-nettverk med noen hundre tusen vekter gir likevel en verdi for hvert bilde.

Øving 1 av 3

Hvorfor erstatter DQN Q-tabellen med et nevralt nettverk?

Øving 2 av 3

Et DQN styrer en agent med 4 mulige handlinger og tar tilstanden som input. Hva er vanligvis outputen fra nettet?

Øving 3 av 3

En agent styrer en varmepumpe. Tilstanden består av innetemperatur i hele grader fra 15 til 26 (12 verdier), utetemperatur i 8 intervaller, klokketime (24 verdier) og om noen er hjemme (2 verdier). Agenten kan velge mellom 5 effekttrinn. Hvor mange Q-verdier må en Q-tabell lagre?

Mine notater

Skriv egne notater for dette kapittelet. De lagres automatisk og dukker opp i «Mine notater»-oversikten paa fag-siden.

Laster…