El Q-learning es una técnica de aprendizaje automático que permite a un modelo aprender como lo haría un niño pequeño por recompensas.

¿Qué es el Q-learning y cómo funciona este aprendizaje por refuerzo?

pablo.blanco
13/06/2024

El Q-learning es una técnica de aprendizaje automático que permite a un modelo aprender a base de repeticiones y mejorar con el tiempo con un enfoque del aprendizaje propio de los mamíferos. Es un tipo de aprendizaje por refuerzo que suele emplear Python como lenguaje de programación preferido.

En cierta manera, el Q learning imita la forma en la que los niños pequeños y los animales asumen ciertas acciones como malas o buenas. Así pues, ante una acción catalogada como buena al sujeto se le premia, mientras que ante una catalogada como mala, se le penaliza.

¿Cómo funciona el Q-learning?

Vamos a explicarte de forma sencilla el proceso de funcionamiento del Q-learning con un ejemplo para mayor claridad. En esencia, el Q-learning es un método que ayuda a un agente (como un robot, un programa, etc.) a aprender a tomar las mejores decisiones en un entorno para conseguir la mayor recompensa posible.

Imagina un juego donde un robot debe moverse en una cuadrícula para encontrar un tesoro. La cuadrícula tiene diferentes posiciones (estados), y el robot puede moverse arriba, abajo, izquierda o derecha (acciones).

Vamos a definir un par de términos clave en el aprendizaje por refuerzo para poder explicar el funcionamiento del Q-learning:

  • Estados (S): Son las diferentes posiciones en la cuadrícula. Cada posición es un estado.

  • Acciones (A): Son los movimientos posibles del robot: arriba, abajo, izquierda, derecha.

  • Recompensa (R): Es lo que el robot gana o pierde después de hacer un movimiento. Por ejemplo, +10 puntos por encontrar el tesoro y -1 punto por cada movimiento que no le lleva al tesoro. El valor de las recompensas dependerá de cómo configuremos el algoritmo de Q-learning.

  • Q-valor (Q): Es un número que nos dice qué tan bueno es para el robot hacer una cierta acción desde una cierta posición.

¿Qué es una Q-table o tabla-Q?

Antes de explicarte el procedimiento de esta técnica de machine learning, debemos explicarte en qué consiste una Q-table. Una Q-table, o tabla Q, es una tabla o matriz que utiliza el algoritmo Q-learning para guardar información sobre las mejores acciones que un agente (como un robot o un programa) debería tomar en diferentes estados para maximizar su recompensa a largo plazo.

La Q-table tiene las siguientes características:

  1. Filas: Cada fila de la tabla representa un estado posible en el que el agente puede encontrarse.

  2. Columnas: Cada columna de la tabla representa una acción que el agente puede tomar desde ese estado.

  3. Celdas (Q-valores, Q(s, a)): Cada celda en la tabla contiene un Q-valor, que es un número que indica la calidad de tomar una acción específica en un estado específico. Cuanto mayor sea el Q-valor, mejor se considera esa acción en ese estado (ecuación de Bellman).

Proceso de Q-learning

Ahora sí, vamos a explicar cómo nuestro agente procede ir mejorando sus respuestas hasta alcanzar un resultado óptimo:

Inicialización

Comenzamos con una tabla Q llena de ceros. Esto significa que el agente no tiene ninguna información sobre cuál acción es mejor en cualquier estado. Esta tabla tiene una fila para cada estado (posición en la cuadrícula) y una columna para cada acción (movimientos posibles).

Vamos a visualizar la tabla Q para este mismo ejemplo. El robot debe encontrar el tesoro en una cuadrícula de 2x2. Por lo tanto, en la cuadrícula representamos cuatro estados (posiciones en las que se puede encontrar el robot) que podemos expresar en coordenadas. Por su parte, el robot tiene un margen de cuatro acciones que puede realizar (moverse arriba, abajo, a la derecha o a la izquierda). Así se vería la Q-table:

Ejemplo de Q-table                                                                                                                                                                                                                   
Estado Arriba Abajo Izquierda Derecha
(0,0) 0 0 0 0
(0,1) 0 0 0 0
(1,0) 0 0 0 0
(1,1) 0 0 0 0

Acciones

Ahora le toca al agente decidir qué acción va a realizar. Si el agente no ha recibido ninguna recompensa ni penalización por parte del algoritmo de Q-learning, actuará de manera aleatoria. Si ya ha sido entrenado anteriormente, tomará respuestas fundamentadas en sus experiencias anteriores.

Actualización

El robot va recibiendo recompensas o penalizaciones, es decir, feedback positivo o negativo según su posición se acerque o se aleje del tesoro. Cada vez que el robot se mueva, la tabla Q ha de actualizar el cómputo de recompensas por cada combinación de acciones que realice el robot según en qué estado se encuentre.

Iteración y terminación

Este proceso es iterativo, es decir, se repite hasta que el modelo de Q-learning no pueda tomar más acciones y llegue a un estado de terminación, idealmente, habiendo alcanzado un output satisfactorio. A cada terminación del algoritmo se le llama episodio.

Aplicaciones reales del Q-learning

La teoría está muy bien, pero, ¿para qué sirve todo esto? El Q-learning, como cualquier otra técnica de machine learning, puede encontrar aplicaciones prácticas en muchas disciplinas. Aquí te ejemplificamos algunas:

  • Robótica: Los robots pueden aprender a partir del Q-learning a navegar en entornos desconocidos, evitar obstáculos y alcanzar objetivos específicos.

  • Videojuegos: Se utiliza para crear TAS (tool assisted speedrun) que puedan jugar y mejorar en videojuegos, desde juegos simples como el ajedrez hasta juegos complejos como StarCraft.

  • Conducción autónoma: Los coches aprenden a conducir de manera segura respetando las señales de tráfico y reaccionando adecuadamente a diferentes situaciones en la carretera.

  • Recomendaciones de productos: Mejora las recomendaciones en plataformas como Netflix, YouTube, y Amazon aprendiendo de las preferencias del usuario y adaptándose a sus gustos en cada momento.

  • Industria y manufactura: Anticipa fallos en maquinaria y planifica el mantenimiento para minimizar el tiempo de inactividad.

Artículos relacionados

Un árbol de Merkle es una estructura de datos utilizada para verificar y mantener la integridad de los datos en un sistema distribuido.
pablo.blanco

¿Qué es un árbol de Merkle y cómo funciona?

26/08/2024

En el campo del aprendizaje automático (machine learning) y la tecnología blockcha

SearchGPT es un nuevo prototipo creado en el seno de OpenAI que pretende potenciar las búsquedas al uso con el poder de la inteligencia artificial.
pablo.blanco

SearchGPT: el nuevo buscador de inteligencia artificial de OpenAI

06/08/2024

SearchGPT es un nuevo prototipo creado en el seno de OpenAI que combina las características de la inteligencia artificial propia de los grandes modelos de lenguaje con información actuali

En esta era digital, la IA está transformando industrias enteras y abriendo puertas a nuevas formas de generar ingresos para particulares.
pablo.blanco

¿Cómo ganar dinero con la IA? 5 trabajos con inteligencia artificial

01/08/2024

En esta era digital, la IA está transformando industrias enteras y abriendo puertas a nuevas formas de generar ingresos para particulares.