2018 GRIDWORLD OCH MDP PROJEKTRAPPORT 729G43 MICHAEL JONASSON
Innehåll Inledning & Bakgrund... 2 Förstärkt inlärning... 2 MDP... 2 Gridworld... 3 Nytta och policy... 4 Värdefunktion och Bellmanekvationer... 6 Policy-iteration... 7 Modellfri inlärning med Q-learning... 7 ε-greedy metoden... 8 Enkel applicerad Q-learning... 10 Källor... 15 1
Inledning & Bakgrund Förstärkt inlärning Att lära sig agera på sätt som belönar tillvägagångssättet är ett tecken på intelligens. Djur kan exempelvis tränas genom att belöna ett visst beteende. Att djur kan lära sig att undvika bestraffning och söka belöningar är generellt accepterad, och den här aspekten av djurs intelligens har blivit grundligt studerat i experimentell psykologi (Watkins, 1989). Förstärkt inlärning (eng. reinforcement learning) är en av de äldre teknikerna som används inom A.I, och började användas tidigt i datavetenskapen. De senaste 20 åren har tekniken alltjämt attraherat ett ökande intresse bland både maskininlärning och A.I. Dess styrka ligger i det faktum att man inte behöver specificera hur en uppgift ska utföras, enbart belöning och/eller bestraffning samt ett korrekt modellerat problem krävs för att en RL-agent ska kunna hitta ett sätt att utföra en viss uppgift på. Förstärkt inlärning handlar således om hur en agent lär sig ett visst beteende genom trial-and-error i en dynamisk värld (Kaelbing, Littman & Moore, 1996). Belöningarna och straffen kan vara omedelbara eller framtida och ställer olika krav på agenten. Det finns två huvudsakliga strategier för att lösa RL-problem. Den första är att söka i agentens olika beteende i hopp om att hitta ett visst beteende som fungerar bra i en specifik omgivning. Denna strategi är till grund för genetiska algoritmer och genetisk programmering. Den andra strategin går ut på att använda statiska tekniker och dynamisk programmering för att försöka uppskatta nyttan (eng. utility) av utföra handlingar i världen (Kaelbling et al, 1996). Denna rapport fokuserar uteslutande på den sistnämnda strategin. MDP Markov decision process (härefter MDP) tillhandahåller ett ramverk för att modellera beslutsfattande i situationer där utgången är delvis slumpmässig och delvis under kontroll av agenten som fattar besluten. MDP är användbar när man letar efter optimering av problem inom förstärkt inlärning. För att kunna modellera ett problem så att det är hanterbart med MDP så krävs det att problemet består av en uppsättning tillstånd S, handlingar A, övergångar mellan tillstånd T samt en belöningsfunktion R. Om världen som agenten verkar i är stokastisk så kan T betecknas som en sannolikhetsfunktion P(s' s, a), där funktionen modellerar sannolikheten för att nå tillstånd s' givet att agenten utför handling a i tillstånd s. En potentiell lösning/strategi till problemet kallas i MDP för en policy, och noteras med π (Russell & Norvig, 2010). Tillstånd : S Övergångsmodell : T(s, a, s') Handlingar : A(s) Belöning : R(s) Policy : PI(s) -> a 2
När man använder sig av MDP så förutsätter man att sannolikheterna för att från ett tillstånd övergå till ett annat tillstånd är markovianska (eng. markovian), vilket innebär att sannolikheten att från tillstånd sₙ nå sₙ+₁ enbart beror på det nuvarande tillståndet sₙ och handlingen som utförs i det tillståndet (Tambet, 2015). Gridworld I bilden nedan presenteras en värld bestående av 4X3 rutor. Världen är frekvent förekommande i samband med MDP-lära, och kallas inofficiellt Gridworld. I Gridworld presenteras varje möjligt tillstånd som en ruta. Ruta (2,2) är inte tillgängligt, men alla övriga rutor kan nås av agenten. Ruta (4,2) ger ett negativt resultat och ska undvikas av agenten, medan tillstånd (4,3) ger ett positivt resultat, och målet med förstärkt inlärning är att få agenten att lära sig att navigera sig till den rutan. Både den negativa och den positiva rutan är avslutande tillstånd (eng. terminal) vilket innebär att agenten börjar om eller avslutar sin sökning när den når någon av de rutorna. För att få agenten att söka sig till något av de avslutande tillstånden så kan associera en rörelsekostnad med varje tillståndsförflyttning. Detta innebär rent praktiskt att man låter belöningsfunktionen R(s) vara ett negativt tal för varje tillstånd som inte är ett avslutande tillstånd. Genom att göra det obehagligt för agenten att bara utforska så tvingas den att söka sig mot de avslutande tillstånden. Om världen som agenten befinner sig i är deterministisk så räcker det med en belöningsfunktion likt ovanstående för att identifiera en optimal förflyttning mellan tillstånd för att nå det avslutande tillståndet. Om allt som påverkar agenten är en rörelsekostnad så kommer båda riktningar agenten kan 3
ta från starttillsståndet i exemplet ovan klassificeras som optimala sekvenser till det avslutande tillståndet. Om förändringarna i världen inte bara beror på agenten och tidigare tillstånd så innebär det att världen är stokastisk. I en stokastisk värld sätts andra krav på agenten. I Gridworld är det lika långt från startrutan (1,1) till det positiva, avslutande tillståndet (4,3) oavsett om agenten väljer att gå till höger eller rakt upp. Om världen är deterministisk så kan båda hållen anses vara optimala, det vill säga, agenten kommer få lika hög belöning oavsett vilket håll den går. I en stokastisk värld, där tillståndsförflyttningarna för agenten bara delvis beror på agenten själv, är inte båda sekvenser lika mycket värda. Om agenten slumpmässigt tar ett steg till höger eller vänster när den vill gå framåt, kan den mycket väl hamna i tillstånd som den inte önskar. Exempelvis kan en agent som går till höger från start-tillståndet mycket väl av ren slump hamna i den negativa avslutande rutan. En agent som går rakt upp från starttillståndet kan även den hamna i ett icke-önskvärt tillstånd, men med mindre sannolikhet. Detta innebär att de båda sekvenserna som tidigare kunde likställas ej längre kan ses som jämlika. Risken för att hamna i det negativa avslutande tillståndet tillsammans med rörelsekostnaden bestämmer således vilken policy som är optimal. Nedan presenteras några exempel från Russell och Norvig (2010) på hur den optimala policyn förändras beroende på rörelsekostnaden R. Nytta och policy Nyttan för olika sekvenser av tillstånd beräknas i dess enklaste form som den sammanslagna möjliga belöningen av en sekvens av tillståndsförändringar: Uₕ([s₀, s₁, s₂,...]) = R(s₀) + R(s₁) + R(s₂) +. 4
Ovanstående formel uttrycker att nyttan, U, för att röra sig från s₀ till s₂ är lika med summan av belöningar som agenten ackumulerar genom att besöka samma tillstånd under den sekvensen. Detta kallas för additiva belöningar (eng. additive rewards) och innebär att framtida belöningar är värda lika mycket som omedelbara belöningar. Att jämställa framtida belöningar med omedelbara är modellerar dessvärre inte verkligheten bra, där framtiden är mer oviss. Man kan därför introducera en rabatteringsfaktor (eng. discount factor), γ, som introducerar en möjlighet att minska värdet hos framtida belöningar. Att rabattera framtida belöningar framstår som en bra modell över både djur och människors preferenser över tid (Russell & Norvig, 2010). Rabattfaktorn γ består av ett tal mellan 0 och 1, där 0 innebär att agenten enbart bryr som om omedelbara belöningar, och 1 motsvarar ovanstående additiva belöningar. Formeln för nyttan av rabatterade belöningar ser ut som följande: Uₕ([s₀, s₁, s₂,...]) = R(s₀) + γr(s₁) + γ R(s₂) +. När man tar hänsyn till en rabatteringsfaktor så blir agentens beslutsfattande enklare, då tillstånd långt in i framtiden inte ger lika mycket belöning och inte behöver tas lika mycket hänsyn till. Agenten tvingas att börja välja mellan omedelbara belöningar och framtida, mindre värda belöningar som kanske tillsammans utgör en större total belöning inom en överskådlig framtid. Belöningar långt in i framtiden blir på så sätt väldigt låga, och tvingar agenten till att fatta relativt kortsiktiga beslut. Rabattfaktorn motverkar således att belöningen (och beräkningen) går mot evigheten (Alzantot, 2017) För att kunna värdera en policy för en agent måste man först beräkna hur bra det är att befinna sig i de olika tillstånden. Detta benämns som nyttan (eng. utility) för olika tillstånd och betecknas med U(s). För att kunna räkna ut nyttan givet en viss sekvens av tillståndsförändringar kan följande formel användas; I ovanstående formel betecknar π den rådande policyn, s starttillståndet och E den förväntade nyttan av sekvensen baserad på sannolikheten att agenten hamnar där (Russell & Norvig, 2010). I Gridworld exemplet är världen som agenten befinner sig i relativt enkel. Detta innebär att en möjlig strategi för att hitta en optimal policy är att från start-tillståndet slumpmässigt testa alla möjliga kombinationer av policies och sedan beräkna nyttan av de sekvenserna. Den optimala värdefunktionen är den som resulterar i högst belöning för agenten och betecknas som U*. Att kunna identifiera den optimala värdefunktionen är kritisk för att kunna identifiera den optimala policyn. 5
Värdefunktion och Bellmanekvationer Harmon och Harmon (1996) presenterar ett exempel för hur man hittar den optimala värde funktionen. Detta kan göras genom att U(s) initaliseras med slumpmässiga värden och innehåller således ingen information om den optimala värdefunktionen U*(s). Detta innebär att uppskattningen av den optimala värde-funktionen i ett givet tillstånd är lika med det riktiga värden av det tillståndet, plus en felmarginal e: U(sₜ) = e(sₜ) + U*(sₜ) I ovanstående formel använder Harmon och Harmon (1996) e(sₜ) som beteckning för det potentiella felet i värderingen av ett tillstånd vid tidpunkten t. Detta innebär att formeln ovan visar värdet på tillståndet agenten befinner sig i. På samma sätt kan värdet på nästkommande, framtida tillstånd beräknas med U(sₜ+₁) = e(sₜ+₁) + U*(sₜ+₁) Nyttan för tillstånd sₜ i en policy är summan av belöningar som samlats från att agenten startar i sₜ och utför handlingar a tills dess att agenten når ett avslutande tillstånd. Genom att definera nyttan så här uppstår ett enkelt men viktigt förhållande mellan efterföljande tillstånd, sₜ och sₜ+₁. Detta förhållande defineras med hjälp av Bellman-ekvationen : U*(sₜ) = r(sₜ, aₜ) + (γu*(sₜ+₁) + γ U*(sₜ+₂) + γ U*(sₜ+₃) + γ⁴u*(sₜ+₄) + ) Bellman-ekvationen beräknar nyttan för tillstånd sₜ genom att likställa nyttan med belöningen agenten fick för att utföra handling a i tillstånd s plus den rabatterade belöningen agenten fick av att utföra aₜ+₁ i tillstånd sₜ+₁ i framtiden. Detta innebär att för att kunna räkna ut nyttan av ett tillstånd måste funktionen rekursivt anropa sig själv. För att kunna använda sig av formeln ovan ställs krav. En policy måste finnas för att ge agenten en potentiell sekvens av tillståndsförflyttningar. Det medför i sin tur att omgivningen måste vara observerbar av agenten. Om en policy finns, och policyn vid något tillfälle terminerar så kallas policyn för en proper policy (Russel & Norvig, 2010). För att beräkna nyttan enligt formeln ovan så börjar man med att räkna från slutet av sekvensen (det avslutande tillståndet), och därefter räkna baklänges i policyns riktning. Beräkningen itereras flera gånger tills dess att funktionen konvergerar, det vill säga, till dess att förändring av talen uteblir. Därför kallas Bellmanfunktionen ibland även för value iteration. 6
I figur ovan visas exempel på hur nyttan U för en agent kan se ut, tagen från Russel och Norvig (2010). I figuren har nyttan beräknats med belöningen R = -0.04 samt rabatteringsfaktorn γ = 1. Formeln U*(sₜ) = r(sₜ, aₜ) + γu*(sₜ+₁) + har använts tills dess att funktionen konvergerat. Notera att om man från startpositionen bara rör sig mellan tillstånden som har högst värde så får man också policyn. Med hjälp av dynamisk programmering kan man med hjälp av formler för att räkna ut U* också räkna ut en optimal policy, π* och på så vis lösa ett MDP-problem. Detta förutsätter att belöningen för en handling R(a) och sannolikheten för att nå ett tillstånd P(s' s, a) är känt av agenten. Policy-iteration Kaelbling, Littman och Moore (1996) presenterar ett annat sätt att optimera ett MDP-problem, nämeligen policy iteration. En policy iteration innebär att man direkt manipulerar agentens policy istället för att beräkna de olika tillståndens värde och därigenom hittar en policy. En värdefunktion för en policy kan defineras som den förväntade rabatterade belöningen som kommer att erhållas vid varje tillstånd om agenten följer policyn, vilket kan beräknas genom linjära ekvationer. Om man kan beräkna värdet för varje tillstånd under rådande policy, så kan man börja med policy iterering genom att ändra den första handlingen som agenten utför. Om den nya första handlingen ger ett högre värde, så ändrar man policyn till att alltid låta agenten utföra den handlingen i det tillståndet. Jämför man value iteration med policy iteration så är value iteration i praktiken mycket snabbare, men policy iteration kräver färre itereringar. Modellfri inlärning med Q-learning Om agenten inte har tillgång till hur omgivningen ser ut eller beter sig så kan inte nyttan av tillstånd eller policy beräknas enligt ovan. Istället krävs det modellfria metoder. En sådan metod är Q-learning. Q-learning bygger på temporal difference (härefter TD), som är en modellfri metod där agenten lär sig av erfarenheter av sina handlingar, a. Att man inte behöver en modell över omgivningen gör att TDmetoder kan appliceras på mer problem än traditionella metoter. Q-learning bygger på TD-metoder och kan ses som ett genombrott i förstärkt inlärning.q-learning ger agenten möjligheten att lära sig att 7
agera optimalt i MDP-miljöer genom att uppleva konsekvenserna av sina handlingar utan att kräva att de skapar en karta av omgivningen (Watkins, 1992). Kravet för att använda Q-learning på ett MDPproblem är att det är ändligt. Beteckningen för Q-learning funktionen är Q(s, a), där s är nuvarande tillstånd och a är utförd handling. I Q-learning så kan agentens upplevelse ses som bestående av episoder. Watkins (1992) ger en kortförklaring att i episoden n så observerar agenten sitt nuvarande tillstånd s och utför handling a. Därefter observerar agenten nästkommande tillstånd, sₙ+₁ och får en omedelbar belöning rₙ och justerar sitt gamla Q-värde med hjälp av en inlärningsfaktor, α. Russell och Norvig (2010) presenterar följande formel för modellfri Q-learning: Q(s, a) Q(s, a) + α(r(s) + γ maxq(s+₁, a+₁) - Q(s, a)) Ovan presenterades inlärningsfaktorn, α. Ett högre inlärningsvärde innebär att agenten lägger större vikt på ny information och lättare skriver över gammal, medans ett lägre värde innebär att agenten lär sig långsammare. (Russell & Norvig, 2010). Även max-funktionen introduceras, vilket innebär att formeln ska beräknas med avseende på det högsta Q-värdet. Det innebär att Q-learning metoden är girig och alltid väljer att gå till det tillstånd med högst Q-värde, givet att ingen annan parameter säger något annat. Den omvända pilen i formeln ovan kan läsas som att högerledet skriver över vänsterledet, som en backup. Detta då varje gång funktionen körs så använder den information från alla möjliga efterkommande tillstånd. Den här typen av backupfunktion är kritisk för modellfria metoder inom förstärkt inlärning (Kaelbling, Littman & Moore, 1996). ε-greedy metoden Med en modell-fri agent uppstår vissa problem, nämeligen om agenten ska utforska eller utnyttja. Genom att alltid välja handlingen med högst förväntat värde så betyder det att agenten utnyttjar sin nuvarande kunskap. Om agenten istället bestämmer sig för att utföra en annan handling så innebär det att agenten utforskar i syfte av att förbättra det uppskattade värdet på närliggande tillstånd. Genom att välja att utnyttja istället för att utforska så maximerar agenten belöningen kortsiktigt, men garanterar inte maximal belöning i det långa loppet, för om agenten istället väljer att utforska andra handlingar, har den möjlighet att utnyttja dessa senare för högre framtida belöning (Altuntaş, Imal, Emanet, & Öztürk, 2016). 8
Altuntaş et al (2016) nämner ε-greedy metoden som den vanligaste metoden för att balansera utforskande och utnyttjande. Med ε-greedy metoden så kallas den handling med högst förväntad belöning för den giriga handlingen (eng. greedy), och agenten utför oftast den giriga handlingen. Men det finns också en viss sannolikhet ε att agenten skippar att utföra den giriga handlingen och istället väljer att slumpmässigt utforska något av de andra möjliga tillstånden agenten kan nå, i hopp om att finna ännu bättre vägar att gå och på så sätt formulera en optimal policy. ε-greedy metoden kan enkelt implementeras genom att låta ε vara ett slumpmässigt tal, och när talet hamnar i ett visst omfång så utför agenten inte sin planerade Q-learning handling utan gör istället en slumpmässig handling. Uppdraget för en Q-learning agent är alltså att genom att utforska omgivningen hitta en optimal policy som maximerar belöningen. 9
Enkel applicerad Q-learning Berkeley University erbjuder en Q-learning applikation i utbildningssyfte. Nedan följer en rad skärmbilder från applikationen samt tillhörande förklaring. Agenten som initieras i ruta (1,1) kommer till en början slumpvis röra sig i omgivningen. Rörelsekostnaden R sätts till -0.04 i för att efterlikna förklaringar ovan. Applikationen kommer att köras med additiva belöningar, γ = 1. Inlärningsfaktorn α kommer att vara 0.5. Slutligen kommer världen vara stokastisk, vilket innebär att agenten bara med 80% säkerhet når sitt önskade mål. Agenten kommer inte använda sig av ε-greedy metoder. Initialt startar Gridworld med helt okända värden för samtliga tillstånd. Agenten som agerar i världen representeras av den blåa cirkeln i vänster hörn. I applikationen kan agenten gå i fyra olika riktningar. Om agenten går in i en vägg flyttar agenten inte sig, men en negativ belöning associeras med att uföra den handlingen i det tillståndet 10
I figuren ovan har agenten börjat utforska världen. Röda trianglar visar vilka tillstånd agenten har besökt, och vilken riktning (handling) agenten tog mellan olika tillstånd. För varje tillstånd som besökts har agenten nu uppdaterat nyttan av att utföra en viss handling i ett visst tillstånd, här noterat med -0.02. Värdet kommer från belöningen R = -0.04 * α. Till en början är det en dålig upplevelse för agenten att utforska världen oavsett vart den går. I figuren ovan har agenten fortsatt utforska världen, och nått till det negativa avslutande tillståndet (4,2) två gånger. På så vis har den negativa belöningen associerad med det tillståndet börjat att propageras utåt. Att gå åt höger från (3,2) har nu ett negativt värde på -0.36, vilket innebär att agenten kommer undvika att utföra den handlingen i det tillståndet. 11
Notera även att anledningen till applikationen nu är mindre röd än tidigare figur är för att färgningen är relativ. De tidigare färgstarka negativa nyttovärdena på -0.02 är svaga i jämförelse med det större negativa nyttovärdet på -0.88 som har upptäckts. I figuren ovan har agenten fortsatt att utforska Gridworld. Agenten har nått båda avslutande tillstånd flera gånger, och kan med stor sannolikhet säga att en belöning på 1 respektive -1 erhålls om man når dem. På samma sätt kan agenten säga att utföra handlingen att gå höger i ruta (3,3) har relativt högt nytto-värde. Q-learning enligt ovan innebär att agenten kommer att utforska i omgivningen genom att hela tiden välja det tillstånd som har högst nyttovärde. Till en början är värdena som nämnts tidigare i rapporten inte särskilt sannolika, utan det krävs flera itereringar innan det sanna värdet för att utföra en viss handling i ett visst tillstånd dyker upp. 12
I figuren ovan har agenten hittat en väg den kommer att följa. Den sekvens med högst nytta är att gå till höger direkt från startposition och direkt till det positiva avslutande tillståndet. Detta innebär att gå förbi det negativa avslutande tillståndet med risk att hamna där istället, något agenten vid den här tidpunkten inte överväger. Hade världen varit deterministisk hade den policy som agenten hittat kunnat klassas som optimal Efter tillräckligt många episoder har agenten börjat associera den nedre vägen med risken att hamna i det negativa avslutande tillståndet, och agenten har istället börjat använda sig av den riskfria vägen av att gå uppåt från starttillståndet. Vägen som agenten följer genom att följa nyttovärdet för de olika tillstånden är identisk med den policy som Russel och Norvig (2010) presenterade som en optimal 13
policy för en agent i Gridworld med samma initiala värden. Detta kan ses som ett bevis för att Q- learning fungerar. 14
Källor Altuntaş, N., Imal, E., Emanet, N., & Öztürk, C. N. (2016). Reinforcement learning-based mobile robot navigation. Turkish Journal of Electrical Engineering & Computer Sciences, 24(3), 1747-1767. Alzantot, M. (2017) Deep Reinforcement Learning Demystified - Policy Iteration, Value iteration and Q-learning https://medium.com/@m.alzantot/deep-reinforcement-learning-demysitifed-episode-2- policy-iteration-value-iteration-and-q-978f9e89ddaa [Hämtad 2018-01-08] Harmon, M. E., & Harmon, S. S. (1996). Reinforcement learning: A tutorial. WL/AAFC, WPAFB Ohio, 45433. Kaelbling, L. P., Littman, M. L., Moore, A. W. (1996). Reinforcement learning: A survey. Journal of artificial intelligence research, 4, 237-285. Russell, S., Norvig, P. (2010). Artificial Intelligence: A Modern Approach (3rd ed.). Pearson Education, Inc. Tambet, M. (2015). Guest Post ( Part I ): Demystifying Deep Reinforcement Learning. https://www.nervanasys.com/demystifying-deepreinforcement-learning/ [Hämtad 2018-01-09] 15