The Independent Sentinel #10
El camino a la Singularidad, filtros de visión artificial y un genio de las matemáticas
¡Hola!
Soy Javier Fuentes, CEO de Akoios, bienvenido a la décima edición de The Independent Sentinel, la newsletter en la que hablamos de Inteligencia Artificial, Machine Learning, y todo aquello relacionado con el mundo de los datos.
Si aún no estás suscrito y quieres recibir cada edición en tu correo, puedes hacerlo aquí:
En esta edición hablaremos sobre una Inteligencia Artificial que se mejora a sí misma, de cómo usar filtros de visión artificial en GIMP y de un genio de las matemáticas al que seguro todos conocéis.
¡Arrancamos!
🎼 ¿Quieres banda sonora? ¡Dale al Play!
1. Inteligencia Artificial
Tendencias 📈
Siempre me ha parecido interesante y divertido (a la vez que complicado) todo aquello relacionado con la recursividad y las autorreferencias.
Hace unas semanas, leí un artículo cuyo título llamó mi atención:
Google is using AI to design chips that will accelerate AI
Pese a que el uso de la Inteligencia Artificial para el diseño de circuitos integrados no es algo nuevo (como veremos ahora), me gustó este enfoque de usar la Inteligencia Artificial para mejorar chips orientados específicamente a ejecutar modelos de Inteligencia Artificial 🤯.
Esta idea de auto-mejora recursiva, es a la par interesante e inquietante. Por una parte, se intuye un círculo virtuoso de mejora continua mientras que, por el otro, parece que estamos pavimentando el camino a la impredecible Singularidad Tecnológica. Sin entrar demasiado en estos asuntos (¡hablaremos de esto en una próxima edición!), es interesantísimo entender cómo la Inteligencia Artificial lleva años ayudando a mejorar los diseños.
Ya en la década de los 80, se comenzaron a usar Redes Neuronales para un concepto emergente: el Diseño Electrónico Automatizado (EDA: Electronic Design Automation). Esta idea inicial desembocó en diversas herramientas software para hacer el “enrutado” automático de circuitos PCB aunque, hasta el momento, son muchos los ingenieros electrónicos que piensan que todavía no se disponen de algoritmos que mejoren la experiencia de un humano.
Enrutado asistido mediante la herramienta
Altium
En el artículo que hemos mencionado antes, nos cuentan como Google ha realizado un acercamiento a este de tipo de optimizaciones utilizando el llamado Reinforcement Learning para conseguir que los modelos puedan recibir feedback tanto positivo como negativo para mejorar de forma continua su rendimiento.
Según los autores de la investigación de Google Brain, este enfoque es capaz de tratar el problema de colocación optimizada (placement optimization) para mejorar el rendimiento, tamaño y consumo de todo tipo de chips.
Para entender la magnitud de este problema de optimización, es interesante ver los posibles estados en comparación con algunos juegos bien conocidos:
Fuente
👉 Los humanos somos bastante malos intuyendo el enorme tamaño de los posibles estados en un juego. Por ejemplo, en una baraja de poker (52 cartas) las posibles combinaciones diferentes serían la nada desdeñable cifra de 52! = 8.0658175170944E+67
De hecho, y aunque parezca contraintuitivo, cada vez que barajas es altamente probable que obtengas una secuencia que jamás se ha obtenido antes en la historia del universo 🤯
A modo de ejemplo, con este método es posible hacer optimizaciones en menos de 24 horas en comparación con el trabajo de varias semanas que se requiere cuando esta optimización la realizan los humanos.
De manera distinta al enfoque Deep Learning clásico, este algoritmo no se entrena con datos etiquetados sino que va aprendiendo cómo ajustar los parámetros usando una función de recompensa (reward function) fácilmente evaluable que indica cómo de bien (en términos de potencia, tamaño y rendimiento) funciona una determinada colocación.
De este modo, cuanto más diseña el algoritmo, mejor va haciendo su trabajo. Según las pruebas realizadas hasta el momento, el algoritmo genera cientos de miles de combinaciones, las evalúa con la función de recompensa y escoge la mejor.
Tras evaluar los diseños del algoritmo con herramientas EDA para comprobar su validez, los investigadores han comprobado que los diseños son mejores que aquellos diseñados por humanos y que incluso, el algoritmo ha podido enseñar algunos trucos que no conocían a sus adversarios humanos.
Casos de uso ⚙️
Seguro que muchos de vosotros conocéis GIMP, un programa libre del proyecto GNU para la edición de imágenes.
GIMP, cuyo desarrollo comenzó en 1995, fue de los primeros proyectos en demostrar que era posible crear software libre de calidad y productivo para usuarios no profesionales o expertos.
Hace apenas unos días, se publicaba este paper elaborado por Kritik Soman (Instituto de Tecnología de Kanpur, India) donde presenta una serie de plugins de visión artificial para GIMP dentro de un proyecto llamado GIMP-ML.
El fin de estos plugins es el de poder usar directamente los últimos avances en Visión Artificial en una herramienta libre y gratuita como GIMP. Estos plugins permiten hacer operaciones como:
Difuminado de fondos
Coloreado de imágenes
Identificación de caras
Superresolución
Para ver cómo funciona, nada mejor que ver algunos ejemplos:
Puedes descargar estos plugins y ver cómo instalarlos aquí.
2. Historias 📔
Un genio de las matemáticas
Nuestra historia de hoy empieza en Pennsylvania el 11 de Febrero de 1948.
Un profesor del Instituto de Tecnología de Carnegie, Richard J. Duffin, firma y envía una carta de recomendación para que uno de sus alumnos pueda acceder a la Universidad de Princeton.
El alumno en cuestión tenía 19 años por aquel entonces, era algo tímido y aparentemente tenía un don especial para las matemáticas. Su nombre era John F. Nash.
John accedió finalmente a la Universidad de Princeton y, solo dos años después, en 1950, obtuvo su doctorado con una disertación de 28 páginas sobre Teoría de Juegos centrada en juegos no cooperativos.
La Teoría de Juegos estudia los modelos de conflicto y cooperación entre jugadores inteligentes y racionales. Las aplicaciones de esta teoría van desde las Ciencias de la Computación, hasta la Biología o las Ciencias Sociales.
La Teoría de Juegos tiene aplicaciones en casos tan diversos como el Mercado de Valores, las estrategias en un conflicto bélico, el Póker, o jugar a Piedra, Papel o Tijera.
La publicación de John Nash partía de los trabajos previos de John Von Neumann (¡Otro matemático ilustre!) y Oskar Morgenstern, autores del célebre libro “Theory of Games and Economic Behavior”, considerada la obra en la que se basa toda la Teoría de Juegos moderna.
Esta publicación contenía la definición y las propiedades de un nuevo concepto: El Equilibrio de Nash, idea que acabaría dándole el premio Nobel en 1994.
Nash comenzó definiendo una solución particular para juegos en los que cada jugador juega lo mejor posible en función de las estrategias del resto de jugadores. Aplicando una teoría matemática desarrollada por el matemático holandés L.E.J. Brouwer, demostró que existe este tipo de equilibrio para cualquier juego con un número finito de jugadores y un número finito de movimientos.
En otras palabras, el Equilibrio de Nash puede ser definido como el resultado de un juego en el que ningún jugador podría mejorar su resultado de forma unilateral. En este punto de equilibrio, para ningún jugador racional tendría sentido variar sus decisiones.
Con el paso de los años, este concepto ideado por Nash no ha parado de ganar relevancia, especialmente en el ámbito económico. Tan es así que, en Economía, es casi tan común estudiar el Equilibrio de Nash como las curvas de oferta y demanda.
La razón del éxito de esta idea es su amplísima aplicación en diversas disciplinas e incluso en problemas del día a día: ¿Cuál es el mejor carril para circular durante un atasco?, una situación que implica intentar entender qué harán el resto de conductores.
Unos años después, en 1956, John Nash participó en el célebre encuentro de científicos e ingenieros en el Dartmouth College (Hanover, New Hampshire) en el que tenían un único objetivo: “Inventar un nuevo campo de la Ciencia llamado Inteligencia Artificial”. Muchos hablan de este encuentro como el germen de la Inteligencia Artificial.
Además de John Nash, asistieron varias de las mentes más brillantes de la época, como Marvin Minsky y Claude Shannon, de los que ha hablamos en TIS# 2.
All Star Team: Marvin Minsky, Claude Shannon, Ray Solomonoff y otros. Foto: Margaret Minsky.
Pese a que Nash no se dedicó de forma específica a la Inteligencia Artificial, sus trabajos han tenido y tienen una gran relevancia en este ámbito.
El ejemplo más claro de la aplicación de la Teoría de Juegos para Inteligencia Artificial (en su sentido más amplio) lo llevamos viendo desde hace muchos años en los videojuegos, donde se ha usado esta teoría para modelar el comportamiento de los contrincantes no humanos.
Computer Space
, la primera máquina arcade la historia (1970) y uno de los primeros juegos en incluir una IA básica.
Además de este uso, a día de hoy la Teoría de Juegos está siendo usada en aplicaciones de la Inteligencia Artificial como las GANs (Generative Adversarial Networks) de las que hablamos en TIS# 3.
Como vimos, en las GANs se establece una competición (un juego) entre la red “generadora” y la red “discriminadora” en el que la primera trata de engañar a la segunda. Esta competencia sigue hasta un punto en el que no se puede mejorar, este punto se llama, como no podría ser de otra manera, el Equilibrio de Nash.
Otro buen ejemplo de aplicación de la Teoría de Juegos es su uso para sistemas Multi-agent Reinforcement Learning para mejorar el flujo de tráfico usando coches autónomos (en rojo en la figura de abajo).
Simulación de tráfico. Estado normal (arriba), Estado mejorado usando agentes autónomos (en rojo).
Uno de los retos que hay por delante es trasladar estos enfoques a problemas complejos del mundo real, que son comúnmente juegos con información incompleta.
Un buen ejemplo de cómo se está trabajando en este ámbito combinando IA, sistemas multi-agente y Teoría de Juegos se puede ver en “AI for Social Good”, un programa auspiciado por Google y dirigido por Milind Tambe, en el que se abordan temas como la Seguridad Pública, la Agricultura o la Atención Sanitaria.
La Teoría de Juegos es importante para la Inteligencia Artificial en tanto en cuanto nos ayuda a modelar y a entender mejor la naturaleza de la racionalidad y de los procesos de decisión.
Los humanos estamos lejos de ser racionales por razones como la información imperfecta y limitada de que disponemos, las limitaciones computacionales de nuestro cerebro o nuestras dificultades para optimizar y encontrar la utilidad máxima.
La racionalidad es uno de los muchos rasgos que definen la inteligencia y, muy probablemente, conseguiremos crear máquinas más racionales que nosotros en los términos arriba expuestos. Esto las llevará un paso más cerca de de la Inteligencia Artificial General y, consecuentemente, también un paso más cerca de la Singularidad Tecnológica.
¡Gracias por leernos! ¡Hasta la próxima edición!
¿Te gusta la newsletter? Ayúdanos a darla a conocer a aún más gente. Basta con compartir la URL.
¿Te has perdido alguna edición? Puedes leer todas aquí:
👉 Si quieres conocer mejor cómo funciona nuestro producto Titan, no te pierdas nuestra serie de tutoriales publicados en Medium y nuestros nuevos videotutoriales.
👉 Si quieres, puedes solicitar un acceso gratuito para probar nuestro producto aquí https://lnkd.in/gPz-2mJ