Blog.

OpenAI Gym Cartpole | Sviluppo Reinforcement Learning Algorithm


Autore
Andrea Provino
Data
Tempo di lettura
3 minuti
Categoria
AI, machine-learning

openAI-gym-carpole-tutorial-reinforcemente-learning-guida-italiano-machine-learning-deep-learning-tutorial-blog

OpenAI Gym è un toolkit per lo sviluppo e la comparazione di algoritmi di reinforcement learning che supporta l’allenamento di differenti tipologie di agenti.

Nel 2015, Elon Musk e Sam Altman, un mito dal cui blog dovremmo apprendere molto, fondarono un’organizzazione non profit con lo scopo di promuovere la ricerca nel campo delle intelligenze artificiali, a una sola condizione: che tutto il materiale prodotto fosse condiviso con la community. Nasceva OpenAI

Nell’aprile 2016 OpenAI Gym veniva rilasciato pubblicamente: sviluppatori e i ricercatori potevano iniziare a contar su una piattaforma per il reinforcement learning.

OpenAI Gym

Giusto per motivi estetici:

Gym è un toolkit per lo sviluppo e la comparazione di algoritmi di reinforcement learning che supporta l’allenamento di differenti tipologie di agenti.

Cos’è Gym

Contrariamente ad altre piattaforme, e con nostro sommo dispiacere, la documentazione ufficiale è scarsa.

Questa si aggiunge all’elenco di documentazioni da leggere, lista che contiene:

  • Documentazione di tesnsorflow
  • Documentazione di Gym

Sarà un novembre intenso.

Perché Gym?

Dove si cela la necessità di una simile libreria?

Ragioniamo insieme.

Una delle sfide maggiori del Reinforcement Learning è disporre di ambienti di test funzionanti in cui poter allenare l’agente.

Il nostro obiettivo è allenare un agente per giocare ad Atari? Avremo prima bisogno di un Atari simulator funzionante.

Vogliamo che il nostro robot impari a scalare una montagna? Lo portiamo in quota e nel caso in cui dovesse cadere… beh ne prendiamo un altro, e poi ancora uno… e… Ok non è scalabile.

Ecco che entrano in gioco gli ambienti di simulazione (simulated environment) in cui poter allenare l’agente.

Si tratta di ambienti replicabili, dalle condizioni controllate.

E’ quindi possibile aumentare o ridurre lo scorrere del tempo, incrementare la potenza computazionale, o allenare differenti ambienti in parallelo simultaneamente.

Entra in gioco: OpenAI Gym

Funzionamento Gym

Nel concreto la libreria Gym è una collezione di test problems, chiamati environemnts (ambienti) che possono essere impiegate come “palestre” di allenamento per la ricerca e lo sviluppo di nuovi algoritmi di reinforcement learning.

Gli environments condividono un’interfaccia comune, questo significa che possiamo scrivere algoritmi generali senza doverli adattare ai diversi ambienti.

Questo ci piace!

Installazione OpenAI Gym | Hello World con il Cartpole

Gym richiede Python 3.5+ e può essere installato come pacchetto usando pip:

pip install gym

Ora che ne dici di fare un bel “Hello World!” ?

Si beh… stiamo parlando di reinforcement learning…

Quindi abbiamo il nostro environment: un carrello capace di muoversi e un bastone in equilibrio.

Ora ci manca l’algoritmo, la nostra intelligenza.

In questo caso andiamo a scrivere l’algoritmo più stupido mai partorito da mente umana: movimento randomico.

Apriamo un editor ti testo e salviamo il file gym.py :

import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
    env.render()
    env.step(env.action_space.sample()) # take a random action
env.close()

In realtà è divertente: dopo pochi secondi il carrello schizzerà via.

Questa è una breve introduzione a OpenAI Gym CartPole.

Ora è arrivato il momento di alzare il livello.

Seguimi per sviscerare il funzionamento del’ambiente CartPole, esaminandone la documentazione e realizzando un primo elementare algoritmo di Reinforcement Learning!

Accetto la sfida

Un caldo abbraccio, Andrea.

Taggeddeep learningreinforcement learning


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum