AI och maskininlärning handlar ju egentligen om intelligens och bland annat om hur man ska agera givet sina tankar om hur världen fungerar. Det finns därför en hel del generell kunskap från mitt favoritområde, som faktiskt bär över till vardagen.

Banditer med många armar

Du är på ditt standardcafé och funderar på om du ska ta din standardsmörgås (A) eller den där surdegsmackan (B) som du aldrig testat, men som ser lite sämre ut. Hur ser det rationella valet ut? Är det helt enkelt att ta den du tror mest på?

Om du aldrig mer ska äta en smörgås så är detta rätt sätt. Vi kallar det den giriga strategin. Men om du planerar att äta fler gånger och det kan vara så att B faktiskt ger dig mer smakglädje, så har du en potentiell vinst av att få reda på det. Ofta diskonterar man framtiden och säger att framtida vinster är mindre värda än direkta, så formeln för exakt hur mycket du vinner på mer kunskap kan variera. Men faktum kvarstår – för återkommande val finns värde i information, därför finns det ibland värde i att testa nya saker även om man är tveksam till dem.

I AI kallar vi denna frågeställning ”explore vs exploit” eller att ”utforska eller utnyttja”. Djur och människor har en inbyggd algoritm för att lösa detta approximativt, genom att vi är nyfikna och blir understimulerade utan nya intryck så väger vi in omväxlingsvärde när vi agerar.

Men hur stort är värdet av information och hur ofta ska man testa nya grejer? Detta kallas den flerarmade banditen, med analogi från att du är på ett ovanligt kasino där de enarmade banditerna faktiskt kan vara inställda på att ge vinst över tid. Du vet inte vilka som ger vinst och hur mycket, så du börjar slumpmässigt testa att dra i några armar. Frågan är då: När du långsamt får en känsla över vilken maskin som ger mest utdelning, hur girig ska du vara? Hur ofta ska du testa andra maskiner för att se om du bara hade otur och de andra faktiskt är bättre?

Detta visar sig vara en bra förenklad analogi eller modell för många vanor och strategier som vi använder både privat och i företagsvärlden. Det finns flera sätt att lösa det, men en enkel strategi med viss teoretisk grund är sannolikhets-matchning. Om du är 90% säker på att ett alternativ är bäst, så ska du använda det alternativet 90% av gångerna och testa andra saker 10% av gångerna. Om alternativen visar sig vara så dåliga som du tror, så kommer du med tiden bli mer säker på att alternativ A är bäst och testa andra alternativ allt mer sällan.

Du kan enkelt verifiera att det fungerar i extremerna. ~100% att A är bäst? Välj alltid det. ~0% att A är bäst? Välj aldrig det? 50% att A är rätt och 50% att B är rätt? Testa dem lika mycket. Det intressanta är naturligtvis att denna enkla regel även fungerar väl för andra värden.

Detta är ett ganska djupt resultat som är direkt applicerbart på många verkliga situationer. Tumregeln ovan förtjänar en plats i både självhjälps-böcker och populär företagslitteratur. Jag försöker själv använda denna metod för att tänka när vi styr Tenfifty. Ska vi testa ett nytt sätt att marknadsföra som vi är osäkra på? Information har värde, så sannolikhets-matcha!

Kontinuerliga variabler

Det finns naturligtvis en massa varianter på den förenklade modellen ovan. Kanske vad som är bäst förändras över tid? Då har vi ruttnande banditer. Banditerna kan t.ex också samarbeta, duellera eller vara olika dyra. En vanlig variant är när du inte har ett begränsat antal oberoende alternativ, utan i stället en kontinuerlig parameter att vrida på: Banditer med oändligt antal armar.

Vilken temperatur ska vi ha på vår process? Hur ofta ska vi ha projektavstämningar? När på dagen är bäst att skicka ett mail till mina kunder?

Det enklaste sättet är att dela in parametern i regioner och sedan säga att varje region är ett alternativ och låtsas att det är samma problem som ovan. Detta kallas att diskretisera, men är oftast inte det bästa alternativet.

Du behöver en modell, oavsett om denna är formellt nedskriven eller bara en grov uppskattning i ditt huvud, kring hur parametern påverkar utfallet tillsammans med hur osäker du är i olika regioner. Du kanske har bra koll kring ett område som ni testat mycket, men mindre bra koll på andra områden som du tror mindre på. Din osäkerhet uttrycker du i standardavvikelser. Ett sätt att göra det är att svara på: ”Hur stor region som förbättrar mitt utfall behöver jag ange så att det bara är 25% chans att förbättringen i verkligheten är ännu större?”.

Du kanske tror att du får i snitt 1000 öppnade mail om du skickar dem på tisdag kl.7 och i snitt 800 om du skickar på tisdag kl.16, men du har bara testat eftermiddagen en gång så din gissning för övre kvartilen för kl.16 är bredare – kanske 800 – 1200, medan kl.7 har du bra koll så där kanske det är 1000 – 1100.

En god strategi, som återigen har stark teoretisk grund, är då att använda det värde som har högst värde på översta kvartilen. Det är kanske inte så lätt att uppskatta själv i vardagen, men det är en väldigt enkelt formel att styra ett företag med, som enkelt kan stoppas in i t.ex ett Excel-ark.

I exemplet från ovan är värdet för kl.7 alltså 1100 och värdet för kl.16 är 1200, vilket gör att det kan vara en god idé att testa kl.16.

Man kan vilja utforska mer eller mindre aggressivt, t.ex pga begränsad budget nedan, och då kan man använda en annan gräns än just 25%. Även om detta låter totalt annorlunda från den sannolikhets-matchande tumregeln ovan, så har reglerna faktiskt liknande beteende.

Begränsad budget

I många fall har man en begränsad budget i tid eller pengar att förhålla sig till. Det finns till exempel ett område inom AI som kallas hyperparameteroptimering. Där låter man en algoritm leta efter vilken modell som fungerar bäst på ett visst problem. Om du där anger att algoritmen har en tidsbudget på ett dygn, så ska en rationell algoritm värdera information högre i början, för då finns fortfarande mycket tid kvar att använda ny kunskap. När tidsbudgeten minskar, så ska algoritmen bli allt mer girig och sluta testa nya kreativa men osannolika lösningar.

En rationell algoritm ska alltså vara som mest nyfiken och lätt-uttråkad när den är ung och har lång tid på sig att använda informationen och efterhand bli mer och mer konservativ när den blir äldre. Påminner det dig om något i verkligheten?

Vill du styra ditt företag lite mer modelldrivet? Vi kanske använder något mer komplicerade formler eller Monte Carlo-simulering, men ovanstående tumregler tillsammans med modeller som vet hur osäkra de är, är basen till hur vi kan hjälpa dig att agera bättre.

Välj en AI-leverantör som vet vilken macka du ska testa idag!

Lämna ett svar

XHTML: Du kan använda dessa taggar: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Author

David Fendrich
CTO
David Fendrich is our Chief Technical Officer and one of the founders of Tenfifty. He has been working with AI and data science for almost two decades, helping companies put cutting edge solutions into practical use.