🎙 Episodio 38. El aprendizaje por refuerzo más allá de los videojuegos

En el episodio de hoy de Un podcast ninja sobre Big Data hablamos de aplicaciones del aprendizaje por refuerzo más allá de los videojuegos 👾

El coche autónomo 🚙

Una de las aplicaciones más esperadas del aprendizaje por refuerzo es la conducción autónoma, especialmente por parte de aquellos que tienen un Tesla y que esperan esta feature más que prometida.

Así es, el coche autónomo es una aplicación del aprendizaje por refuerzo que la semana pasada os explicaba con un simple juego de Pong.

¿Y eso por qué?

La conducción autónoma considera un entorno con potenciales recompensas (llegar a nuestro destino) y evitando penalizaciones (accidentes).

Además, el entorno va cambiando según el modelo de Machine Learning encargado de manejar el coche autónomo interactúe con él.

Como el Atari Pong pero a lo grande.

Tan a lo grande que en realidad un coche autónomo necesita de varios modelos de Machine Learning para funcionar no sólo uno basado en aprendizaje por refuerzo.

Pero bueno, eso lo podemos dejar para otro episodio del podcast.

Aplicaciones industriales del aprendizaje por refuerzo

Otro uso bastante potente del aprendizaje por refuerzo es en la industria.

Tanto en el campo de la robótica como en la optimización de sistemas industriales.

Aprendizaje por refuerzo para optimizar el consumo energético

Un ejemplo muy claro de esta aplicación fue cuando DeepMind diseñó un modelo de aprendizaje por refuerzo que consiguió reducir bastante el consumo de energía de los centros de datos de Google.

La calefacción, la ventilación y el aire acondicionado son algunos de los principales usos de la energía en un centro de datos.

Imaginad la cantidad de calor que generan los servidores encargados de que funcione el buscador de Google, el correo de Gmail o Youtube.

Para mantener todos esos equipos a la temperatura correcta no basta con un ventiladorcito como el de un ordenador normal sino que hacen falta equipos industriales con bombas de frío/calor, torres de refrigeración con sus sistemas de control asociados y cada centro de datos tiene una arquitectura y unas características muy particulares.

Y si vamos un paso más allá, podríamos no solo limitarnos al control de la temperatura en centros de datos sino en edificios comerciales.

En cualquier caso, el objetivo es mantener la temperatura y la humedad del aire en unos rangos adecuados para la comodidad de los ocupantes (ya sean humanos en un centro comercial o servidores en un centro de datos, cada uno con sus requisitos).

La mayoría de torres de refrigeración se controlan mediante heurísticos, valores basados en la experiencia previa y los principios de la física.

Simplificando mucho el funcionamiento serían múltiples controles del tipo: "si la temperatura de esto es superior a no sé qué entonces apagamos esto y encendemos esto otro". 

Estos controles controles interactúan entre sí y con el entorno.

Si el día es soleado o lluvioso afecta al entorno, si hay más o menos gente en el edificio también afecta al entorno o en el caso de tratarse de un centro de datos, que haya más o menos servidores funcionando, o rotos o si hay un pico de demanda… Todo esto afecta.

¿Se puede controlar la climatización más o menos a mano teniendo en cuenta todas estas variables? Sí… ¿No es lo más eficiente eneregéeticamente del mundo? Pues también.

Aquí, aplicar aprendizaje por refuerzo puede hacer el sistema de climatización más eficiente ya que tiene los tres factores de este tipo de Machine Learning.

  1. El modelo tiene que tomar decisiones sobre qué encender o apagar del sistema de refrigeración
  2. Estas decisiones afectan al propio entorno a partir del cual el modelo toma las decisiones
  3. Hay una clara recompensa que es la energía que se usa y queremos que sea la mínima posible

De la misma manera que en el pong el agente tomaba decisiones sobre si mover la pala arriba o abajo y esto afecta a la posición de la pelota o en un coche autónomo el agente decide acelerar o frenar y esto afecta al resto del tráfico.

Os podéis imaginar que si intentamos entrenar un modelo de aprendizaje por refuerzo como ese desde cero de la misma manera que explicaba con el videojuego del pong nos podemos eternizar hasta dar con la primera recompensa.

Así que lo que se hace es utilizar datos de sistemas de gestión de edificios.

DeepMind publicaba hace poco, en diciembre de 2022, los resultados de utilizar aprendizaje por refuerzo en la climatización de edificios comerciales en los que conseguían mejorar la eficiencia energética entre un 9 y un 13%.

Pero como decía en el episodio de la semana pasada, en el aprendizaje por refuerzo hay que ser muy capaces de abrazar el fracaso.

En estos resultados de los que os hablo, DeepMind enumera las dificultades de aplicar aprendizaje por refuerzo en sistemas reales.

Dificultades que no habían encontrado durante las simulaciones, que sería algo más próximo a entrenar un modelo para jugar a videojuegos.

Por ejemplo, en edificios reales no tenían acceso a un simulador y por tanto había pocos datos disponibles. Los únicos datos de los que aprender eran las interacciones directas con el sistema de climatización.

Además, las condiciones del entorno eran dinámicas. La climatología del día, el rendimiento de los sistema,  la calibración de los sensores… todas esas cosas iban cambiando.

Y encima las decisiones tienen que ser tomadas en tiempo real lo que limita las soluciones de aprendizaje por refuerzo que podían usar.

Pero bueno, aún con todo consiguieron mejorar la eficiencia energética entorno a un 10%. 

Aprendizaje por refuerzo aplicado a la robótica

Podemos ver el paralelismo entre cómo funciona el Atari pong mediante aprendizaje por refuerzo y cómo debería de funcionar un brazo robótico, por ejemplo.

En el Atari Pong tenemos una pala que mover arriba o abajo unas recompensas y penalizaciones y un entorno que cambia, en este caso la pelota del juego.

Un brazo robótico también se mueve, con muchas más posibilidades de movimientos que la pala del atari pong y también tiene que hacer algo específico para generar una recompensa, imaginemos que esta cosa sea coger un objeto.

Dependiendo del número de movimientos que sea capaz de hacer el brazo robótico en el espacio podéis intuir que será bastante difícil hacer los movimientos correctos para que por simple casualidad el brazo acierte a conseguir coger una cosa y generar una recompensa.

Mucha prueba y sobre todo mucho error.

Peeeero eso no significa que no se esté trabajando en ello y es de hecho un campo muy activo de la investigación en aprendizaje por refuerzo.

Lo que pasa es que no acaba de dar el salto a la aplicación industrial precisamente por lo costoso que es entrenar un modelo de aprendizaje por refuerzo simplemente mediante fuerza bruta.

Para poder paliar un poco el número de intentos que tiene que hacer el agente antes de encontrar la primera recompensa lo que se hace es mostrarle lo que tiene que hacer.

Por ejemplo, una persona maneja el  brazo robótico hasta conseguir la recompensa y de esta manera el modelo puede ahorrarse los primeros miles de intentos que tendría que haber hecho hasta conseguirlo por sí mismo.

Si es que llegara a conseguirlo y no desesperásemos todos en el intento.

Es como acertar a la primera.

Aprendizaje por refuerzo aplicado a modelos del lenguaje

Y este tema de meter a un humano en el proceso de entrenamiento no solo es útil para entrenar brazos robóticos sino que también se utiliza en modelos del lenguaje como ChatGPT.

Aquí, el modelo genera el texto de la respuesta cómo lo haría cualquier modelo de lenguaje natural ante el pie de entrada que le déis.

Pero…

¿Dónde está el aprendizaje por refuerzo ahí?

Bueno pues lo que le da calidad a ChatGPT es precisamente el aprendizaje por refuerzo y además aprendizaje por refuerzo con feedback humano.

Periódicamente, se entregan dos respuestas del modelo frente a un prompt a un humano.

Y el humano decide cuál de las dos está más cerca de cumplir el objetivo. 

Con esa información sobre qué respuesta está más cerca de la recompensa el modelo se va reajustando. A medida que mejora su comportamiento, continúa recibiendo comentarios humanos sobre sus respuestas y sigue refinando aún más su comprensión sobre cómo tiene que responder.

TL;DR

Así que resumiendo, hoy os he hablado de varias aplicaciones algo más útiles del aprendizaje por refuerzo que jugar al pong

  • Los coches autónomos
  • El control de sistemas de climatización de edificios comerciales y centros de datos, que supone un ahorro en energía y menos emisiones de CO2
  • La robótica industrial
  • Los modelos del lenguaje

No está mal para algo que surgió de aprender a jugar al Go y a videojuegos de la consola Atari 2600 ¿no creéis?

Espero que os guste el episodio.

Si es así, no olvidéis dejar un «Me gusta» y algún comentario al episodio en Ivoox o una valoración de 5 estrellas del podcast en Apple podcasts, en Spotify, en Google podcasts o donde quiera que escuchéis el podcast. 

Recordad que si tenéis cualquier duda o pregunta podéis contactar conmigo a través del formulario de contacto o podemos seguir la conversación en Twitter.

Muchas gracias por estar ahí y os espero en el próximo episodio de Un Podcast Ninja sobre Big Data.

Boletín Ninja

Suscríbete a la newsletter y recibe la guía ninja del Big Data y la Inteligencia Artificial.

Guía ninja del Big Data
Copyright © 2023  Â· Datos 🥷 · Todos los derechos reservados