Contenuti del Corso
Introduzione al Reinforcement Learning
Introduzione al Reinforcement Learning
Basi di Gymnasium
Gymnasium è un toolkit open-source progettato per lo sviluppo e la valutazione di agenti di apprendimento per rinforzo (RL). Fornisce una raccolta di ambienti standard per testare algoritmi e addestrare agenti in modo efficiente.
Caratteristiche principali
- API standardizzata: garantisce la compatibilità tra diversi ambienti;
- Varietà di ambienti: supporta problemi di controllo classici, giochi Atari e simulazioni di robotica;
- Integrazione semplice: compatibile con framework di deep learning come TensorFlow e PyTorch.
Flusso di lavoro
Un tipico flusso di lavoro in Gymnasium è il seguente:
1. Importazione della libreria
import gymnasium as gym
Dopo la dismissione della libreria originale gym
, è ora consigliato utilizzare gymnasium
— un fork di gym ben mantenuto e attivamente sviluppato. Nonostante il cambio di nome, la libreria viene ancora comunemente importata con l'alias gym
per garantire la compatibilità con versioni precedenti e per comodità.
2. Creazione di un ambiente
env = gym.make("CartPole-v1")
La funzione gym.make()
istanzia un ambiente utilizzando il suo identificatore univoco (ad esempio, "CartPole-v1"
). È anche possibile passare parametri di configurazione aggiuntivi a seconda delle esigenze dell'ambiente.
3. Reset dell'ambiente
observation, info = env.reset()
Prima di interagire con l'ambiente, è necessario riportarlo allo stato iniziale tramite env.reset()
. Questo restituisce:
observation
: lo stato iniziale dell'ambiente;info
: dati ausiliari che possono includere metadati o configurazioni specifiche dello stato.
4. Interazione con l'ambiente
action = env.action_space.sample()
observation, reward, terminated, truncated, info = env.step(action)
Nella prima riga, viene scelta un'azione casuale dallo spazio delle azioni tramite env.action_space.sample()
. Lo spazio delle azioni definisce l'insieme di tutte le possibili azioni che l'agente può compiere nell'ambiente. Inoltre, l'ambiente fornisce lo spazio delle osservazioni, accessibile tramite env.observation_space
, che rappresenta l'insieme di tutte le possibili osservazioni (stati) che l'agente può incontrare.
Nella seconda riga, l'azione scelta viene passata a env.step(action)
, che esegue l'azione e restituisce i seguenti valori:
observation
: il nuovo stato dell'agente dopo aver eseguito l'azione;reward
: la ricompensa ricevuta per l'azione eseguita;terminated
: booleano che indica se l'episodio è terminato (cioè se il compito è stato completato);truncated
: booleano che indica se l'episodio è stato interrotto prematuramente (a causa di limiti di tempo o altri vincoli);info
: informazioni diagnostiche aggiuntive, spesso utilizzate per il debug o la registrazione.
5. Chiusura dell'ambiente
env.close()
Se l'ambiente utilizza risorse esterne (ad esempio, finestre di rendering o simulazioni), è necessario chiuderlo tramite env.close()
.
Se desideri approfondire le funzionalità offerte dalla libreria Gymnasium, visita their website.
Grazie per i tuoi commenti!