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!
Un caldo abbraccio, Andrea.