Off-policy Monte Carlo-kontroll
Svep för att visa menyn
Medan on-policy-metoder lär sig genom att följa och förbättra samma policy, introducerar off-policy-metoder en variation: de lär sig om en policy (målpolicyn) samtidigt som de följer en annan (beteendepolicyn). Denna uppdelning är kraftfull — det gör det möjligt att utvärdera eller förbättra en målpolicy utan att faktiskt behöva följa den under datainsamlingen.
Liknelse
Låt oss återvända till glassbaren från föregående kapitel. Du och din vän går in, och återigen erbjuds de tre välbekanta smakerna: choklad, vanilj och jordgubb. Choklad är din personliga favorit, och din första instinkt är att beställa den. Men denna glassbar är ny för dig, och du är inte helt säker på om choklad är rätt val. Som tur är har din vän besökt nästan alla glassbarer i staden och är en riktig glassälskare. Du frågar om deras åsikt. "Chokladen här är okej," säger de, "men lita på mig — jordgubben är exceptionell." Så, baserat på deras erfarenhet, bestämmer du dig för att hoppa över ditt vanliga val och istället välja jordgubb.
Det beslutet — att förlita sig på någon annans erfarenhet för att vägleda ditt eget val — är kärnan i off-policy-metoder. Du försöker förbättra ditt beslutsfattande med data som samlats in under någon annans beteende. Det är fortfarande utforskning — men det styrs av extern erfarenhet snarare än din egen.
Viktad stickprovsdragning
Eftersom agenten följer beteendepolicyn under episodgenerering måste vi ta hänsyn till skillnaden mellan vad beteendepolicyn genererar och vad målpolicyn skulle generera. Det är här importance sampling kommer in.
Importance sampling är en statistisk teknik som används för att uppskatta det förväntade värdet av en funktion under en sannolikhetsfördelning med hjälp av prover tagna från en annan fördelning.
Importance sampling ger ett sätt att justera de utfall som observerats under beteendepolicyn så att de blir giltiga uppskattningar för målpolicyn.
Låt oss titta på en trajektoria som börjar från ett visst tillstånd St och följer en viss policy π tills episoden avslutas vid tidpunkt T. Specifikt observerar vi:
At,St+1,At+1,...,STVad är sannolikheten för att denna trajektoria inträffar under en policy π? Det beror på både policyns sannolikheter för handlingar och miljöns övergångsdynamik:
p(trajectory∣π)=k=t∏T−1π(Ak∣Sk)p(Sk+1∣Sk,Ak)Antag nu att trajektorien faktiskt genererades av en annan policy — beteendepolicyn b. För att korrekt använda denna trajektoria för att uppskatta förväntningar under målpolicyn π måste vi ta hänsyn till hur mycket mer eller mindre sannolik denna sekvens av handlingar hade varit under π jämfört med b.
Det är här importance sampling-kvoten kommer in. Den definieras som den relativa sannolikheten för trajektorien under de två policyerna:
ρ=p(trajectory∣b)p(trajectory∣π)=k=t∏T−1b(Ak∣Sk)p(Sk+1∣Sk,Ak)π(Ak∣Sk)p(Sk+1∣Sk,Ak)=k=t∏T−1b(Ak∣Sk)π(Ak∣Sk)Till slut tar övergångssannolikheterna ut varandra, eftersom båda policyerna verkar i samma miljö, och värdet på ρ beror endast på policyerna, inte på miljön.
Varför detta är viktigt
Kvoten ρ anger hur vi omviktar avkastningen Gt som observerats under beteendepolicyn så att det blir en obiaserad uppskattning av vad avkastningen skulle ha varit under målpolicyn:
Eπ[Gt]=Eb[ρ⋅Gt]Med andra ord, även om data samlades in med hjälp av b, kan vi fortfarande uppskatta förväntad avkastning under π — förutsatt att b ger icke-noll sannolikhet för varje åtgärd som π kan välja (täkningsantagandet).
Praktiska överväganden
Varians vid viktad stickprovsdragning
Att använda viktad stickprovsdragning (importance sampling) är konceptuellt enkelt. Vi justerar den uppskattade aktionsvärdesfunktionen q(s,a) genom att väga varje observerad avkastning med motsvarande viktad stickprovsförhållande. Den enklaste formuleringen ser ut så här:
q(s,a)=N(s,a)∑i=0N(s,a)ρi(s,a)⋅Returnsi(s,a)där:
- ρi(s,a) är viktad stickprovsförhållande för den i:te banan som startar från (s,a);
- Returnsi(s,a) är avkastningen från den banan;
- N(s,a) är antalet gånger (s,a) har besökts.
Detta kallas ordinär viktad stickprovsdragning. Den ger en oberoende uppskattning av q(s,a), men kan drabbas av mycket hög varians, särskilt när beteende- och målpolicyn skiljer sig mycket åt.
För att minska variansen kan vi använda ett mer stabilt alternativ: viktad viktad stickprovsdragning (weighted importance sampling). Denna metod normaliserar vikterna, vilket minskar effekten av stora förhållanden och leder till stabilare inlärning:
q(s,a)=∑i=0N(s,a)ρi(s,a)∑i=0N(s,a)ρi(s,a)⋅Returnsi(s,a)I denna version är täljaren samma viktade summa av avkastningar, men nämnaren är nu summan av vikterna, istället för en enkel räkning.
Detta gör uppskattningen sned, men snedheten minskar när fler stickprov samlas in. I praktiken föredras viktad viktad stickprovsdragning tack vare dess betydligt lägre varians och större numerisk stabilitet.
Policys
Precis som i on-policy-fallet används ε-giriga policys för både målpolicyn π(a∣s) och beteendepolicyn b(a∣s).
Vid första anblicken verkar det naturligt att göra målpolicyn helt girig — vårt slutgiltiga mål är trots allt en girig policy. I praktiken orsakar detta dock ett stort problem: om vid något steg π(a∣s)=0 för den åtgärd som faktiskt valdes av beteendepolicyn, blir viktade urvalskvoten ρ noll och återstående delen av episoden ignoreras effektivt.
Genom att använda ett litet ε (t.ex. ε=0.01) i målpolicyn säkerställs att π(a∣s)>0 för varje åtgärd, så att ρ aldrig blir noll mitt i en episod. När träningen är klar är det enkelt att konvertera den inlärda ε-giriga policyn till en strikt girig policy. Precis som vid on-policy-inlärning bör avtagande ε användas i beteendepolicyn, men denna gång är det främst för numerisk stabilitet, eftersom ρ ändå kan bli noll mitt i en episod på grund av hur tal representeras i datorer.
Pseudokod
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Off-policy Monte Carlo-kontroll
Medan on-policy-metoder lär sig genom att följa och förbättra samma policy, introducerar off-policy-metoder en variation: de lär sig om en policy (målpolicyn) samtidigt som de följer en annan (beteendepolicyn). Denna uppdelning är kraftfull — det gör det möjligt att utvärdera eller förbättra en målpolicy utan att faktiskt behöva följa den under datainsamlingen.
Liknelse
Låt oss återvända till glassbaren från föregående kapitel. Du och din vän går in, och återigen erbjuds de tre välbekanta smakerna: choklad, vanilj och jordgubb. Choklad är din personliga favorit, och din första instinkt är att beställa den. Men denna glassbar är ny för dig, och du är inte helt säker på om choklad är rätt val. Som tur är har din vän besökt nästan alla glassbarer i staden och är en riktig glassälskare. Du frågar om deras åsikt. "Chokladen här är okej," säger de, "men lita på mig — jordgubben är exceptionell." Så, baserat på deras erfarenhet, bestämmer du dig för att hoppa över ditt vanliga val och istället välja jordgubb.
Det beslutet — att förlita sig på någon annans erfarenhet för att vägleda ditt eget val — är kärnan i off-policy-metoder. Du försöker förbättra ditt beslutsfattande med data som samlats in under någon annans beteende. Det är fortfarande utforskning — men det styrs av extern erfarenhet snarare än din egen.
Viktad stickprovsdragning
Eftersom agenten följer beteendepolicyn under episodgenerering måste vi ta hänsyn till skillnaden mellan vad beteendepolicyn genererar och vad målpolicyn skulle generera. Det är här importance sampling kommer in.
Importance sampling är en statistisk teknik som används för att uppskatta det förväntade värdet av en funktion under en sannolikhetsfördelning med hjälp av prover tagna från en annan fördelning.
Importance sampling ger ett sätt att justera de utfall som observerats under beteendepolicyn så att de blir giltiga uppskattningar för målpolicyn.
Låt oss titta på en trajektoria som börjar från ett visst tillstånd St och följer en viss policy π tills episoden avslutas vid tidpunkt T. Specifikt observerar vi:
At,St+1,At+1,...,STVad är sannolikheten för att denna trajektoria inträffar under en policy π? Det beror på både policyns sannolikheter för handlingar och miljöns övergångsdynamik:
p(trajectory∣π)=k=t∏T−1π(Ak∣Sk)p(Sk+1∣Sk,Ak)Antag nu att trajektorien faktiskt genererades av en annan policy — beteendepolicyn b. För att korrekt använda denna trajektoria för att uppskatta förväntningar under målpolicyn π måste vi ta hänsyn till hur mycket mer eller mindre sannolik denna sekvens av handlingar hade varit under π jämfört med b.
Det är här importance sampling-kvoten kommer in. Den definieras som den relativa sannolikheten för trajektorien under de två policyerna:
ρ=p(trajectory∣b)p(trajectory∣π)=k=t∏T−1b(Ak∣Sk)p(Sk+1∣Sk,Ak)π(Ak∣Sk)p(Sk+1∣Sk,Ak)=k=t∏T−1b(Ak∣Sk)π(Ak∣Sk)Till slut tar övergångssannolikheterna ut varandra, eftersom båda policyerna verkar i samma miljö, och värdet på ρ beror endast på policyerna, inte på miljön.
Varför detta är viktigt
Kvoten ρ anger hur vi omviktar avkastningen Gt som observerats under beteendepolicyn så att det blir en obiaserad uppskattning av vad avkastningen skulle ha varit under målpolicyn:
Eπ[Gt]=Eb[ρ⋅Gt]Med andra ord, även om data samlades in med hjälp av b, kan vi fortfarande uppskatta förväntad avkastning under π — förutsatt att b ger icke-noll sannolikhet för varje åtgärd som π kan välja (täkningsantagandet).
Praktiska överväganden
Varians vid viktad stickprovsdragning
Att använda viktad stickprovsdragning (importance sampling) är konceptuellt enkelt. Vi justerar den uppskattade aktionsvärdesfunktionen q(s,a) genom att väga varje observerad avkastning med motsvarande viktad stickprovsförhållande. Den enklaste formuleringen ser ut så här:
q(s,a)=N(s,a)∑i=0N(s,a)ρi(s,a)⋅Returnsi(s,a)där:
- ρi(s,a) är viktad stickprovsförhållande för den i:te banan som startar från (s,a);
- Returnsi(s,a) är avkastningen från den banan;
- N(s,a) är antalet gånger (s,a) har besökts.
Detta kallas ordinär viktad stickprovsdragning. Den ger en oberoende uppskattning av q(s,a), men kan drabbas av mycket hög varians, särskilt när beteende- och målpolicyn skiljer sig mycket åt.
För att minska variansen kan vi använda ett mer stabilt alternativ: viktad viktad stickprovsdragning (weighted importance sampling). Denna metod normaliserar vikterna, vilket minskar effekten av stora förhållanden och leder till stabilare inlärning:
q(s,a)=∑i=0N(s,a)ρi(s,a)∑i=0N(s,a)ρi(s,a)⋅Returnsi(s,a)I denna version är täljaren samma viktade summa av avkastningar, men nämnaren är nu summan av vikterna, istället för en enkel räkning.
Detta gör uppskattningen sned, men snedheten minskar när fler stickprov samlas in. I praktiken föredras viktad viktad stickprovsdragning tack vare dess betydligt lägre varians och större numerisk stabilitet.
Policys
Precis som i on-policy-fallet används ε-giriga policys för både målpolicyn π(a∣s) och beteendepolicyn b(a∣s).
Vid första anblicken verkar det naturligt att göra målpolicyn helt girig — vårt slutgiltiga mål är trots allt en girig policy. I praktiken orsakar detta dock ett stort problem: om vid något steg π(a∣s)=0 för den åtgärd som faktiskt valdes av beteendepolicyn, blir viktade urvalskvoten ρ noll och återstående delen av episoden ignoreras effektivt.
Genom att använda ett litet ε (t.ex. ε=0.01) i målpolicyn säkerställs att π(a∣s)>0 för varje åtgärd, så att ρ aldrig blir noll mitt i en episod. När träningen är klar är det enkelt att konvertera den inlärda ε-giriga policyn till en strikt girig policy. Precis som vid on-policy-inlärning bör avtagande ε användas i beteendepolicyn, men denna gång är det främst för numerisk stabilitet, eftersom ρ ändå kan bli noll mitt i en episod på grund av hur tal representeras i datorer.
Pseudokod
Tack för dina kommentarer!