Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Policyutvärdering | Dynamisk Programmering
Introduktion till Förstärkningsinlärning
course content

Kursinnehåll

Introduktion till Förstärkningsinlärning

Introduktion till Förstärkningsinlärning

1. RL Kärnteori
2. Multi-Armed Bandit-Problemet
3. Dynamisk Programmering
4. Monte Carlo-metoder
5. Temporär Differensinlärning

book
Policyutvärdering

Note
Definition

Policyutvärdering är en process för att bestämma värdefunktionen för en given policy.

Note
Notering

Policyutvärdering kan användas för att uppskatta både tillståndsvärdefunktion och aktionsvärdefunktion. Men för DP-metoder kommer tillståndsvärdefunktionen att användas.

Som du vet kan en tillståndsvärdefunktion för en given policy bestämmas genom att lösa en Bellman-ekvation:

vπ(s)=aπ(as)s,rp(s,rs,a)(r+γvπ(s))v_\pi(s) = \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr)

Om du har en fullständig modell av miljön (dvs. kända övergångssannolikheter och förväntade belöningar för alla tillstånd-handlingspar), är de enda okända variablerna som återstår i ekvationen tillståndsvärdena. Därför kan ekvationen ovan omformuleras som ett system av S|S| linjära ekvationer med S|S| okända.

Till exempel, om en MDP har 2 tillstånd (s1s_1, s2s_2) och 2 handlingar (flytta till s1s_1, flytta till s2s_2), kan tillståndsvärdesfunktionen definieras så här:

{V(s1)=0.5(5+0.9V(s1))+0.5(10+0.9V(s2))V(s2)=0.7(2+0.9V(s1))+0.3(0+0.9V(s2))\begin{cases} V(s_1) = 0.5 \cdot (5 + 0.9 \cdot V(s_1)) + 0.5 \cdot (10 + 0.9 \cdot V(s_2)) \\ V(s_2) = 0.7 \cdot (2 + 0.9 \cdot V(s_1)) + 0.3 \cdot (0 + 0.9 \cdot V(s_2)) \end{cases}

Detta kan lösas med standardtekniker inom linjär algebra.

En unik lösning till ett sådant linjärt system garanteras om minst ett av följande villkor uppfylls:

  • Diskonteringsfaktorn uppfyller γ<1γ < 1;
  • Policyn π\pi, när den följs från ett tillstånd ss, säkerställer att episoden så småningom avslutas.

Iterativ policyevaluering

Lösningen kan beräknas direkt, men en iterativ metod används oftare på grund av dess enkla implementering. Denna metod börjar med att tilldela godtyckliga initialvärden till alla tillstånd, förutom terminala tillstånd, vilka sätts till 0. Värdena uppdateras sedan iterativt med hjälp av Bellman-ekvationen som uppdateringsregel:

vk+1(s)aπ(as)s,rp(s,rs,a)(r+γvk(s))v_{k+1}(s) \gets \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_k(s')\Bigr)

Den uppskattade tillståndsvärdesfunktionen vkv_k konvergerar så småningom till den sanna tillståndsvärdesfunktionen vπv_\pi när kk \to \infty om vπv_\pi existerar.

Strategier för värdebackup

Vid uppdatering av värdeuppskattningar beräknas nya uppskattningar baserat på tidigare värden. Processen att bevara tidigare uppskattningar kallas en backup. Det finns två vanliga strategier för att utföra backups:

  • Fullständig backup: denna metod innebär att de nya uppskattningarna lagras i en separat array, skild från den som innehåller de tidigare (backade) värdena. Följaktligen krävs två arrayer — en för att behålla de tidigare uppskattningarna och en annan för att lagra de nyberäknade värdena;
  • In-place-backup: detta tillvägagångssätt behåller alla värden i en enda array. Varje ny uppskattning ersätter omedelbart det tidigare värdet. Denna metod minskar minnesanvändningen, eftersom endast en array behövs.

Vanligtvis föredras metoden in-place-backup eftersom den kräver mindre minne och konvergerar snabbare tack vare den omedelbara användningen av de senaste uppskattningarna.

När ska uppdateringen avslutas?

Vid iterativ policyevaluering finns det ingen exakt punkt då algoritmen bör avslutas. Även om konvergens är garanterad i gränsen, är det onödigt att fortsätta beräkningarna efter en viss punkt i praktiken. Ett enkelt och effektivt stoppkriterium är att övervaka den absoluta skillnaden mellan på varandra följande värdeuppskattningar, vk+1(s)vk(s)|v_{k+1}(s) - v_k(s)|, och jämföra den med en liten tröskel θ\theta. Om, efter en fullständig uppdateringscykel (där värden för alla tillstånd uppdateras), inga förändringar överstiger θ\theta, kan processen säkert avslutas.

Pseudokod

question mark

Vilket av följande påståenden är sant angående den iterativa policyevalueringsmetoden?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

course content

Kursinnehåll

Introduktion till Förstärkningsinlärning

Introduktion till Förstärkningsinlärning

1. RL Kärnteori
2. Multi-Armed Bandit-Problemet
3. Dynamisk Programmering
4. Monte Carlo-metoder
5. Temporär Differensinlärning

book
Policyutvärdering

Note
Definition

Policyutvärdering är en process för att bestämma värdefunktionen för en given policy.

Note
Notering

Policyutvärdering kan användas för att uppskatta både tillståndsvärdefunktion och aktionsvärdefunktion. Men för DP-metoder kommer tillståndsvärdefunktionen att användas.

Som du vet kan en tillståndsvärdefunktion för en given policy bestämmas genom att lösa en Bellman-ekvation:

vπ(s)=aπ(as)s,rp(s,rs,a)(r+γvπ(s))v_\pi(s) = \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr)

Om du har en fullständig modell av miljön (dvs. kända övergångssannolikheter och förväntade belöningar för alla tillstånd-handlingspar), är de enda okända variablerna som återstår i ekvationen tillståndsvärdena. Därför kan ekvationen ovan omformuleras som ett system av S|S| linjära ekvationer med S|S| okända.

Till exempel, om en MDP har 2 tillstånd (s1s_1, s2s_2) och 2 handlingar (flytta till s1s_1, flytta till s2s_2), kan tillståndsvärdesfunktionen definieras så här:

{V(s1)=0.5(5+0.9V(s1))+0.5(10+0.9V(s2))V(s2)=0.7(2+0.9V(s1))+0.3(0+0.9V(s2))\begin{cases} V(s_1) = 0.5 \cdot (5 + 0.9 \cdot V(s_1)) + 0.5 \cdot (10 + 0.9 \cdot V(s_2)) \\ V(s_2) = 0.7 \cdot (2 + 0.9 \cdot V(s_1)) + 0.3 \cdot (0 + 0.9 \cdot V(s_2)) \end{cases}

Detta kan lösas med standardtekniker inom linjär algebra.

En unik lösning till ett sådant linjärt system garanteras om minst ett av följande villkor uppfylls:

  • Diskonteringsfaktorn uppfyller γ<1γ < 1;
  • Policyn π\pi, när den följs från ett tillstånd ss, säkerställer att episoden så småningom avslutas.

Iterativ policyevaluering

Lösningen kan beräknas direkt, men en iterativ metod används oftare på grund av dess enkla implementering. Denna metod börjar med att tilldela godtyckliga initialvärden till alla tillstånd, förutom terminala tillstånd, vilka sätts till 0. Värdena uppdateras sedan iterativt med hjälp av Bellman-ekvationen som uppdateringsregel:

vk+1(s)aπ(as)s,rp(s,rs,a)(r+γvk(s))v_{k+1}(s) \gets \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_k(s')\Bigr)

Den uppskattade tillståndsvärdesfunktionen vkv_k konvergerar så småningom till den sanna tillståndsvärdesfunktionen vπv_\pi när kk \to \infty om vπv_\pi existerar.

Strategier för värdebackup

Vid uppdatering av värdeuppskattningar beräknas nya uppskattningar baserat på tidigare värden. Processen att bevara tidigare uppskattningar kallas en backup. Det finns två vanliga strategier för att utföra backups:

  • Fullständig backup: denna metod innebär att de nya uppskattningarna lagras i en separat array, skild från den som innehåller de tidigare (backade) värdena. Följaktligen krävs två arrayer — en för att behålla de tidigare uppskattningarna och en annan för att lagra de nyberäknade värdena;
  • In-place-backup: detta tillvägagångssätt behåller alla värden i en enda array. Varje ny uppskattning ersätter omedelbart det tidigare värdet. Denna metod minskar minnesanvändningen, eftersom endast en array behövs.

Vanligtvis föredras metoden in-place-backup eftersom den kräver mindre minne och konvergerar snabbare tack vare den omedelbara användningen av de senaste uppskattningarna.

När ska uppdateringen avslutas?

Vid iterativ policyevaluering finns det ingen exakt punkt då algoritmen bör avslutas. Även om konvergens är garanterad i gränsen, är det onödigt att fortsätta beräkningarna efter en viss punkt i praktiken. Ett enkelt och effektivt stoppkriterium är att övervaka den absoluta skillnaden mellan på varandra följande värdeuppskattningar, vk+1(s)vk(s)|v_{k+1}(s) - v_k(s)|, och jämföra den med en liten tröskel θ\theta. Om, efter en fullständig uppdateringscykel (där värden för alla tillstånd uppdateras), inga förändringar överstiger θ\theta, kan processen säkert avslutas.

Pseudokod

question mark

Vilket av följande påståenden är sant angående den iterativa policyevalueringsmetoden?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4
some-alt