0Pricing
Python Academy · Lección

Aprendizaje Q profundo

Uso de redes neuronales para el aprendizaje por refuerzo

Aprendizaje Q profundo es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 4 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 5 lecciones en total.

¿Qué es Deep Q-Learning?

Deep Q-Learning

Deep Q-Learning es una extensión de Q-Learning que utiliza una red neuronal para aproximar la tabla Q. Esto permite que el aprendizaje por refuerzo se adapte a entornos con espacios de estados y acciones grandes o continuos.

Aprendizaje Q profundo — ilustración 1

¿Por qué Deep Q-Learning?

¿Por qué Deep Q-Learning?

Deep Q-Learning aborda las limitaciones del Q-Learning tradicional:

  • Gestiona espacios de estados de alta dimensionalidad, como las imágenes.
  • Evita la necesidad de almacenar tablas Q grandes en memoria.
  • Generaliza entre estados mediante redes neuronales.

El algoritmo DQN

El algoritmo DQN

Deep Q-Learning utiliza una red neuronal llamada Q-Network para aproximar los valores Q. Los pasos principales son:

  1. Inicializar la Q-Network con pesos aleatorios.
  2. Interactuar con el entorno para recopilar tuplas de experiencia (state, action, reward, next_state).
  3. Actualizar la Q-Network mediante la ecuación de Bellman:

Q(s, a) ≈ r + γ max(Q(s', a'))

Construcción de la Q-Network

Construcción de la Q-Network

La Q-Network es una red neuronal sencilla de propagación hacia delante que recibe el estado actual como entrada y produce valores Q para todas las acciones posibles:

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')

Repetición de experiencias

Repetición de experiencias

Deep Q-Learning utiliza una técnica llamada repetición de experiencias para mejorar el aprendizaje:

  • Almacenar experiencias (state, action, reward, next_state) en un búfer de memoria.
  • Seleccionar aleatoriamente lotes de experiencias para entrenar 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))

Entrenamiento de la Q-Network

Entrenamiento de la Q-Network

Entrenamos la Q-Network mediante las experiencias del búfer de 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)

Redes objetivo

Redes objetivo

Para estabilizar el entrenamiento, DQN utiliza una red objetivo:

  • Mantener una red independiente para calcular los valores Q objetivo.
  • Copiar periódicamente los pesos de la Q-Network a la red objetivo.

Ventajas de Deep Q-Learning

Ventajas de Deep Q-Learning

Deep Q-Learning ofrece varias ventajas:

  • Gestiona espacios de estados de alta dimensionalidad, como las imágenes.
  • Generaliza entre estados mediante redes neuronales.
  • Puede resolver tareas complejas, como juegos de Atari y el control robótico.

Resumen y próximos pasos

Resumen y próximos pasos

En esta lección:

  • Exploramos los conceptos básicos de Deep Q-Learning.
  • Construimos una Q-Network para aproximar los valores Q.
  • Analizamos la repetición de experiencias y las redes objetivo para lograr un entrenamiento estable.

A continuación, exploraremos OpenAI Gym y aplicaremos el aprendizaje por refuerzo en entornos simulados.

Aprendizaje Q profundo — ilustración 10

Preguntas frecuentes

¿La lección «Aprendizaje Q profundo» es gratis?

Sí — el texto completo de «Aprendizaje Q profundo» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 5 lecciones en total.

¿Qué aprenderé en «Aprendizaje Q profundo»?

Uso de redes neuronales para el aprendizaje por refuerzo Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 5.

¿Cuánto tiempo toma la lección «Aprendizaje Q profundo»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Conceptos básicos del aprendizaje por refuerzo
  2. Concepto de tabla Q
  3. Implementación de la tabla Q en Python
  4. Aprendizaje Q profundo
  5. Exploración de OpenAI Gym
← Volver a Python Academy