{"id":3202,"date":"2025-10-06T16:08:23","date_gmt":"2025-10-06T14:08:23","guid":{"rendered":"https:\/\/tecnologia.euroinnova.com\/que-es-el-q-learning-y-como-funciona-este-aprendizaje-por-refuerzo\/"},"modified":"2025-10-07T14:54:29","modified_gmt":"2025-10-07T12:54:29","slug":"q-learning","status":"publish","type":"post","link":"https:\/\/tecnologia.euroinnova.com\/en\/q-learning","title":{"rendered":"What is Q-learning and how does this reinforcement learning work?"},"content":{"rendered":"<p dir=\"ltr\">El Q-learning es una<strong> t\u00e9cnica de aprendizaje autom\u00e1tico que permite a un modelo aprender a base de repeticiones y mejorar con el tiempo<\/strong> con un enfoque del aprendizaje propio de los mam\u00edferos. Es un tipo de aprendizaje por refuerzo que suele emplear Python como lenguaje de programaci\u00f3n preferido.<\/p>\n<p dir=\"ltr\">En cierta manera, el Q learning <strong>imita la forma en la que los ni\u00f1os peque\u00f1os y los animales asumen ciertas acciones<\/strong> como malas o buenas. As\u00ed pues, ante una acci\u00f3n catalogada como buena al sujeto se le premia, mientras que ante una catalogada como mala, se le penaliza.<\/p>\n<h2 dir=\"ltr\" id=\"como-funciona-el-q-learning\">\u00bfC\u00f3mo funciona el Q-learning?<\/h2>\n<p dir=\"ltr\">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\u00e9todo 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.<\/p>\n<p dir=\"ltr\">Imagina un juego donde <strong>un robot debe moverse en una cuadr\u00edcula para encontrar un tesoro.<\/strong> La cuadr\u00edcula tiene diferentes posiciones (estados), y el robot puede moverse arriba, abajo, izquierda o derecha (acciones).<\/p>\n<p dir=\"ltr\">Vamos a definir un par de <strong>t\u00e9rminos clave en el aprendizaje por refuerzo <\/strong>para poder explicar el funcionamiento del Q-learning:<\/p>\n<ul>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Estados (S):<\/strong> Son las diferentes posiciones en la cuadr\u00edcula. Cada posici\u00f3n es un estado.<\/p>\n<\/li>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Acciones (A):<\/strong> Son los movimientos posibles del robot: arriba, abajo, izquierda, derecha.<\/p>\n<\/li>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Recompensa (R):<\/strong> Es lo que el robot gana o pierde despu\u00e9s 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\u00e1 de c\u00f3mo configuremos el algoritmo de Q-learning.<\/p>\n<\/li>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Q-valor (Q):<\/strong> Es un n\u00famero que nos dice qu\u00e9 tan bueno es para el robot hacer una cierta acci\u00f3n desde una cierta posici\u00f3n.<\/p>\n<\/li>\n<\/ul>\n<h3 dir=\"ltr\" id=\"que-es-una-q-table-o-tabla-q\">\u00bfQu\u00e9 es una Q-table o tabla-Q?<\/h3>\n<p dir=\"ltr\">Antes de explicarte el procedimiento de esta t\u00e9cnica de machine learning, debemos explicarte en qu\u00e9 consiste una Q-table. Una Q-table, o tabla Q, <strong>es una tabla o matriz que utiliza el algoritmo Q-learning para guardar informaci\u00f3n<\/strong> sobre las mejores acciones que un agente (como un robot o un programa) deber\u00eda tomar en diferentes estados para maximizar su recompensa a largo plazo.<\/p>\n<p dir=\"ltr\">La Q-table tiene las siguientes caracter\u00edsticas:<\/p>\n<ol>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Filas: <\/strong>Cada fila de la tabla representa un estado posible en el que el agente puede encontrarse.<\/p>\n<\/li>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Columnas:<\/strong> Cada columna de la tabla representa una acci\u00f3n que el agente puede tomar desde ese estado.<\/p>\n<\/li>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Celdas (Q-valores, Q(s, a)): <\/strong>Cada celda en la tabla contiene un Q-valor, que es un n\u00famero que indica la calidad de tomar una acci\u00f3n espec\u00edfica en un estado espec\u00edfico. Cuanto mayor sea el Q-valor, mejor se considera esa acci\u00f3n en ese estado (ecuaci\u00f3n de Bellman).<\/p>\n<\/li>\n<\/ol>\n<h3 dir=\"ltr\" id=\"proceso-de-q-learning\">Proceso de Q-learning<\/h3>\n<p dir=\"ltr\">Ahora s\u00ed, vamos a explicar c\u00f3mo nuestro agente procede ir mejorando sus respuestas hasta alcanzar un resultado \u00f3ptimo:<\/p>\n<h4 dir=\"ltr\">Initialisation<\/h4>\n<p dir=\"ltr\">Comenzamos con una tabla Q llena de ceros. Esto significa que el agente no tiene ninguna informaci\u00f3n sobre cu\u00e1l acci\u00f3n es mejor en cualquier estado. Esta tabla tiene una fila para cada estado (posici\u00f3n en la cuadr\u00edcula) y una columna para cada acci\u00f3n (movimientos posibles).<\/p>\n<p dir=\"ltr\">Vamos a visualizar la tabla Q para este mismo ejemplo. El robot debe encontrar el tesoro en una cuadr\u00edcula de 2&#215;2. Por lo tanto, en la cuadr\u00edcula 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\u00ed se ver\u00eda la Q-table:<\/p>\n<h5>Ejemplo de Q-table\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<\/h5>\n<table border=\"1\">\n<tbody>\n<tr>\n<th>Estado<\/th>\n<th>Arriba<\/th>\n<th>Abajo<\/th>\n<th>Izquierda<\/th>\n<th>Derecha<\/th>\n<\/tr>\n<tr>\n<td>(0,0)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>(0,1)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>(1,0)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>(1,1)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4 dir=\"ltr\">Acciones<\/h4>\n<p dir=\"ltr\">Ahora le toca al agente decidir qu\u00e9 acci\u00f3n va a realizar. Si el agente no ha recibido ninguna recompensa ni penalizaci\u00f3n por parte del algoritmo de Q-learning, actuar\u00e1 de manera aleatoria. Si ya ha sido entrenado anteriormente, tomar\u00e1 respuestas fundamentadas en sus experiencias anteriores.<\/p>\n<h4 dir=\"ltr\">Actualizaci\u00f3n<\/h4>\n<p dir=\"ltr\">El robot va recibiendo recompensas o penalizaciones, es decir, feedback positivo o negativo seg\u00fan su posici\u00f3n se acerque o se aleje del tesoro. Cada vez que el robot se mueva, la tabla Q ha de actualizar el c\u00f3mputo de recompensas por cada combinaci\u00f3n de acciones que realice el robot seg\u00fan en qu\u00e9 estado se encuentre.<\/p>\n<h4 dir=\"ltr\">Iteraci\u00f3n y terminaci\u00f3n<\/h4>\n<p dir=\"ltr\">Este proceso es iterativo, es decir, se repite hasta que el modelo de Q-learning no pueda tomar m\u00e1s acciones y llegue a un estado de terminaci\u00f3n, idealmente, habiendo alcanzado un output satisfactorio. A cada terminaci\u00f3n del algoritmo se le llama episodio.<\/p>\n<h2 dir=\"ltr\" id=\"aplicaciones-reales-del-q-learning\">Aplicaciones reales del Q-learning<\/h2>\n<p dir=\"ltr\">La teor\u00eda est\u00e1 muy bien, pero, \u00bfpara qu\u00e9 sirve todo esto? El Q-learning, como cualquier otra t\u00e9cnica de machine learning, puede encontrar aplicaciones pr\u00e1cticas en muchas disciplinas. Aqu\u00ed te ejemplificamos algunas:<\/p>\n<ul>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Rob\u00f3tica: <\/strong>Los robots pueden aprender a partir del Q-learning a navegar en entornos desconocidos, evitar obst\u00e1culos y alcanzar objetivos espec\u00edficos.<\/p>\n<\/li>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Videojuegos: <\/strong>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.<\/p>\n<\/li>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Autonomous driving: <\/strong>Los coches aprenden a conducir de manera segura respetando las se\u00f1ales de tr\u00e1fico y reaccionando adecuadamente a diferentes situaciones en la carretera.<\/p>\n<\/li>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Recomendaciones de productos:<\/strong> Mejora las recomendaciones en plataformas como Netflix, YouTube, y Amazon aprendiendo de las preferencias del usuario y adapt\u00e1ndose a sus gustos en cada momento.<\/p>\n<\/li>\n<li dir=\"ltr\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Industria y manufactura: <\/strong>Anticipa fallos en maquinaria y planifica el mantenimiento para minimizar el tiempo de inactividad.<\/p>\n<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>El Q-learning es una t\u00e9cnica de aprendizaje autom\u00e1tico que permite a un modelo aprender a base de repeticiones y mejorar [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":757,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3202","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categorizar"],"acf":[],"_links":{"self":[{"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/posts\/3202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/comments?post=3202"}],"version-history":[{"count":0,"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/posts\/3202\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/media\/757"}],"wp:attachment":[{"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/media?parent=3202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/categories?post=3202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/en\/wp-json\/wp\/v2\/tags?post=3202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}