Låsningproblemet
En bandit som fortsätter vinna
Vanilla UCB1 omberäknar poäng varje steg. Väljer en arm. Drar i den. Uppdaterar n_k & mean_reward(k). Upprepar. I en lång träningskörning med många källor kan en enda arm samla en svit av höga belöningar, driva upp sitt medelvärde & bli nästintill omöjlig att slå. Andra armar stagnerar vid lågt n_k med gamla medelvärden. Låsning.
Låsning skadar ANDREA på två sätt:
1. Mångfaldskollaps. En modell som tränas 90 % av stegen på en källa lär sig källans stilistiska tickar. Genererade prover drar mot repetitiva mönster som matchar den dominerande källan.
2. Föråldrad utforskning. Armar med föråldrade medel kan inte återhämta sig. En arm vars medel sjönk tidigt fastnar vid det medlet även om modellen nu har vuxit tillräcklig kapacitet för att extrahera belöning från den.
En Fas Köper Tid
Lösning: håll en fast uppsättning fokusarmar för en fas (flera steg) innan omvärdering. En fas på 14 steg betyder att 14 framåtskridanden träffar samma fokusarmar. Medelbelöningar stabiliseras. Stochastiskt brus genomsnittas ut. Sedan kastar banditen om.
Variabel Faslängd
ANDREA väljer faslängd slumpmässigt från {7, 14, 21, 28, 42} steg vid varje fasgräns. Fem värden, uniformt slumpmässigt. Korta faser (7) reagerar snabbt på dåliga val; långa faser (42) låter stabila fokussättningar utnyttjas fullt ut. Taket begränsar skadan: högst 42 steg spenderade på en dålig fokuseringskonfiguration innan tvingad omrullning.
Faslängdsstatistik
1d3 (2-ögon) & 1d4 (3-ögon)
Tärningsnotation
Bordsrollsnotation: NdM betyder slå N tärningar med M sidor vardera. 1d3 slår en 3-sidig tärning, som ger ett värde i {1, 2, 3}. 1d4 slår en 4-sidig tärning, som ger {1, 2, 3, 4}. ANDREA tillåter också resultatet 0 genom konvention: en slaga på 0 betyder helt slumpmässig fas (inga UCB-fokuserade armar).
2-Ögon vs 3-Ögon-konfigurationer
ANDREA:s träningskonfiguration väljer en av två tärningslägen:
2-ögons konfig (1d3). Möjliga fokusarmantal: {0, 1, 2, 3}. Resultat 0 reserverat för slumpfas.
3-ögons konfig (1d4). Möjliga fokusarmantal: {0, 1, 2, 3, 4}. Större pooler tillåter mer koncentrerade faser.
Slump först, UCB sedan
Oavsett tärningsslag fyller ANDREA fokusplatser i två genomgångar:
1. Slumpmässiga armar först. Välj en bråkdel av fokusplatser enhetligt slumpmässigt från alla tillgängliga armar. Detta tvingar kombinatorisk variation varje fas, oavsett UCB-rankningar.
2. UCB fyller resterande platser. Beräkna UCB1-poäng för armar som inte redan valts. Ta de högst rankade kvarvarande armarna tills fokusplatsantalet är fyllt.
Random-first spelar roll. Om UCB valt först skulle en streak-ledare alltid ta en plats. Med random-first kan till och med den bästa UCB-armen sitta över en fas. Mångfald garanteras.
Rena slumpfaser
När tärningen visar 0 kommer hela fokusuppsättningen från slumpmässiga val. UCB bidrar med ingenting. Ungefär 25% av faserna (1d4) eller 33% av faserna (1d3) hamnar här. Rena slumpfaser tvingar banditen att uppdatera sitt urval av lågdragna armar, vilket håller medelbelöningsuppskattningarna ärliga över hela armpoolen.
Sannolikheter för tärningsutfall
Begränsa skadan
En dålig fas kostar upp till 42 steg
Antag att UCB-rankningar väljer en fokusarm vars sanna medelvärde är mycket lägre än det observerade medelvärdet. Fasen låser in den armen. Belöningen förblir låg hela fasen. Hur länge tar det innan banditen kan korrigera?
Maximal faslängd: 42 steg. Efter 42 steg avslutas fasen, tärningar kastas om, fokusarmar blandas om. Den dåliga valet kan inte hålla längre än 42 framåtgående pass.
Varför 42 (och inte 100, och inte 1000)
Långa faser låter mean_reward-uppskattningar stabiliseras. Statistikteori: variansen hos ett medelvärde av n prover minskar som 1/n. Från 7 prover till 42 prover ger 6x fler prover, sqrt(6) ungefär 2,45x tightare standardfel. Efter 42 prover ligger mean_reward inom ungefär +/-15% av sitt sanna värde (beroende på reward-varians).
Förbi 42 prover minskar vinsten: 100 prover vs 42 prover = 2,4x fler, sqrt(2,4) ungefär 1,55x tightare standardfel. Marginalnytta minskar medan kostnaden för en dålig låsning växer. 42 steg balanserar de två.
Mångfald vs Konvergens
Korta faser (7 steg): belöningsuppskattningarna förblir brusiga, men dåliga val kostar lite. Långa faser (42 steg): uppskattningarna är snäva, men dåliga val kostar mer. ANDREA blandar faslängder jämnt så att båda regimerna förekommer i varje träningskörning.
Btok Återuppbyggnadskostnad
Varje fasgräns utlöser en btok-filåteruppbyggnad för fokusarmarna. Btok-återuppbyggnad körs i en bakgrundstråd; CUDA hetladdar vid mtime-ändring. Återuppbyggnaden tar sekunder; faser måste köras tillräckligt länge så att återuppbyggnadsöverheaden förblir liten. 42 steg vid ANDREA-120M-träningshastighet överstiger bekvämt återuppbyggnadstiden.
Resonemang om Taket
Vad kommer härnäst
Vad du har
Fasbaserad tärningskontroll kapslar in UCB1 i tre skyddande regler: variabel faslängd (7-42), slumpmässiga armar först, tärningsdrivna slumpmässiga faser (25-33% ren slump). Den 42-stegs taket begränsar skadan; de slumpmässiga faserna förhindrar låsning; de variabla längderna blandar reaktionshastighet med uppskattningsstabilitet.
Vad som återstår
Var kommer belöningsignalen som matar UCB ifrån? Aktivitet 78 (belöningsattribution) visar hur CUDA rapporterar förlust per källa varje steg, hur en EMA per källa spårar belöning, & varför ANDREA skalar råa belöningar med 1000x innan de matas till UCB1.
Golv & epokstraff (aktivitet 79) lägger ytterligare skyddande regler ovanpå banditens utdata, vilket säkerställer att små källor inte svälts ut & stora källor inte upprepas till memorisering.
Referens
ANDREA whitepaper, avsnitt 3.2.