Por Nacho Palou — 28 de Julio de 2017

En este vídeo sistema de inteligencia artificial Pic2Recipe del MIT deduce cuál es la receta de unas galletas de azúcar que aparecen en una foto.

Pic2Recipe (de foto a receta) dispone de una enorme base de datos de fotografías de comida y otra con más de un millón de recetas. Así es como el desarrollo de aprendizaje máquina la red neuronal “aprende” a relacionar fotos con recetas. De modo que cuando ve una foto es capaz de identificar la presencia de ingredientes, como huevos, harina o mantequilla y a partir de ahí sugerir con cierta probabilidad a qué receta corresponde. En el ejemplo del vídeo el sistema identifica correctamente 8 ingredientes de 11.

El desarrollo se presentará en la conferencia sobre reconocimiento de patrones y visión artificial y en él han colaborado investigadores españoles. Según los expertos, lo más destacable es que el método funciona de forma similar a como lo hace el juicio humano.

“Las aparentemente inútiles fotografías de comida que inundan las redes sociales pueden servir para obtener pistas valiosas acerca de las preferencias dietéticas y de los hábitos alimenticios de la gente”, dice uno de los autores. De modo que tal vez desarrollo así dará sentido al gesto de fotografiar comida: a partir de esa foto la aplicación del MIT proporcionará y registrará la información nutricional con bastante exactitud para aquellos que deseen o necesiten hacer un seguimiento de lo que comenta. Además, bastará con fotografiar la comida de un restaurante para saber cómo preparar ese mismo plato después, en casa.

La aplicación se puede probar en la web Pic2Recipe!

Compartir en Flipboard  Compartir en Facebook  Tuitear
Por @Alvy — 22 de Julio de 2017

Decoding Enigma RNN

Sam Greydanus, un físico que investiga sobre aprendizaje profundo (deep learning) y neurociencia explica cómo se puede crear una red neuronal recursiva (RNN) para descifrar mensajes cifrados por la famosa máquina Enigma que utilizaron los alemanes durante la Segunda Guerra Mundial.

Durante la Segunda Guerra Mundial el criptoanálisis de la máquina Enigma fue una auténtica proeza casi sobrehumana que requirió el trabajo de las mejores mentes de la época, como la de Alan Turing. Miles de matemáticos, criptólogos e ingenieros que resolvieron el problema y de paso crearon los que fueron los precursores de los ordenadores actuales. Todo ello está contado en Codebreakers: The Inside Story of Bletchley Park y muchos otros libros y películas. Es interesante que en el Siglo XXI esa tarea sea prácticamente un proyecto de «hacking casero» que se puede completar en un fin de semana, lo cual nos da una idea de cómo han avanzado los tiempos.

Con la llegada del aprendizaje automático todo esto está cambiando nuevamente. El criptoanálisis clásico resulta anacrónico; de hecho toda la complejidad de la máquina Enigma con sus rotores y claves secretas pasa a un segundo plano. Tal y como explica Greydanus en Decoding the Enigma with Recurrent Neural Networks simplemente se aplica la regla criptográfica de la «caja negra», según la cual da igual saber cómo funciona el algoritmo original si una simulación creada por el criptólogo puede obtener los mismos datos de salida para los mismos datos de entrada. En la práctica, de hecho, ni siquiera es necesario que esto funcione el 100% de las veces.

Para afinar el modelo primero se generaron textos de prueba con un simulador de Enigma para alimentar a la red neuronal recursiva con equivalencias del tipo texto cifrado de salida = f(texto de entrada). La RNN funcionaba sobre una GPU k40 y mostró resultados llegando hasta un millón de pasos con 3.000 unidades de LSTM («gran memoria de corto plazo»). El resultado fue que este modelo puede descifrar correctamente mensajes con un 96% de precisión. El código está en Github: crypto-rnn.

Lo relevante del asunto es que el modelo lo hace solo a partir de datos de entrada y de salida: no necesita saber cómo funciona la máquina internamente y –lo cual es también muy interesante– no hace falta que esos textos sean reales o tengan sentido. (Normalmente los criptógrafos buscan patrones y frecuencias en los textos originales para utilizarlos en el descifrado.) Vuelve a repetirse aquí esa idea de que las inteligencias artificiales se comportan como tales pero ni ellas ni muchas veces sus creadores sabemos muy bien qué están haciendo.

Tal y como añade al final, el Santo Grial de esta idea sería descifrar contenidos cifrados con el algoritmo RSA. La máquina Enigma es un buen reto, pero ya no se usa ni sirve para nada práctico. RSA en cambio sigue siendo el método por el que nos comunicamos por Internet de forma segura y también el que usamos para las transacciones y el comercio electrónico.

Por desgracia (o por suerte) el problema criptográfico del RSA es que emplea operaciones matemáticas diseñadas específicamente para ser difíciles de resolver, algo que probablemente queda fuera del alcance incluso de estas redes neuronales. En otras palabras: estaríamos pidiendo a la máquina que descubriera cómo factorizar números pseudoprimos sumamente grandes, algo que sabemos que es difícil y ha escapado del análisis de los matemáticos durante décadas.

Compartir en Flipboard  Compartir en Facebook  Tuitear
Por @Alvy — 21 de Julio de 2017

Machine learning lang10

Python, R, Java, JavaScript y C.

Al igual que en los 10 lenguajes más populares de programación que selección IEEE Spectrum a partir de una decena de fuentes, esta lista de Jean-François Puget de IBM, que procede de las búsquedas en Indeed.com sobre machine learning y data science permite hacerse una idea de cómo ha evolucionado el interés por cada uno de ellos.

En los clásicos del Top #5 aparece el R, muy orientado al análisis estadístico y al final de la lista están Julia, Scala y Lua. Quien esté interesado en el aprendizaje automático hará bien en echarles un vistazo.

Hay más detalles sobre cada uno de los lenguajes y cómo se adecuan a la programación para aprendizaje automático o al trabajo de los científicos de datos en el artículo original: The Most Popular Language for Machine Learning is (traducido al español en el blog Technologies Running).

Relacionado:

Libros para aprender más:

Compartir en Flipboard  Compartir en Facebook  Tuitear
Por @Alvy — 18 de Julio de 2017

Este Obama sintetizado se presentó en el festival SigGraph 2017; es una creación de investigadores de la Universidad de Washington. Se trata básicamente de una recreación: un doble digital que dice cosas que nunca se dijeron, con el movimientos de los labios perfectamente sincronizado.

Es difícil distinguir si estos vídeos son auténticos o falsos, del mismo modo que cada vez somos más engañados por los rostros artificiales de las películas. Falsear el audio es relativamente fácil si se tiene un archivo suficientemente grande y de calidad (y para el caso de los políticos o personajes públicos parece algo viable). Pero aun así el realismo conseguido tiene mucho método.

Para crear el vídeo se utiliza una imagen real a la que se superpone el audio deseado (falseado) que se ha construido a partir de un texto. Dado que el movimiento de los labios no coincidiría con el original se elimina la boca y se «superpone» una especie de máscara en esa zona con un nuevo movimientos de los labios creado en 3D – algo parecido a lo que se hace cuando se inserta un rostro de un actor famoso sobre el cuerpo de un doble en las escenas de acción.

¿Cómo se crea la máscara de la boca y sus movimientos? Un sistema de inteligencia artificial entrenado con una red neuronal mapea el texto que se desea que pronuncie en las posiciones correspondientes, formando el movimiento que luego se superpone. Para afinarlo además se utiliza una técnica de resincronización para evitar que se note el montaje cuando comienza o terminan las palabras.

El resultado es bastante bueno y los vídeos dan el pego, aunque desde luego no soportarían un análisis forense – ni siquiera los de audio lo hacen a día de hoy. Pero esto es solo el comienzo.

(Vía Boing Boing.)

Compartir en Flipboard  Compartir en Facebook  Tuitear