Reinforcement learning : learning from experience
Järvinen, Atte (2021)
Järvinen, Atte
2021
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021060213608
https://urn.fi/URN:NBN:fi:amk-2021060213608
Tiivistelmä
Vahvistusoppiminen on koneoppimistapa, jonka avulla voidaan opettaa ohjelmistoagentteja tekemään loogisia päätöksiä, jotka perustuvat aikaisempiin päätöksiin. Opinnäytetyön tavoitteena oli tutkia vahvistusoppimisen ongelmanratkaisu kyvykkyyttä tosielämän sovelluksien ja perusvahvistusoppimisteorian avulla. Käytännön esimerkkinä oli tarkoitus opettaa vahvistusoppimisagentti pelaamaan ristinolla -peliä täydellisillä tai lähes täydellisillä strategioilla.
Opinnäytetyössä verrattiin vahvistusoppimista muihin koneoppimistapoihin, tällä osoitettiin vahvistusoppimisen monipuolisuutta muihin oppimistapoihin verrattuna. Työssä käytiin läpi mielenkiintoisia tosielämän vahvistusoppimissovelluksia esimerkiksi itseohjautuvat autot. Työssä myös tutkittiin tärkeimpiä vahvistusoppimiseen perustuvia teoria ideoita ja näihin perustuvia oppimistapoja.
Käytännön esimerkkinä toteutettiin vahvistusoppimisagentti, jonka tavoitteena oli oppia pelaamaan ristinolla -peliä. Projektissa käytettiin Anaconda Python -ympäristöä ja Python-ohjelmointikieltä. Oppimisagentti perustui Q-oppimiseen. Esimerkin ensimmäisessä osassa keskityttiin ohjelmointiympäristön asentamiseen ja projektin koodin läpikäymiseen. Toisessa osassa keskityttiin testaamaan Q-oppimisagenttia. Testaus kohdennettiin oppimisnopeuteen ja agentin tehokkuuteen oppimisen jälkeen. Agenttia testattiin neljällä eri harjoitusvastustajalla.
Opinnäytetyön työn tuloksena oli toimiva ristinolla -peli kahdelle tietokonepelaajalle ja toimiva Q-oppimisagentti. Q-oppimisagentti oli kykenevä oppimaan täydellisiä tai vähintäänkin lähes täydellisiä strategioita pelin pelaamiseen harjoitusvastustajansa perusteella. Reinforcement learning is a machine learning method that can train software agents to make rational decisions based on their past decisions. The goal of the thesis was to learn about the basic capabilities of reinforcement learning through real-life use cases and the core reinforcement learning theory. The second goal was to implement a reinforcement learning agent and teach it to play Tic Tac Toe with optimal or near-optimal strategies.
To achieve the first goal, a comparison between reinforcement learning and other machine learning methods was carried out, several interesting real-life reinforcement learning applications were introduced, and the most fundamental theoretical concepts of reinforcement learning was explained.
To achieve the second goal a reinforcement learning agent was implemented and tested. A Q-learning agent was used to learn to play Tic Tac Toe. Anaconda Python distribution and Python programming language were used to implement the project. In the first part of the practical work, the programming environment was set up and the project's code was explained. In the second part of the practical work, the Q-learning agent was tested. The testing was focused on learning speed and performance after learning. Testing was done with four different training opponents.
As a result of the thesis, there was a functioning Tic Tac Toe game for two AI players, and a functioning Q-learning agent. The Q-learning agent was capable of learning to play the game with optimal or at least near-optimal strategies depending on its training opponent.
Opinnäytetyössä verrattiin vahvistusoppimista muihin koneoppimistapoihin, tällä osoitettiin vahvistusoppimisen monipuolisuutta muihin oppimistapoihin verrattuna. Työssä käytiin läpi mielenkiintoisia tosielämän vahvistusoppimissovelluksia esimerkiksi itseohjautuvat autot. Työssä myös tutkittiin tärkeimpiä vahvistusoppimiseen perustuvia teoria ideoita ja näihin perustuvia oppimistapoja.
Käytännön esimerkkinä toteutettiin vahvistusoppimisagentti, jonka tavoitteena oli oppia pelaamaan ristinolla -peliä. Projektissa käytettiin Anaconda Python -ympäristöä ja Python-ohjelmointikieltä. Oppimisagentti perustui Q-oppimiseen. Esimerkin ensimmäisessä osassa keskityttiin ohjelmointiympäristön asentamiseen ja projektin koodin läpikäymiseen. Toisessa osassa keskityttiin testaamaan Q-oppimisagenttia. Testaus kohdennettiin oppimisnopeuteen ja agentin tehokkuuteen oppimisen jälkeen. Agenttia testattiin neljällä eri harjoitusvastustajalla.
Opinnäytetyön työn tuloksena oli toimiva ristinolla -peli kahdelle tietokonepelaajalle ja toimiva Q-oppimisagentti. Q-oppimisagentti oli kykenevä oppimaan täydellisiä tai vähintäänkin lähes täydellisiä strategioita pelin pelaamiseen harjoitusvastustajansa perusteella.
To achieve the first goal, a comparison between reinforcement learning and other machine learning methods was carried out, several interesting real-life reinforcement learning applications were introduced, and the most fundamental theoretical concepts of reinforcement learning was explained.
To achieve the second goal a reinforcement learning agent was implemented and tested. A Q-learning agent was used to learn to play Tic Tac Toe. Anaconda Python distribution and Python programming language were used to implement the project. In the first part of the practical work, the programming environment was set up and the project's code was explained. In the second part of the practical work, the Q-learning agent was tested. The testing was focused on learning speed and performance after learning. Testing was done with four different training opponents.
As a result of the thesis, there was a functioning Tic Tac Toe game for two AI players, and a functioning Q-learning agent. The Q-learning agent was capable of learning to play the game with optimal or at least near-optimal strategies depending on its training opponent.