¿Qué es el Q-learning y cómo funciona este aprendizaje por refuerzo?
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:
-
Filas: Cada fila de la tabla representa un estado posible en el que el agente puede encontrarse.
-
Columnas: Cada columna de la tabla representa una acción que el agente puede tomar desde ese estado.
-
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
La Inteligencia Artificial al servicio de la desintegración radiactiva
La inteligencia artificial (IA) ha revolucionado numerosos campos, desde la medicina hasta las finanzas.
Guía técnica de cómo utilizar el algoritmo K-means y elegir el valor de “k”
El algoritmo k-means es uno de los métodos de clustering más utilizados en aprendizaje automático, especialmente debido a su simplicidad y eficiencia.
Voicebot: qué es, beneficios y ejemplos
La inteligencia artificial ha llegado para quedarse en nuestras vidas, puesto que las posibilidades que nos aportan son infinitas.