The Independent Sentinel #13

La maldición de la dimensionalidad, un repositorio increíble y el hombre más inteligente que ha pisado la tierra

¡Hola!

Soy Javier Fuentes, de Akoios, bienvenido de nuevo a The Independent Sentinel, la newsletter mensual para todos los públicos en la que hablamos de Ciencia de Datos e Inteligencia Artificial.

Si aún no te has suscrito, hazlo ahora y recibe cada publicación en tu email:

¡Suscríbete ahora!

En esta edición hablaremos de la maldición de la dimensionalidad, de un GitHub para Machine Learning y del padre de la computación moderna: John Von Neumann.

ENIAC - Wikipedia, la enciclopedia libre

¡Allá vamos!


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Ciencia de Datos

La Maldición de la Dimensionalidad

En Ciencia de Datos, es muy común trabajar con datos de alta dimensión. Por ejemplo, si estamos desarrollando un modelo inmobiliario en el que manejamos 10 parámetros (precio, m2, nº habitaciones, nº baños, distancia al centro, barrio, piscina, terraza, garaje y año de construcción), estaremos trabajando en un espacio de 10 dimensiones.

Otro ejemplo sería el de tratamiento de imágenes. Si manejamos imágenes de 100x100 píxeles, estaremos trabajando en un espacio de 10000 dimensiones (cada pixel representaría una dimensión).

La idea de La Maldición de la Dimensionalidad -concepto acuñado por Richard E. Bellman- viene a decir que, según añadimos dimensiones, se va incrementando el coste computacional y se va haciendo exponencialmente más complicado hacer predicciones precisas en modelos de regresión o clasificación.

La idea clave es que, según crece el número de dimensiones, la cantidad de datos necesaria para poder hacer generalizaciones crece exponencialmente.

Imaginemos que tenemos 5 muestras en un conjunto de datos de entrenamiento. Si estuviésemos trabajando con una dimensión (imagen de la izquierda), podríamos representar con cada una de las cajas (muestras) una parte de esta dimensión.

What do you mean by Curse of Dimensionality? What are the ...
Una explicación gráfica de la Maldición de la dimensionalidad

Si empezamos a trabajar con dos dimensiones (imagen central), necesitamos 5² = 25 cajas para “muestrear” todo el espacio y, por último, si trabajamos con 3 dimensiones, necesitaríamos 5³ = 125. Como se observa, el crecimiento es exponencial y responde, en este caso, a la expresión 5^n.

Este crecimiento en la complejidad es una idea es clave cuando trabajamos con modelos de Machine Learning ya que, no siempre añadir nuevas dimensiones a un modelo tiene efectos positivos en la predicción.

De hecho, el efecto de añadir dimensiones a un modelo sigue el siguiente patrón llamado Fenómeno de Hughes:

"<yoastmark
El fenómeno de Hughes

Cómo se ve en la gráfica, el rendimiento del modelo aumenta según se añaden dimensiones hasta un punto óptimo a partir de cuál, el añadir nuevas dimensiones afecta negativamente en el capacidad predictiva del modelo.

Las implicaciones de este fenómeno (la complejidad creciente en los sistemas) van más allá del Machine Learning y se encuentran en todos los órdenes de la naturaleza.

Como explica Taleb en este artículo, el gusano C elegans, el primer ser vivo del que se secuenció su ADN, tiene alrededor de 300 neuronas y, simplemente el hecho de añadir una más (hasta las 301), podría duplicar la complejidad de su cerebro.

Animals in research: C. elegans (roundworm)
Nuestro amigo el gusano C Elegans

Teniendo en cuenta que en altas dimensiones, por ejemplo pasar de 1000 a 1001, puede hacer que la complejidad se multiplique por un billón, es inmediato intuir la inabarcable complejidad emergente de un cerebro humano compuesto por aproximadamente 100 mil millones de neuronas.

La tesis de Taleb es que en sistemas complejos, los resultados no sólo dependen de la naturaleza de los componentes si no, sobre todo, de las interacciones entre ellos. Y, como hemos visto, estas interacciones pueden ser infinitamente complejas debido a la Maldición de la Dimensionalidad.

Understanding how the subparts of the brain (say, neurons) work will never allow us to understand how the brain works.

Veremos si algún día somos capaces de manejar esta complejidad y empezar a entender la inmensa complejidad de un sistema como el cerebro humano.

Modelos y Algoritmos 💻

Hace poco descubrí una página que ha ido directa a mis favoritas en lo relativo a Ciencia de Datos. Papers With Code es una suerte de GitHub para científicos de datos dónde se pueden encontrar no solo todo tipo de papers sino también el código asociado a los mismos.

Además, todo está perfectamente clasificado para poder encontrar modelos según temáticas. Y cómo no, podrás encontrar el código de GPT-3 y su ya famosísimo paper “Language models are Few-Shot Learners“

2. Historias 📔

John Von Neumann y el futuro de la computación

John Von Neumann, considerado como el padre de la computación moderna, fue uno de los científicos y polímatas más relevantes del siglo XX. Durante su vida, se involucró en muy diversos ámbitos, no contento con crear la teoría de juegos, los autómatas celulares o sentar las bases de la mecánica cuántica, Von Neumann participó en el Proyecto Manhattan e inventó la arquitectura de los computadores actuales.

👦🏻 Primeros años

John von Neumann nació en Budapest en 1903 y mostró signos de genialidad desde muy joven. Se cuenta que, de niño, ya podía hablar perfectamente e incluso hacer chistes en Griego clásico y, para deleite de familiares y conocidos, era capaz de memorizar rápidamente una página de la guía telefónica y recitar a continuación todos los nombres y números de la misma.

John Von Neumann con 12 años

Tras acabar la educación secundaria en 1912, su padre intentó persuadirle para no estudiar matemáticas ya que, en su opinión, no había mucho dinero que ganar en ese ámbito. Finalmente, Von Neumann llegó a un acuerdo con su padre con el compromiso de estudiar simultáneamente Química y Matemáticas.

En su fase postdoctoral, Von Neumann tuvo la oportunidad de trabajar bajo la tutela del mismísimo David Hilbert que, como vimos en TIS #12, era el matemático más celebre en la época.

Von Neumann trabajó codo con codo con Hilbert en establecer las bases axiomáticas de las matemáticas y prueba de ellos es la publicación de 1925 “An Axiomatization of Set Theory”. Todo este trabajo quedó invalidado por los descubrimientos de Kurt Gödel con el que, casualmente, acabaría forjando una estrecha amistad. En las propias palabras de Von Neumann:

“Gödel is absolutely irreplaceable. In a class by himself.”

Pese a todo, su trabajo con Hilbert no cayó en saco roto y cristalizó en su libro The Mathematical Foundations of Quantum Mechanics (1932), en el que trataba los estados cuánticos como vectores en un Espacio de Hilbert.

🧳 Traslado a Princeton

En 1929 Von Neumann fue invitado a la Universidad de Princeton para impartir clases sobre la teoría cuántica como profesor invitado. Según sus alumnos, era un profesor terrible, propenso a escribir rápidamente en la pizarra y a borrar todo lo escrito antes de que los alumnos hubieran tenido la oportunidad de copiarlo en sus cuadernos.

Aunque no triunfara como profesor, Von Neumann se convirtió en una leyenda de Princeton por sus bromas a Einstein, su capacidad de recitar libros que había leído hace años palabra por palabra o su habilidad para calcular el resultado de programas en ensamblador de cabeza.

No sé a vosotros, pero a mí escuchar la palabra ensamblador me causa escalofríos

Tan grande llegó a ser la leyenda, que se decía que John von Neumann era probablemente la persona más inteligente que había vivido jamás.

El genial Enrico Fermi, ganador del Nobel de 1938, llegó a decir de él:

”You know, Herb, Johnny can do calculations in his head ten times as fast as I can. And I can do them ten times as fast as you can, so you can see how impressive Johnny is”

💣 El proyecto Manhattan

A finales de 1943, Von Neumann comenzó a trabajar en el proyecto Manhattan tras la invitación de Oppenheimer. Se estima que su participación en el proyecto aceleró en un año el desarrollo de la bomba atómica.

Von Neumann era un experto en física no lineal e hidrodinámica y, junto con su experiencia con explosivos, ayudó a diseñar el mecanismo de implosión de la bomba.

🎲 Teoría de Juegos

En 1944, y como ya contamos en TIS #10, John Von Neumann escribió junto con el profesor de Princeton Oskar Morgenstern, su obra magna de matemática aplicada, Theory of Games and Economic Behavior (1944). En esta publicación, continuó el trabajo que empezó por su cuenta en 1928 con su paper “Theory of Parlor Games” y que nadie hasta entonces había continuado.

El libro, con la friolera de 641 páginas, proponía la Teoría de Juegos como la Ciencia Newtoniana que subyacía a las decisiones económicas. 

🤖 Computación

En los años de las postguerra, Von Neumann empezó a participar en programas industriales tan conocidos como ENIAC, una de las primeras computadoras de propósito general que, como curiosidad, pesaba 27 toneladas. Von Neumann fue el que introdujo la idea de que la computadora ejecutase programas almacenados en memoria, hito que podría considerarse como el comienzo de la historia del software.

ENIAC

A raíz de su trabajo en ENIAC y en otro proyectos posteriores, Von Neumann diseñó la archiconocida arquitectura de la Máquina de Von Neumann que cualquier estudiante del ámbito de la computación reconocerá:

Using Memory Differently
La famosa arquitectura Von Neumann

A partir de esta incursión en el mundo de la computación, Von Neumann dedicó parte de su tiempo a adentrarse en el concepto de Inteligencia Artificial.

Como ejemplo, desarrolló teorías sobre cómo usar neuronas artificiales de modo que se pudiesen hacer computaciones precisas mediante redes de componentes (una idea primigenia de red neuronal).

Él siempre dudó de si seríamos capaces de crear una Inteligencia Artificial y mostró especial interés en analizar los autómatas autorreplicables, de los que, como vimos en TIS #11, John Conway demostró su viabilidad al probar que su Juego de la Vida era una máquina Turing completa.

En uno de sus últimos escritos antes de su prematura muerte en 1957, "The Computer and the Brain" Von Neumann explicaba las dificultades que él intuía para replicar la Inteligencia humana con dispositivos electrónicos:

Computers require arithmetical precision. Brains do not. The nervous systems of living organisms have evolved to interpret and act upon vast quantities of ambiguous information without relying on computational accuracy.

En los años recientes, y debido en gran medida al tremendo impacto de los estudios de Von Neumann, se está profundizando en nuevas arquitecturas de computadores que nos permitan acercarnos a cómo realmente funciona el cerebro, tal y como a él le preocupaba y como, en cierta medida, hemos anticipado en la primera sección de la newsletter de hoy.

Paradójicamente para Von Neumann, conseguir que los ordenadores se parezcan más al cerebro, conllevará ir más a allá de la arquitectura que él mismo diseñó. A estas nuevas arquitecturas se las ha denominado Arquitecturas no-Von Neumannianas.

Inspirándose en la estructura sináptica del cerebro, investigadores de IBM han estado trabajando en una arquitectura no-Von Neumanniana para Inteligencia Artificial que permite ubicar conjuntamente la memoria y el procesamiento.

Como explica Abu Sebastian, uno de los investigadores principales del proyecto:

“If you look at human beings, we compute with 20 to 30 watts of power, whereas AI today is based on supercomputers which run on kilowatts or megawatts of power”

“In the brain, synapses are both computing and storing information. In a new architecture, going beyond von Neumann, memory has to play a more active role in computing.”

Las primeras pruebas con esta nueva arquitectura de computación están arrojando resultados prometedores y, según informan, han conseguido aumentar 200 veces el rendimiento al ejecutar un algoritmo de IA respecto a una arquitectura convencional.

Previsiblemente, y tal y como se indica en este artículo de Nature, las arquitecturas no-Von Neumannianas pueden ser el camino para alcanzar una nueva era en el mundo de la computación, pero esto requerirá el uso de nuevos materiales, nuevos dispositivos y nuevo software para dar el salto definitivo y dejar atrás la computación convencional.

Quién sabe, ¡tal vez el futuro de la computación esté aquí y no en la computación cuántica!

¡Gracias por leernos! ¡Volvemos en Septiembre!


¡Ayúdanos a difundir The Independent Sentinel compartiendo nuestras publicaciones en Redes Sociales o de cualquier otro modo que quieras!

Recuerda también que puedes dejar comentarios abajo sobre esta publicación.

¿Te has perdido alguna edición? Puedes leer todas aquí.

👉 Si quieres conocer mejor cómo funciona nuestra tecnología, no dejes de visitar nuestra serie de tutoriales publicados en Medium.

👉 Si quieres, puedes solicitar un acceso gratuito para probar nuestro producto Titan aquí https://lnkd.in/gPz-2mJ

The Independent Sentinel #12

El sonido de las imágenes, GPT-3 y el teorema de la incompletitud de Gödel

¡Hola!

Soy Javier Fuentes, de Akoios, gracias por estar leyendo esta nueva edición de The Independent Sentinel, la newsletter en la que se habla (entre otras cosas) de Ciencia de Datos, Inteligencia Artificial y Machine Learning.

Si quieres suscribirte para recibir por correo cada edición, puedes hacerlo aquí:

¡Suscríbete ahora!

En esta edición hablaremos del sonido de las imágenes, de GPT-3 y de Kurt Gödel, uno de los genios matemáticos del Siglo XX.

Kurt Gödel And Albert Einstein

¡Comenzamos!


🎼  ¿Quieres banda sonora? ¡Dale al Play!

👉🏻Si te gusta la música de The Independent Sentinel, puedes escuchar todas las canciones aquí:


1. Ciencia de Datos

Casos de Uso  📈

Aunque no es un caso estricto de Inteligencia Artificial cómo los que solemos mostrar y aunque no es de rabiosa actualidad (es un estudio de 2014), no puedo dejar de escribir sobre esta investigación.

Tal y como se cuenta en esta noticia, investigadores del MIT, Adobe y Microsoft desarrollaron un algoritmo capaz de reconstruir una señal de audio analizando las vibraciones de un determinado objeto.

Tal y como muestran en el estudio, fueron capaces de recuperar sonido inteligible (una voz humana) a partir de cómo vibraba una simple bolsa de patatas. Lo mejor es el ver el vídeo para dónde explican varios de estos experimentos:

Sin duda, esto es el sueño de cualquier agencia de espionaje🕵🏻‍♂️. De hecho, hay quienes dicen que ciertos organismos llevan usando estas técnicas desde hace más de 50 años con técnicas de interferometría láser.

Herramientas 🛠

Si hay un campo de la Inteligencia Artificial que está avanzando rápido actualmente, no es otro que el del Procesamiento del Lenguaje Natural (NLP - Natural Language Processing).

Los trabajos más recientes en este campo apuntan en la dirección de que se pueden conseguir muy buenos resultados en este ámbito mediante el siguiente enfoque:

  • Paso 1: Entrenar modelos de forma no supervisada con un enorme conjunto de datos generalista.

  • Paso: Realizar un ajuste fino en función de la tarea específica a realizar (traducción, obtención de respuestas) usando pequeños conjuntos de datos específicos.

En 2018, OpenAI lanzó la primera versión de su modelo GPT, un modelo generativo pre-entrenado, capaz de conseguir resultados de calidad comparable respecto a modelos específicos en muchas tareas NLP.

Tanto este modelo como su sucesor (el GPT-2), son dos adaptaciones de una invención de Google de 20017 denominada Transformer, una novedosa red neuronal cuya arquitectura está especialmente diseñada para facilitar la comprensión del lenguaje.

De forma muy simplificada, el Transformer usa una función para calcular la probabilidad de que una palabra pueda aparecer en un texto en función de las palabras ya presentes.

👉🏻 Aquí puedes probar este tipo de modelos con las frases que prefieras 🤓

El lanzamiento de GPT-2 no estuvo exento de polémica ya que OpenAI anunció inicialmente que no iba a liberar el código fuente ya que, de caer en las manos equivocadas, podría ser usado, por ejemplo, para la generación de fake news:

Due to our concerns about malicious applications of the technology, we are not releasing the trained model. As an experiment in responsible disclosure, we are instead releasing a much smaller model for researchers to experiment with, as well as a technical paper.

Cabe decir que, pese a todo, el código acabo siendo liberado y OpenAI ha seguido trabajando en este ámbito hasta hoy. De hecho, hace apenas unos días, se liberó GPT-3, la nueva versión de esta serie de modelos.

A modo comparativo, el modelo GPT inicial de 2018 constaba de 110 millones de parámetros, el modelo GPT-2 de 2019 de 1,5 billones de parámetros y, esta última versión, cuenta con la friolera de 175 billones de parámetros.

Fuente: https://mc.ai/gpt-3-the-new-mighty-language-model-from-openai-2/

Se estima que el entrenamiento de esta red ha tenido un abrumador coste computacional valorado en más de 12 millones de dólares 😱

Como no podía ser de otra manera, este modelo ha generado cierta controversia, tal y como se puede ver en Hacker News. Cómo se indica en uno de los comentarios, un cerebro humano cuenta con más de 100 trillones de sinapsis, lo que es “sólo” tres órdenes de magnitud mayor que el modelo GPT-3. Dado que OpenAI ha tardado apenas un año y medio en incrementar en dos órdenes de magnitud el número de parámetros (de GPT-2 a GPT-3), parece que no estamos tan lejos de llegar a redes del orden de trillones.

Para ver cómo funciona GPT-3, no hay nada mejor que usar un ejemplo. Si le proporcionas como entrada esta frase sacada de la novela 1984 de George Orwell:

“It was a bright cold day in April, and the clocks were striking thirteen”

El modelo es capaz de “entender” el vago tono futurista y oscuro y es capaz de generar automáticamente esta continuación:

“I was in my car on my way to a new job in Seattle. I put the gas in, put the key in, and then I let it run. I just imagined what the day would be like. A hundred years from now. In 2045, I was a teacher in some school in a poor part of rural China. I started with Chinese history and history of science.”

Impresionante 🤯

Si GPT-2 era considerado peligroso y, cómo se ve justo arriba, GPT-3 bien podría pasar el Test de Turing. ¿Qué será posible hacer con un modelo de trillones de parámetros?

2. Historias 📔

El teorema de la Incompletitud

🌏París (Francia) 📅Agosto de 1900.

En el verano de 1900 tenía lugar en París el Segundo Congreso Internacional de Matemáticos. En este encuentro, el reputado matemático David Hilbert planteó en su intervención una lista de veintitrés problemas matemáticos a resolver.

David Hilbert: el arquitecto de la matemática moderna | OpenMind
David Hilbert pensando fuerte.

Tal fue el impacto de esta lista que muchos consideran a Hilbert el arquitecto de la matemática moderna. En gran medida, estos 23 problemas han marcado el devenir de toda la investigación matemática que ha tenido lugar desde entonces.

Una de las obsesiones de Hilbert era probar la consistencia y robustez de las matemáticas, esto es, poder fundamentar todas las teorías sobre un conjunto finito de axiomas. Por ello, el segundo de los problemas de Hilbert planteaba lo siguiente:

Problema #2. La compatibilidad de los axiomas de la aritmética:

Demostrar que los axiomas no son contradictorios; es decir, demostrar que basándose en los axiomas no se podrá llegar jamás a resultados contradictorios mediante un número finito de deducciones lógicas

Viajemos por un momento algunos años al futuro:

🌏Princeton (Nueva Jersey) 📅 Mediados de la década de 1930

En estos años, era común ver pasear por Princeton al que, con toda seguridad, era el científico más famoso de la época: Albert Einstein.

Kurt Gödel y Albert Einstein

De manera recurrente, un misterioso joven comenzó a acompañar a Einstein en sus paseos. Este joven se llamaba Kurt Gödel y había llegado a Estados Unidos escapando del Tercer Reich. En su caso, no por ser judío como Einstein, sino para evitar ser reclutado como soldado en el ejército Nazi.

¿Quién era Kurt Gödel y por qué Einstein disfrutaba tanto de su compañía? Volvamos atrás en el tiempo unos pocos años.

🌏Königsberg (Sí, dónde los 7 puentes) 📅 1930

En 1930, se celebró un congreso matemático en la ciudad de Königsberg que, casualmente, era la ciudad natal de Hilbert.

Casi a la finalización del congreso, un tímido joven reunió todo el coraje que le fue posible para alzar su mano para intervenir. Este joven era Kurt Gödel y tenía algo muy importante que contar.

Gödel presentó en este foro por primera vez su “Teoría de la incompletitud”, que echaba por tierra el sueño Hilbertiano de crear un cuerpo axiomático consistente. Según Gödel, ningún sistema podría ser a las vez consistente, recursivo completo o, dicho de otro modo, hay cosas que, aún por certeras que sean, no podremos nunca demostrar.

La teoría de Gödel traía consigo consecuencias sísmicas para las matemáticas ya que arruinaba la esperanza de demostrar que las matemáticas eran una disciplina segura y reducible a axiomas básicos incuestionables.

Gödel probó que:

  • En cualquier sistema formal axiomático consistente que pueda expresar hechos sobre aritmética básica hay enunciados verdaderos que no se pueden probar dentro del sistema y

  • que la consistencia misma del sistema no puede ser probada dentro de ese sistema.

Estos teoremas de la incompletitud son complejos de entender y terriblemente contraintuitivos. Cómo se preguntaba Russell tras conocer las teorías de Gödel:

¿Debemos pensar que 2 + 2 no es 4 sino 4,001?"

Lo interesante del trabajo de Gödel es que usó la matemática (meta-matemática) para probar que no todo es demostrable dentro de las matemáticas.

Con ello, cambió para siempre el modo en el que entendemos qué son las matemáticas y los límites de lo que podemos llegar a saber.

📅 1940 - 2020

El trabajo de Gödel le dio la oportunidad de emigrar a América y de entablar una profunda amistad con Einstein.

Además, su trabajo inspiró a genios de la talla de John von Neumann y Alan Turing, dos de los padres de las ciencias de la computación.

En este sentido y acercándonos a nuestro terreno, el trabajo de Gödel ha tenido igualmente una gran influencia en la computación ya que ha ayudado a entender cuáles son los límites de aquello que se podría resolver una computadora.

Cómo se puede intuir, todo esto influye la Inteligencia Artificial y el Machine Learning al ser disciplinas tan fuertemente vinculadas a las matemáticas.

En este artículo elaborado a cabo por un equipo internacional de matemáticos e investigadores en IA han descubierto que, pese al aparentemente ilimitado potencial del Machine Learning, incluso los algoritmos más sofisticados están sujetos a los límites de la matemática.

Entender lo que una máquina podría aprender es uno de los objetivos a resolver en el Machine Learning pero, según explican en el paper, la habilidad de una máquina para aprender (learnability) no puede ser probada o refutada usando los axiomas de las matemáticas. Como vemos, las matemáticas y el Machine Learning comparten un mismo destino en este sentido.

Gödel nos dejó una idea terriblemente inquietante. La idea de que no podemos estar completamente seguros de que A no es igual a B.

Esto es desolador desde el punto de vista racionalista ya que viene a decir que un sistema consistente no puede probar su propia consistencia y que, de un modo un otro, tenemos que hacer un salto de fe para creer que todo lo que hacemos tiene sentido.

¡Gracias por leer hasta aquí!


¿Disfrutas The Independent Sentinel? ¡Compártelo!

¿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.

👉 Si quieres, puedes solicitar un acceso gratuito para probar nuestro producto aquí https://lnkd.in/gPz-2mJ

The Independent Sentinel #11

Modelos ensemble, GPUs y la Teoría del Todo

¡Hola!

Soy Javier Fuentes, de Akoios, bienvenido a una nueva edición de The Independent Sentinel, la newsletter dedicada al mundo de la Ciencia de Datos.

Si quieres recibir cada edición directamente en tu bandeja de entrada, puedes suscribirte aquí:

¡Suscríbete ahora!

En esta ocasión hablaremos sobre modelos ensemble, el uso de las GPUs y uno de los juegos más sencillos e interesantes jamás creado: El Juego de la Vida.

Fuente de la fotografía: Kelvin Brodie/the Sun

Here we go!


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Inteligencia Artificial

Conceptos  👨‍🏫

El el mundo del Machine Learning, se conoce como método ensemble a la combinación de diversos modelos (que manejen una misma fuente de datos o fuentes diferentes) para obtener una mejor predicción global.

El principal objetivo de los modelos ensemble es reducir el error de generalización. En el día a día de los científicos de datos ocurre muchas veces que se encuentran modelos que funcionan muy bien para generalizar algunos aspectos de los datos de entrenamiento pero funcionan peor para otros. De ahí que, para aprovechar lo mejor de cada modelo y suplir sus carencias, se use la combinación de varios modelos.

Estructura básica de un modelo Ensemble

De manera muy general y simplificada, se podría decir que, para conseguir que los modelos ensemble funcionen bien debemos:

  • Disponer de buenos modelos de partida (Si tenemos malos modelos, dará igual cómo los combinemos)

  • Intentar que los modelos a combinar estén lo menos correlados que sea posible

  • Escoger un buen método para agregar/combinar los resultados de los distintos modelos

Como seguro estarás pensando, esta potencial mejora en los resultados no es gratis (there's no such thing as a free lunch!) ya que:

  • Se incrementan (puede que muy significativamente) los tiempos de entrenamiento y el coste computacional asociado al mismo.

  • Aumenta la complejidad del sistema al tener que manejar, mantener y ajustar varios modelos en vez de sólo uno.

  • En ocasiones, pueden hacer aún más complicada (dependiendo del modo de agregación) la explicabilidad del modelo.

La parte más interesante de la técnica ensemble, es en mi opinión el método que se escoja para hacer la agregación de resultados. Los métodos para combinar resultados son de lo más variados y van desde algunos muy sencillos (una “votación”) a otros muy sofisticados y complejos.

🤓Si deseas profundizar e implementar modelos ensemble, existen bibliotecas de Python (como esta o esta) con la implementación de las técnicas arriba mencionadas y otras aún más complejas.

Tendencias  📈

El término GPU (Graphics Processing Unit) fue acuñado por Sony en 1994 para referirse al novedoso chip diseñado por Toshiba que integraba su último lanzamiento: La consola PlayStation.

Aún así, el concepto de GPU no se popularizó hasta que Nvidia comenzó a usarlo como reclamo comercial en 1999 de su tarjeta gráfica GeForce 256: "The world's first GPU".

File:VisionTek GeForce 256.jpg - Wikimedia Commons
La GeForce 256 original: El objeto de deseo para todos los gamers de la época

En su comienzo, las GPUs estaban dedicadas en exclusiva a la ejecución de juegos, específicamente para el procesado de cargas de trabajo (workloads) relacionadas con gráficos.

La creciente demanda de potencia (FLOPS y ancho de banda de memoria -memory bandwith-) por parte de la industria del videojuego impulsó la evolución de las GPUs, convirtiéndolas en dispositivos multiprocesador y multihilo específicamente preparados para procesar cargas computacionales en paralelo.

Como era de esperar, debido a su potencia de cálculo, las GPUs comenzaron a ser utilizadas para tareas que nada tenían que ver con los gráficos como la creación de supercomputadores, el minado de bitcoin o, como en el ámbito que nos ocupa, el entrenamiento y ejecución de modelos AI/ML.

En nuestro mundo de la Inteligencia Artificial y el Machine Learning, es habitual encontrarnos con workloads que requieran mucha potencia computacional y paralelismo.

A día de hoy, es muy habitual utilizar GPUs para Machine Learning ya sea a nivel local (en nuestros propios equipos) usando bibliotecas específicas como las proporcionadas por el proyecto RAPIDS, o en servicios Cloud que nos permitan utilizar GPUs para nuestros cálculos.


👉 ¡En breve estarán disponibles las GPUs para tus despliegues en Titan! Si quieres conocer más sobre nuestro producto, solicita un acceso gratuito aquí:  https://lnkd.in/gPz-2mJ


Lo más interesante de todo, es que las GPUs han abierto el camino para el diseño y fabricación de procesadores especialmente dedicados al Machine Learning, como es el caso de las TPUs (Tensor Processing Units) diseñadas por Google. Las TPUs son circuitos creados a medida para ejecutar modelos de Machine Learning, especialmente aquellos que hacen uso de la biblioteca TensorFlow.

Impulsa tu negocio con la inteligencia artificial de Google Cloud
Las TPUs de Google

A día de hoy las GPUs y las TPUs están reduciendo el tiempo de entrenamiento de los modelos por su potencia y capacidad para manejar grandes matrices. Para disponer de un orden de magnitud, tareas que pudieran llevar una semana ejecutar usando CPUs, se podrían reducir a un día usando GPUs y a unas pocas horas usando TPUs.

2. Historias 📔

El Juego de la Vida

En Octubre de 2003, Eric S. Raymond (leyenda viva del Open Source y autor del celebérrimo ensayo “La Catedral y el Bazar”) propuso un símbolo para la “Comunidad Hacker” que adolecía aún por aquel entonces de un emblema que les representara.

Un verdadero hacker, según el propio Raymond,  es aquella persona que resuelve de forma creativa problemas, que aporta a la comunidad y que defiende ideales como la libertad, la comunicación eficiente y el sentido de comunidad. Como él explica, hay muchos tipos de hackers y éstos se pueden encontrar en ámbitos tan distintos como la música, las matemáticas e incluso el arte.

En su momento, me intrigó especialmente este símbolo que, según Eric S. Raymond no era otra cosa que un patrón extraído de un extraño juego llamado el Juego de la Vida.

The Hacker Glider | Daniel Miessler
“The Glider” El emblema de los hackers

El juego de la vida no es el típico juego. Es un autómata celular inventado por el matemático británico John Conway que, lamentablemente, falleció hace apenas unas semanas a las 82 años a causa del maldito coronavirus.

Conway realizó significativas aportaciones a la teoría de números, a la teoría de la probabilidad y trabajó también en los campos de la topología y el álgebra. Pese a ello, será seguramente recordado por este juego (aunque diseñó también muchos otros).

El Juego

El autómata celular diseñado por Conway ganó popularidad cuando se habló de él en la revista Scientific American en 1970. El juego consiste en un conjunto de “células” en una cuadrícula infinita que, dependiendo de una reglas muy simples, pueden vivir, morir o multiplicarse.

Las reglas

Por cada espacio poblado (que contiene una célula):

  • Si una célula tiene un vecino (célula adyacente) o ninguno, muere.

  • Si una célula tiene cuatro o más vecinos adyacentes, muere por superpoblación.

  • Si una célula tiene dos o tres vecinos, sobrevive.

Para cada espació vacío:

  • Se crea una célula en este espacio si tiene exactamente tres vecinos.

Como en tantas otras cosas, la mejor forma de entender el juego es jugando, cosa que puedes (y te recomiendo) hacer aquí: https://playgameoflife.com/.

Cuando juegas, es imposible no sentirse atraído por cómo cualquier pequeña variación en la configuración de inicio, hace que los patrones que se generan y su evolución sea radicalmente distinta.

Hay patrones que “mágicamente” se perpetúan y otros que, al cabo de unas cuantas generaciones desaparecen por completo dejando el tablero sin rastro alguno de vida.

Algunos de los más reconocidos patrones del juego

Algo que en su momento también me impactó, es que el juego es una máquina Turing completa. Esto implica que, cualquier cosa que sea algorítmicamente computable, podría hacerse dentro del juego.

Cualquier programa que puedas imaginar, podría ser escrito y computado dentro del juego. Llevando esto al extremo, podríamos ejecutar el Juego de la Vida dentro del Juego de la Vida 🤯

Conocer este juego te lleva a un concepto tremendamente interesante: La “Complejidad Emergente”. Como el juego demuestra, unas reglas muy sencillas pueden dar lugar a estructuras emergentes de gran complejidad, con redes de realimentación e interacciones cruzadas a varias escalas.

En definitiva, el juego muestra como la complejidad puede emerger de la sencillez, idea que, aparte del interés científico, puede llevarnos a reflexiones existenciales sobre la creación del universo.

Como ocurre a menudo en esta newsletter y a excepción del humilde homenaje a John Conway, no es exactamente de todo lo anterior de lo que quería hablaros hoy.

He recordado el Juego de la Vida porque recientemente me he vuelto a topar con el concepto de Complejidad Emergente, aplicado esta vez a la resolución de la más ambiciosa de las teorías humanas: La Teoría del Todo.

En Abril de este año, Stephen Wolfram, el famoso científico británico creador de Mathematica y Wolfram Alpha publicaba un paper (rodeado de polémica, todo hay que decirlo) de 448 páginas en el que anunciaba un “nuevo camino a la teoría fundamental de la física”.

En esta publicación Wolfram describe sus avances en este área en la que ha estado trabajando gran parte de su carrera y que había empezado a adelantar en su libro A New Kind of Science. En el libro, desarrollaba su idea de que la naturaleza y el universo están basados en un conjunto sencillo de reglas computacionales (¡justo la idea del Juego de la Vida!).

El acercamiento de Wolfram es una visión computacional del cosmos en la que las reglas fundamentales se parecen a líneas de código operando sobre grafos (lo que el considera el elemento principal del universo) iteración a iteración.

Según explica, partiendo de un humilde grafo (recordad que ya hablamos de ellos en TIS #7) y unas pocas reglas, pueden aparecer estructuras fabulosamente complejas rápidamente.

Representación visual del ambicioso proyecto de Wolfram

En el fondo, Wolfram no ha parado nunca de preguntarse si efectivamente nuestro Universo y su complejidad emergen de un conjunto de reglas simples. Si esto fuese así, conociendo estas reglas podríamos entender todo lo que nos rodea, ya que todo sería un resultado emergente de estas reglas básicas.

No sé si Wolfram estará en lo cierto o de si finalmente logrará “decodificar” el universo, de lo que si estoy seguro es de que me encanta la idea de un Universo basado en grafos y reglas simples, un universo que podría haber sido diseñado por un Dios con espíritu de programador.

¡Gracias como siempre por leer hasta aquí!


¿Te gusta The Independent Sentinel? Ayúdanos a llegar a más gente. ¡Basta con que compartas nuestra 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.

👉 Si quieres, puedes solicitar un acceso gratuito para probar nuestro producto aquí https://lnkd.in/gPz-2mJ

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í:

¡Suscríbete ahora!

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.

Image

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.

artificial intelligence, machine learning, deep learning, minsky, shannon, dartmouth conference, artificial intelligence research
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.

Unemulated: Eleven classic arcade games you can't play at home ...
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

The Independent Sentinel #09

La descentralización, el aprendizaje federado y los viajes en el tiempo a través de modelos de Machine Learning.

¡Hola!

Soy Javier Fuentes, CEO de Akoios, gracias por leer esta nueva edición de The Independent Sentinel,  la newsletter que hacemos en Akoios para hablar de multitud de temas relacionados con el mundo de los datos y la Inteligencia Artificial.

Si estás leyéndonos por primera vez y aún no estás suscrito, puedes hacerlo aquí:

¡Suscríbete ahora!

En esta edición hablaremos de descentralización, el aprendizaje federado y sobre cómo redescubrir el pasado utilizando la Inteligencia Artificial.

Fuente

¡Empezamos! 🚀


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Inteligencia Artificial

Tendencias  📈

De un tiempo a esta parte, se viene hablando de un nuevo tipo de Machine Learning conocido como Federated Learning, que podría ser traducido como Aprendizaje Federado o Aprendizaje descentralizado.

Comencemos por el principio. A día de hoy, los sistemas de Machine Learning que utilizamos, tienen mayoritariamente un enfoque que requiere la centralización de datos, modelos e infraestructuras para su funcionamiento. Este enfoque centralizado tiene un ciclo habitual de desarrollo que resultará familiar para cualquier científico de datos.

Esta centralización ha venido históricamente motivada por necesidades logísticas (manejo y transporte de datos) y de recursos hardware (CPU, memoria) que han cristalizado en las infraestructuras de Machine Learning que conocemos.

Sin entrar en detalle en las diferencias entre los sistemas centralizados y descentralizados (darían para escribir varias ediciones de esta newsletter), podemos afirmar que la creciente capacidad de computación de todo tipo de dispositivos (e.g. los terminales móviles) está abriendo el camino a la distribución de ciertas tareas computacionales “pesadas” que típicamente eran ejecutadas de manera centralizada.

Esta idea de “descentralización” ha dado lugar al término Edge Computing (computación cercana a la fuente de datos). En la siguiente imagen se muestra una evolución histórica de este fenómeno:

Resultado de imagen de cloud computing edge computing decentralization
Fuente: ObjectBox

Desde la perspectiva de los datos, la centralización de los mismos en sistemas de terceros es uno de los problemas recurrentes a los que nos enfrentamos en nuestro ámbito por las obvias preocupaciones relativas a la privacidad de los datos y las restricciones legales y regulatorias sobre los mismos.

Yendo más allá, podemos afirmar que gran parte de los datos no está en “data centers”, sino que está ampliamente distribuida y “descentralizada”, siendo un gran ejemplo de esto toda la información potencialmente adquirible desde nuestro teléfonos móviles.

En cierta medida, los tres aspectos que hemos mencionado arriba y que se resumen en la figura de arriba, han dado las condiciones para esta nueva rama de la Inteligencia Artificial.

En 2016, en este paper preparado por un equipo de Google, se hablaba por primera vez de un acercamiento al Machine Learning llamado Federated Learning para dar respuesta a la siguiente pregunta:

¿Cómo podríamos entrenar un modelo sin necesidad de mover y almacenar los datos de entrenamiento en una ubicación central?

En su opinión la solución a esta cuestión podría ayudar a lidiar con las dificultades de manejar datos sensibles descentralizados usando la creciente capacidad de computación de los terminales móviles para, en definitiva, conseguir entrenar modelos centralizados con datos descentralizados.

En el modelo propuesto por Google, se posibilita que dispositivos móviles puedan compartir colaborativamente un modelo, manteniendo los datos de entrenamiento en cada dispositivo, evitando así su centralización en la Nube.

El funcionamiento es el siguiente:

  • Cada dispositivo descarga el modelo

  • Cada dispositivo mejora el modelo usando los datos locales que tiene disponibles

  • Los dispositivos envían los modelos mejorados a la Nube

  • Se mejora el modelo común con todas las contribuciones y mejoras

El enfoque de Federated Learning de Google. Fuente.

Según estos investigadores, este modelo permitirá hacer mejores modelos, con menor latencia y menor consumo de energía, manteniendo además en todo momento la privacidad de los datos.

Si quieres saber más, puedes echar un vistazo a este artículo donde se habla con más detalle sobre este nuevo paradigma o echar un vistazo a este fantástico webcomic que han hecho en Google para explicar el Federated Learning.

Casos de uso ⚙️

Un caso de uso fantástico de Federated Learning, es su aplicación en el ámbito de la salud, tal y como se cuenta en este artículo de la empresa Nvidia.

Como bien explican, el uso de Federated Learning hace posible que los modelos AI/ML puedan ser entrenados y mejorados usando datos clínicos de multitud de centros sin comprometer la privacidad de los mismos.

Con este enfoque, se posibilita que organizaciones de todo tipo puedan colaborar en el desarrollo de nuevos modelos de manera más ágil compartiendo las mejoras del modelo sin compartir datos.

2. Historias 📔

Redescubriendo el pasado a través de la lA

Gran parte de los modelos de Machine Learning tienen como objetivo hacer una predicción lo más precisa posible sobre el futuro. Pese a ello, la Inteligencia Artificial también nos está ayudando a volver a descubrir el pasado.

Una de la primeras películas de la historia, rodada por los célebres hermanos Lumiére fue la famosa película (¡De 50 segundos!) llamada “L'arrivée d'un train en gare de La Ciotat

Este vídeo es especialmente famoso por la leyenda urbana que le acompaña. Según se contaba, la gente que estaba en el cine huyó despavorida pensando que el tren realmente se dirigía hacía a ellos.

En Febrero de este año, un YouTuber llamado Denis Shiryaev se propuso mejorar la calidad del vídeo utilizando diversas herramientas libremente disponibles como Dain.

Con la ayuda de estas herramientas basadas en Redes Neuronales, ha logrado mejorar la resolución y FPS (Frames Por Segundo) de la película hasta alcanzar una resolución de 4096 líneas y 60 imágenes por segundo. El resultado es sencillamente espectacular:

Si te interesan este tipo de técnicas, puedes echar un vistazo a proyectos como ESRGAN o SFTGAN que, como el propio nombre indica, utilizan las GANs que vimos en TIS#3.

Además de estas mejoras de resolución y FPS, hay otros proyectos interesantísimos centrados en el “coloreado” artificial de imágenes en Blanco y Negro. En este ámbito, uno de los proyectos más conocidos es DeOldify.

Usando nuevamente GANs, este modelo permite colorear todo tipo de imágenes con resultados más que realistas. Mejor verlo con algunos ejemplos:

Migrant Mother
“Migrant Mother” de Dorothea Lange (1936) Fuente

Thanksgiving Maskers
“Thanksgiving Maskers” (1911) Fuente

Opium Real
“Chinese Opium Smokers” (1880) Fuente

Aunque los resultados son fantásticos, no siempre es tarea sencilla mantener una precisión histórica. ¿Realmente la ropa era de esos colores? Un ejemplo muy interesante sobre esto es el ejemplo de la siguiente foto del Golden Gate de San Francisco:

Golden Gate Bridge
“Building the Golden Gate Bridge” (1937) Fuente

Según está documentado, las torres tenían ya el célebre color rojo que conocemos durante la construcción, pero el algoritmo las ha identificado como blancas. Por ello, pese al gran avance de estas técnicas, aún queda mucho camino por recorrer.


👉 Usando nuestra tecnología Titan es más que sencillo convertir este modelo o cualquier otro en un servicio para consumir vía API. Escríbenos a info@akoios.com y te contamos cómo hacerlo. También puedes solicitar un acceso gratuito para probar nuestro producto aquí https://lnkd.in/gPz-2mJ


Al igual que se aplica a imágenes, DeOldify también funciona con vídeos, como se puede ver en esta colorización de la fantástica película Metrópolis de Fritz Lang.

Before Flicker

Un aspecto muy interesante que comenta el creador de DeOldify es que, al ejecutar varios modelos (distintos entre sí) sobre un mismo vídeo o imagen, muchas veces acaba obteniendo resultados muy parecidos.

Según explica, parece que los modelos están detectando patrones sutiles en el blanco y negro, lo que permite obtener resultados deterministas y consistentes.

Si quieres probar DeOldify con alguna foto tuya, puedes usar este servicio gratuito para colorearlas.

Gracias por leernos y muchos ánimos para estos tiempos tan difíciles que estamos viviendo.

¡Un abrazo para todos!


¿Disfrutas con The Independent Sentinel? Ayúdanos a difundir nuestra newsletter. ¡Basta con que compartas nuestra 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.

👉 Si quieres, puedes solicitar un acceso gratuito para probar nuestro producto aquí https://lnkd.in/gPz-2mJ

Loading more posts…