¿Alguna vez has oido hablar de aprendizaje por refuerzo, o reinforcement learning? Nos hemos entrevistado con Carlos Perales, un experto en big data y data science que nos resolverá algunas dudas sobre esta técnica de inteligencia artificial y nos hablará de su nuevo curso en SoyData.

Cuando el machine learning aprende solo

CarlosPeralesRL

(Carlos) Soy Carlos Perales, doctor en Matemática Aplicada con una Tesis en Algoritmos Genéticos, una metodología heurística de optimización de funciones. Llevo trabajando de Data Scientist desde antes de que se acuñara este término: primero como investigador, después como consultor y por último, aunque ya hace más de cinco años, como Data Scientist en diversas empresas del sector Seguros y Telecomunicaciones.

(SoyData)-Carlos según tengo entendido el aprendizaje por refuerzo estaría un poco en un término medio entre lo supervisado y lo no supervisado, ¿es así o debería hacer tu curso para enterarme mejor ;-)?

Se podría decir así, aunque a mí me gusta entenderlo como una nueva dimensión separada de estas dos: Es verdad que se etiquetan los datos (pares estado-acción) con unos valores, las recompensas inmediatas; pero la etiqueta no se corresponde con el valor objetivo al que queremos ajustar estos datos, que sería la recompensa a largo plazo. Además, se incluye la etiqueta durante el proceso de aprendizaje, por lo que inicialmente no tendríamos ninguna etiqueta. De hecho ni siquiera tenemos datos al iniciar el aprendizaje.

Los algoritmos de Reinforcement Learning aprenden interactuando con el medio y aprendiendo una estrategia que intenta maximizar la recompensa a largo plazo.

-El aprendizaje supervisado requiere más atención humana, pero da resultados más ajustados a lo que esperamos; por otro lado el sistema no supervisado puede ser más disruptivo, requiere menos atención y es más ‘inteligencia artificial’ pero los resultados a menudo carecen de una posible interpretación y pueden parecer caóticos ¿Cuáles son las ventajas que nos vamos a encontrar con RL?

La interpretación de las estrategias estimadas con un Reinforcement Learning es bastante fácil en un momento puntual: en un estado, el algoritmo propondrá valores para cada acción a tomar. Lo que no siempre se puede conocer es la estrategia final, ya que, si bien, en algunos algoritmos de Reinforcement Learning podemos leer la estrategia de una tabla; en otras ocasiones, al estrategia está “guardada” en una red neuronal, que es mucho más compleja de leer.

Los algoritmos de Reinforcement Learning son útiles con determinados problemas que no casan con la separación supervisado-no supervisado.

-¿Qué aplicaciones ves más destacables en el aprendizaje por refuerzo? ¿algún caso de estudio que hayas trabajado o conozcas de cerca?

 

Como comentábamos, el aprendizaje por refuerzo se aplica en problemas en los que necesitamos tomar una decisión en un momento determinado, pero cuyo resultado será evaluado más tarde, incluso habiendo tomado alguna decisión más.

Por ejemplo, en el juego del Pong, donde se simula una partida de ping-pong moviendo dos supuestas raquetas, la acción de situar la raqueta para devolver la pelota obtiene la recompensa de un punto más cuando, tras pasar un tiempo, la pelota consigue superar la raqueta del contrario.

El entrenamiento de este tipo de algoritmos necesita de la interacción con el entorno repetidamente, de ahí lo de “refuerzo”. Por lo que el problema a modelar con este algoritmo requiere de o bien un entorno donde esté permitido el fallo o bien un simulador que evite que los fallos se hagan realidad.

 ReinforcementLearningSoyData

-Tu curso es como una píldora formativa (roja si estuviéramos en Matrix) que nos hace una completa introducción al RL, mediante Python, Keras y Tensorflow. Comentanos por favor qué necesitamos saber antes de inscribirnos y qué conocimientos tendremos una vez lo hayamos terminado

El curso está pensado para aproximar a cualquier persona a esta materia, independientemente de si aún no ha sido desconectado de Matrix o vive en la cruda realidad. Aunque sí viene bien tener algún conocimiento previo de programación, ya que hay numerosos ejemplos con código Python.

Una vez finalizado el curso, el alumno conocerá cual es la base, tanto teórica como práctica, de un algoritmo de Reinforcement Learning, y podrá programar algoritmos, o por lo menos entender ciertos programas, de Reinforcement Learning.

-¿Cuáles son los usuarios de SoyData que les piensas que les podrá interesar?

Estas metodologías, que están teniendo un gran auge últimamente, seguramente le interesen a usuarios que conozcan el mundo del Data Science, aunque no necesariamente sean Data Scientists. Usuarios interesados en la aplicación de redes neuronales, de visión artificial, de inteligencia artificial, machine learning y un gran etcétera encontrarán interesante esta metodología.

-Una última pregunta, Carlos: si queremos incorporar un sistema de recomendación en la Academia SoyData, que tenga una retroalimentación con los cursos que ya ha realizado cada usuario para ofrecerle los cursos que más le puedan interesar, ¿qué técnicas de IA y sobre qué tecnologías nos recomendarías hacerlo?

Los más extendidos son los filtros colaborativos, que buscan encontrar patrones de gustos similares en función de tus intereses y de los intereses del resto de usuarios. Si tú has realizado dos cursos y otros cien usuarios, además de esos dos cursos, han realizado un tercero, estos algoritmos te proponen éste último.

El ejemplo tipo de filtro colaborativo se suele mostrar con Spark, aunque dependería más bien del volumen de datos que tengamos, no vayamos a matar moscas a cañonazos, jeje.

-Muchas gracias por tus respuestas Carlos! Nos vemos en SoyData – la ciencia de datos a tu alcance.

Muchas gracias a vosotros. Un saludo

-Podéis encontrar el curso de iniciación a Reinformcement Learning en SoyData con el siguiente link:

https://academia.soydata.net/p/reinforcement-learning