0Pricing
Python Academy · Lezione

Implementazione di Q-Table in Python

Un semplice esempio di Q-learning.

Implementazione di Q-Table in Python è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 3 di 5. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 5 lezioni in totale.

Implementazione del Q-Learning in Python

Implementazione del Q-Learning in Python

In questa lezione implementeremo in Python un semplice algoritmo di Q-Learning. L'agente imparerà a muoversi in un mondo a griglia per massimizzare le ricompense.

Implementazione di Q-Table in Python — illustrazione 1

Definizione dell'ambiente

Definizione dell'ambiente

Definiamo un semplice mondo a griglia 4×4 in cui l'agente parte dall'angolo in alto a sinistra e deve raggiungere l'angolo in basso a destra per ricevere una ricompensa.

import numpy as np

# Define the environment
num_states = 16  # 4x4 grid
num_actions = 4  # Up, Down, Left, Right

# Define rewards (-1 for each step, +10 for the goal)
rewards = np.zeros(num_states)
rewards[-1] = 10

Inizializzazione della Q-Table

Inizializzazione della Q-Table

La Q-Table viene inizializzata con zeri per tutte le coppie stato-azione.

# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))

print("Initial Q-Table:")
print(q_table)

Implementazione dell'algoritmo di Q-Learning

Implementazione dell'algoritmo di Q-Learning

Utilizziamo i seguenti parametri:

  • α (Learning Rate): controlla in quale misura le nuove informazioni sostituiscono quelle precedenti.
  • γ (Discount Factor): assegna un peso alle ricompense future rispetto a quelle immediate.
  • ε (Exploration Rate): bilancia esplorazione e sfruttamento.
# Parameters
alpha = 0.1  # Learning rate
gamma = 0.9  # Discount factor
epsilon = 0.1  # Exploration rate

# Q-Learning loop
num_episodes = 1000
for episode in range(num_episodes):
    state = 0  # Start at the first state
    done = False
    while not done:
        # Exploration or exploitation
        if np.random.rand() < epsilon:
            action = np.random.randint(num_actions)  # Explore
        else:
            action = np.argmax(q_table[state])  # Exploit

        # Transition to the next state
        next_state = (state + action) % num_states  # Simplified transition logic
        reward = rewards[next_state]

        # Update Q-value
        q_table[state, action] = q_table[state, action] + alpha * (
            reward + gamma * np.max(q_table[next_state]) - q_table[state, action]
        )

        # Move to the next state
        state = next_state
        done = state == num_states - 1

Valutazione della policy appresa

Valutazione della policy appresa

Dopo l'addestramento, valutiamo la policy seguendo le azioni ottimali memorizzate nella Q-Table:

# Evaluate the policy
state = 0
optimal_path = [state]
while state != num_states - 1:
    action = np.argmax(q_table[state])
    state = (state + action) % num_states  # Simplified transition logic
    optimal_path.append(state)

print("Optimal Path:", optimal_path)

Visualizzazione della Q-Table

Visualizzazione della Q-Table

Possiamo visualizzare la Q-Table per comprendere i valori appresi per ogni coppia stato-azione:

import matplotlib.pyplot as plt
import seaborn as sns

# Visualize Q-Table
plt.figure(figsize=(10, 8))
sns.heatmap(q_table, annot=True, fmt=".2f", cmap="coolwarm")
plt.title("Q-Table Heatmap")
plt.xlabel("Actions")
plt.ylabel("States")
plt.show()

Vantaggi del Q-Learning

Vantaggi del Q-Learning

Il Q-Learning offre diversi vantaggi:

  • È semplice e facile da implementare.
  • Può gestire ambienti stocastici.
  • Converge alla policy ottimale con un'esplorazione sufficiente.

Limitazioni del Q-Learning

Limitazioni del Q-Learning

Il Q-Learning presenta alcune limitazioni:

  • Non si adatta bene ad ambienti con spazi stato-azione di grandi dimensioni.
  • L'apprendimento può essere lento negli ambienti complessi.
  • Richiede una rappresentazione ben definita dello stato e delle azioni.

Riepilogo e prossimi passi

Riepilogo e prossimi passi

In questa lezione:

  • Abbiamo implementato in Python un semplice algoritmo di Q-Learning.
  • Abbiamo addestrato un agente a muoversi in un mondo a griglia usando una Q-Table.
  • Abbiamo valutato la policy appresa e visualizzato la Q-Table.

Successivamente, analizzeremo il Deep Q-Learning, che utilizza reti neurali per gestire ambienti con spazi stato-azione di grandi dimensioni.

Implementazione di Q-Table in Python — illustrazione 10

Domande Frequenti

La lezione «Implementazione di Q-Table in Python» è gratuita?

Sì — il testo completo di «Implementazione di Q-Table in Python» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 5 lezioni in totale.

Cosa imparerò in «Implementazione di Q-Table in Python»?

Un semplice esempio di Q-learning. Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 5.

Quanto tempo richiede la lezione «Implementazione di Q-Table in Python»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Python Academy?

Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Concetti fondamentali del reinforcement learning
  2. Concetto di Q-Table
  3. Implementazione di Q-Table in Python
  4. Deep Q-Learning
  5. Esplorazione di OpenAI Gym
← Torna a Python Academy