Muy agradecido con este video, estoy leyendo reinforcement learning de Sutton y Barto, y este tipo de videos en español ayuda mucho a incorporar los temas , muchas gracias y un saludo 🫂
@HobbieCode Жыл бұрын
Muy bueno Iván, me lo he tragado enterito y queda muy bien explicado. Enhorabuena de nuevo. 😉
@angelgomez9246 Жыл бұрын
Hola, primero gracias por la explicación, me ayudó mucho. Tenía algunas dudas con respecto al Q-table, tras estudiar unos minutos llegué a la siguiente conclusión (puede que a alguien más le sirva): 'qtable' Es una matriz de 20x20x3, aquí se almacenarán los valores de probabilidad teniendo en cuenta 3 parámetros: - Posición, velocidad y acción escogida Para posición y velocidad se dividieron los posibles escenarios en 20, es decir que dentro de los valores reales dados por estos dos parámetros se redondean para que caigan en uno de 20 intervalos, por eso 20 por 20, y en esos intervalos se escoge uno de 3 posibles decisiones, allí se almacenarán los valores de probabilidad. Puede que sea un poco confuso el código del video por la siguiente razón, las siguientes 3 formas de llamar un espacio son similares: - q_table[(1,1)][0] - q_table[1][1][0] - q_table[(1,1,0)] Entonces fijate bien en qué parte lo que se llama es un valor sencillo o una tupla con 2 valores (como es el caso de la variable 'estado')
@pablobellidoalvarez5368 Жыл бұрын
Genial!!! Por fin encuentro un vídeo sobre programación de aprendizaje reforzado!!! Por fin podré poner en práctica este tipo de tecnología. Por favor, más vídeos como este!!
@garcia-ferreira Жыл бұрын
Gracias por los ánimos! Subiré más videos de este tipo que veo que está cogiendo mucho interés.
@AlejandroOsorioHuanca Жыл бұрын
@@garcia-ferreiraHola, a mi me aparece en pycharm que env.step(accion) tiene mas de 4 valores, como podria almacenar todos esos valores restantes en "info"?
@ozzy1987mr Жыл бұрын
tengo 6 meses buscando alguien entendible, si bien es un tema delicado donde tenes que si o si entender la formula, tenes la mejor explicacion que e encontrado en 2 años sobre este tema, me permitiste avanzar de 0 porque no existe buen material sobre este tema en español ... espero que sigas el tema y vayas enseñando diferentes algoritmos, formas y demas
@alexnova9976 Жыл бұрын
Mil gracias por desglosar la ecuacion de Bellman, sin tanta tinta matemática. La mayoría de los que tratan de explicarla, se jartan de entender la ecuación, pero no de explicarla con un ejemplo tan sencillo y pragmático como el suyo. Recomendacion: que el codigo se vea un poco mas grande en pantalla, para no perder el hilo de su tutorial. Un saludo desde Colombia.
@sebastianpineyraq1998 Жыл бұрын
me gustaría que subas mas videos.., es muy buen contenido 🎉
@FerranFont Жыл бұрын
Buen vídeo Ivan.
@JuanfeDV Жыл бұрын
Muy buenas Iván. Antes que nada muchas gracias por tus videos. Quería aportar que a la hora de discretizar, env.reset() devuelve una tupla a la que hay que coger el índice 0 para descartar el resto. Es decir: def discretizar(valor): valor = valor[0] ... (continuar el resto de la función) Me temo que esto es debido a que tenemos diferentes versiones de gym y por eso el problema de estructura de datos. Saludos y gracias de nuevo!
@JuanfeDV Жыл бұрын
Amplio información al respecto: A partir de la versión 0.25 se incluyeron varios cambios. - El método .step() renderiza automáticamente y no hay opción de evitarlo. Esto causa varios problemas con abrir y cerrar la ventana de renderizado. - El método .action() retorna 5 valores en vez de 4, pero eso no es mayor problema. - 'nuevo_estado' no contiene solamente los dos valores, sino el tipo de datos que almacena y por ello el error que comenté de usar valor[0]. Creo que usas la versión de gym 0.24.1, ?pero podrías confirmarlo? Aun en esta versión la ventana de renderizado no se cierra correctamente sin finalizar el entorno, cosa que no es viable. Muchas gracias y un saludo, Juanfe
@JuanfeDV Жыл бұрын
Me autorespondo, por si le ayuda a alguien. Con la versión de gym 0.24.1 se puede seguir los pasos de Iván sin problemas. La causa de que se congelará la pantalla de pygame y diera error a la hora de hacer otra vez render es que la instrucción de env.close() debe ir al final ya terminado el for, es decir, no lleva tabulación. Un saludo y a la espera de nuevos videos Iván. Muchas gracias!
@garcia-ferreira Жыл бұрын
@@JuanfeDV gracias por el interés mostrado y por la implicación. Estoy ya creando nuevos vídeos para el canal, así que pronto habrá más.
@eduardorosentreter Жыл бұрын
Nunca había agradecido a alguien por autorresponderse y hablar solo LoL 😂😂😂😂 Muchas gracias por el detalle bro
@JuanfeDV Жыл бұрын
@@eduardorosentreter con el curro que se pegó Iván haciendo el video, no iba a dejar de compartir mi pequeño granito de arena con él y los compañeros. De eso se trata, de compartir. Un saludo!
@dafmdev Жыл бұрын
Muchas gracias!!
@ProjectOfTheWeek Жыл бұрын
Buen video, tengo una duda. Una vez entrenado el modelo si se exporta y lo importamos en otro ejercicio igual, pero que el camino tenga otra forma. Lo resolvería antes que un modelo nuevo? gracias
@music321.39 ай бұрын
Buen video , para cuando subes. Otro
@asddsa-eh8jh7 ай бұрын
Entonces en juegos que requieren cambios de objetos continuos, el agente tendria que recurrir a una memoria externa al juego?
@SaraFerozCamporosa11 ай бұрын
Hola! Vas a continuar con más vídeo??
@RodrigoPozoTV Жыл бұрын
que genial la musica. Hasta me dieron ganas de tocar piano
@showland7826 Жыл бұрын
una pregunta, siempre he visto que hay que entrenarlo teniendo un gpu, hay forma de hacerlo sin gpu?. de forma local. o con los mismos nucleos del cpu?
@garcia-ferreira Жыл бұрын
No es necesario tener una GPU para realizar el entrenamiento. Puedes hacerlo con una CPU normal, la única diferencia es que te llevará más tiempo el entrenamiento, pero por lo demás te funcionará igual.
@showland7826 Жыл бұрын
@@garcia-ferreira muchas gracias sino que vi que la libreria gym pedia usar keras para el entrenamiento. por eso es que pense que solo se podia entrenar teniendo una gpu. otra consulta, si quisiera entrenar el sistema de forma simultanea. osea simular 2 o 3 escenarios mas en simultaneo para entrenarlo mas rapido y aprenda mas rapido. como tendria que modificar el codigo o en que parte tendria que modificarlo?
@garcia-ferreira Жыл бұрын
@@showland7826 No se si te entiendo muy bien la pregunta, si te refieres a lanzar más procesos de entrenamiento para que vaya más rápido no vas a poder hacer nada, ya que el límite es tu CPU. Aunque lances muchos procesos solo tienes una CPU para gestionarlos, así que no tiene mucho sentido. Si tienes más preguntas puedes escribirme a ivan@garcia-ferreira.es y así me puedes detallar las preguntas mucho mejor.
@showland7826 Жыл бұрын
@@garcia-ferreira te escribi explicandote a detalle si hubiera una forma mas directa como discord seria genial. gracias
@garcia-ferreira Жыл бұрын
Estoy trabajando en crear un comunidad Discord, en cuanto la tenga te aviso ;)
@escobarsaldanagustavoalo-uj8mj Жыл бұрын
Muy buen video, cree poder subir un video de q Learnig pero enfocado en redes
@garcia-ferreira Жыл бұрын
Sí, uno de los videos futuros será implementando redes neuronales para hacer aprendizaje por refuerzo. Así que estate atento al canal ;)
@Fabiola-0772 ай бұрын
Alguien tiene el codigo fuente del ejemplo? lo he intentado correr en google colab y no me sale :(
@gustavoescobar6724 Жыл бұрын
Bueno video amigo solo que tengo duda como usar Jupyter lab y de donde sale, soy nuevo en este tema y quisiera un tutorial más detallado 🙏
@LeydiGF Жыл бұрын
El método de montecarlo porfa con Frozen Lake
@adriatomas49729 ай бұрын
la funcion discretizar no entiendo como te funciona, el env.reset() me devuelve lo siguiente: (array([-0.5239461, 0. ], dtype=float32), {})
@elvisleon9695 Жыл бұрын
Siempre me gusto mas los algoritmos geneticos para optimizar los pesos de la red neuronal.
@christian3314 Жыл бұрын
Gracias Ryan reynolds de españa
@ancano1984 Жыл бұрын
Hola Iván!! Excelente video, muchas gracias. Solo una duda. Veo que ya la librería gym cambió a gymnasium y cuando trato de practicar con tu código me sale el siguiente error: TypeError: unsupported operand type(s) for -: 'dict' and 'float'. Sabes a qué se podría deber?? Muchas gracias nuevamente por el video y la explicación.
@garcia-ferreira Жыл бұрын
Hola Andrés, pues no lo tengo claro, así sin ver el código y donde te falla es difícil de saber. Si quieres desde mí página www.garcia-ferreira.es/blogger-gb-contact/ mándame un mensaje y te contesto y lo vamos tratando por correo.
@deeper_soundfy5528 Жыл бұрын
MODULA. POR FAVOR, MODULA!! Que hay que hacer un esfuerzo sobrehumano para entenderte a cabalidad.