martes, 15 de octubre de 2019

Los 3 algoritmos más potentes de la Inteligencia Artificial: Equivocarse, Competir y Cooperar

LA SELVA ARTIFICIAL

Hasta ahora hemos mantenido a las Inteligencias Artificiales protegidas en el jardín de nuestra casa, incapaces de dar un sólo paso sin nuestra ayuda y consejo. Pero ha llegado el momento de liberarlas, de dejarlas pulular a sus anchas por una selva digital en donde deberán aprender a sobrevivir por sí mismas como lo hacen el resto de seres vivos que reciben recompensan cuando aciertan en sus decisiones, castigos cuando yerran y compiten o cooperan con otros para conseguir alimentos o defender un territorio.

No por casualidad, en los últimos años se están desarrollado una serie de algoritmos de aprendizaje automático que, apoyándose en estos principios, están consiguiendo logros asombrosos:
  • Recompensar: Aprendizaje por Refuerzo (Reinforcement Learnning)
  • Competir: Redes Generativas Adversarias (Generative Adversarial Networks o GAN)
  • Colaborar: Co-Adaptación de Múltiples Agentes (Co-Adaption Multi-agent algorithms)
Los tres utilizan el Aprendizaje Profundo (Deep Learning) y son no-supervisados, es decir, no requieren de la intervención humana lo cual, como veremos, les permite encontrar estrategias para  resolver problemas tan originales como inesperadas.

Y este hecho, esta capacidad para descubrir, para innovar, para inventar, está consiguiendo que la Inteligencia Artificial dé el siguiente paso (aunque no será el último).


APRENDIZAJE SUPERVISADO
Una red neuronal es un algoritmo aparentemente sencillo. Básicamente recibe un conjunto de datos e intenta clasificarlos en unas categorías predeterminadas. Para ello dispone de varias células (las neuronas) que aplican a los datos de entrada una fórmula con ciertos pesos para producir un resultado. Si no es correcto, los pesos se modifican y se vuelve a intentar la clasificación, proceso que continúa hasta obtener el resultado esperado.

Imaginemos a unos biólogos que registran el peso, la longitud y la especie de cada animal que encuentran en la selva. Una red neuronal puede procesar esta información para deducir la especie de un animal a partir de su peso y longitud. Para ello, debemos entrenar la red con los especímenes registrados para ir ajustando los pesos de cada neurona en un largo proceso que culmina cuando el algoritmo es capaz de clasificar correctamente la mayor parte de ellos. A partir de ese momento, la red neuronal podrá inferir la nueva especie de los los animales que encuentren los biólogos aunque también cometerá algunos errores. Sin embargo, los podemos ir registrando para, más adelante, volver a realizar el entrenamiento hasta que, con el paso del tiempo y el aumento del número de especímenes, la red neuronal (casi) nunca se equivoque.

A este proceso se le conoce como aprendizaje automático supervisado pues, para poder ser entrenada, la red neuronal necesita conocer de antemano el resultado correcto de los datos de partida y debemos también informarla de los errores que va cometiendo en sus intentos de clasificación. Requiere, por tanto, de la intervención humana para aprender e ir refinando los resultados.

Cuando los primeros algoritmos de este tipo vieron la luz a finales de la década de los cincuenta del siglo pasado, provocaron toda una revolución. Por primera vez una computadora podía equivocarse y aprender de sus errores y se pensó que no tardaríamos en conseguir máquinas pensantes. Sin embargo, algunas cuestiones teóricas y, sobre manera, la escasa capacidad de computación en aquella época no permitieron a la Inteligencia Artificial cumplir tal promesa.

En la década de los ochenta se consiguieron salvar algunas de las limitaciones teóricas y en la primera década del siglo XXI se alcanzó una capacidad de computación suficiente para procesar redes neuronales con un número elevadísimo de neuronas agrupadas en capas (ver Deep Learning) allanando el camino para que la Inteligencia Artificial pudiera dar el siguiente paso.

Así, en los últimos años, redes neuronales cada vez más potentes han logrado grandes proezas como las mejoras en el reconocimiento facial, la comprensión del lenguaje natural (esos chatbots y asistentes virtuales omnipresentes), la traducción automática (lo siento, tu hijos no necesitan aprender inglés), la conducción autónoma o la robótica. A pesar de ello, todas carecen de cualidades fundamentales como la imaginación o la iniciativa pues necesitan de un ser humano que las guíe, que las indique lo que es correcto y lo que no y a dónde deben llegar.

Sin embargo, esta idiosincrasia ha cambiando con la llegada de los algoritmos de aprendizaje profundo no supervisados.

APRENDIZAJE NO SUPERVISADO

Los métodos de aprendizaje tradicionales no permiten a las máquinas encontrar estrategias originales para resolver problemas complejos. Reconocen a una persona porque antes les hemos dicho quién es esa persona o ganan al ajedrez porque las hemos programado para utilizar las estrategias ganadoras de los grandes maestros. Así es como, por ejemplo, Deep Blue ganó a Gary Kasparov en 1996.

Sin embargo, en 2017 Google mostró al mundo a AlphaZeo, una máquina capaz de jugar al ajedrez como nadie lo había hecho jamás. Algunos comparan su juego con el de Bobby Fischer en sus mejores años.

Lo más importante es que AlphaZero aprendió a jugar sola sin que nadie le dijera de qué iba el juego del ajedrez o qué estrategias seguir. Es lo que se conoce como aprendizaje no-supervisado en el cual las máquinas utilizan diferentes estrategias para descubrir su entorno y sobrevivir a él imitando a los los seres vivos, es decir, recibiendo recompensas, compitiendo o colaborando.

RECOMPENSAR: APRENDIZAJE POR REFUERZO


La simplicidad del algoritmo de Aprendizaje Profundo por Refuerzo (Deep Reinforcemente Learning) es casi aterradora. Simplemente, la máquina recibe una recompensa cuando realiza una acción beneficiosa y un castigo cuando se equivoca. Así la máquina, ante una situación cualquiera, explora todas las decisiones posibles y recibe recompensas o castigos en función de que su situación mejore o empeore, reforzando de esta manera las acciones más prometedoras.

Si consideramos un juego como Mario Bross, en un momento dado el protagonista podrá avanzar, retroceder, saltar o disparar. El algoritmo por refuerzo intentará en cada momento realizar alguna de estas acciones y recibirá un premio si consigue sobrevivir o una penalización si muere. Estos castigos o recompensas quedan de alguna manera registrados en los pesos de las neuronas (es bastante más complejo, pero para entendernos...), de forma que la siguiente vez que juegue la red neuronal recordará el éxito o fracaso de las acciones tomadas y probará otras diferentes cuando las anteriores no le permitieron progresar.

Dado que los ordenadores nunca se cansan, pueden jugar miles o millones de partidas hasta que, al final, consigan encontrar cómo solucionar el problema (terminar todos los niveles de Mario). Podéis ver un ejemplo de esta estrategia de aprendizaje jugando a Pac-Man. Curiosamente, llevó mucho mas tiempo conseguir una puntuación máxima en Ms.Pac-Man. Lo logró Microsoft en 2017 aplicando una técnica mixta de Aprendizaje por Refuerzo y Divide y Vencerás.

Sin embargo, la verdadera magia ocurre cuando el algoritmo es capaz de encontrar estrategias para resolver un problema que nadie le ha enseñado. En el siguiente vídeo podéis ver cómo una máquina descubre que la mejor manera de ganar es creando un túnel entre los ladrillos para hacer rebotar la bola en la parte superior:


Esta capacidad de "razonamiento", inducido a través del mecanismo de prueba y error, de castigos y recompensas, no deja de asombrarnos y ha logrado superar retos mucho más complejos como ganar a los maestros del Go! o ayudar a Magnus Carlsen, el campeón del mundo de ajedrez, a mejorar su juego utilizando sacrificios de piezas a largo plazo que fueron por primera vez imaginados por una Inteligencia Artificial.

Por supuesto, el aprendizaje por refuerzo ha sobrepasado los juegos y simuladores y tiene innumerables aplicaciones en la vida real como, por ejemplo la robótica (más...) o la conducción autónoma.

A pesar de estos logros, este tipo de Inteligencias Artificiales se enfrentan solas a los peligros de la selva lo cuál limita sus posibilidades. Sin embargo, compitiendo contra sus hermanas pueden evolucionar y aumentar en varios órdenes de magnitud su capacidad para resolver problemas.

COMPETIR: REDES GENERATIVAS ADVERSARIAS (GAN)

En 2014, Ian Goodfellow, un chaval de apenas 35 años, puso a dos redes neuronales a competir en un juego de suma cero (lo que ahora se conoce como GAN), trabajo que luego popularizó NVDIA cuando presentó StyleGAN, un algoritmo para generar rostros hiperrealistas cuya calidad podéis comprobar visitado "This Person does not Exists" (cada vez que refresques la página verás una persona diferente aunque ninguna de ellas existe). No os perdáis tampoco este vídeo...

La forma de funcionar de las GAN es realmente ingeniosa. Podemos imaginar que una de las redes neuronales actúa como un falsificador creando continuamente obras de arte que presenta a un crítico de arte (la otra Red Neuronal) quien intenta determinar si son originales o falsificaciones. Si el falsificador consigue "colar" su obra al crítico de arte, éste aprende de su error. Sin embargo, si el crítico descubre el engaño es el falsificador quien aprende. Así, se establece un juego infinito en el que el falsificador aumenta su pericia para crear obras de arte cada vez mejores, mientras que el critico se vuelve mucho más hábil detectando falsificaciones.

Estos mismo principios pueden aplicarse para generar vídeos sintéticos (supongo que ya habéis oído hablar de los famosos DeepFakes -aquí os dejo uno de los más interesantes-), generar ciudades que no existen o incluso hacernos bailar como profesionales (más...). En este vídeo que publicó NVDIA en 2018, y que nos dejó a todos boquiabiertos, podéis ver algunas de las aplicaciones de las GAN


COOPERAR: CO-ADAPTACIÓN DE MÚLTIPLES AGENTES

En esta selva artificial las inteligencias evolucionan (se vuelven mejores, más aptas para sobrevivir) recibiendo recompensas o compitiendo contra otras. Pero aún disponen de un mecanismo de supervivencia mucho más poderoso: la cooperación.

Antes de continuar es mejor que veáis este vídeo (son tres minutos que nos os van a defraudar):


En el vídeo aparecen dos grupos de Inteligencias Artificiales que practican un juego en el que el equipo azul debe intentar ocultarse del campo de visión del equipo rosa. Si os fijáis con atención, veréis que el equipo azul pronto descubre que puede ocultarse creando una muralla a su alrededor aunque el equipo rosa no tarda demasiado en utilizar una rampa para saltarse esta protección. Como respuesta, el equipo azul decide bloquear las rampas para que no puedan ser desplazadas logrando ocultarse con éxito durante un tiempo hasta que sus oponentes utilizan una rampa bloqueada para subirse a un cubo móvil con  el que, finalmente, consiguen salvar la barrera.

Puede pareceros un logro poco relevante, pero tened en cuenta que las redes neuronales (representadas por cada uno de esos simpáticos monigotes) no conocen la utilidad de las piezas del juego. Simplemente, avanzan hacia un bloque y ven que pueden desplazarlo o suben a una rampa y comprueban que pueden salvar una barrera cercana. En definitiva, sin conocer las reglas del juego, sin haber sido programadas con ningún tipo de estrategia, ¡las Inteligencias Artificiales aprenden a usar herramientas! algo realmente increíble (aquí tenéis una descripción detallada de todo el experimento).

El artículo ha sido publicado recientemente (Septiembre de 2019) por lo que aún es pronto para saber el potencial real de unas redes neuronales que recibiendo recompensas, compitiendo y cooperando descubren cómo utilizar herramientas. Pero me da la sensación que conseguirá dar otra vuelta de tuerca a la Inteligencia Artificial.

CONCLUSIONES

En la década de los cincuenta las redes neuronales y, en los ochenta, los mecanismos de Backpropagation dieron el primer paso, aunque tuvieron que pasar tres década para que, una mayor capacidad de computación y el Deep Learning, permitieran a la Inteligencia Artificial dar el siguiente.

Ahora, nuevos algoritmos basados en el aprendizaje profundo no-supervisado recompensan, hacen competir o cooperar a redes neuronales de una complejidad cada vez mayor para lograr proezas asombrosas y superarnos en áreas que, hasta ahora, estaban reservadas al intelecto humano.

Las máquinas ya no solo calculan más rápido que nosotros, también nos ganan en las consolas de juegos, al ajedrez o al Go! (aunque aún les quedan muchos retos cono éste de Minecraft), Y lo hacen aprendiendo por si mismas estrategias que sorprenden a los programadores o creando herramientas para resolver problemas complejos.

Lo más curioso de este proceso de aprendizaje es que, sin saberlo, quizás enseñando a las máquinas consigamos entender cómo funciona en realidad nuestro cerebro,


También puede interesarte:

  • Implicit Personalization: ¿qué hay detrás de Siri, Google Now y otros asistentes?, ¿por qué parecen cada vez más inteligentes?.

No hay comentarios:

Publicar un comentario