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.

The Independent Sentinel #04

CNNs, pesadillas sintéticas y futuros (¿presentes?) distópicos

¡Hola!

Soy Javier Fuentes, CEO de Akoios y esto es The Independent Sentinel, la newsletter en la que tratamos temas relacionados con la Inteligencia Artificial y la Ciencia de Datos de la manera más entendible y entretenida que nos es posible.

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

¡Suscríbete ahora!

Hoy hablaremos de las Redes Neuronales Convolucionales 🤯, de un generador de pesadillas y de los futuros distópicos que nos puede llevar a imaginar la Inteligencia Artificial.

Resultado de imagen de orwell dystopia

¡Comenzamos! 🚀


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Inteligencia Artificial 🤖

Recordando modelos, técnicas y conceptos 🤓

Reconozco que me es difícil en ocasiones recordar los detalles de la multitud de técnicas, conceptos y modelos que usamos cuando trabajamos en Data Science.

Por ello, soy un gran admirador del trabajo divulgativo de Chris Albon, un científico de datos norteamericano, autor del libro Machine Learning with Python Cookbook y el creador de las famosas Machine Learning Flashcards.

En estas “tarjetas”, Chris Albon sintetiza de forma amigable y visual todo tipo de conceptos, ideas y modelos relacionados con la Ciencia de Datos:

Es posible ver muchas de ellas en su cuenta de Twitter y, si te gustan, puedes comprar todas por sólo $12 en su web.

¡Pero esto no es todo! El bueno de Chris ha creado un repositorio tremendo de snippets de código para un montón de tareas que los científicos e ingenieros de datos se pueden encontrar en su día a día.

Ejemplo de snippet de código

Muy, muy recomendable echarle un vistazo a todo lo que hay, desde manejo de datos a modelos concretos pasando por todo tipo de técnicas de pre-procesado.

Para terminar, y por si te ha interesado el trabajo de este científico de datos, tiene hasta un podcast llamado "Partially Derivative” en el que habla de todos estos temas. 🔊 Puedes escucharlo aquí.

Modelos y Algoritmos 💻

Una Red Neuronal Convolucional (Convolutional Neural Network - CNN) es un algoritmo de Deep Learning que, partiendo de una imagen de entrada, es capaz de identificar patrones en la misma con el fin de clasificarla y diferenciarla de otras.

Uno de los aspectos más interesantes de este algoritmo es que requiere poco pre-procesado de los datos de entrada, por lo que se puede poner a funcionar de forma relativamente rápida.

Para ilustrarlo con una analogía, se podría decir que las CNNs se inspiran en el cerebro humano y, más concretamente, en la organización del córtex visual. En el córtex, las neuronas únicamente responden a los estímulos de una zona acotada denominada como campo receptivo. En nuestro cerebro, la visión se compone por una agregación de estas zonas, que es justamente como funciona a alto nivel este modelo.

Las tareas principales de una CNN son las siguientes:

1️⃣ Clasificar el contenido visual (describir “lo que se ve”),

2️⃣ Reconocer objetos y patrones (por ejemplo, ruedas, faros, puertas en un coche),

3️⃣ Agrupar los objetos reconocidos en grupos (clusters) (por ejemplo, ruedas con ruedas, faros con faros…)

En este tipo de redes neuronales (explicadas muy bien en este artículo), se incluye una capa llamada “convolucional” que nos permite explorar por zonas la imagen en búsqueda de patrones de modo que podamos predecir de qué tipo de imagen se trata.

Las siguientes imágenes dan una idea intuitiva del proceso de convolución:

Otro gran ejemplo para trabajar en nuestra intuición sobre este algoritmo se muestra en este artículo. En el mismo, se explica esta operación de convolución de una imagen con un filtro circular:

Al convolucionar la imagen de Wally con un filtro circular, el filtro responde a los ojos de manera significativa.

Si quieres entenderlo mejor, puedes echar un vistazo a este vídeo dónde explica cómo funciona una CNN de manera más detallada. ¡Recomiendo ver a partir del 4:27 dónde explica con un Excel cómo funciona la capa convolucional!

Casos de uso ⚙️

Una de las aplicaciones más típicas del Machine Learning es la del reconocimiento o clasificación automatizada de objetos en imágenes que, como seguro ya estás intuyendo, se hace de forma habitual usando los algoritmos CNN que acabamos de ver.

Entre los casos de uso, cabe destacar el gran impacto del uso de este tipo de algoritmos (y en general todo lo relacionado con la Visión Artificial) en multitud de ámbitos:

  • Reconocimiento de imágenes y OCR

  • Detección de objetos para vehículos autónomos

  • Reconocimiento facial

  • Detección de tumores y lesiones

👉 Por si no lo sabías, en Akoios nos dedicamos a crear tecnología para que poner en productivo todo tipo de modelos AI/ML, sea una labor más sencilla, ágil y eficaz de lo que es ahora. Puedes saber más visitando nuestra web o agendando una reunión conmigo directamente.

🎃 👻🕯️Halloween BONUS 🦇🕷️⚰️

Aprovechando las fechas en las que estamos hablaremos hoy sobre una divertida iniciativa del MIT Media Lab llamada “The Nightmare Machine” (La máquina de pesadillas) en la que están utilizando el Machine Learning para generar imágenes terroríficas.

En su web, se pueden ver desde “Haunted Faces” (Caras encantadas) hasta “Haunted Places” (Lugares encantados).

Parte de lo divertido de la iniciativa es que son los propios usuarios los que están entrenando la red. ¡Si no te da miedo, puedes hacer tu aportación aquí!

Respecto a los sitios encantados, han conseguido transformar edificios de partida mediante algoritmos ML según diversos estilos: Fright Night, Slaughter House, Toxic City, Ghost Town, Inferno, Tentacle Monster y Alien Invasion.

Aquí podéis ver el Coliseo de Roma con un estilo que parece sacado de una novela de Lovecraft:

Cthulhu “El Impronunciable” aparecerá de un momento a otro

Y aquí, el Palacio Real de Madrid con el estilo Inferno:

Imagen Original del Palacio Real
Imagen después del algoritmo
Distintas fases de transformación

2. Historias 📔

La Inteligencia Artificial y los futuros distópicos

Siguiendo en la línea del reconocimiento de imágenes, seguro que has visto imágenes en las últimas semanas de las recientes revueltas e incidentes en Hong Kong.

En estas imágenes, te habrá llamado la atención de la multitud de "láseres" usados por los manifestantes.

Cómo se ve en el vídeo, los manifestantes están usando estos láseres para evitar las cámaras de reconocimiento facial en una suerte de ciber-guerra (que no ha hecho más que comenzar) contra la Inteligencia Artificial China.

Los láseres son solo el principio, en esta investigación llevada a cabo por un centro de investigación de Huawei en Moscú, se detalla cómo engañar a un conocido algoritmo de detección facial.

Usando dos pegatinas que parecen un código QR deformado, se puede hacer caer la tasa detección del algoritmo un 95% cuando se ponen en la cara de una persona.

Fuente: Klim Kireev/YouTube

Al ver todo esto, es difícil no pensar en futuros distópicos para nuestras sociedades, más aún cuando estos posibles futuros han estado muy presentes en el imaginario colectivo desde que John Stuart Mill acuñó el término distopía en una intervención parlamentaria en 1868.

Pese a que el término data de finales del siglo XIX, no fue hasta los años 20 del siglo XX cuando esta idea comenzó a ser más conocida. Se dice que fue la novela “Nosotros” de Yevgeny Zamyatin la que dio comienzo a este género literario (si es que se puede llamar así) en 1921.

Resultado de imagen de Yevgeny Zamyatin"

Nosotros surge a partir de las vivencias del autor en la Rusia de antes y de después de la Revolución de 1917 y describe una sociedad futura donde la vigilancia y represión por parte del Estado es total.

La novela de Zamyatin influyó de manera muy importante en dos de las novelas distópicas más conocidas, Un Mundo Feliz de Aldous Huxley y 1984 de George Orwell, ambas influenciadas por la sombra de la Guerra Mundial.

¡Ya estás tardando en leer estos dos libros si es que aún no lo has hecho!

Viajando en el tiempo 70 años hasta nuestros tiempos, se puede ver que, pese a todos los avances que nos ha permitido realizar la tecnología (y que nos seguirá permitiendo) hay algunos aspectos relacionados con la hiper-vigilancia que posibilita la IA, que nos recuerdan a estos futuros poco deseables que se plantearon hace más de medio siglo.

En este vídeo, se muestra el estado actual del reconocimiento facial en China y cómo, lo que se vende como una utopía de atención personalizada, eficiencia y automatización, se podría convertir de forma súbita en una pesadilla distópica Orwelliana (si es que no lo es ya).

Aunque sea ingenuo negar los peligros del uso de la IA para el control y la vigilancia extrema, esto no debe ser un impedimento para seguir trabajando en todo aquello que Inteligencia Artificial puede ofrecernos para vivir mejor en muchos sentidos y para todos (incluso a aquellos más desfavorecidos) sin necesidad de menoscabar las libertades individuales.


Para finalizar, y como lectura para estos días aprovechando que comienza la campaña electoral, os recomiendo la lectura de un divertido cuento de Isaac Asimov de 1955 titulado "Sufragio universal".

Resultado de imagen de franchise asimov

En este relato, que tiene lugar avanzado el siglo XXI, las elecciones se realizan mediante una supercomputadora llamada Multivac, capaz de tener en cuenta los deseos e intereses de todos los habitantes. sin necesitar más que la ayuda de un humano, un único votante.

Gracias por leer hasta aquí, ¡feliz puente!

Bye Bye Goodbye GIF by GIPHY Studios Originals


¿Estás disfrutando The Independent Sentinel? ¡Ayúdanos a llegar a más gente compartiendo nuestra publicación en RRSS!

¿Te has perdido los números anteriores? Puedes leerlos aquí:

👉 Si quieres saber más sobre nuestra tecnología, te recomiendo echar un vistazo a nuestra nueva serie de tutoriales en Medium.

The Independent Sentinel #03

Interpretación de modelos, GANs y luditas del siglo XXI

¡Hola!

Bienvenido a una nueva edición The Independent Sentinel, la newsletter de Akoios en la que hablamos de Inteligencia Artificial, Machine Learning y Ciencia de Datos entre otras cosas.

¿Aún no estás suscrito? ¡Hazlo ahora!

¡Suscríbete ahora!

Hoy vamos a hablar de cómo interpretar modelos, las redes generativas antagónicas (¡que nadie se asuste!) y el eterno debate sobre la tecnología y su utilización.

Here we go!


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Inteligencia Artificial 🤖

Interpretando los modelos de Machine Learning 🤔

Cuando estamos usando modelos de IA/ML, no siempre es fácil saber qué se está computando y qué pasos está dando el algoritmo a la hora de obtener un resultado.

Esta dificultad para interpretar cómo esta funcionando un determinado modelo es una de las razones que está retrasando la adopción del Machine Learning en los negocios.

Podríamos decir que hay dos tipos de modelos de Machine Learning:

1️⃣ El primer tipo son los modelos black box (caja negra). En estos tipo de modelos, es difícil determinar de forma clara las razones por las que el algoritmo proporciona una decisión.

2️⃣ El segundo tipo son los modelos transparentes, en los que hay un razonamiento claro detrás de las decisiones que un algoritmo toma.

Por lo general, los modelos transparentes son más difíciles de construir pero éstos son preferibles en múltiples dominios (salud, ámbito legal, banca…)

Imaginemos por ejemplo un banco que utiliza un sistema que se apoya en IA/ML para la concesión de créditos a sus clientes.

¿Cómo poder explicarle a un cliente las razones de porqué no se le han concedido un préstamo si nadie sabe (¡ni la persona que haya desarrollado el modelo!) cuál ha sido el criterio?

Un caso típico de modelo black box son las Deep Neural Networks, dónde harían falta millones de números y operaciones para poder describirla y, aun así, seguramente tampoco seríamos capaces de entender de forma precisa su comportamiento.

La regresión logística o los árboles de decisión (decision trees), por ejemplo, son un ejemplo de modelo transparente ya que tienen una fácil interpretación o “explicabilidad”.

Cabe destacar que, pese a que lo ideal sería tender hacía modelos transparentes, lo cierto es que en términos de rendimiento y resultados, son los modelos black-box los que mejor están funcionando. Y no solo eso, sino que, si nos fijamos en las competiciones de Kaggle, se ve que cada vez más, los modelos ganadores son aquellos que mezclan diversas técnicas (esto se suele llamar “ensembles”) que hacen aún más difícil e intrincada la “explicabilidad” del modelo.

Cristoph Molnar, un científico de datos alemán ha escrito un interesante libro a este respecto llamado “Interpretable Machine Learning

En el libro, el autor habla de forma detallada cómo interpretar (o al menos intentarlo), todo tipo de modelos, desde una regresión lineal hasta redes neuronales. Además, explica técnicas de interpretación y métodos aplicables para explicar los modelos.

The big picture of explainable machine learning. The real world goes through many layers before it reaches the human in the form of explanations.


Modelos y Algoritmos 💻

Las GAN (Generative Adversarial Network) son arquitecturas de redes neuronales utilizadas para hacer “modelado generativo”. ¿Qué es esto del “modelado generativo”?

El “modelado generativo” consiste en usar un modelo que permita generar nuevas muestras de una determinada distribución como, por ejemplo, generar nuevas imágenes que guarden cierta similitud con un conjunto de fotografías de partida.

Veamos más en detalle cómo funcionan las GANs. De forma muy resumida, las GANs son un modelo generativo que se entrena usando dos modelos de redes neuronales distintas. Uno de los modelos es llamado “generator” o “generative network” y es el encargado de crear nuevas muestras plausibles. El otro modelo es el denominado “discriminator” o “discriminative network” y es el que aprende a diferenciar las muestras generadas (e.g. fotos generadas) de muestras reales (e.g. fotos reales).

Imagen extraída del blog de Luis Herranz

A estos dos modelos, se les hace competir en un juego (en el sentido de la teoría de juegos) dónde el modelo generador trata de engañar al modelo discriminador.

Una vez entenada, ¡una GAN será capaz de crear nuevas muestras bajo demanda indistinguibles de las muestras de entrenamiento!

El conocido investigador Yann Lecun se refirió a las GANs como:

“the coolest idea in machine learning in the last twenty years.”

Casos de uso ⚙️

Siguiendo con las GANs, hay multitud de aplicaciones que nos pueden ayudar a intuir qué tipo de cosas se pueden hacer con estos modelos.

Generación de muestras para datasets de imágenes

En el paperGenerative Adversarial Networks” (Ian Goodfellow, et al. 2014), se describe cómo se usaron GANs para generar muestras “plausibles” para conocidos datasets como MNIST (números escritos a mano), CIFAR-10 (pequeñas fotografías de objetos) o la Toronto Face Database.

Generación sintética de caras humanas

Esta aplicación ha tenido mucha repercusión y ha sido mencionada en diversos medios de comunicación. En el paper Progressive Growing of GANs for Improved Quality, Stability, and Variation (Tero Karras, et al. NVIDIA, 2017) se demuestra cómo es posible generar caras artificiales. En este caso, se usaron para el entrenamiento caras de famosos, por lo que es posible ver rasgos familiares. La verdad es que los resultados son realmente notorios:

Lo mejor de todo es lo rápido que han evolucionado las GANs para conseguir resultados que, a día de hoy, son difícilmente distinguibles de la realidad:

Realmente, todo lo contado arriba es sólo el principio. Seguro que habéis oído hablar de los DeepFakes u os han enseñado aplicaciones polémicas como FakeApp o faceswap, aplicación esta última que genera inquietantes resultados:

¡Detrás de todo esto no hay otra cosa que GANs!

En los últimos meses, un artista conocido por el pseudónimo de Ctrl Shift Face (Youtube, Reddit) esta liberando vídeos con resultados increíbles. Mejor verlo:

En este vídeo se muestra a Jim Carrey “intercambiado” con Jack Nicholson en El Resplandor.

En este otro ejemplo, la cara de Bill Hader (un famoso imitador) cambia de forma imperceptible a la cara de Arnold Schwarzenegger cuando éste imita su voz:

Si deseas saber más sobre todo esto, puedes echar un vistazo a la herramienta DeepFaceLab (GitHub) que se está usando para todo esto.

Otro usos de las GANs

Además de todo lo visto, las GANs tienen todavía más usos como puedes ver en este fantástico artículo de Jason Brownlee.

En fin, what a time to be alive!

2. Historias 📔

Las rebeliones contra las máquinas

En el siglo XIX, durante la Revolución Industrial, muchos trabajadores vieron empeorar sus condiciones laborales y de vida debido a la creciente utilización de maquinaria industrial.

Lo cierto es que muchos trabajadores cualificados y de clase media en aquellos tiempos, vieron cómo la aparición de las máquinas hizo que comenzasen a ser sustituidos por trabajadores menos cualificados y con menor salario.

En respuesta a este fenómeno apareció el movimiento ludita, conocido por los sabotajes y la destrucción de aquellas máquinas que consideraban sus enemigas:

El nombre ludita tiene supuestamente como origen a Ned Ludd, un joven aprendiz del que se rumoreaba que había comenzado a destruir telares en 1779. No hay evidencias de la existencia de este tal Ludd, que se acabo convirtiendo en un líder mítico a lo Robin Hood. Abajo un dibujo de Ned Ludd:

Por todo esto, ludita es actualmente la palabra que usamos para referirnos a todas esas personas que aborrecen la tecnología.

La Historia, con su naturaleza algo cíclica, nos ha traído luditas de forma recurrente que se han ido oponiendo de forma sistemática a los avances tecnológicos. El discurso neoludita resurge de forma regular con cada nueva tecnología y la Inteligencia Artificial no iba a ser menos.

En concreto, el temor a la IA/ML se fundamenta en la capacidad de estas nuevas tecnologías para automatizar tareas que, como siempre, eran llevadas a cabo hasta el momento por humanos.

El economista e historiador Carl Benedikt Frey aporta su visión sobre el impacto de la tecnología en el trabajo en este breve e interesante vídeo:

En nuestros tiempos, y en lo relativo a la Inteligencia Artificial, el histórico debate sobre nuestras relación con las máquinas ha alcanzado un nuevo nivel. Esto es debido en gran medida, a lo difícil que es predecir cómo evolucionará la Inteligencia Artificial, cuál será su impacto en el medio-largo plazo o si incluso será algo que pueda escapar de nuestro control (¡cómo no pensar en Hal 9000 o Skynet!)

Como ejemplo de este complejo debate, seguramente recordareis la polémica entre Elon Musk y Mark Zuckerberg a este respecto.

Elon Musk que, según sus palabras, está muy cerca de los avances de la IA, se ha mostrado impresionado -y a la vez temeroso- de lo que la IA puede hacer ya y, sobre todo, de lo que podrá hacer. Por ello, Musk se muestra muy cauteloso sobre los avances en IA y propone regular de forma temprana todo lo relacionado con este ámbito para evitar perder el control.

En cambio, Zuckerberg tiene una visión más optimista acerca de cómo la IA puede ayudar a los humanos en el corto plazo en temas de salud (mejores diagnósticos), transporte (menos accidentes) y muchos otros aspectos. Mark Zuckerberg llegó a llamar "irresponsable” a Elon Musk por su visión tan fatalista sobre el futuro de la IA.

La respuesta de Elon a Mark no se hizo esperar 🥊:

En el siguiente vídeo se resumen las posiciones y el enfrentamiento entre estos dos gigantes de la tecnología (¡aparece también Bill Gates hablando dando su opinión sobre el tema!).

Ray Kurzweil (¡del que hablaremos otro día!) tiene una posición “intermedia” sobre el asunto, dónde percibe riesgos y beneficios:

Como bien cuenta en el vídeo, todo esto no es nuevo:

Technology has been a double-edged sword ever since fire and stone tools.

Sin entrar a discutir las posiciones de cada uno, creo que hay una conclusión clara: Tenemos que hacer todo lo que esté en nuestra mano para usar la tecnología para buenos fines y, en paralelo, gestionar, controlar e intentar solventar sus peligros y “downsides”.

Es nuestra obligación como especie y sirve a nuestro propósito común: sobrevivir, trascender nuestras limitaciones y expandirnos. Es lo que los humanos siempre hemos hecho, ¿no?

¡Hasta pronto!


¿Estás disfrutando The Independent Sentinel? ¡Ayúdanos a llegar a más gente compartiendo nuestras publicaciones en RRSS!

¿Te has perdido los números anteriores? Puedes leerlos aquí:

The Independent Sentinel #02

Bayes, robots que hacen música y la máquina más inútil del mundo

¡Hola!

Estás leyendo The Independent Sentinel, la newsletter que hacemos en Akoios mientras ayudamos a las empresas a implantar de forma efectiva el Machine Learning en sus negocios.

¿Aún no estás suscrito? ¡Hazlo ahora!

¡Suscríbete ahora!

3,2,1… ¡Comenzamos!


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Inteligencia Artificial 🤖

El Teorema de Bayes: El Santo Grial de la Ciencia de Datos 🏆

La incertidumbre es algo que los humanos siempre hemos tratado mitigar ya que nos obliga a tomar decisiones con información incompleta.

La herramienta que hemos venido utilizando para enfrentarnos a la (natural) incertidumbre del universo es la teoría de la probabilidad, un campo de las matemáticas dedicado a cuantificar y entender esta incertidumbre.

Aún a día de hoy, hay dos interpretaciones distintas de la probabilidad, la Frecuentista y la Bayesiana -de la que hablaremos hoy-. ¡En una próxima edición hablaremos del dilema entre frecuentistas y bayesianos!

Seguro que muchos habréis estudiado o al menos habréis oído hablar del Teorema de Bayes enunciado por el reverendo Thomas Bayes y publicado de forma póstuma en 1763

El Teorema de Bayes es muy importante en el ámbito de la Ciencia de Datos, entre otras cosas, por aplicaciones como la llamada inferencia Bayesiana, que nos permite actualizar la probabilidad de una hipótesis según vamos disponiendo de más información, ¡justamente en lo que consisten los algoritmos de aprendizaje máquina!

Si estás interesado en comprender la estadística Bayesiana, te recomiendo leer el libro Think Bayes de Allen B. Downey que puedes descargar clickando en la imagen:

Lo que me encanta de este libro y de toda la serie “Think” del autor es que usa la programación como herramienta de aprendizaje. Él mismo lo resume muy bien al comienzo del libro:

The premise of this book, and the other books in the Think X series, is that if you know how to program, you can use that skill to learn other topics.

Most books on Bayesian statistics use mathematical notation and present ideas in terms of mathematical concepts like calculus. This book uses Python code instead of math, and discrete approximations instead of continuous mathematics. As a result, what would be an integral in a math book becomes a summation, and most operations on probability distributions are simple loops.

Además, está disponible todo el código de cada capítulo en Notebooks para poder ejecutarlo rápidamente, ¡una auténtica maravilla para ponerse a aprender rápidamente!

Casos de uso ⚙️

Muchos esperábamos que la relación entre los robots y la música fuesen androides tipo Terminator tocando como una banda de Rock:

Mientras esperamos a que llegue este momento, se están realizando increíbles avances en la síntesis artificial de composiciones musicales.

En MuseNet, una iniciativa arrancada por OpenAI, han creado una Red Neuronal Profunda (Deep Neural Network) capaz de generar composiciones de 4 minutos combinando 10 instrumentos y combinando estilos (Mozart y los Beatles por ejemplo).

Lo maravilloso de todo esto es que MuseNet no se programó de forma explicita para esta labor, sino que ha sido capaz de encontrar patrones de armonía y ritmo de forma no supervisada, adquiriendo la capacidad de predecir cual es la siguiente nota o notas a tocar en la composición y de mezclar estilos de forma convincente.

Para muestra, un botón:

En esta composición, al modelo se le proporcionaron las 6 primeras notas de un Nocturno de Chopin y se le pidió generar una pieza pop con piano, batería, bajo y guitarra. ¡Ojo al segundo 32 en el que entra toda la banda!

Concretamente, este modelo usa una red neuronal de 72 capas y ha sido alimentada con diversas fuentes de ficheros MIDI como ClassicalArchives y BitMidi.

Modelos y Algoritmos 💻

Siguiendo con Bayes, un modelo muy conocido es el conocido como “Naive Bayes”. Un modelo “Naive Bayes” es un modelo de machine learning probabilístico usado frecuentemente para tareas de clasificación.

En este artículo, explican de manera muy entendible cómo funciona este conocido modelo.

Estos algoritmos son comúnmente usados en sentiment analysis, detección de spam, sistemas de recomendación, etc. ya que son rápidos y sencillos de implementar.

Su única desventaja es que da por supuesto que todos los predictores son independientes, de ahí el “naive” del nombre. ¡En la vida real las variables que manejemos serán casi siempre dependientes en algún grado!

👉 Si te estás preguntando cómo podrías poner a funcionar de forma productiva modelos como este o similares, escríbenos o agenda una demo y te contamos cómo te podríamos ayudar 😉

2. Historias 📔

Marvin Minsky, Claude Shannon y la máquina más inútil del mundo

El 24 de Enero de 2016, moría en Boston a los 88 años Marvin Minsky, considerado por muchos como uno de los padres de la Inteligencia Artificial. Minsky realizó múltiples aportaciones en ciencia cognitiva y ciencias de la computación y reflexionó sobre la relación entre la Inteligencia Artificial y la filosofía.

Si tienes tiempo, te recomiendo ver esta entrevista realizada en 2004 dónde hablaba sobre el futuro de la Inteligencia Artificial:

Minsky fue uno de los fundadores del laboratorio de Inteligencia Artificial del MIT. Destacar que, en este laboratorio, se forjó en gran medida la cultura hacker y, debido al entorno de libertad que Minsky generó en el mismo, creo las bases del movimiento Open Source, tal y como se puede ver en la carta de despedida que se le dedicó en opensource.com:

Along with his impressive intellectual achievements, he left a legacy of the seeds of open source. He inspired his students to experiment with early computers, and they did so with an enthusiasm that bordered on mania. He encouraged development of games and play with what were then fantastically expensive machines.

En 1969, ganó el prestigioso Turing Award, el galardón más importante en ciencias de la computación y, por si fuera poco, Minsky asesoró al mismísimo Stanley Kubrick en el rodaje de la extraordinaria 2001: Una odisea en el espacio en 1968, una película que sin duda merecería una edición exclusiva de esta newsletter.

Como nota curiosa, uno de los personajes, Victor Kaminsky, es nombrado así en su honor.

Resultado de imagen de 2001 space odyssey hal 9000
HAL 9000: "I'm sorry Dave, I'm afraid I can't do that"

Pero no es de todo esto de lo quería hablar, sino de la que seguramente sea su creación más conocida y a la vez más (in)útil: “The useless machine”.

Es sabido que Minsky dedicaba parte de su tiempo en los laboratorios Bell a inventar gadgets inútiles o absurdos, como por ejemplo una campana que sonaría si, en algún momento, la fuerza de la gravedad cambiase.

En este laboratorio, una de sus ideas, cautivó a unos de sus compañeros, el famoso Claude Shannon (¡del que hablaremos también otro día!) que se decidió a construirla.

La idea era sencilla: construir una máquina cuyo único propósito fuese apagarse a sí misma.

Shannon construyó la máquina con un cofre, una prótesis, un compresor y un cilindro neumático. El funcionamiento era sencillo, cuando se pulsaba el botón “ON”, se abría el cofre y la mano apagaba de nuevo la máquina.

Aquí se puede ver una máquina de este tipo en funcionamiento:

Los laboratorios Bell recibían visitas de forma recurrente y uno de sus visitantes más asiduos era el gran Arthur C. Clarke, uno de los pioneros de la Ciencia-Ficción. Clarke quedó impresionado con la máquina que Shannon había construido y escribió lo siguiente sobre la misma en uno de sus libros:

Nothing could be simpler. It is merely a small wooden casket, the size and shape of a cigar box, with a single switch on one face. When you throw the switch, there is an angry, purposeful buzzing. The lid slowly rises, and from beneath it emerges a hand. The hand reaches down, turns the switch off and retreats into the box. With the finality of a closing coffin, the lid snaps shut, the buzzing ceases and peace reigns once more. The psychological effect, if you do not know what to expect, is devastating. There is something unspeakably sinister about a machine that does nothing — absolutely nothing — except switch itself off.

Como bien dice Clarke, hay algo inquietante y siniestro en una máquina que no hace nada excepto apagarse a sí misma.

Hay que gente que piensa que Minsky solo pretendía hacer un chiste sofisticado, pero yo creo que hay algo de trasfondo filosófico en todo esto. The Useless Machine es un dispositivo que tiene una función pero ningún propósito. Quién sabe, puede ser que Minsky nos estuviese lanzando una pregunta:

¿De qué sirve una función si no se tiene un propósito?

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

Puedes leer la edición anterior aquí. Si te ha gustado, spread the word!

The Independent Sentinel #01

por Javier Fuentes, CEO @ Akoios

¡Hola!

Antes de nada, muchas gracias por tu interés en nuestra newsletter.

Soy Javier Fuentes, CEO de Akoios, una empresa que proporciona soluciones de Inteligencia Artificial y Machine Learning para compañías de todo tipo.

En esta newsletter, hablaremos sobre Inteligencia Artificial, Ciencia de Datos y Computación entre muchas otras cosas. Quiero compartir curiosidades, reflexiones y aprendizajes para conocer mejor este mundo.

¡Bienvenido a esta primera edición de The Independent Sentinel! Y si aún no lo has hecho:

¡Suscríbete ahora!


🎼  ¿Quieres banda sonora? ¡Dale al Play!


El origen del nombre 🕵️

Una de las películas que más me marcó en mi infancia, y que aún sigue estando entre mis favoritas, fue Blade Runner. Me atrevo a decir que de esta película nace mi interés tanto por la Inteligencia Artificial como por la Ciencia-Ficción.

Si alguien se acuerda, The Independent Sentinel es el nombre del periódico que aparece leyendo Deckard en la película, de ahí el nombre de esta newsletter.

Si os fijáis en la imagen, se pueden ver los dos titulares de ese día en el periódico:

  • Farming the oceans, the moon and antarctica

  • “World Wide Computer Linkup Planned”

Mención especial al segundo titular, ¡la película fue lanzada en 1982 y lo que conocemos como la World Wide Web no llegaría hasta 1989! Una predicción digna de Julio Verne.

Casualmente, la película transcurre en un Los Angeles distópico en 2019, así que, aunque todavía no tenemos coches voladores, por lo menos nos hemos adelantado 30 años a esa red de ordenadores interconectados que preveía Ridley Scott en la película.

¡Comenzamos!


1. Inteligencia Artificial 🤖

Ways to think about machine learning

En este brillante artículo, Ben Evans de a16z, nos da las claves sobre cómo entender de manera adecuada el machine learning y su impacto en la sociedad y en la economía.

En contraposición con todo lo que se oye en los medios relativo a la Inteligencia Artificial (Los datos son el nuevo petróleo, Google y Facebook tienen todos los datos, La IA eliminará millones de puestos de trabajo…), Ben Evans propone centrar la discusión en términos más relevantes:

  • Automation

  • Enabling technology layers

  • Relational Database

Me resulta especialmente interesante el paralelismo que establece entre las bases de datos relacionales y el machine learning:

Databases were record-keeping systems; relational databases turned them into business intelligence systems. 

This changed what databases could be used for in important ways, and so created new use cases and new billion dollar companies. Relational databases gave us Oracle, but they also gave us SAP, and SAP and its peers gave us global just-in-time supply chains - they gave us Apple and Starbucks. By the 1990s, pretty much all enterprise software was a relational database (…) this technology became an enabling layer that was part of everything.

So, this is a good grounding way to think about ML today - it’s a step change in what we can do with computers, and that will be part of many different products for many different companies. Eventually, pretty much everything will have ML somewhere inside and no-one will care

Recomiendo leer el artículo completo pero, si no tienes tiempo, aquí va un breve resumen:

  • Machine learning may well deliver better results for questions you're already asking about data you already have, simply as an analytic or optimization technique.

  • Machine learning lets you ask new questions of the data you already have. For example, a lawyer doing discovery might search for 'angry’ emails, or 'anxious’ or anomalous threads or clusters of documents, as well as doing keyword searches,

  • Machine learning opens up new data types to analysis - computers could not really read audio, images or video before and now, increasingly, that will be possible.

Casos de uso ⚙️

Tiempos de entrega en UBER Eats: En UBER hacen un uso intensivo de machine learning para realizar todo tipo de predicciones, entre ellas, estimar el tiempo estimado de entrega (Estimated Delivery Time), teniendo en cuenta multitud de variables del pedido (ubicación, hora del pedido), históricas (tiempo medio de preparación de comida en la última semana e incluso de tiempo real (tiempo de preparación medio en la última hora o estado actual del tráfico).

En UBER, utilizan su propia plataforma llamada Michelangelo para gestionar extremo a extremo la gestión de los modelos desde su creación hasta la puesta en productivo. 

👉 Si te interesan este tipo de plataformas, ponte en contacto con nosotros, ¡es justamente lo que hacemos en Akoios!

El motor de recomendación de Amazon: Amazon lleva desde sus comienzos trabajando de forma obsesiva en su motor de recomendación. Según un estudio de McKinsey, a día de hoy el 35% de las ventas de Amazon se originan mediante recomendación algorítmica. En este artículo de 2003, se detalla cómo y por qué Amazon ha utilizado la conocida técnica “Item-to-Item Collaborative Filtering” para su recomendador:

For large retailers like Amazon.com, a good recommendation algorithm is scalable over very large customer bases and product catalogs, requires only subsecond processing time to generate online recommendations, is able to react immediately to changes in a user’s data, and makes compelling recommendations for all users regardless of the number of purchases and ratings. Unlike other algorithms, item-to-item collaborative filtering is able to meet this challenge.

Modelos y Algoritmos 💻

Entendiendo las Redes Neuronales desde cero, un fantástico vídeo del ma-ra-vi-llo-so canal de YouTube 3Blue1Brown en el que explica, sin necesidad de conocimientos avanzados, en qué consisten las redes neuronales.

Os aseguro que merece la pena ver todos y cada uno de los vídeos publicados por Grant Sanderson, es capaz de explicar de manera visual y sencilla conceptos matemáticos complejos ¡Ojalá nos hubiesen contado todo así en la universidad!

Collaborative Filtering: En línea con el motor de recomendación de Amazon, en este artículo se detalla de forma muy didáctica, como construir motores de recomendación con este algoritmo.

2. Historias 📔

A Book from Alan Turing… and a Mysterious Piece of Paper

Hace unos días me topé con una fantástica historia escrita por Stephen Wolfram (CEO de Wolfram Research y creador de Mathematica) en el que cuenta maravillosamente cómo llegó a sus manos un libro propiedad de Alan Turing en el que encontró una misteriosa nota manuscrita:

Aparte de profundizar en el contenido de la nota (cálculo lambda y combinadores, conceptos de teoría de la computación), el texto es especialmente interesante por la investigación detectivesca que Wolfram realiza hasta llegar al origen de la nota.

Un par de curiosidades, de entre las muchas que se pueden encontrar en el texto:

  • El cálculo lambda es considerado como el lenguaje universal de programación más pequeño y que ha servido de base para la creación de lenguajes funcionales como LispML y Haskell.

  • He descubierto el porqué del nombre Y Combinator de la famosa aceleradora de startups:

In modern times, the Y combinator has been made famous by the Y Combinator startup accelerator, named that way by Paul Graham (who had been a longtime enthusiast of functional programming and the LISP programming language—and had written an early web store using it) because (as he once told me) “nobody understands the Y combinator”. (Needless to say, Y Combinator is all about avoiding having companies go to fixed points…)


¡Esto es todo! Gracias por leer hasta aquí la primera edición de “The Independent Sentinel

Si te ha gustado, ¡compártela!

¡Hasta pronto!

Loading more posts…