Självkörande bil med hjälp av Q-learning
2020 (Swedish)Independent thesis Basic level (university diploma), 5 credits / 7,5 HE credits
Student thesisAlternative title
Self-driving car with Q-learning (English)
Abstract [en]
Machine learning is a branch of artificial intelligence where a program is given a set of data and, based on this data, generates predictions of what should or will happen next. This allows the program to make its own decisions. As the use of machine learning and AI is constantly increasing, so is the need for expertise in the field. To help increase this competence, I chose to formulate this research question: Can a program learn to control a virtual car? To limit the task, it was decided that the program should only be able to control a virtual car by accelerating in the positive direction, accelerating in the negative direction or not accelerating.
To decide whether machine learning could be used to control a car, I chose to program a simple program that uses Q-learning. The program was based on the "MountainCarv0" environment from OpenAI's gym. The environment "MountainCar-v0" consists of a car that stands between two hills. The car needs to build up momentum to get up the right hill to a flag.
In the result, tests are presented that show how different values for constants affect the result. After these tests, the best values for the constants were used to show how well the program can learn to control the car.
The result shows that a program can learn to control a virtual car provided the car can only accelerate in the positive or negative direction. If the car and the environment are more advanced, I think there is a high probability that a program could learn to control the car as well. However, it would probably be necessary to use Deep Q-learning instead of "regular" Q-learning.
Abstract [sv]
Maskininlärning är en gren inom artificiell intelligens där ett program ges en mängd information och genererar, utifrån denna information, förutsägelser om vad som bör eller kommer hända härnäst. Detta möjliggör för programmet att ta egna beslut. Eftersom användningen av maskininlärning och AI konstant ökar, ökar även behovet av kompetens inom området. För att bidra till att öka denna kompetens valde jag att formulera denna frågeställning: Kan ett program lära sig att kontrollera en virtuell bil? För att begränsa uppgiften gjordes beslutet att programmet endast ska kunna kontrollera en virtuell bil genom att accelerera i positiv riktning, accelerera i negativ riktning eller inte accelerera.
För att avgöra huruvida maskininlärning skulle kunna användas för att kontrollera en bil valde jag att programmera ett enkelt program som använder sig av Q-learning. Programmet byggde på miljön "MountainCar-v0" från OpenAI:s gym. Miljön "MountainCar-v0" består av en bil som står mellan två kullar. Bilen behöver bygga upp rörelseenergi för att ta sig upp för den högra kullen till en flagga.
I resultatet redovisas tester som visar hur olika värden för konstanter påverkar resultatet. Efter dessa tester användes de bästa värdena för konstanterna för att visa hur väl programmet kan lära sig att kontrollera bilen.
Resultatet visar att ett program kan lära sig att kontrollera en virtuell bil förutsatt att bilen endast kan accelerera i positiv eller negativ riktning. Om bilen och miljön är mer avancerad anser jag att det finns en stor sannolikhet att ett program även här skulle kunna lära sig att kontrollera bilen. Dock behöver man med största sannolikhet använda Deep Q-learning istället för "vanlig" Q-learning.
Place, publisher, year, edition, pages
2020. , p. 22
Keywords [en]
Artificial intelligence, Machine learning, Q-learning
Keywords [sv]
Artificiell intelligens, Maskininlärning, Q-learning
National Category
Information Systems, Social aspects
Identifiers
URN: urn:nbn:se:hv:diva-15666Local ID: EXB340OAI: oai:DiVA.org:hv-15666DiVA, id: diva2:1455995
Subject / course
Informatics
Educational program
Webmaster
Supervisors
Examiners
2020-08-182020-07-302020-08-18Bibliographically approved