You are on page 1of 11
151922, 1413 (Qué 65 0-Leaming todo lo que necesta saber | aprender Tabla de contenido {Qué es el aprendizaje por refuerzo? {Qué es Q-Leamning? Términos importantes en Q-Learning {Qué es la ecuacién de Bellman? {Cémo hacer una tabla Q? ‘Q-Learning con Python Conelusién {Qué haces cuando un perro 0 un nifio se porta mal? Los regajia para asegurarse de que no repitan y aprendan mal comportamiento. Por otro lado, los recompensaras si hacen algo bueno, para inculcarles un buen comportamiento. Lo creas 0 no, este sistema de refuerzo positive o negativo también se utiliza para entrenar maquinas. Se llama aprendizaje por refuerzo y nos ayuda a encontrar soluciones tinicas. ; El aprendizaje Q es un tipo de aprendizaje por refuerzo que no tiene modelos! En este articulo titulado 'Z Qué es Q-Learning? La mejor guia para Q-Learning’, hablaremos sobre qué es Q-learning y cémo implementario. Curso de certificacion de aprendizaje automatico GRATIS. convertirse en un ingeniero de aprendizaje automatico EXPLORAR CURSO {Qué es el aprendizaje por refuerzo? En el aprendizaje automético , un inconveniente comtin es la gran cantidad de datos que los modelos necesitan para entrenar. Cuanto mas complejo es un modelo, mas datos puede requerir. Incluso después de todo esto, los datos que obtengamos pueden no ser fiables. Puede hip: simplleam.comtutoiasmachine-earningtuorialwhatis-qdeamingswhat i elearning wn 5182, 14:13 ‘Qué 6s G-Leaming: todo lo que necesita saber | aprender tener valores falsos 0 faltantes o puede recopilarse de fuentes no confiables. El aprendizaje por refuerzo supera el problema de la adquisicién de datos al eliminar casi por completo la necesidad de datos El aprendizaje por refuerzo es una rama del aprendizaje automatico que entrena a un modelo para llegar a una solucién éptima para un problema tomando decisiones por si mismo. Consiste en: + UnEntorno, con el que un agente interactuard, para aprender a alcanzar un objetivo o realizar una accién. + Una Recompensa sila accién realizada por el modelo nos acerca a la meta/nos lleva ala meta, Esto se hace para entrenar al modelo en la direcci6n correcta. + Una recompensa negativa si realiza una accién que no le conduciré a la meta para evitar que aprenda en la direccién equivocada. El aprendizaje por refuerzo requiere un modelo de aprendizaje automatico para aprender del problema y encontrar la solucién mas éptima por si mismo. Esto significa que también llegamos a soluciones rapidas y Unicas en las que el programador ni siquiera podria haber pensado. Considere la imagen de abajo. Puedes ver un perro en una habitacién que tiene que realizar una accién, que es ir a buscar, El perro es el agente; Ia habitacién es el entorno en el que tiene que trabajar, y la accién a realizar es atractiva. Figura 1: Agente, Accién y Entorno Si se realiza la accién correcta, recompensaremos al agente. Si realiza una accién incorrecta, no le daremos ninguna recompensa ni le daremos una recompensa negativa, como un regafio. tps: www simplloamn.com/utolalsimachine-oarning-tutorialwhats-qleamingé#what_is_ elearning at 5182, 14:13 ‘Qué 6s G-Leaming: todo lo que necesita saber | aprender 9 ‘action = Fatching | [Reward Figura 2: Agente realizando una accién Qué es Q-Learning? Q-Learning es una politica de aprendizaje de refuerzo que encontraré la siguiente mejor accién, dado un estado actual. Elige esta accién al azar y tiene como objetivo maximizar la recompensa. Agent Reward Action State Environment Figura 3: Componentes de Q-Learning Curso GRATUITO de ciencia de datos con Python RATIS Somienza a aprender ciencia de datos con Python COMIENZA A APRENDER Q-learning es un aprendizaje de refuerzo sin modelo y fuera de la politica que encontrara el mejor curso de accién, dado el estado actual de! agente. Dependiendo de dénde se encuentre el agente en el entorno, decidird la siguiente accién a realizar. hips: www simplloamn.com/utorlalstmachine-oarning-tutoialwhats-qleamingi#what_is elearning sit 5182, 14:13 ‘Qué 6s G-Leaming: todo lo que necesita saber | aprender El objetivo del modelo es encontrar el mejor curso de accién dado su estado actual. Para hacer esto, puede crear sus propias reglas o puede operar fuera de la politica que se le ha dado a seguir. Esto significa que no existe una necesidad real de una péliza, por lo que la llamamos fuera de la péliza, Sin modelo significa que el agente utiliza predicciones de la respuesta esperada del entorno para avanzar. No utiliza el sistema de recompensas para aprender, sino el de prueba y error. Un ejemplo de Q-learning es un sistema de recomendacién de publicidad, En un sistema de recomendacién de anuncios normal, los anuncios que obtiene se basan en sus compras anteriores © en los sitios web que puede haber visitado. Si ha comprado un televisor, obtendra televisores recomendados de diferentes marcas. Roo G06 S468 Figura 4: Sistema de recomendacién de anuncios Con Q-learning, podemos optimizar el sistema de recomendacién de anuncios para recomendar productos que se compran juntos con frecuencia. La recompensa sera si el usuario hace clic en el producto sugerido, hitpsswwsimplloarn.com/utolalstmachine-oarning-tutorialwhats-qleamingé#what_is_qlearning ant 5182, 14:13 ‘Qué 6s G-Leaming: todo lo que necesita saber | aprender Figura 5: Sistema de recomendacién de anuncios con Q-Learning Términos importantes en Q-Learning 1. Estados: El Estado, S, representa la posicién actual de un agente en un entorno. 2. Accién: La Accién, A, es el paso que da el agente cuando se encuentra en un estado determinado. 3. Recompensas: por cada accién, el agente obtendra una recompensa positiva o negativa 4. Episodios: cuando un agente termina en un estado de finalizacién y no puede realizar una nueva accion. 5. Valores Q: se utilizan para determinar qué tan buena es una Accién, A, tomada en un estado particular, S. Q (A, S) 6. Diferencia temporal: una férmula utilizada para encontrar el valor Q utilizando el valor del estado y la accién actuales y el estado y la accién anteriores. éQué es la ecuacion de Bellman? La ecuacién de Bellman se utiliza para determinar el valor de un estado en particular y deducir qué tan bueno es estar en/tomar ese estado, El estado dptimo nos dard el valor dptimo mas alto. La ecuacién se da a continuacién. Utiliza el estado actual y la recompensa asociada con ese estado, junto con la recompensa maxima esperada y una tasa de descuento, que determina su importancia para el estado actual, para encontrar el proximo estado de nuestro agente. La tasa de aprendizaje determina qué tan rapido o lento aprender el modelo. Current Learning QValue — Rate 4 4 4 New Q¢S,A) = Q(S,A) |+/a CROSA) 4/¥ |) MaxQ'¢s A) - QCS,A)] Reward Discount — Maximum tps: ww simplloamn.com/utolalsimachine-oarning-tutorialwhats-qleamingé#what_is clearing sit 5182, 14:13 ‘Qué 6s G-Leaming: todo lo que necesita saber aprender Rate Expected Future Reward Figura 6: Ecuacién de Bellman ~Cémo hacer una tabla Q? Mientras ejecutamos nuestro algoritmo, nos encontraremos con varias soluciones y el agente tomard multiples caminos. ,Cémo encontramos el mejor entre ellos? Esto se hace tabulando nuestros hallazgos en una tabla llamada Q-Table. Una Q-Table nos ayuda a encontrar la mejor accién para cada estado del entorno, Usamos la ecuacién de Bellman en cada estado para obtener el estado futuro esperado y la recompensa y guardarlo en una tabla para compararlo con otros estados. Vamos a crear una tabla q para un agente que tiene que aprender a ejecutar, buscar y sentarse a la orden. Los pasos que se siguen para construir una tabla q son: Paso 1: cree una Q-Table inicial con todos los valores inicializados en 0 Cuando comencemos inicialmente, los valores de todos los estados y recompensas seran 0. Considere la tabla Q que se muestra a continuacién, que muestra un simulador de perros aprendiendo a realizar acciones: Figura 7: Tabla Q inicial Paso 2: elige una accién y realizala. Actualizar valores en la tabla tps: www simplloamn.com/utolalsimachine-oarning-tutorialwhats-qleamingé#what_is_ elearning ent ssa, 1039 (Qué 0s @Leaming too lo que necesita saber | aprender Este es el punto de partida. No hemos realizado ninguna otra accién hasta el momento. Digamos que queremos que el agente se siente inicialmente, lo cual hace, La tabla cambiara a: Figura 8: Q-Table después de realizar una accién Paso 3: obtenga el valor de la recompensa y calcule el valor Q-Value utilizando la ecuacién de Bellman Para la accién realizada, necesitamos calcular el valor de la recompensa real y el valor Q( S, A) Figura 9: Actualizacién de Q-Table con la ecuacién de Bellman Paso 4: Contintie igual hasta que se Ilene la tabla o termine un episodio El agente contintia realizando acciones y, para cada accién, se calculan la recompensa y el valor Q y actualiza la tabla tps: ww simplloamn.com/utolalsimachine-oarning-tutoialwhats-qleamingi#what_is_qlearing mt 5182, 14:13 (Qué 6s G-Leaming: todo lo que necesita saber | aprender Figura 10: Tabla Q final al final de un episodio Programa de Postgrado en IA y Machine Learning En asociacién con la Universidad de Purdue EXPLORAR CURSO Q-Learning con Python Usemos Q-Leaming para encontrar el camino més corto entre dos puntos. Tenemos un grupo de nodos y queremos que el modelo encuentre autométicamente el camino mas corto para viajar de un nodo a otro, Empezamos importando los médulos necesarios: import nunpy as np Figura 11: Importar médulos necesarios Luego definimos todas las acciones posibles o los puntos/nodos que existen. # Define the actions actions = [8,1,2,3,4,558,7.8] Figura 12: Definir las acciones Definimos la matriz de recompensas para cada accién hitpsswww.simplloarn.com/utolalsimachine-oarning-tutoialwhats-qleamingé#what_is clearing ant 5182, 14:13 ‘Qué 6s G-Leaming: todo lo que necesita saber | aprender woveyune une remaras rewards Figura 13: Definir las recompensas Definimos nuestro entorno asignando el estado a una ubicacién y establecemos el factor de descuento y la tasa de aprendizaje: state to location ~ dict((state, location) for location, state in locaton to_state.{tens()) + Initialize parapeters gama -@.75 * discount factor Slphe = 0.9 # Leanring rate Figura 14: Crear entomo y establecer variables Luego definimos nuestra clase de agente y establecemos sus atributos. clas gtgent) # initialize atena, gomo, stoves, actions; rewards; ond Q-votues et _init_(eiF, alpha, gema, location to_state, actions, rewards, stete_te location, @) exif. gains ~ gems Selfcalpha = alphe scaton.te_state - Incatton_to,etste factions » actions rewarge ~ resarde seta Figura 15: Definir Agente Luego definimos sus métodos. El primer método al que nos referimos es el entrenamiento, que entrenara al robot en el entorno. # Tratning the rebot tn the environaent def tpaining(self, start_location, end_location, iterations) rosands_neu ~ np-copy(sel.rowards) ending state = calf Jocation_to_statefend location] tps: www simplloarn.com/utorialstmachine-oarning-tutoalwhats-qlearingé#what_is_ elearning ont 5182, 14:13 ‘Qué 6s 0-Leaming: todo lo que necesita saber | aprender zpicking @ random current state for £ in range(iterations): current_stete = np.rendo playable_actions = [1 randint(e, 8) # iterate through the rewards matrix to get the states # directly reachable fron the randomly chosen current stote # assign those state tn a List naned playable actions for j in range(2) If revards_nenfcurrent_state,J] > 0: playable actions. append(j) set state» ne. randan. Cros aye serio) ‘sping temporal sisterence 10 rosa caren este net ‘eifcpuona" sells efoere sta 1 np-argan{sef.afrert state, )} - slf.dfcarent state cert state] sei leserant_statejnent_state] 1 selfcalgte * 70 route » [start location] Sait get_opinal rome(stat Location, en location, next location, rite, se.2) Figura 16: Defina un método sobre cémo el agente interacttia con el entorno Luego definimos un método para seleccionar la ruta éptima para el siguiente estado. # cet the optinat route det get_optinal_route(self, start_location, end location. next_location, route, 0): wile(next_location I= end location) starting_state ~ seit. location_to_state[stare_tocation] rext_state ~ np-ergeen(Qi starting stete, J) ect iocatian golf state ta_loeation[nest_state) route-append(next_lecation) start_location ~ nest location petre¢rovte) Figura 17: Definir un método para obtener la ruta éptima Ahora, llamemos a nuestro agente y verifiquemos la ruta més corta entre los puntos L9 y L1: gagent = Qigert(alsha, ganna, location to.state, actions, rewards, stateto location, @) Gagent.tradningg 8", "Li", i8@@) [Ey we, 8] Figura 16: Encuentra la ruta mAs corta entre dos puntos Como podemos ver, el modelo ha encontrado el camino mas corto entre los puntos 1 y 9 al tps: www simplloamn.com/utolalsimachine-oarning-tutorialwhats-qleamingé#what_is_ elearning sont ssa, 10319 (Qué 0s @Leaming too lo que necesita saber | aprender atravesar los puntos 5 y 8 Conclusién En este articulo titulado ' Qué es Q-Leaming? La mejor guia para Q-Leaming’, primero analizamos una rama secundaria del aprendizaje automatico llamada Aprendizaje por refuerzo. Luego respondimos a la pregunta: '; Qué es Q-Learning?' que es un tipo de aprendizaje por refuerzo sin modelo. Se introdujeron los diferentes términos asociados con Q-Learning y analizamos la Ecuacién de Bellman, que se utiliza para calcular el préximo estado de nuestro agente. Vimos los. pasos necesarios para hacer una Q-Table y, finalmente, vimos como implementar Q-Leaming en Python con una demostracién Esperamos que este articulo haya respondido a la pregunta que le rondaba por la cabeza: ', Qué es Q-Learning?! LTienes alguna duda o pregunta para nosotros? {Menciénelos en la seccién de comentarios de este articulo y haremos que nuestros expertos los respondan lo antes posible! tps: www simplloamn.com/utolalsimachine-oarning-tutorialwhats-qleamingé#what_is_ elearning nm

You might also like