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

The Independent Sentinel #08

Resolución de ecuaciones con Redes Neuronales, Prophet y el problema más importante de la computación

¡Hola!

Soy Javier Fuentes, CEO de Akoios, bienvenido de nuevo a The Independent Sentinel. Como ya sabes, en esta newsletter hablamos (o al menos lo intentamos) sobre Ciencia de Datos e Inteligencia Artificial de manera divulgativa y cercana.

Si aún no te has suscrito y quieres hacerlo, puedes hacerlo aquí:

¡Suscríbete ahora!

En esta edición hablaremos de resolución de ecuaciones con IA, de predicciones en series temporales y del problema del viajero: el problema que ilustra la conjetura más famosa (y aún no probada) de la ciencia de la computación: ¿P = NP?.

Traveling Salesman (1921) Stars: Roscoe 'Fatty' Arbuckle, Betty Ross Clarke, Frank Holland ~ Director: Joseph Henabery

¡Comenzamos! 💼


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Inteligencia Artificial

Algoritmos 💻

Pese a la mala prensa de las grandes compañías tecnológicas entre amplios sectores de la población, personalmente siempre me ha parecido muy positivo el hecho de que contribuyan liberando como open-source algoritmos, modelos y plataformas. Hoy hablaremos de Prophet, un procedimiento de predicción para series temporales creado por Facebook.

La predicción es una de las aplicaciones más comunes de la Ciencia de Datos en el mundo empresarial, por ejemplo, para su uso en tareas como planificar capacidad, establecer objetivos o detectar anomalías. De modo particular en Facebook, el uso principal de este algoritmo ha sido el de realizar predicciones de negocio en entornos con tendencias no lineales, estacionalidad o efectos vacacionales.

Cualquier Científico de Datos que se haya tenido que pelear con series temporales, habrá podido comprobar en sus carnes lo complicado que es realizar buenas predicciones y la importancia de tener experiencia en este ámbito para poder obtener resultados razonables.

Prophet permite justamente predecir series temporales sin ser un experto en este campo y poder extraer información relevante y patrones de interés en situaciones complejas en las que:

  • Disponemos de observaciones horarias, diarias o semanales con un histórico de varios meses o, idealmente, al menos un año.

  • Tenemos estacionalidad a varios niveles (día de la semana o mes en el que se está).

  • Hay eventos vacacionales en intervalos irregulares (e.g. La Final de la Champions League).

  • Hay datos faltantes y outliers significativos.

  • Hay cambios de tendencia históricos (Por ejemplo, el lanzamiento de un nuevo producto)

  • Hay tendencias no lineales entre los datos.

Además, de esto, la parte diferencial de Prophet es que no es totalmente automático, sino que permite “ajustar” parámetros manualmente (lo que se conoce como “analyst in the loop”) para incorporar conocimiento humano de un especialista con conocimiento específico de dominio (e.g. especificidades de los ciclos de venta en España).

La siguiente figura ilustra este proceso semi-automático.

El proceso de predicción semi-automático propuesto por Prophet

Desde el punto de más técnico, Prophet usa un modelo de regresión aditiva con 4 componentes principales:

  • Un componente de detección de cambios en tendencias.

  • Un componente de estacionalidad anual.

  • Un componente de estacionalidad semanal.

  • Una lista de días festivos proporcionada por el usuario.

Si quieres más información sobre los fundamentos técnicos de Prophet puedes leer el paper asociado “Forecasting at scale”.

La forma más sencilla de empezar a usar Prophet es instalar el paquete desde iPyPI (Python) o CRAN (R). Puedes leer la guía introductoria o revisar la extensa documentación disponible.


👉 Usando tecnología Titan puedes poner en productivo fácilmente modelos que usen Prophet, basta con que importes los paquetes Python requeridos en tu Notebook y los uses normalmente. 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

Casos de uso ⚙️

Seguimos casualmente con Facebook. Hace unas semanas, el departamento de de Inteligencia Artificial de facebook anunciaba un Caso de Uso inédito hasta el momento:

Un sistema de Inteligencia Artificial capaz de resolver ecuaciones matemáticas avanzadas usando razonamiento simbólico.

La idea es similar a un modelo NLP (Natural Language Processing) en el que las fórmulas se consideran como un idioma y, llegar a las soluciones, se asimila a un proceso de traducción (!).

Usando este enfoque y redes neuronales, han conseguido resolver problemas de integración y ecuaciones diferenciales de primer y segundo orden (¡qué bien nos hubiera venido esto en la universidad 🤓!).

Usando técnicas ya conocidas de Neural Machine Translation (NMT) y representando las ecuaciones en modo de árbol, han conseguido traducir los problemas en soluciones:

La fórmula ya expresada en forma de árbol, el formato idóneo para usarlo como entrada de un modelo de traducción.

Una vez entrenado, el modelo obtuvo mejores resultados (tanto en velocidad como en precisión) que los programas algebraicos clásicos de resolución de ecuaciones como Matlab y Mathematica.

Varios ejemplos de ecuaciones resueltas con este técnica que ni Matlab, Mathematica o yo mismo pudimos resolver.

Veremos si esto queda en anécdota o va más allá, en cualquier caso, el enfoque propuesto plantea un camino que bien merece le pena recorrer.

Puedes encontrar más información técnica aquí.

2. Historias 📔

El problema -aún no resuelto- más importante de la computación

En la edición anterior de la newsletter (TIS #7) hablábamos del clásico problema matemático de los 7 puentes de Königsberg.

A mediados del siglo XIX, dos matemáticos, William Rowan Hamilton y Thomas Kirkman formularon un problema similar pero mucho más conocido: El problema del vendedor ambulante.

Un vendedor ambulante de los de verdad. ¡Cómo para no optimizar el recorrido!

La idea de este problema, abreviado como TSP por sus siglas en inglés (Traveling Salesman Problem) tiene su origen en un problema similar al de los 7 puentes de Königsberg y parte un planteamiento equivalente:

Dada una lista de ciudades y las distancias entre cada par de ellas, ¿cuál es la ruta más corta posible que visita cada ciudad exactamente una vez y al finalizar regresa a la ciudad origen?

Estos dos matemáticos proponían el concepto de camino hamiltoniano (similar al camino euleriano). Mientras que el camino euleriano es un camino en el que cada arista (puente) se visita una sola vez, el camino hamiltoniano es un camino en el que cada vértice (ciudad) se visita una sola vez.

La resolución del problema pasa por encontrar el camino hamiltoniano más corto que sea posible entre las ciudades planteadas.

Para ilustrar el problema, Hamilton creó un juego al que llamo “Icosian Game” , un juego que tenía como objetivo encontrar un camino en los puntos de un dodecaedro. Este divertimento llegó a convertirse en un juego de mesa primigenio del que aún existen 3 unidades en el mundo:

El Juego Icosian. Fuente: Puzzle Museum

El objetivo del juego era recorrer los 20 puntos (ciudades) usando los caminos disponibles en el tablero.

La enunciación general del TSP llegó en 1930 por parte del matemático Karl Menger (hijo del famoso economista Carl Menger, fundador de la Escuela Austríaca de Economía) y se promocionó más adelante por parte de los matemáticos de Princeton, Hassler Whitney y Merrill Flood (uno de los creadores del conocido Dilema del Prisionero).

Lo interesante de este problema, aparte de ser más complejo aún que el problema de los puentes de Königsberg, es que es usado para probar y validar diversos métodos de optimización, como los conocidos algoritmos evolutivos o genéticos.

Aunque el problema pueda parecer sencillo, su complejidad crece según se van aumentando los puntos (ciudades) a visitar.

De forma general, para n ciudades, el número de rutas posibles es (n − 1)! = (n − 1) · (n − 2) · (n − 3) · · · 3 · 2 · 1

Por ejemplo, para 10 ciudades habría 9! = 362880 rutas o soluciones posibles (lo que puede parecer una complejidad razonable).

Si en cambio escogiésemos 100 ciudades tendríamos la friolera de 99! = 933262154439441526816992388562667004907159682643816214685929
638952175999932299156089414639761565182862536979208272237582
511852109168640000000000000000000000 (9.3326215443944E+155) rutas posibles

No se puede decir que el problema no tenga solución, ya que siempre es posible un acercamiento al mismo por fuerza bruta, probando todas las posibilidades y viendo cual minimiza la distancia. La clave radica en encontrar un buen algoritmo que nos permitan reducir la complejidad del método directo.

En los años 50 comenzó una carrera para resolver -usando distintos algoritmos- el problema con más ciudades (nodos) cada vez:

Avances en la resolución del TSP. Fuente.

La solución más compleja de la que se tiene constancia tuvo lugar en 2006, donde el matemático William J. Cook y su equipo resolvieron el TSP para 85900 puntos usando un algoritmo de su propia creación: El Concorde.

Por lo general, existen tres vías para resolver problemas de esta complejidad:

  • Algoritmos “exactos”, válidos para problemas de dimensiones pequeñas

  • Algoritmos heurísticos de aproximación (sub-óptimos) como, por ejemplo, los algoritmos evolutivos.

  • Encontrar casos específicos del problema (“subproblemas”)

Entre estos enfoques, los algoritmos evolutivos (considerados como una variante de la Inteligencia Artificial), han servido para obtener aproximaciones satisfactorias a soluciones del TSP. Entre estos algoritmos meta-heurísticos se encuentran los conocidos Algoritmos Genéticos o, por ejemplo, el menos conocido pero no menos interesante algoritmo de optimización mediante Colonia de Hormigas.

Optimización mediante Ant Colony. Fuente.

Como bien ilustra todo esto, lo aparentemente trivial puede esconder problemas muy interesantes y de complejidad extrema.

Tan en así que, la resolución del problema del viajante, implicaría a su vez la resolución del problema más importante de la computación, la conjetura “P vs NP”.

Este es uno de los 7 problemas del milenio y existe una una recompensa de $1,000,000 por parte del Instituto Matemático Clay para quién logre resolverlo.

¿Qué son los problemas P y NP?

  • De manera muy sencilla, podemos decir que los problemas de clase “P” son fácilmente resolubles (Algoritmos de programación lineal, ecuaciones simples) para los ordenadores en un tiempo razonable de acuerdo a su complejidad.

  • Por su parte, los problemas NP (e.g. TSP) son aquellos dónde la solución podría ser muy difícil de encontrar (e.g. que tardase millones de años en calcularse) pero que, una vez encontrada, es fácil comprobar su validez. En el ejemplo del viajante, puede ser muy difícil calcular la ruta pero siempre es relativamente sencillo comprobar si la solución calculada es correcta o no.

En base a esto, la resolución del problema pasa por descubrir si:

P (problemas con soluciones fáciles de encontrar) son iguales a NP (problemas con soluciones fáciles de comprobar)

Como explican en este artículo del MIT Technology Review:

Si P es igual a NP, todos los problemas NP contendrían un atajo oculto, lo que permitiría que los ordenadores encontrasen rápidamente soluciones perfectas. Pero si P no es igual a NP, entonces no existen dichos atajos, y la potencia de resolución de problemas de los ordenadores seguirá siendo fundamental y permanentemente limitada.

En definitiva, saber si realmente los problemas P son como los NP, nos permitiría saber a ciencia cierta qué tipos de problemas pueden ser resueltos por los ordenadores y cuáles no.

Todo parece indicar que P ≠ NP, pero todavía nadie ha logrado demostrarlo. Como comenta Scott Aaronson, un investigador de complejidad en el Laboratorio de Inteligencia Artificial del MIT:

"Hay buenas razones por las que muy pocas personas creen que P es igual a NP. Si así fuera, estaríamos viviendo en un universo muy distinto y probablemente ya nos habríamos dado cuenta".

¡Gracias como siempre por leer hasta aquí! Feliz fin de semana.


Eventos 🎫

👉 El próximo Jueves día 5 participaremos en los 101 Panel Tech Days de Panel Sistemas. Si quieres venir a conocer de primera mano cómo resolvemos el problema de la puesta en producción de modelos, puedes apuntarte aquí.


¿Te gusta The Independent Sentinel? Ayúdanos a que nos conozca más gente interesada en IA, Ciencia de Datos y Computación. ¡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 #07

Las fronteras de la IA, los Xenobots y los 7 puentes de Königsberg

¡Hola!

Soy Javier Fuentes, CEO de Akoios, gracias por seguir leyendo de The Independent Sentinel en esta nueva década. Si nos lees por primera vez, debes saber que en esta newsletter contamos curiosidades, avances e historias sobre el mundo de la Ciencia de Datos y la Inteligencia Artificial.

Puedes suscribirte aquí si aún no lo has hecho:

¡Suscríbete ahora!

En esta primera edición de 2020 hablaremos sobre cómo clasificar las distintas tecnologías de Inteligencia Artificial, los avances en robots vivientes y el problema de los 7 puentes de Königsberg

¡Vamos allá! 💼


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Inteligencia Artificial

Clasificando las tecnologías de IA

El término de la IA es tremendamente amplio y es a menudo difícil conocer los límites sobre qué es y qué no es Inteligencia Artificial. A este respecto, encontré hace unos días una interesante clasificación a alto nivel de las distintas tecnologías IA propuesta por Francesco Corea.

En su artículo propone su modelo para intentar lidiar con la complejidad de intentar “mapear” el estado actual de la Inteligencia Artificial. Para ello, basa su clasificación en dos ejes principales en lo que ha denominado el mapa de conocimiento de la IA: AI Knowledge Map (AIKM):

  • Dominios de problema: Percepción, Razonamiento, Conocimiento, Planificación y Comunicación.

  • Paradigmas:

    • Herramientas lógicas: Herramientas usadas para representar conocimiento y resolver problemas

    • Herramientas de conocimiento: Herramientas basadas en ontologías y grandes bases de datos de nociones, información y reglas

    • Métodos probabilísticos: Herramientas que permiten actuar en escenarios con información incompleta

    • Inteligencia integrada (Embodied intelligence): Un conjunto de herramientas que supone que hacen faltas algunas funcionas básicas (movimiento, percepción, interacción y visualización) para adquirir una inteligencia superior

    • Búsqueda y optimización: Herramientas para encontrar posibles soluciones a problemas complejos

Como se puede ver, esta clasificación es mucho más amplia que las habituales y da cabida a tecnologías desde la Automatización Robótica de Procesos (RPA), hasta los Algoritmos Evolutivos -de los que hablaremos más adelante- usados para resolver problemas de optimización.

Como ejemplo sobre cómo interpretar el diagrama, podemos usar el caso del Procesamiento de Lenguaje Natural (NLP - Natural Language Processing). Este grupo de algoritmos se enmarca como una combinación de Machine Learning, Métodos Probabilísticos y Herramientas de Conocimiento aplicados para resolver problemas de Percepción.

Como comentario final y como bien explica el autor, el Principio de Pareto emerge una vez más, el 80% de los esfuerzos y resultados que se están obteniendo actualmente, vienen del 20% de las tecnologías representadas en el diagrama (Deep Learning, NLP & Computer Vision).


👉 Con nuestra tecnología Titan es posible poner en productivo todo tipo de modelos, desde modelos NLP hasta algoritmos genéticos. 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

Xenobots

La semana salió a la luz la noticia (MIT TR, CNN) de que unos científicos de la Universidad de Vermont y el Allen Discovery Center de la Universidad de Tufts habían sido capaces de crear robots vivientes a partir de células madre extraídas de embriones de ranas.

Estos llamados “Xenobots” han sido llamados así por la rana africana (Xenopus laevis) de las que se han extraído las células, y no por el prefijo griego xenos que significa extraño o extranjero (para desgracia de los fans de Alien y los xenomorfos)

Según los investigadores, han sido capaces de sintetizar formas de vida completamente nuevas de menos de un milímetro (0.04 pulgadas), lo suficientemente pequeñas para viajar dentro del cuerpo humano y con varias capacidades sorprendentes:

  • Capacidad de auto-curarse

  • Capacidad de movimiento

  • Capacidad de cooperación en grupo

Como mencionan, estas formas de vida no son un robot tradicional ni una especie de animal ya conocida, sino un nuevo tipo de artefacto: Un organismo vivo y programable.

La parte más interesante desde nuestra perspectiva es que no estos Xenobots no han sido diseñados por humanos sino que han sido generados en un supercomputador utilizando algoritmos evolutivos.

Distintas soluciones encontradas por el algoritmo evolutivo (Kriegman et al., PNAS, 2020)

Estos algoritmos imitan la selección natural generando, iterando y mutando entre 500 y 1000 células hasta escoger las mejores distribuciones de distintos tipos de células (piel, corazón, etc.) para conseguir el objetivo deseado (e.g. moverse)

Iteraciones hasta conseguir una configuración adecuada (Kriegman et al., PNAS, 2020)

La sección en azul del Xenobot es un conjunto células pasivas mientras que las que aparecen en rojo y verde son células activas (que en este caso permiten al robot moverse).

Según los creadores, estos robots podrán tener múltiples usos como:

  • Administración de antibióticos

  • Limpieza de microplásticos

  • Eliminar coágulos sanguíneos

Estos primeros robots son aún muy básicos pero se espera que vayan ganando en complejidad en futuras versiones añadiendo, por ejemplo, sistemas sensoriales o nerviosos e incluso habilidades cognitivas rudimentarias para interactuar con su entorno.

Esto abrirá la puerta a nuevos y sofisticados usos de estos seres y seguro que también traerá consigo el debate ético: ¿Debemos tratarlos como robots o como seres vivos?

What a time to be alive!

2. Historias 📔

Los 7 puentes de Königsberg

Hay ciertos problemas que han aparecido de forma recurrente en diversos momentos y en diversas culturas de manera aislada. Uno de ellos es el de la optimización de rutas: cómo conseguir visitar diversas localizaciones minimizando la distancia recorrida.

Allá por 1735, el genial matemático Leonhard Euler (una de las mentes más brillantes que ha dado la humanidad) escuchó acerca de un acertijo que se había hecho popular en la ciudad de Königsberg.

La ciudad de Königsberg. Historic Cities Research Project

Königsberg fue la capital de Prusia Oriental desde la Baja Edad Media hasta 1945 cuando fue tomada por los soviéticos y rebautizada como Kaliningrado. La ciudad, dividida por el río Pregel era una ciudad próspera y boyante debido en parte a su especial estructura. Había dos grandes islas en el medio del rio que se conectaban con el resto de la ciudad a través de 7 puentes.

De manera espontánea los ciudadanos de Königsberg idearon un juego que resultó extremadamente difícil de resolver y que consistía en lo siguiente:

Dado el mapa de Königsberg, con el río Pregel dividiendo el plano en cuatro regiones distintas, que están unidas a través de los siete puentes, ¿es posible dar un paseo comenzando desde cualquiera de estas regiones, pasando por todos los puentes, recorriendo sólo una vez cada uno, y regresando al mismo punto de partida?

En primera instancia, Euler no dio demasiada importancia al problema que planteaba el juego ya que pensaba que era un mero pasatiempo sin nada que ver con las matemáticas.

Sin embargo, y como buen matemático, no pudo parar de pensar en el problema y en cómo solucionarlo. Finalmente, el problema le intrigó por su complejidad y, tan es así, acabó compartiendo algunas reflexiones sobre el mismo con otros compañeros matemáticos:

La pregunta que plantea el juego es banal, pero ha llamado mi atención que ni la geometría, ni el álgebra, ni el arte de contar han sido suficientes para solucionarlo.

Tanto obsesionó el problema a Euler que terminó realizando una publicación en 1736 llamada “Solutio problematis ad geometriam situs pertinentis” en la que proponía una solución general al problema planteado, resolviendo así el enigma de los puentes de Königsberg: No había ninguna ruta posible que cumpliera esas características.

Para la resolución, Euler utilizó una representación simplificada del mapa centrándose únicamente en las cuatro regiones y en las conexiones entre ellas:

Fuente: Wikipedia

A modo de curiosidad histórica, dos de los siete puentes fueron destruidos en el bombardeo de Konigsberg por parte de los Aliados durante la Segunda Guerra Mundial.

Actualmente, existen sólo cinco puentes en Kaliningrado, de modo que ya es posible encontrar una ruta euleriana (un camino que empieza en una isla y termina en otra) pero aún no un ciclo euleriano (una ruta que comience y termine en el mismo lugar tal y como se planteaba inicialmente en el problema).

La ciudad después del bombardeo

La resolución del problema por parte de Euler, más que dar carpetazo al asunto, supuso un comienzo. Desde este momento, mucho otros matemáticos empezaron a construir sobre esta idea y a abundar en este tipo de problemas complejos.

Ya en el siglo XIX, dos matemáticos, William Rowan Hamilton y Thomas Kirkman formularon un problema similar pero mucho más conocido: El problema del vendedor ambulante, del que hablaremos en una próxima edición.

Otro hecho interesante es que la abstracción que utilizó Euler para resolver el problema originó la Teoría de Grafos, una teoría ampliamente utilizada en matemáticas y en ciencias de la computación.

En 1996, unos aún desconocidos Larry Page y Sergey Brin desarrollaron conjuntamente PageRank, un algoritmo basado en esta teoría de grafos para representar los enlaces entre webs y ordenar resultados de búsqueda.

Tras eso, acabaron fundando una compañía llamada Google. El resto es historia.

Gracias por leer hasta aquí. ¡Hasta la próxima edición!


¿Disfrutas The Independent Sentinel? Si es así, ayúdanos compartiendo nuestras publicaciones en RRSS.

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

The Independent Sentinel #06

La propiedad intelectual de las máquinas, YOLO y el origen de la teoría del caos

¡Hola!

Soy Javier Fuentes, CEO de Akoios, gracias una vez más por leer una nueva edición de The Independent Sentinel, la newsletter en la que compartimos ideas, noticias y novedades sobre el mundo de la Ciencia de Datos y la Inteligencia Artificial

Si aún no te has suscrito, es muy fácil hacerlo:

¡Suscríbete ahora!

En esta última edición del año vamos a hablar sobre la propiedad intelectual de las máquinas, el algoritmo YOLO y la resolución de un problema matemático planteado hace más de 300 años.

¡Comenzamos! 🏃‍♂️


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Inteligencia Artificial 🤖

¿Existe la propiedad intelectual para las máquinas?

A comienzos de este año, una noticia muy llamativa fue recogida por diversos medios de comunicación:

“Un algoritmo acaba de firmar una gran contrato con una discográfica”

La noticia era que Endel, una startup que usa Machine Learning para crear música ambiental a medida para sus usuarios, había conseguido que su algoritmo firmase un gran contrato con Warner Music.

Este algoritmo desarrollado por Endel usa ritmos circadianos, escalas pentatónicas y enmascaramiento sonoro para crear música personalizada y adaptada al entorno de cada usuario (hora del día, meteorología, ritmo cardiaco, ubicación…).

Para el acuerdo de distribución firmado, Endel usó su algoritmo para crear 600 canciones cortas para 20 álbumes que se publicaron en servicios de streaming cuyos royalties se repartieron al 50% entre Endel y Warner, reteniendo Endel al 100% la propiedad de las grabaciones.

Incluso aunque hubiesen cedido los derechos de propiedad sobre las canciones, esto no hubiese supuesto un problema para Endel, ya que, en palabras de uno de los creadores del algoritmo, Dmitry Evgrafov, las 600 canciones se crearon con “un solo click de ratón” con una mínima intervención humana. Tan es así que incluso se contrató a una empresa externa para poner nombre a las canciones 😅.

En definitiva, Evgrafov vino a decir que Endel tiene ya la capacidad de crear infinitas canciones de música ambiental.

Esta noticia, junto como otros avances como la IA que es capaz de escribir artículos, han abierto un debate muy interesante sobre los derechos de autor de estas creaciones “sintéticas”

En esta línea, el pasado 30 de Octubre, la Oficina de Patentes y Marcas de Estados Unidos (USPTO - The United States Patent and Trademark Office) realizó una petición pública de opiniones respecto al impacto de la Inteligencia Artificial sobre todo lo relativo a propiedad intelectual y marcas.

Esta oficina, que asesora al Estado en los asuntos que su nombre indica, pide de forma frecuente opiniones e información para entender mejor las nuevos desarrollos y tecnologías por parte de las personas y organizaciones que están en contacto con ellas.

La Oficina de Patentes y Marcas lanzó 13 preguntas específicas tales como:

  • ¿Qué ocurre si una IA crea un trabajo que infrinja un copyright?

  • ¿Es posible alimentar una modelo con datos protegidos por copyright?

  • ¿Qué se debe hacer en términos de propiedad intelectual si una IA crea algo sin intervención humana directa? ¿Es la IA la propietaria o la empresa o personas que la han entrenado?

Aunque actualmente existe un vacío legal en este aspecto, la ley considera a la IA como una herramienta, sin derecho en ningún caso a tener propiedad intelectual sobre sus creaciones.

Respecto a la autoría, se están tomando distintas perspectivas en cada país. En el Reino Unido, por ejemplo, el autor es el programador mientras que, en Estados Unidos, la persona que concibe la invención es el dueño, ya que el programador no sabe a priori cuál será la respuesta de un determinado algoritmo.

En cualquiera de los casos, todo lo que estamos presenciando nos hace suponer que, en algún momento en el futuro, tendremos que replantearnos si las IAs deben poder ser dueñas de sus creaciones.

En su libro “Arquitectos de la Inteligencia”, Martin Ford preguntó a varios investigadores de IA sobre cuándo creen que podremos empezar a hablar de Inteligencia Artificial General (AGI) y comenzar a hacernos preguntas como las que estamos tratando. Aunque Ray Kurzweil dijo que esto podría ocurrir en menos de una década, la mayoría de los entrevistados lo ven aún a más de 100 años de distancia

Frameworks 💻

Si estás algo familiarizado con el mundo del Machine Learning, seguramente hayas oído hablar de PyTorch.

PyTorch es una librería open-source Python basada en la librería Torch que facilita el desarrollo de aplicaciones ML como visión artificial y NLP (Procesamiento de len guaje natural) y se desarrolló inicialmente en el laboratorio IA de Facebook (FAIR).

Todos aquellos interesados en iniciarse con el uso de PyTorch, pueden descargar el libro “Deep Learning with PyTorch” de manera totalmente gratuita en el link de abajo.

Cabe destacar que PyTorch tiene muchos competidores de los que seguramente también habrás oído hablar, y que conforman un entorno interesantísimo:

  • Tensorflow: Librería por Google Brain Team orientada a la computación numérica mediante grafos.

  • Microsoft CNTKes la alternativa desarrollada por Microsoft, con especial utilización reconocimiento del habla.

  • Theano: Librería de python realizar cálculos con arrays multidimensionales de forma eficiente.

  • Keras: es una API hecha en Python destinada al desarrollo de redes neuronales. A su vez, usa internamente otras librerías como Tensorflow, CNTK y Theano.

  • CaffeFramework destinado a visión por computador y clasificación de imágenes. Caffe es muy conocido por la disponibilidad modelos ya entrenados (Model Zoo)

Casos de uso ⚙️

La detección de objetos es uno de los aspectos más interesantes de la visión computerizada. Esta disciplina está viviendo una época dorada en gran medida por su aplicación para los coches autónomos en los que se mezclan estas técnicas con LIDAR y otras tecnologías para generar una representación multidimensional del entorno del vehículo en cada instante.

De hecho, llevamos años ayudando a entrenar estos modelos con los reCAPTCHA que Google usa para asegurarnos de que somos humanos.

En 2015, se publicó un paper clave en el ámbito de la detección de objetos llamado “You Only Look Once: Unified, Real-Time Object Detection” elaborado por investigadores de Facebook, la Universidad de Washington y el Instituto Allen.

Distintos modos de visión artificial

YOLO es un algoritmo de detección de objetos. Es de objetos (en plural) ya que es capaz de detectar múltiples objetos presentes en una imagen y dibujar la típica “caja” contenedora.

predictions.png

La principal característica del algoritmo es que aplica una única red neuronal una única vez sobre la imagen completa (de ahí el nombre “you only look once”).

De manera sencilla, el funcionamiento es el siguiente:

El algoritmo recibe como entrada una imagen que se procesa mediante una red neuronal similar a una CNN y devuelve un vector con “cajas” y predicciones.

Este vector de salida, tiene estos componentes

  1. Centro de la caja delimitante (bx,by)

  2. Ancho de la caja (bw)

  3. Alto de la caja (bh)

  4. El valor c que corresponde a la categoría del objeto (e.g. coche, persona, gato…).

Por último, está el valor pc que indica la probabilidad de que haya un objeto recuadrado perteneciente a una determinada categoría c.

Todo esto se ve mejor con una imagen extraída de este buen artículo sobre YOLO:

El aspecto clave de YOLO es que trata el problema de la detección de objetos como un problema de regresión en vez de un problema de clasificación y que hace el proceso “de una” con una única red neuronal con esta estructura:

Resultado de imagen de yolo neural network

La forma más rápida de comenzar a usar YOLO y obtener resultados es usar una red open-source ya pre-entrenada y lista para ser utilizada como Darknet, de la que puedes saber más aquí.

Como ejemplo, aquí tenéis el resultado del análisis de una imagen usando YOLO + Darknet:

Afortunadamente, para YOLO soy un humano

Si quieres entender YOLO con mayor detalle, puedes echar un vistazo a este artículo de Hackernoon en el que ayudan a entender mejor su funcionamiento.


👉 ¿Te gustaría usar de manera escalable estos modelos de detección de objetos para tu aplicación corporativa o startup? Escríbenos a info@akoios.com y te contamos cómo podemos ayudarte a usar estos algoritmos en producción. Si lo prefieres, puedes solicitar un acceso gratuito para probar nuestro producto Titan aquí https://lnkd.in/gPz-2mJ

2. Historias 📔

El problema imposible de los 3 cuerpos, Henri Poincaré y la teoría del caos

Hace más de 300 años, Isaac Newton planteó un problema mientras trabajaba en órbitas planetarias que todavía hoy sigue siendo objeto de estudio por parte de físicos y matemáticos: El problema de los 3 cuerpos.

El problema consistía en determinar el movimiento de tres cuerpos (e.g. estrellas o planetas) atraídos mutuamente por la gravedad, dadas sus posiciones y velocidades iniciales.

Inicialmente, Newton planteó este problema para 3 cuerpos muy específicos (la Tierra, el Sol, y la Luna) pero, actualmente, el problema se ha extendido a cualquier problema de física cuántica o clásica que intente modelar el movimiento de tres partículas.

Una solución concreta para tres cuerpos ubicados en los vértices de un triángulo isósceles con velocidades iniciales nulas. Fuente: Wikipedia.

A finales del Siglo XIX, las competiciones matemáticas dotadas con premios eran un método común para encontrar soluciones a problemas matemáticos complejos.

Estas competiciones eran generalmente organizadas por Academias nacionales (siendo las de París y Berlín las mas reputadas en la época) y, aunque otorgaban dinero en metálico al ganador, eran mucho más valoradas por el prestigio académico que conferían.

En 1885, el Rey Oscar II de Suecia y Noruega, amante de las matemáticas, decidió ofrecer un premio para celebrar su 60 cumpleaños a quién encontrase solución a un problema matemático bien conocido y aún no resuelto. El premio consistía en una medalla de oro y 2,500 coronas suecas.

Los resultados se entregarían en un sobre para mantener el anonimato ante el jurado y se otorgó un plazo de 3 años a los participantes para la resolución.

Para la competición, se convocaron a célebres matemáticos de la época como Karl Weierstraß (el padre del análisis matemático), Charles Hermite o Henri Poincaré.

La primera pregunta de las varias que conformaban el concurso era una generalización del problema clásico de los tres cuerpos:

For a system of arbitrarily many mass points that attract each other according to Newton’s law, assuming that no two points ever collide, find a series expansion of the coordinates of each point in known functions of time converging uniformly for any period of time.

Los contendientes se pusieron a trabajar y, poco antes de Junio de 1888, comenzaron a llegar las memorias con los resultados.

El jurado -al igual que el resto de competidores- quedó sorprendido por el enfoque utilizado por uno de los participantes, Henri Poincaré, que se alzó con la victoria por su resolución basada en sus trabajos previos sobre ecuaciones diferenciales.

Notas manuscritas de Poincaré.

El 20 de Enero de 1889, el día anterior al 60 cumpleaños del monarca, se produjo el anuncio Real que daba por ganador a Poincaré, que recibió la medalla, la cantidad de dinero acordada y la mención honorífica por parte del Rey.

Ya cerca de Noviembre de ese mismo año, cuando los resultados del trabajo de Poincaré estaban a punto de ser publicados, el principal miembro del jurado, Mittag-Leffler, recibió un telegrama urgente por parte de Poincaré.

En el mismo, Poincaré le pedía que parase inmediatamente la impresión de su trabajo. Había cometido un error que invalidaba la solución que había planteado y sería un completo deshonor publicar un documento con errores en nombre del Rey.

Pese a que parte del trabajo ya había sido impreso y distribuido por el mundo, Poincaré tuvo la oportunidad de revisar su memoria en una nueva versión.

Tras un intenso trabajo durante Diciembre de 1889, Poincaré publicó una memoria revisada en la que explicaba una conclusión reveladora: El movimiento caótico era inevitable.

La revelación fue que no era adecuado realizar ciertas aproximaciones ya que, un pequeño cambio en las condiciones iniciales suponía, en contra de lo que pensaba, un resultado totalmente distinto.

Por lo que ahora sabemos, es imposible proporcionar una solución general al problema debido a estas dinámicas caóticas que se producen, tal y como Henri Poincaré descubrió.

La teoría del caos tan prominentemente usada en las matemáticas hoy en día parte de este trabajo de Poincaré sobre el problema de los 3 cuerpos: Un problema fácil de plantear, pero imposible de resolver de forma general y precisa.

Resultado de imagen de three body problem machine learning

Avanzando 130 años hasta nuestros días, unos investigadores de las Universidad de Cambridge y Edimburgo han utilizado Redes Neuronales para encontrar soluciones a este problema -irresoluble por su naturaleza caótica- 100 millones de veces más rápido que otras técnicas actualmente utilizadas.

Usando una red neuronal prealimentada (feed-forward ANN) de 10 capas ocultas están consiguiendo encontrar aproximaciones computacionalmente eficaces (en torno a 10^5 -y a veces incluso 10^8- veces más rápido que otras técnicas).

Three body problem

Pese a las críticas (no hay realmente ningún avance desde el punto de vista matemático) resulta interesantísima la idea de reemplazar los “solvers” diferenciales clásicos para estos problemas con algoritmos de Machine Learning debidamente entrenados.

Investigaciones como estas, están abriendo un camino a soluciones híbridas entre redes neuronales y métodos numéricos que nos puedan ayudar a lidiar con problemas todavía no resueltos.


 ¡Gracias por leernos! En nombre de todo el equipo de Akoios, aprovecho para desearos a todos un muy feliz y próspero año 2020.

Happy New Year Smiling GIF

¿Estás disfrutando The Independent Sentinel? ¡Comparte nuestras publicaciones en RRSS!

¿Quieres leer más? Puedes ver las ediciones anteriores aquí:

👉 Si quieres saber más sobre lo que hacemos, echa un vistazo a nuestra serie de tutoriales publicados en Medium.

The Independent Sentinel #05

Vendedores de humo, SVMs y un dilema Shakesperiano

¡Hola!

Soy Javier Fuentes, CEO de Akoios, gracias por estar leyendo esta nueva edición de The Independent Sentinel, la newsletter que hacemos para compartir con vosotros novedades, noticias y curiosidades sobre Machine Learning y Ciencia de Datos.

Si aún no te has suscrito, puedes hacerlo ahora:

¡Suscríbete ahora!

En esta edición hablaremos de los vendedores de humo en el mundo de la Inteligencia Artificial, de las Máquinas de Vectores de Soporte (SVMs) y de la autoría de las obras de Shakespeare.

Photograph of Shakespeare manuscript

¡Vamos allá! 🚀


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Inteligencia Artificial 🤖

La Inteligencia Artificial, el Hype y los vendedores de humo 

De pocos términos se habrá abusado tanto últimamente como de “Inteligencia Artificial”. No paro de ver usos vagos, imprecisos e incluso malintencionados del concepto “Inteligencia Artificial” con el fin último de intentar vender algún producto o servicio “decorado” con este termino de moda.

En esta fantástica presentación, el profesor de Ciencias de la Computación de Princeton Arvind Narayanan habla sobre cómo detectar el “humo” alrededor del concepto Inteligencia Artificial o, como se denomina en inglés, cómo detectar a los vendedores de “Snake Oil”.

Según Narayanan, existe tanto humo alrededor del concepto debido a que la Inteligencia Artificial engloba una amplia variedad de tecnologías y, algunas de ellas, están consiguiendo notorios y relevantes avances.

A modo de ejemplo, el famoso programa AlphaGo desarrollado por Google capaz de ganar a profesionales jugando al “Go”, ha sido considerado como un hito en el desarrollo de la Inteligencia Artificial, ya que aprender a jugar a este juego es un reto que no se esperaba resolver tan pronto.

En su última version, AlphaGo Zero, el programa es capaz de aprender a jugar desde cero jugando millones de partidas contra sí mismo. En este proceso ha conseguido descubrir en un corto periodo de tiempo todo el conocimiento sobre el juego que los humanos han tardado miles de años en recopilar e incluso ha descubierto jugadas aún no conocidas por nosotros 😧

Aprovechando esta confusión de tecnologías que de algún u otro modo se relacionan con la Inteligencia Artificial, algunos avezados vendedores están usando el término para vender mejor alguno de sus productos (¡aunque no tenga relación real con la Inteligencia Artificial!).

Para ejemplificar cómo estructurar las aplicaciones de IA y poder detectar a los vendedores de humo, el autor propone tres categorías:

👉 Percepción: En esta categoría de aplicaciones IA se están realizando avances rápidos y genuinos. Ejemplos:

  • Identificación de contenidos (Shazam, búsqueda inversa de imágenes)

  • Reconocimiento Facial

  • Diagnósticos médicos

  • Speech to Text

  • Deepfakes (¡de esto ya hablamos en TIL #4)

👉 Juicio automático: En este ámbito se está mejorando aunque aún se está lejos de la perfección. Esta categoría se centra en la automatización de juicio que haría un humano, por lo que seguramente nunca exista un completo consenso. Ejemplos:

  • Detección de Spam

  • Detección de material con Copyright

  • Evaluación automática de ejercicios o exámenes

  • Detección de insultos o mensajes de odio

  • Recomendación de contenidos

👉 Predecir resultados sociales: La fiabilidad de la IA en esta ámbito es, a día de hoy, altamente dudosa. Es aquí dónde están la mayoría de vendedores de humo sobre AI. Los sistemas sociales son tan complejos que es muy difícil poder realizar modelos con resultados precisos. Ejemplos:

  • Predecir reincidencia criminal

  • Predecir el resultado de políticas

  • Predecir idoneidad para un puesto de trabajo

  • Predecir riesgo terrorista

  • Predecir situaciones de riesgo para niños

Basándose en comparaciones con estudios como este, Narayanan concluye que, para predecir resultados sociales, la IA no es significativamente mejor que usar un scoring manual usando algunas variables clave.

Así que ya sabéis, ¡mucho cuidado con los vendedores de Snake Oil disfrazando de IA cualquier algoritmo!

Modelos y Algoritmos 💻

Las Máquinas de Vectores de Soporte, llamadas habitualmente SVM (Support Vector Machines) son una de las técnicas más conocidas y utilizadas en Machine Learning para clasificación y detección de patrones.

Su principal ventaja es que son capaces de proporcionar buenos resultados con poco coste computacional.

La idea de las SVMs es simple: trazar una línea o, de forma general un hiperplano, para clasificar y separar una serie de muestras en categorías.

Hiperplanos en 2D y 3D

En este didáctico artículo de Rushikesh Pupale se explica de forma muy clara el funcionamiento básico.

Como bien se detalla, el algoritmo SVM trata de crear una frontera de decisión en la que la separación entre clases o categorías sea la máxima posible.

En este ejemplo, la línea en amarillo sería una mejor “frontera” que la línea verde porque deja más distancias entre los grupos. ¿Cómo hace el algoritmo para determinar cuál es mejor?

El mecanismo es el siguiente. SVM encuentra los puntos de cada categoría más próximos a la frontera (¡estos puntos son los llamados vectores de soporte!) y computa la distancia entre ambos. Esta distancia es llamada margen y, lo que hace SVM, es simplemente encontrar el hiperplano que maximiza este margen.

Si quieres saber más sobre SVMs, puedes echar un vistazo a este fantástico tutorial.

Casos de uso ⚙️

Las SVMs se usan de manera generalizada en muchos ámbitos ya que son capaces de clasificar datos desconocidos con precisión. Algunas aplicaciones típicas son:

  • Detección facial: Las SVMs puede clasificar partes de la imagen entre las categorías cara/no-cara para realizar la detección.

  • Categorización de textos:  Usando SVMs debidamente entrenadas, es posible clasificar de forma automática todo tipo de documentos.

  • Clasificación de imágenes:  De forma general en lo relativo a las imágenes, las SVMs son de gran utilidad para realizar clasificación de imágenes siempre que está debidamente entrenado el modelo.

  • Biotech:  Se están realizando avances interesantísimos en este ámbito relacionados con, por ejemplo, la clasificación de proteínas o clasificación y detección e cánceres. Las SVMs se están usando también para clasificación de genes y pacientes.

  • Detección de escritura:  Otra utilización relevante es el uso de SVMs para reconocer caracteres manuscritos mediante clasificación.

Productivización de modelos 👨‍🔧

Hace unos días participamos en la XLII edición del Meetup de Machine Learning Spain hablando de cómo superar los problemas para poner en productivo modelos de AI/ML. Al proceso de afrontar estas dificultades para llevar los modelos a producción, lo denominamos internamente como atravesar 💀El Valle de la Muerte 💀.

Comenzando a hablar del Valle de la Muerte

Si quieres saber cómo te podemos ayudar a poner a funcionar en productivo ese modelo increíble que has desarrollado, puedes solicitar un acceso gratuito para probar nuestro producto Titan aquí 👉 https://lnkd.in/gPz-2mJ

2. Historias 📔

¿Escribió Shakespeare todas sus obras?

William Shakespeare nació -supuestamente- el día 26 de Abril de 1564 en Stratford-upon-Avon (llamado normalmente Stratford), en el condado de Warwickshire. Es en esta ciudad dónde se encuentran también sus restos mortales.

La casa donde nació el bueno de Shakespeare

Casi doscientos años después de su muerte en 1616 comenzaron a surgir rumores sobre la autoría de todas sus obras. Para muchos, resultaba inconcebible que alguien de origen rural nacido en un pequeño pueblo, pudiese tener el nivel de educación, sensibilidad y conocimiento de la corte real que Shakespeare demostraba en sus obras.

Los estudiosos de la obra de Shakespeare se dividieron en dos grupos, los Stratfordianos (los partidarios de que el William Shakespeare nacido y fallecido en Stratford fue el verdadero autor de todas las obras) y los Anti-Stratfordianos (los partidarios de la atribución de las obras a otros autores o grupo de autores).

Una de las teorías más conocidas de los Anti-Stratfordianos es la de que William Shakespeare era tan sólo un alias tras los que podían esconderse otros ilustres nombres como Christopher Marlowe (1564-1593), el filósofo y hombre de letras Francis Bacon (1561-1626), Edward de Vere (1550-1604) decimoséptimo conde de Oxford y and William Stanley, sexto conde de Derby.

Las posibles personas detrás de Shakespeare

Aunque las teorías Anti-Stratfordianas han perdido fuerza, aún siguen vigentes y tienen firmes defensores.

No obstante, algunos descubrimientos recientes sobre su obra basados en Machine Learning, puede que vuelvan a reavivar el debate entre Stratfordianos y Anti-Stratfordianos.

En concreto, un paper publicado por Petr Plecháč, de la Academia Checa de Ciencias de Praga, describe cómo utilizando Machine Learning han podido comprobar que la obra Enrique VIII (atribuida inicialmente a Shakespeare), fue en realidad el fruto de la colaboración con unos de los más famosos y prolíficos autores de la época: John Fletcher.

Segunda página de la obra Enrique VIII

Durante gran parte de su vida, Shakespeare fue el dramaturgo principal de la compañía de teatro “The King’s Men”, que solía actuar a las orillas del Támesis en Londres.

Resultado de imagen de king's men shakespeare
The King’s Men

Tras la muerte de Shakespeare en 1616 la compañía nombró como sucesor al mencionado John Fletcher.

En 1850, el analista literario James Spedding, identificó ciertos patrones que le hicieron pensar que la obra había sido escrita por ambos, o incluso por una tercera persona llamada Philip Massinger. Los patrones que identificó fueron aspectos como que Fletcher usaba a menudo ye en vez de you y ‘em en vez de them, pero nunca logró identificar qué partes específicas de la obra correspondían a cada uno.

Es esto último lo que ha podido descifrar Plecháč en su reciente estudio, al identificar a quién pertenece cada línea de la obra usando un análisis combinado de vocabulario, versificación y técnicas modernas de Machine Learning.

En su primera aproximación, Plecháč ha intentado atribuir los pasajes a cada autor utilizando un clasificador SVM (¡como los que hemos visto anteriormente!) usando como features las 500 frecuencias rítmicas principales y las 500 palabras más usadas.

Para el entrenamiento, Plecháč ha usado las obras de cada uno de los autores:

  • Shakespeare: The Tragedy of Coriolanus (5 escenas), The Tragedy of Cymbeline (27 escenas), The Winter’s Tale (12 escenas), The Tempest (9 escenas)

  • Fletcher: Valentinian (21 escenas), Monsieur Thomas (28 escenas), The Woman’s Prize (23 escenas), Bonduca (18 escenas)

  • Massinger: The Duke of Milan (10 escenas), The Unnatural Combat (11 escenas), The Renegado (25 escenas)

En la siguiente tabla se muestran los resultados y se puede ver cómo de acertado había estado el académico James Spedding en sus predicciones en 1850.

En la siguiente figura se muestra la distribución de autoría de los distintos pasajes de la obra:

Henry VIII authorship

Los resultados son muy interesantes, y dan la razón a Spedding en su análisis. El algoritmo es capaz de ir más allá y de identificar cómo la autoría no cambia solo en nuevas escenas, sino que lo hace hacia el fin de las anteriores. Como ejemplo, en la escena 2 del acto 3 (3.2) parece que hay autoría conjunta después de la línea 2081 y que Shakespeare toma el control sobre la línea 2200 (ambas líneas las podéis ver identificadas en la figura de arriba).

Este es sin duda un caso de uso maravilloso en el que se puede ver cómo estas nuevas técnicas nos pueden ayudar a indagar más en nuestro pasado literario.

Quién sabe, tal vez el Machine Learning sea capaz de zanjar para siempre el enfrentamiento entre Stratfordianos y Anti-Stratfordianos. Time will tell!

¡Gracias por leer hasta aquí! ¡Hasta pronto!


¿Te gusta The Independent Sentinel? ¡Ayúdanos a que nos conozcan compartiendo nuestras publicaciones en RRSS!

¿Quieres leer más? Puedes ver las ediciones anteriores aquí:

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

Loading more posts…