Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Optimalitetsvillkor | Dynamisk Programmering
Introduktion till Reinforcement Learning med Python

Optimalitetsvillkor

Svep för att visa menyn

I föregående kapitel lärde du dig om Bellman-ekvationer för tillståndsvärde- och tillstånd-handlingsvärdefunktioner. Dessa ekvationer beskriver hur tillståndsvärden kan definieras rekursivt genom värdena för andra tillstånd, där värdena är beroende av en given policy. Dock är inte alla policies lika effektiva. Faktum är att värdefunktioner ger en partiell ordning för policies, vilket kan beskrivas enligt följande:

ππ    vπ(s)vπ(s)sS\pi \ge \pi' \iff v_\pi(s) \ge v_{\pi'}(s) \qquad \forall s \in S

Så policyn π\pi är bättre än eller lika med policyn π\pi' om för alla möjliga tillstånd är den förväntade avkastningen för policyn π\pi inte mindre än den förväntade avkastningen för policyn π\pi'.

Note
Läs mer

En partiell ordning följer de vanliga ordningsreglerna men tvingar inte varje par att jämföras. I vårt fall kan vi bara rangordna två policies om de ger samma resultat, eller om en tydligt överträffar den andra. I alla andra fall förblir policies ojämförbara.

Optimal policy

Note
Definition

För varje MDP finns det minst en policy som är lika bra som eller bättre än alla andra policies. Denna policy kallas en optimal policy π\pi_*. Även om det kan finnas många optimala policies, betecknas alla som π\pi_*.

Varför existerar alltid en optimal policy?

Du kanske undrar varför en optimal policy alltid existerar för varje MDP. Det är en bra fråga, och intuitionen bakom detta är förvånansvärt enkel. Kom ihåg att tillstånden i en MDP fångar upp miljöns tillstånd fullständigt. Detta innebär att varje tillstånd är oberoende av alla andra: handlingen som väljs i ett tillstånd påverkar inte belöningar eller utfall som kan uppnås i ett annat. Genom att välja den optimala handlingen i varje tillstånd separat, får du därför naturligt fram den övergripande bästa sekvensen av handlingar genom hela processen. Och denna uppsättning av optimala handlingar i varje tillstånd utgör en optimal policy.

Dessutom finns det alltid minst en policy som är både optimal och deterministisk. Om det för något tillstånd ss finns två handlingar aa och aa' som ger samma förväntade utfall, kommer valet av endast en av dem inte att påverka policyts optimalitet. Om denna princip tillämpas på varje enskilt tillstånd blir policyn deterministisk samtidigt som dess optimalitet bibehålls.

Exempel på att göra en optimal policy deterministisk

Optimala värdefunktioner

Optimala policys delar samma värdefunktioner — detta blir tydligt när vi betraktar hur policys jämförs. Det innebär att optimala policys delar både tillståndsvärdefunktion och aktionsvärdefunktion.

Dessutom har optimala värdefunktioner sina egna Bellman-ekvationer som kan skrivas utan hänvisning till någon specifik policy. Dessa ekvationer kallas Bellmans optimalitetsekvationer.

Optimal tillståndsvärdefunktion

Note
Definition

Optimalt tillståndsvärdesfunktion VV_* (eller vv_*) representerar den maximala förväntade avkastningen som kan uppnås från ett visst tillstånd genom att följa en optimal policy.

Det kan matematiskt definieras så här:

v(s)=maxπvπ(s)=Eπ[GtSt=s]\def\E{\operatorname{\mathbb{E}}} v_*(s) = \max_\pi v_\pi(s) = \E_{\pi_*}[G_t | S_t = s]

Bellmans optimalitetsekvation för denna värdefunktion kan härledas enligt följande:

v(s)=aπ(as)s,rp(s,rs,a)(r+γv(s))=maxas,rp(s,rs,a)(r+γv(s))\begin{aligned} v_*(s) &= \sum_a \pi_*(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_*(s')\Bigr)\\ &= \max_a \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_*(s')\Bigr) \end{aligned}

Intuition

Som du redan vet finns det alltid minst en policy som är både optimal och deterministisk. En sådan policy skulle, för varje tillstånd, konsekvent välja en specifik åtgärd som maximerar den förväntade avkastningen. Därför skulle sannolikheten att välja denna optimala åtgärd alltid vara 1, och sannolikheten att välja någon annan åtgärd skulle vara 0. Med detta i åtanke behöver den ursprungliga Bellman-ekvationen inte längre summationsoperatorn. Istället, eftersom vi vet att vi alltid kommer att välja den bästa möjliga åtgärden, kan vi helt enkelt ersätta summan med att ta ett maximum över alla tillgängliga åtgärder.

Optimal åtgärdsvärdesfunktion

Note
Definition

Optimal åtgärdsvärdesfunktion QQ_* (eller qq_*) representerar den maximala förväntade avkastningen som kan uppnås genom att ta en viss åtgärd i ett visst tillstånd och därefter följa den optimala policyn.

Det kan matematiskt definieras så här:

q(s,a)=maxπqπ(s,a)=Eπ[GtSt=s,At=a]\def\E{\operatorname{\mathbb{E}}} q_*(s, a) = \max_\pi q_\pi(s, a) = \E_{\pi_*}[G_t | S_t = s, A_t = a]

Bellmans optimalitetsekvation för denna värdefunktion kan härledas enligt följande:

q(s,a)=s,rp(s,rs,a)(r+γaπ(as)q(s,a))=s,rp(s,rs,a)(r+γmaxaq(s,a))\begin{aligned} q_*(s, a) &= \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma \sum_{a'} \pi_*(a' | s')q_*(s', a')\Bigr)\\ &= \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma \max_{a'} q_*(s', a')\Bigr) \end{aligned}

Intuition

På liknande sätt som för tillståndsvärdefunktionen kan summan ersättas med att ta ett maximum över alla tillgängliga handlingar.

question mark

Varför existerar alltid en optimal policy för varje Markov-beslutsprocess?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3

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

Avsnitt 3. Kapitel 3
some-alt