0Pricing
Python Academy · Lezione

Deep Q-Learning

Utilizzo delle reti neurali per il reinforcement learning.

Deep Q-Learning è una lezione Python Academy 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 Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy 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 scalare ad ambienti con spazi stato-azione di grandi dimensioni o continui.

Deep Q-Learning — illustrazione 1

Perché utilizzare il Deep Q-Learning

Perché utilizzare il Deep Q-Learning

Il Deep Q-Learning affronta le limitazioni 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 usando le reti neurali.

L'algoritmo DQN

L'algoritmo DQN

Il Deep Q-Learning utilizza una rete neurale chiamata Q-Network per approssimare i Q-value. I passaggi principali sono:

  1. Inizializzare la Q-Network con pesi casuali.
  2. Interagire con l'ambiente per raccogliere tuple di esperienza (state, action, reward, next_state).
  3. Aggiornare la Q-Network usando 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 Q-value 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 usando 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 Q-value 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 usando le 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 esaminato le basi del Deep Q-Learning.
  • Abbiamo creato una Q-Network per approssimare i Q-value.
  • Abbiamo discusso l'experience replay e le reti target per un addestramento stabile.

Successivamente, analizzeremo OpenAI Gym e applicheremo l'apprendimento per rinforzo in ambienti simulati.

Deep Q-Learning — illustrazione 10

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 Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 5 lezioni in totale.

Cosa imparerò in «Deep Q-Learning»?

Utilizzo delle reti neurali per il reinforcement 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 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 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