Deep Q-Learning
Using neural networks for reinforcement learning.
Deep Q-Learning is a free Learn AI with Python lesson on CoddyKit — lesson 4 of 5. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Learn AI with Python learning path, one of 5 lessons in the course, and your progress syncs across the web and the CoddyKit app.
1
Deep Q-Learning
Deep Q-Learning is an extension of Q-Learning that uses a neural network to approximate the Q-Table. This allows reinforcement learning to scale to environments with large or continuous state-action spaces.

2
Why Deep Q-Learning?
Deep Q-Learning addresses the limitations of traditional Q-Learning:
- Handles high-dimensional state spaces (e.g., images).
- Avoids the need to store large Q-Tables in memory.
- Generalizes across states using neural networks.
3
The DQN Algorithm
Deep Q-Learning uses a neural network called the Q-Network to approximate the Q-values. The main steps are:
- Initialize the Q-Network with random weights.
- Interact with the environment to collect experience tuples
(state, action, reward, next_state). - Update the Q-Network using the Bellman equation:
Q(s, a) ≈ r + γ max(Q(s', a'))
4
Building the Q-Network
The Q-Network is a simple feedforward neural network that takes the current state as input and outputs Q-values for all possible actions:
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')5
Experience Replay
Deep Q-Learning uses a technique called experience replay to improve learning:
- Store experiences
(state, action, reward, next_state)in a memory buffer. - Randomly sample batches of experiences to train the 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))6
Training the Q-Network
We train the Q-Network using the experiences from the memory buffer:
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)7
Target Networks
To stabilize training, DQN uses a target network:
- Maintain a separate network for calculating target Q-values.
- Periodically copy weights from the Q-Network to the target network.
8
Advantages of Deep Q-Learning
Deep Q-Learning offers several benefits:
- Handles high-dimensional state spaces, like images.
- Generalizes across states using neural networks.
- Can solve complex tasks like Atari games and robotic control.
9
10
Summary and Next Steps
In this lesson, we:
- Explored the basics of Deep Q-Learning.
- Built a Q-Network to approximate Q-values.
- Discussed experience replay and target networks for stable training.
Next, we will explore OpenAI Gym and apply reinforcement learning in simulated environments.

Frequently asked questions
Is the “Deep Q-Learning” lesson free?
Yes — the full text of “Deep Q-Learning” is free to read here on the web, and the Learn AI with Python course includes 5 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Learn AI with Python course, upgrade to CoddyKit PRO.
What will I learn in “Deep Q-Learning”?
Using neural networks for reinforcement learning. You practise Learn AI with Python with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Learn AI with Python?
No prior experience is required. Learn AI with Python on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 5, so you can start here or from the beginning and move at your own pace.
How long does the “Deep Q-Learning” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Learn AI with Python lesson?
Yes. Every Learn AI with Python lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.