Deep Q-Learning
Impari a utilizzare le reti neurali per l'apprendimento per rinforzo.
Deep Q-Learning è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 4 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.
Che cos'è il Deep Q-Learning?
Deep Q-Learning
Il Deep Q-Learning è un'estensione del Q-Learning che utilizza una rete neurale per approssimare la Q-Table. Questo consente all'apprendimento per rinforzo di operare in ambienti con spazi stato-azione grandi o continui.

Perché il Deep Q-Learning?
Perché il Deep Q-Learning?
Il Deep Q-Learning supera i limiti del Q-Learning tradizionale:
- Gestisce spazi degli stati ad alta dimensionalità, ad esempio le immagini.
- Evita la necessità di memorizzare Q-Table di grandi dimensioni.
- Generalizza tra gli stati utilizzando reti neurali.
L'algoritmo DQN
L'algoritmo DQN
Il Deep Q-Learning utilizza una rete neurale chiamata Q-Network per approssimare i valori Q. I passaggi principali sono:
- Inizializzare la Q-Network con pesi casuali.
- Interagire con l'ambiente per raccogliere tuple di esperienze
(state, action, reward, next_state). - Aggiornare la Q-Network utilizzando l'equazione di Bellman:
Q(s, a) ≈ r + γ max(Q(s', a'))
Creazione della Q-Network
Creazione della Q-Network
La Q-Network è una semplice rete neurale feedforward che riceve lo stato corrente come input e restituisce i valori Q per tutte le azioni possibili:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# Define the Q-Network
q_network = Sequential([
Dense(24, activation='relu', input_shape=(state_space_size,)),
Dense(24, activation='relu'),
Dense(action_space_size, activation='linear')
])
q_network.compile(optimizer='adam', loss='mse')Experience replay
Experience replay
Il Deep Q-Learning utilizza una tecnica chiamata experience replay per migliorare l'apprendimento:
- Memorizzare le esperienze
(state, action, reward, next_state)in un buffer di memoria. - Campionare casualmente batch di esperienze per addestrare la Q-Network.
from collections import deque
# Initialize replay memory
memory = deque(maxlen=2000)
# Add experience to memory
memory.append((state, action, reward, next_state, done))Addestramento della Q-Network
Addestramento della Q-Network
Addestriamo la Q-Network utilizzando le esperienze contenute nel buffer di memoria:
import numpy as np
# Sample a batch of experiences
batch_size = 32
batch = random.sample(memory, batch_size)
# Train the Q-Network
for state, action, reward, next_state, done in batch:
target = reward
if not done:
target += gamma * np.max(q_network.predict(next_state[np.newaxis, ...]))
q_values = q_network.predict(state[np.newaxis, ...])
q_values[0][action] = target
q_network.fit(state[np.newaxis, ...], q_values, epochs=1, verbose=0)Reti target
Reti target
Per stabilizzare l'addestramento, DQN utilizza una rete target:
- Mantenere una rete separata per calcolare i valori Q target.
- Copiare periodicamente i pesi dalla Q-Network alla rete target.
Vantaggi del Deep Q-Learning
Vantaggi del Deep Q-Learning
Il Deep Q-Learning offre diversi vantaggi:
- Gestisce spazi degli stati ad alta dimensionalità, come le immagini.
- Generalizza tra gli stati utilizzando reti neurali.
- Può risolvere attività complesse, come i giochi Atari e il controllo robotico.
Riepilogo e prossimi passi
Riepilogo e prossimi passi
In questa lezione:
- Abbiamo esplorato le nozioni di base del Deep Q-Learning.
- Abbiamo creato una Q-Network per approssimare i valori Q.
- Abbiamo discusso l'experience replay e le reti target per ottenere un addestramento stabile.
Successivamente esploreremo OpenAI Gym e applicheremo l'apprendimento per rinforzo in ambienti simulati.

Domande Frequenti
La lezione «Deep Q-Learning» è gratuita?
Sì — il testo completo di «Deep Q-Learning» è 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 «Deep Q-Learning»?
Impari a utilizzare le reti neurali per l'apprendimento per rinforzo. 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 4 di 5.
Quanto tempo richiede la lezione «Deep Q-Learning»?
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
- Concetti di base dell'apprendimento per rinforzo
- Concetto di Q-Table
- Implementazione di Q-Table in Python
- Deep Q-Learning
- Esplorazione di OpenAI Gym