0Pricing
Learn AI with Python · Lección

Implementación de una Q-Table en Python

Un ejemplo sencillo de Q-learning.

Implementación de una Q-Table en Python es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 3 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 Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 5 lecciones en total.

Implementación de Q-Learning en Python

Implementación de Q-Learning en Python

En esta lección implementaremos un algoritmo sencillo de Q-Learning en Python. El agente aprenderá a desplazarse por un mundo cuadriculado para maximizar sus recompensas.

Implementación de una Q-Table en Python — ilustración 1

Definición del entorno

Definición del entorno

Definimos un mundo cuadriculado sencillo de 4×4 en el que el agente comienza en la esquina superior izquierda y debe llegar a la esquina inferior derecha para recibir una recompensa.

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

Inicialización de la Q-Table

Inicialización de la Q-Table

La Q-Table se inicializa con ceros para todos los pares estado-acción.

# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))

print("Initial Q-Table:")
print(q_table)

Implementación del algoritmo Q-Learning

Implementación del algoritmo Q-Learning

Utilizamos los siguientes parámetros:

  • α (tasa de aprendizaje): Controla cuánto sustituye la información nueva a la antigua.
  • γ (factor de descuento): Pondera las recompensas futuras con respecto a las recompensas inmediatas.
  • ε (tasa de exploración): Equilibra la exploración y la explotación.
# 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

Evaluación de la política aprendida

Evaluación de la política aprendida

Después del entrenamiento, evaluamos la política siguiendo las acciones óptimas almacenadas en la 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)

Visualización de la Q-Table

Visualización de la Q-Table

Podemos visualizar la Q-Table para comprender los valores aprendidos para cada par estado-acción:

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

Ventajas de Q-Learning

Ventajas de Q-Learning

Q-Learning ofrece varias ventajas:

  • Es sencillo y fácil de implementar.
  • Puede gestionar entornos estocásticos.
  • Converge hacia la política óptima con suficiente exploración.

Limitaciones de Q-Learning

Limitaciones de Q-Learning

Q-Learning presenta algunas limitaciones:

  • No escala bien en entornos con espacios de estados-acciones grandes.
  • El aprendizaje puede ser lento en entornos complejos.
  • Requiere una representación de estados y acciones bien definida.

Resumen y próximos pasos

Resumen y próximos pasos

En esta lección:

  • Implementamos un algoritmo Q-Learning sencillo en Python.
  • Entrenamos un agente para desplazarse por un mundo cuadriculado mediante una Q-Table.
  • Evaluamos la política aprendida y visualizamos la Q-Table.

A continuación, exploraremos Deep Q-Learning, que utiliza redes neuronales para gestionar entornos con espacios de estados-acciones grandes.

Implementación de una Q-Table en Python — ilustración 10

Preguntas frecuentes

¿La lección «Implementación de una Q-Table en Python» es gratis?

Sí — el texto completo de «Implementación de una Q-Table en Python» 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 Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 5 lecciones en total.

¿Qué aprenderé en «Implementación de una Q-Table en Python»?

Un ejemplo sencillo de Q-learning. Practicas Learn AI with Python 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 Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python 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 3 de 5.

¿Cuánto tiempo toma la lección «Implementación de una Q-Table en Python»?

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 Learn AI with Python?

Sí. Cada lección de Learn AI with Python 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 una Q-Table en Python
  4. Q-Learning profundo
  5. Exploración de OpenAI Gym
← Volver a Learn AI with Python