Giter Club home page Giter Club logo

atari_games_reinforcement_learning's Introduction

Reinforcement Learning Agent for Atari Games

Introduzione

Questa guida ha lo scopo di illustrare i passi necessari per permettere ad un agente di Reinforcement Learning di imparare a giocare a diversi giochi dell'Atari 2600.
L'argomento sarà parte del talk, curato dal professore Fabio Stella, intitolato "Come lavorare sui dati: i linguaggi per la machine intelligence" che si terrà in data 21 dicembre 2018 presso l'Università degli Studi di Milano-Bicocca.
alt text

Prerequisiti

Scaricare e installare Anaconda (Python 3.7 version).
Scaricare e scompattare il contenuto della repository attuale, come mostrato in figura.

alt text

Ambiente

Aprire Anaconda Navigator e creare un nuovo ambiente che ospiterà Tensorflow.
Questo può essere fatto:

via Anaconda Navigator

Environments > Create 

Impostare "tensorflow" come nome e scegliere Python 3.6 come Packages

Preparazione

Selezionare, da Environments, tensorflow e aprire il terminale come mostrato nella seguente figura.
alt text

Se tutto è andato a buon fine avrete (tensorflow) seguito da un percorso (ad esempio C:\Users\ponti) all'inizio del vostro terminale. alt text

Creare una nuova cartella nel percorso indicato di fianco a (tensorflow) nel terminale e rinominarla "Gym".
Copiare i file "Gym.py" e "Load_Model.py", scaricati in precedenza dalla repository, all'interno della cartella Gym. Da terminale, spostarsi all'interno della cartella Gym con il seguente comando:

cd gym

alt text

Packages

A questo punto dare il seguente comando al terminale:

pip install tensorflow

Prima di poter procedere al training è necessario installare dei packages specifici.
Procedere quindi con i seguenti comandi:

pip install gym
pip install gym[atari]

alt text

In caso questo comando restituisca un errore, provare il comando seguente:

pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py

e procedere con:

pip install matplotlib
pip install scikit-image

Training

Ora è possibile allenare il nostro agente di Reinforcement Learning in modo che impari a giocare a Pacman.
Rimandendo nel terminale relativo all'ambiente "tensorflow" dare il seguente comando:

python Gym.py

L'agente procederà ora al training. Dopo aver raggiunto un determinato numero di iterazioni sarà mostrato a video il nostro agente di Reinforcement Learning mentre proverà a giocare.
Con l'aumentare delle iterazioni si potrà notare un incremento delle prestazioni.

Testing

Una volta finito il training si può procedere a testare il modello relativo al precedente training. Sempre da terminale dare il seguente comando:

python Load_Model.py

Verrà mostrato a video il nostro agente mentre giocherà a 100 partite di Pacman, al termine del quale si avrà lo score medio finale.

Consigli

  • Per ottenere delle perfomance migliori è consigliabile installare Tensorflow con il supporto alla GPU

  • Per aver un tempo di training inferiore si può ridurre il valore della variabile n_steps, nel file Gym.py (magari passando da 1000000 a 250000)

  • Per evitare l'attesa, dovuta ai tempi di training, è possibile provare il modello già allenato. Copiare la cartella "MsPacman", disponibile nella repository scaricata in precedenza, all'interno della cartella "Gym" e passare direttamente alla fase di testing

  • Possono essere provati altri giochi dell'Atari, la lista completa è disponibile sulla documentazione ufficiale Gym. Per esempio, nel file "Gym.py", provare a modificare il valore della variabile game = "SpaceInvaders"

Riferimenti

Ringraziamenti

  • Il professor Fabio Stella
  • I miei compagni di corso, Andrea Ponti, Simone Rizza e Edoardo Silva.

In caso di consigli, dubbi o problemi è possibile contattarmi via email all'indirizzo [email protected].

atari_games_reinforcement_learning's People

Contributors

frenkowski avatar

Stargazers

 avatar

Watchers

 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.