Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Aktionsvärden | Multi-Armed Bandit-Problemet
Introduktion till Reinforcement Learning med Python

Aktionsvärden

Svep för att visa menyn

Handlingsvärde är ett grundläggande begrepp i MAB-problemet. Det spelar en avgörande roll i olika algoritmer, inklusive epsilon-girig och övre konfidensgräns. Det primära syftet med ett handlingsvärde är att ge en uppskattning av den förväntade belöningen när en specifik åtgärd väljs. Det liknar ett tillstånd-handlingsvärde, men är oberoende av tillstånd på grund av MAB-problemets tillståndslösa natur.

Definition av handlingsvärde

Formellt representerar handlingsvärdet, betecknat som Q(a)Q(a), den förväntade belöningen av att välja åtgärd aa:

Q(a)=E[RA=a]\def\E{\operatorname{\mathbb{E}}} Q(a) = \E[R | A = a]

där:

  • RR är den mottagna belöningen;
  • AA är den valda åtgärden.

Eftersom den sanna belöningsfördelningen vanligtvis är okänd, måste vi uppskatta Q(a)Q(a) med hjälp av observerade data.

Uppskattning av åtgärdsvärden

Det finns flera sätt att uppskatta Q(a)Q(a) baserat på observerade belöningar. Den vanligaste metoden är stickprovsmedelvärdesuppskattningen, som beräknar medelvärdet av belöningen som erhållits från att välja åtgärd aa fram till tidpunkt tt:

Qt(a)=R1+R2+...+RNt(a)Nt(a)=i=1Nt(a)RiNt(a)Q_t(a) = \frac{R_1 + R_2 + ... + R_{N_t(a)}}{N_t(a)} = \frac{\sum_{i=1}^{N_t(a)} R_i}{N_t(a)}

där:

  • Qt(a)Q_t(a) är det uppskattade värdet för åtgärd aa vid tidpunkt tt;
  • Nt(a)N_t(a) är antalet gånger åtgärd aa har valts fram till tidpunkt tt;
  • RiR_i är belöningen som erhållits vid varje tillfälle då åtgärd aa valdes.

När fler stickprov samlas in, konvergerar denna uppskattning mot den sanna förväntade belöningen Q(a)Q_*(a) under förutsättning att belöningsfördelningen förblir stationär.

Note
Definition

En stationär fördelning är en fördelning som inte förändras över tid, oavsett vilka åtgärder som vidtas eller hur miljön förändras.

Inkrementell uppdateringsregel

Även om formeln ovan kan användas för att uppskatta åtgärdsvärden kräver den att alla tidigare belöningar lagras och att deras summa beräknas om vid varje tidssteg. Med inkrementella uppdateringar blir detta onödigt. Formeln för inkrementella uppdateringar kan härledas så här:

Qk+1=1ki=1kRi=1k(Rk+i=1k1Ri)=1k(Rk+(k1)Qk)=1k(Rk+kQkQk)=Qk+1k(RkQk)\begin{aligned} Q_{k+1} &= \frac1k \sum_{i=1}^k R_i\\ &= \frac1k (R_k + \sum_{i=1}^{k-1} R_i)\\ &= \frac1k (R_k + (k-1) Q_k)\\ &= \frac1k (R_k + k Q_k - Q_k)\\ &= Q_k + \frac1k(R_k - Q_k) \end{aligned}

för någon åtgärd där:

  • QkQ_k är en uppskattning av den kk-te belöningen, som kan uttryckas som ett medelvärde av de första k1k-1 belöningarna;
  • RkR_k är den faktiska kk-te belöningen.

Intuition

Genom att känna till uppskattningen av den kk-te belöningen, QkQ_k, och den faktiska kk-te belöningen, RkR_k, kan felet mätas som skillnaden mellan dessa värden. Därefter kan nästa uppskattning beräknas genom att justera den föregående uppskattningen något i riktning mot den faktiska belöningen, för att minska felet.

Denna intuition leder till en annan formel, som ser ut så här:

Qk+1=Qk+α(RkQk)Q_{k+1} = Q_k + \alpha (R_k - Q_k)

där α\alpha är en steglängdsparameter som styr inlärningshastigheten. Precis som i den tidigare formeln kan alfa vara 1k\frac1k, vilket resulterar i en stickprovsbaserad medelvärdesuppskattning. Alternativt används ofta en konstant α\alpha, eftersom det inte kräver något extra utrymme (för att lagra hur många gånger en åtgärd har utförts) och möjliggör anpassning till icke-stationära miljöer genom att lägga större vikt vid senaste observationer.

Optimistisk initialisering

I början av en träningsprocess kan uppskattningarna av åtgärdsvärden variera avsevärt, vilket kan leda till för tidig exploatering. Detta innebär att agenten kan utnyttja sin initiala kunskap för tidigt och därmed gynna suboptimala åtgärder baserat på begränsad erfarenhet. För att motverka detta och uppmuntra till initial utforskning är en enkel och effektiv teknik optimistisk initialisering.

Vid optimistisk initialisering initieras åtgärdsvärden till relativt höga värden (t.ex. Q0(a)=1Q_0(a) = 1 istället för 0). Detta skapar intrycket att alla åtgärder är lovande från början. Som ett resultat uppmuntras agenten att utforska varje åtgärd flera gånger innan den väljer det bästa alternativet. Denna teknik är mest effektiv när den används tillsammans med konstant steglängd.

Optimistisk initialisering vs realistisk
Note
Notering

Den optimala åtgärdsfrekvensen i denna och kommande grafer avser andelen miljöer där den optimala åtgärden valdes vid ett givet tidsteg.

Till exempel, om det finns 10 testmiljöer och den optimala åtgärden valdes i 6 av dem vid tidsteg 200, skulle den optimala åtgärdsfrekvensen för det tidsteget vara 0,6. Denna mätning är användbar för att utvärdera prestanda eftersom den korrelerar med att maximera belöningen utan att vara beroende av de exakta belöningsvärdena.

question mark

Vad används medelvärdesuppskattningen till vid uppskattning av åtgärdsvärden?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 2

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

Aktionsvärden

Handlingsvärde är ett grundläggande begrepp i MAB-problemet. Det spelar en avgörande roll i olika algoritmer, inklusive epsilon-girig och övre konfidensgräns. Det primära syftet med ett handlingsvärde är att ge en uppskattning av den förväntade belöningen när en specifik åtgärd väljs. Det liknar ett tillstånd-handlingsvärde, men är oberoende av tillstånd på grund av MAB-problemets tillståndslösa natur.

Definition av handlingsvärde

Formellt representerar handlingsvärdet, betecknat som Q(a)Q(a), den förväntade belöningen av att välja åtgärd aa:

Q(a)=E[RA=a]\def\E{\operatorname{\mathbb{E}}} Q(a) = \E[R | A = a]

där:

  • RR är den mottagna belöningen;
  • AA är den valda åtgärden.

Eftersom den sanna belöningsfördelningen vanligtvis är okänd, måste vi uppskatta Q(a)Q(a) med hjälp av observerade data.

Uppskattning av åtgärdsvärden

Det finns flera sätt att uppskatta Q(a)Q(a) baserat på observerade belöningar. Den vanligaste metoden är stickprovsmedelvärdesuppskattningen, som beräknar medelvärdet av belöningen som erhållits från att välja åtgärd aa fram till tidpunkt tt:

Qt(a)=R1+R2+...+RNt(a)Nt(a)=i=1Nt(a)RiNt(a)Q_t(a) = \frac{R_1 + R_2 + ... + R_{N_t(a)}}{N_t(a)} = \frac{\sum_{i=1}^{N_t(a)} R_i}{N_t(a)}

där:

  • Qt(a)Q_t(a) är det uppskattade värdet för åtgärd aa vid tidpunkt tt;
  • Nt(a)N_t(a) är antalet gånger åtgärd aa har valts fram till tidpunkt tt;
  • RiR_i är belöningen som erhållits vid varje tillfälle då åtgärd aa valdes.

När fler stickprov samlas in, konvergerar denna uppskattning mot den sanna förväntade belöningen Q(a)Q_*(a) under förutsättning att belöningsfördelningen förblir stationär.

Note
Definition

En stationär fördelning är en fördelning som inte förändras över tid, oavsett vilka åtgärder som vidtas eller hur miljön förändras.

Inkrementell uppdateringsregel

Även om formeln ovan kan användas för att uppskatta åtgärdsvärden kräver den att alla tidigare belöningar lagras och att deras summa beräknas om vid varje tidssteg. Med inkrementella uppdateringar blir detta onödigt. Formeln för inkrementella uppdateringar kan härledas så här:

Qk+1=1ki=1kRi=1k(Rk+i=1k1Ri)=1k(Rk+(k1)Qk)=1k(Rk+kQkQk)=Qk+1k(RkQk)\begin{aligned} Q_{k+1} &= \frac1k \sum_{i=1}^k R_i\\ &= \frac1k (R_k + \sum_{i=1}^{k-1} R_i)\\ &= \frac1k (R_k + (k-1) Q_k)\\ &= \frac1k (R_k + k Q_k - Q_k)\\ &= Q_k + \frac1k(R_k - Q_k) \end{aligned}

för någon åtgärd där:

  • QkQ_k är en uppskattning av den kk-te belöningen, som kan uttryckas som ett medelvärde av de första k1k-1 belöningarna;
  • RkR_k är den faktiska kk-te belöningen.

Intuition

Genom att känna till uppskattningen av den kk-te belöningen, QkQ_k, och den faktiska kk-te belöningen, RkR_k, kan felet mätas som skillnaden mellan dessa värden. Därefter kan nästa uppskattning beräknas genom att justera den föregående uppskattningen något i riktning mot den faktiska belöningen, för att minska felet.

Denna intuition leder till en annan formel, som ser ut så här:

Qk+1=Qk+α(RkQk)Q_{k+1} = Q_k + \alpha (R_k - Q_k)

där α\alpha är en steglängdsparameter som styr inlärningshastigheten. Precis som i den tidigare formeln kan alfa vara 1k\frac1k, vilket resulterar i en stickprovsbaserad medelvärdesuppskattning. Alternativt används ofta en konstant α\alpha, eftersom det inte kräver något extra utrymme (för att lagra hur många gånger en åtgärd har utförts) och möjliggör anpassning till icke-stationära miljöer genom att lägga större vikt vid senaste observationer.

Optimistisk initialisering

I början av en träningsprocess kan uppskattningarna av åtgärdsvärden variera avsevärt, vilket kan leda till för tidig exploatering. Detta innebär att agenten kan utnyttja sin initiala kunskap för tidigt och därmed gynna suboptimala åtgärder baserat på begränsad erfarenhet. För att motverka detta och uppmuntra till initial utforskning är en enkel och effektiv teknik optimistisk initialisering.

Vid optimistisk initialisering initieras åtgärdsvärden till relativt höga värden (t.ex. Q0(a)=1Q_0(a) = 1 istället för 0). Detta skapar intrycket att alla åtgärder är lovande från början. Som ett resultat uppmuntras agenten att utforska varje åtgärd flera gånger innan den väljer det bästa alternativet. Denna teknik är mest effektiv när den används tillsammans med konstant steglängd.

Optimistisk initialisering vs realistisk
Note
Notering

Den optimala åtgärdsfrekvensen i denna och kommande grafer avser andelen miljöer där den optimala åtgärden valdes vid ett givet tidsteg.

Till exempel, om det finns 10 testmiljöer och den optimala åtgärden valdes i 6 av dem vid tidsteg 200, skulle den optimala åtgärdsfrekvensen för det tidsteget vara 0,6. Denna mätning är användbar för att utvärdera prestanda eftersom den korrelerar med att maximera belöningen utan att vara beroende av de exakta belöningsvärdena.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 2
some-alt