0Pricing
Learn AI with Python · Lezione

Implementazione di Q-Table in Python

Un semplice esempio di Q-learning.

Implementazione di Q-Table in Python è una lezione Learn AI with Python 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 Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 5 lezioni in totale.

Implementazione del Q-Learning in Python

Implementazione del Q-Learning in Python

In questa lezione implementeremo un semplice algoritmo di Q-Learning in Python. 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 Q-Learning

Implementazione dell'algoritmo Q-Learning

Vengono utilizzati i seguenti parametri:

  • α (Tasso di apprendimento): determina in che misura le nuove informazioni sostituiscono quelle precedenti.
  • γ (Fattore di sconto): assegna un peso alle ricompense future rispetto a quelle immediate.
  • ε (Tasso di esplorazione): bilancia l'esplorazione e lo 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

È possibile 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.
  • Con sufficiente esplorazione, converge alla policy ottimale.

Limiti del Q-Learning

Limiti del Q-Learning

Il Q-Learning presenta alcuni limiti:

  • Non si adatta bene ad ambienti con spazi stato-azione di grandi dimensioni.
  • L'apprendimento può essere lento in 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 un semplice algoritmo Q-Learning in Python.
  • Abbiamo addestrato un agente a muoversi in un ambiente a griglia utilizzando una Q-Table.
  • Abbiamo valutato la policy appresa e visualizzato la Q-Table.

Successivamente esploreremo 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 Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 5 lezioni in totale.

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

Un semplice esempio di Q-learning. Eserciti Learn AI with Python 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 Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python 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 Learn AI with Python?

Sì. Ogni lezione Learn AI with Python 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 di base dell'apprendimento per rinforzo
  2. Concetto di Q-Table
  3. Implementazione di Q-Table in Python
  4. Deep Q-Learning
  5. Esplorazione di OpenAI Gym
← Torna a Learn AI with Python