Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Basi di Gymnasium | Teoria Fondamentale dell'RL
Introduzione al Reinforcement Learning

bookBasi 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().

Note
Approfondisci

Se desideri approfondire le funzionalità offerte dalla libreria Gymnasium, visita their website.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 7

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 2.7

bookBasi di Gymnasium

Scorri per mostrare il menu

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().

Note
Approfondisci

Se desideri approfondire le funzionalità offerte dalla libreria Gymnasium, visita their website.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 7
some-alt