Git Product home page Git Product logo

thesishsmz-rltictactoe's Introduction

Bachelorarbeit Wirtschaftsinformatik Hochschule Mainz

Dieses Repository enthält die Bachelorarbeit zu meinem Studium an der HS Mainz im Studiengang Wirtschaftsinformatik dual mit dem Titel:

Evaluation der Reinforcement Learning Algorithmen Sarsa und Q-Learning am Beispiel eines Strategiespiels

Die fertige Bachelorarbeit als PDF kann hier eingesehen werden.

Management Summary

Die vorliegende Bachelorarbeit befasst sich mit Reinforcement Learning, das ein Teilgebiet des Machine Learning ist. Reinforcement Learning und die zugehörigen Methoden zur Lösung sequenzieller Entscheidungsprobleme werden erklärt und von den anderen Teilgebieten des Machine Learning abgegrenzt. Der Fokus der Arbeit liegt auf dem Teilgebiet des Temporal- Difference Learning und den Algorithmen Q-Learning und Sarsa. Die Arbeit erläutert das Konzept von Temporal-Difference Learning. Basierend darauf werden Q-Learning und Sarsa erklärt und miteinander verglichen. Zur weiteren Evaluation der Algorithmen werden diese für das Strategiespiel Tic-Tac-Toe in Java implementiert. Es wird untersucht, ob beide Algorithmen das Spiel durch Spiele gegen sich selbst erlernen können und welche Auswirkungen verschiedene Hyperparameter auf das Training haben. Die trainierten Agenten werden auf Basis der Rate optimaler Aktionen während des Trainings und der erreichten Spielstärke verglichen. Die Auswertung zeigt, dass Q-Learning im Durchschnitt schneller konvergiert und eine höhere Spielstärke erreicht als Sarsa.

Konklusion

In dieser Bachelorarbeit wurden Reinforcement Learning und die zugehörigen Methoden zur Lösung sequenzieller Entscheidungsprobleme erklärt. Der Fokus lag auf dem Teilgebiet des Temporal-Difference Learning und den zugehörigen Algorithmen Q-Learning und Sarsa. Die Funktionsweise der Algorithmen wurde erklärt und deren Gemeinsamkeiten sowie Unterschiede aufgezeigt. Zur weiteren Untersuchung der Algorithmen und deren Hyperparametern wurden beide für das simple Strategiespiel Tic-Tac-Toe in Java implementiert. Untersucht wurden verschiedene Ausprägungen der Lernrate α, die im Rahmen von Vorexperimenten festgelegt wurden. Zudem wurden die Agenten mit zwei verschiedenen Arten von Self-play trainiert. Zusätzlich wurde das Konzept der Afterstates in Form einer W-Tabelle implementiert. Eine mögliche Definition einer Rewardfunktion wurde erläutert und zum Training der Agenten sowie der Quantifizierung der Spielstärke verwendet. Zur Auswertung der trainierten Agenten wurde deren Konvergenz während des Trainings sowie deren Spielstärke gegen einen Minimax- Algorithmus und Spieler mit Zufallstrategie erfasst und verglichen. Beide Algorithmen erreichten mit der gleichen Hyperparameterkombination und Nutzung von Afterstates die jeweils besten Agenten, die eine höhere Spielstärke besitzen als der Minimax-Algorithmus. Die Auswertung ergab, dass Q-Learning im Durchschnitt schneller konvergiert und eine höhere Spielstärke erreicht als Sarsa. Verwendet Sarsa keine Afterstates konnten leichte Schwächen für das Symbol O festgestellt werden. Beide Agenten bewerteten die „Mitte“ als beste erste Aktion, was konsistent zu anderen Experimenten ist.

Verbundene Repositories

Neben diesem Repository, das meine Bachelorarbeit enthält, gibt es zwei weitere Repositories, die Source Code enthalten, der im Rahmen meiner Bachelorarbeit entstanden ist:

thesishsmz-rltictactoe's People

Contributors

jonasbingel avatar

Stargazers

 avatar Moritz Broft avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.