• No results found

Reinforcement Learning:

N/A
N/A
Protected

Academic year: 2022

Share "Reinforcement Learning:"

Copied!
5
0
0

Loading.... (view fulltext now)

Full text

(1)

Reinforcement Learning:

Balanserande EV3 Lego Robot genom Q-learning.

Introduktion

Maskininlärning blir mer och mer populärt och användningsområden utvecklas på många fronter inom olika industrier. Reinforcement learning är en av tre huvudsakliga grenar av maskininlärning. Denna infallsvinkel till maskininlärning är baserad i tanken att en agent utforskar och utnyttjar sin omgivning utan en helt konkret statistisk modell att förhålla sig till.

På så sätt skiljer denna förgrening sig från supervised learning och unsupervised learning.

Denna rapport detaljerar en studie- och implementationsprocess av en specifik algoritm inom reinforcement learning som kallas för Q-Learning.

Syfte & Frågeställning

Genom att ha format ett projekt efter en algoritm har detta arbete givit upphov till djupare förståelse av inte bara algoritmen i fråga, men också dess konstituenter och variationer. Det huvudsakliga målet med projektet var att djupdyka på ett ämne och på så vis lära sig om dess användningsområden samt hur man kan gå tillväga för att utforma lösningar på

programmeringsproblem som har intelligenta agenter i fokus. Rapporten är en redovisning av inlärningsprocessen och dess efterföljande implementation av Q-Learning. Genom att

använda en form av Q-learning och ett Lego Mindstorm EV3 kit att bygga en robot som kan balansera som en enhjuling.

(2)

Metod

Projektet skulle använda programmeringsspråket Python för att lära en Lego Mindstorm EV3 robot att balansera. De teoretiska kunskaper som applicerades i den praktiska delen av

projektet är baserad huvudsakligen på läsning av Artifical Intelligence: A Modern Approach (Russel & Norvig, 2014) men också på undersökning av andra implementationer och

informationssökning via internet. För att kunna applicera en Q-Learning algoritm på roboten krävdes förståelse av de olika drivande delarna av algoritmen. Underrubrikerna i denna rapport förklarar dessa aspekter och hur de spelade in i robotens inlärning samt arbetets process.

Reinforcement Learning

Denna form av inlärning av agenter kan i teorin liknas till psykologins klassiska

konditionering. Genom att ge belöning för handlingar som leder till önskat tillstånd och bestraffning (mindre belöning i fallet av maskininlärning) för handlingar som tar agenten längre från önskat tillstånd kan agenten lära sig genom repetition. I praktiken kan vi alltså då förstärka beteende genom belöning och lära agenter att göra val som ger de maximala värdena för framtida tillstånd. Agenten kan maximera värdet av sina handlingar genom att lägga ihop värdena som estimeras att tilldelas från framtida tillstånd med de värden av belöning från sitt nuvarande tillstånd. Genom detta kan agentens val av handling i ett nuvarande tillstånd formas av belöningar från potentiella framtida tillstånd. (Russel & Norvig, 2014)

Q-Learning

Q-learning är en algoritm som alltid kommer att hitta en policy som är optimal, givet att den har oändligt med tid på sig. Eftersom den inte behöver en modell av omgivningen så verkade den vara en passande algoritm för just detta projekt.

(3)

Vid formulering av projektet behövde jag hålla i åtanke några huvudsakliga egenskaper av denna typ av maskininlärning. För att roboten skulle ha en chans att lära sig behövdes någon form av exploration. Roboten skulle behöva ta slumpmässiga handlingar för att kunna hitta fler nya och bättre tillstånd.

Algoritmen baseras på vad som kallas för ”state-action pairs” [Q(a,s)] som används i en

”action-utility function” för att avgöra det maximala värdet från att utföra en handling i ett tillstånd (Russel & Norvig, 2014). Själva inlärningen sker genom en tabell som kartlägger tillstånd och de belöningar som de möjliga handlingarna från dessa tillstånd ger. En så kallad Q-Table. Varje gång en handling i ett tillstånd genomförs uppdateras tabellen med ett nytt värde

Kod & Implementation

Indata från robotens sensorer är avståndet mellan sensorn och underlaget. Eftersom jag vill att roboten skall lära sig balansera är det viktigt att avgöra gränsavstånden för lutning. Sensorn behöver kalibreras till underlaget eftersom det går efter ljus. Klassen Balancer innehåller all kod för programmet som körs på EV3 roboten. Klassen tar argument för gränsavstånden åt båda hållen som roboten kan luta sig, “fail_distance_max” och “fail_distance_min” samt antalet states i q-tabellen. Suffixen min och max används för att lutningen kan representeras som fram och bak på en axel. Varje tillstånd har två potentiella handlingar, åk fram eller åk bak. Ett startavstånd definieras för att kunna avgöra differens mellan optimalt tillstånd och nuvarande tillstånd.

(4)

Observationer av miljön, alltså avståndet som sensorn mäter representeras som ett tillstånd.

Avståndet vid starttillståndet subtraheras mot nuvarande avståndet. Differensen blir avståndet som jämförs mot gränsvärdena. Då kartläggs varje tillstånd som den siffra från divisionen av differensen mellan nuvarande tillståndet och det “negativa” gränsvärdet med differensen av det “positiva” gränsvärdet och negativa gränsvärdet.

För att hitta den handling som är bäst för tillståndet som roboten befinner sig i behöver vi kolla igenom q-tabellen för att hitta det högsta värdet för det tillståndet.

Algoritmen kördes i episoder. Slutet av varje episod betecknades med en lågfrekvent ton.

Alltså när roboten lutar sig för långt från ett upprätt tillstånd. Varje episod hade en loop som uppdaterar q-tabellen och dess reward. Tabellen uppdaterades med tillstånd baserade på nya mått av nuvarande avståndet från upprätt position. Detsamma gäller handlingarna som var tillgängliga för detta tillstånd. Värdet för ett par av tillstånd och handling uppdateras med funktionen för “value iteration update”.

Det är i denna loop som motorn kör. Motorn kör och hjulen rörde sig framåt eller bakåt i korrelation med vilken handling som var bäst att ta. I korrelation med belöningen så pep roboten för att signalera om den tog handling som förde den närmare eller längre ifrån ett upprätt tillstånd.

Resultat & Diskussion

Roboten hann tyvärr inte lära sig att balansera. Eftersom inlärningen skedde per körning av programmet och inte genom en stor mängd simulationer på datorn så tog inlärningen betydligt längre än förväntat. Hårdvarans begränsningar kan också ha spelat in i tidskravet. Jag provade

(5)

olika specifikationer på mängden slumpmässiga handlingar och inlärningsfaktorn i försök att minska tiden för inlärning.

Metoddiskussion

Mycket tid gick åt att försöka förstå implementationen av algoritmen. Istället kunde mer tid ha lagts undan för overhead. Det var inte självklart att det skulle uppkomma så pass många problem som det gjorde med EV3 Lego kittet, men en planering av eventuella risker hade varit till fördel under projektets gång. Träningen av roboten skulle ha haft mer tid undansatt till sig.

References

Related documents

Till skillnad mot uppmärksamheten eleverna upplever att de får när de arbetar koncentrerat samt lämnar in sin mobiltelefon upplever de inte att de får någon

Azasu (2012) hävdar att den rörliga lönen, den så kallade provisionen kan användas till att frambringa önskade beteenden hos arbetarna i företaget och de företagen som använder

Syfte: Syftet med aktuell studie är att få ökad kunskap om belöningssystem, att undersöka om det finns skillnader mellan amerikansk och svensk personal inom motivationsfaktorer, samt

Jag väljer därmed att inte dra någon slutsats när det gäller på vilket sätt företagens belöningssystem skapar målkongruens mellan dess ägare och medarbetare, då risken

Det är ytterst viktigt att få med alla anställda i samma riktning och mål för annars finns risken att de anställda individuellt börjar arbeta mot sitt egna mål och inte tar hänsyn

3) Upplever du någon förändrad inställning mot dessa varumärken efter att ha sett dem i spelet? Var god visa vad du tycker genom att markera i boxarna nedan med siffrorna 1-5,

Fråga 1: “Hur motiverad var du till dina studier vid användningen av Pluggmotiveraren UTAN rörliga effekter och animationer. Bortse från de externa faktorer du skrev om i

Det beror på att variabeln förståelse för hur arbetet påverkar företagets resultat är en svag indikator på motivation, samt att sambandet mellan belöningsintensitet och