19

5 aplicaciones del Deep Learning que están transformando tu vida

78Puntos

hace 4 años

El Deep Learning llegó para revolucionar la computación y la ciencia.

Su eficiencia ha permitido que las máquinas resuelvan problemas que antes nos parecían imposibles de alcanzar: visión humana, audición, y una gran mayoría de las capacidades de percepción humanas.

Pero además de su interés teórico y fundamental en la investigación, las aplicaciones posibles del Deep Learning se hacen cada vez más variadas y útiles para las empresas.

En esta publicación te mostraré algunas de las mejores y más recientes aplicaciones, generadas directamente en universidades o laboratorios de las más grandes empresas (Facebook, Google, Amazon, OpenAI, etc.).

5 Aplicaciones de inteligencia artificial

Modelos de audio

Seguramente conoces “Discover weekly” una excelente funcionalidad de Spotify que te recomienda canciones basandose en tus gustos. Una parte de esta funcionalidad se basa en modelos de audio ya que estos permiten representar el audio en un formato que permite fácilmente encontrar similitudes entre ellas (embeddings).

Además de representar las canciones con modelos profundos actualmente estamos llegando al nivel de poder generar música y voces de manera automática.

Un modelo para generar música es el MusicVAE. Esta red neuronal profunda permite darle dos loops muy pequeños de música y lo que va a hacer es crear una canción completa tratando que la transición entre los dos loops sea coherente.

Veámoslo directamente en un ejemplo:

MusicaVAE interpolando entre dos loops entregados

Este tipo de aplicación sirve mucho para las herramientas de música. Por ejemplo estas permiten crear sintetizadores de sonidos para que un DJ cree música. En el caso de MusicVAE el DJ lo que puede hacer es prearmar algunos loops de música y obtener un instrumento que toque una canción mucho más extensa mientras él puede improvisar con otros sonidos.

A pesar de los posibles problemas que pueda representar la capacidad de realizar deep fakes, existen hoy modelos estado del arte que imitan muy bien las voz de las personas.

Por ejemplo Melnet puede generar voces de famosos como Bill Gates o Stephen Hawkings, o de investigadores menos conocidos pero aun así igual de reales como Daphne Koller (autora de un excelente libro de Modelos Gráficos) o de Fei Fei Li:

Melnet

El tipo de modelos que se encuentra detrás del MusicVAE y Melnet son las redes generativas, redes que han visto grandes avances desde 2015, y que permiten imitar distribuciones probabilisticas complejas, como lo son una voz de una persona, o también imágenes.

Este tipo de redes las veremos en el curso de Deep Learning con Pytorch e implementaremos una muy importante: CycleGAN!

Tratamiento de imágenes

Probablemente el dominio de aplicación rey para el Deep Learning es el tratamiento de imágenes, también denominado Computer Vision.

Si aún no has ocupado YOLOv3 te recomiendo que lo pruebes inmediatamente: es muy fácil de instalar y por lo demás es uno de los modelos con mejor performance en lo que refiere a detección de objetos en tiempo real. Algo que te será muy útil si quieres hacer aplicaciones con base a datos de video.

El tipo de tareas que se pueden realizar en tratamiento de imágenes con Deep Learning puede ser clasificadas de la forma siguiente:

Dentro de estas tareas se encuentra una subtarea muy interesante que es el análisis de pose de una imagen. Por ejemplo con OpenPose puedes analizar la dirección en las cuales se encuentran las diferentes partes del cuerpo.

Por último con base en esta noción de estimación de pose podemos llegar a una aplicación comercial bien cool: cambiar la pose de un o una modelo de ropa en una imagen de un sitio de ecommerce, y así ver como prenda en distintos ángulos y con distintas posturas del o de la modelo. A este tipo de tarea se le llama transferencia de pose y lo pueden ver aquí:

Adicionalmente a la transferencia de pose, también existe la transferencia de ropa, es decir que puedes probarte virtualmente como te queda una prenda entregando simplemente una foto tuya, o mirándote en un probador electrónico.

¡El ecommerce del futuro ya está acá!

En el curso Deep Learning con Pytorch aprenderás todo sobre redes neuronales convolucionales, estas redes son la herramienta clave para tratamiento de imágenes

Three body problem

El problema de 3 cuerpos es uno de esos problemas elegantes, muy fáciles de formular pero al mismo tiempo infinitamente difíciles de resolver. Newton, Kepler, Lagrange y Poincaré han trabajado en el sin obtener una solución completa al problema.

El problema consiste en encontrar una solución para un sistema compuesto por 3 planetas, que se atraen por fuerza gravitacional, y que tienen cierta posición y velocidad inicial.

En el caso de 2 planetas este tipo de problema puede resolverse de manera completa, es decir, que se pueden encontrar ecuaciones explicitas de los movimientos de los planetas. En el caso del problema a 3 cuerpos se ha descubierto lo siguiente:

  • Dadas dos condiciones iniciales muy similares el sistema se puede comportar de forma radicalmente distinta, y en un caso por ejemplo ser estable y en el otro divergente (Poincaré, 1890).
  • Existe una solución completa de las ecuaciones del problema, pero esta solución se escribe como un limite (serie infinita) que es muy pesada de calcular y por lo tanto no sirve de forma practica.
  • Para predecir el movimiento de los 3 planetas es más conveniente simular calculando por pasos temporales las nuevas posiciones de los planetas.

Una forma más simple quizás de entender el problema de 3 cuerpos es mirando el excelente libro homónimo de ciencia ficción “The three-body problem” de Cixin Liu.

En este libro una civilización -Trisolaris- vive en un sistema con 3 soles. Esta civilización tiene grandes problemas para desarrollarse, ya que ningún astrónomo es capaz de predecir cuando estará de noche o de día, cuando estarán en un periodo glacial (o de grandes fuegos!), y finalmente esta civilización debe empezar desde 0 muchas veces ya que no tiene la bendición que nosotros tenemos que es la de saber exactamente como se comportan nuestros ciclos planetarios.

Muy recientemente (17 de Octubre 2019) un grupo de investigadores propuso una resolución del problema a 3 cuerpos utilizando redes neuronales.

La solución no es un avance matemático en sí ya que para entrenar la red neuronal se ocupa un solver automático ya existente llamado Brutus, y sobre esta base se entrena la red neuronal. Por lo demás la red es entrenada para realizar predicciones en cierto intervalo de tiempo acotado y con condiciones iniciales acotadas en una región del espacio de condiciones iniciales.

Sin embargo lo interesante es que una vez entrenada, la red logra realizar predicciones muy cercanas a las de Brutus, pero con una ganancia de tiempo enorme! (hasta 10^8 veces más rápido)

La ganancia con este tipo de sistemas puede ser muy interesante a nivel computacional siempre y cuando se logre crear un sistema híbrido que sepa cuando utilizar brutus o la red neuronal, y que se demuestre que en condiciones iniciales distintas las soluciones de la red sean aún correctas.

Link del paper del 3 body problem

¡Estamos dando los primeros pasos hacia utilizar las redes neuronales como herramienta computacional en otras ciencias y eso es algo realmente interesante y esperanzador!

Espero que con esto entiendas lo útiles que puede llegar a ser el Deep Learning y que decidas aprender esta linda disciplina, por ejemplo siguiendo nuestra carrera de inteligencia artificial, y tomando el curso “Deep Learning con Pytorch”.

Juan
Juan
Escribe tu comentario
+ 2
1
2210Puntos

Yo aun no pude entrenar un modelo con mis propias imágenes para que me diga como se llaman mis mascotas, alguna ayuda o consejo?

2
4 años

Que datos tienes? (si puedes describirlos en detalle aun mejor, para entender bien el problema que intentas resolver)

1
2210Puntos
4 años

Quiero crear un programa que detecte figuras Geométricas, tengo imágenes que bajen de google de triángulos y cuadrados y OpenCV instalado pero no se como generar el entrenamiento

1
4 años

Esta todo explicado en el curso. En si las etapas son:

  • Crear un dataset con tus imagenes en pytorch
  • Cargar una red pre entrenada
  • Modificar la ultima capa
  • Entrenar la ultima capa con tu dataset

Y listo!

1
52282Puntos

Como dice Fredy; Entender las bases de la inteligencia artificial es como era hace 10 años aprender a programar.

Nadie dijo que sería fácil… pero hay que intentarlo…
Si te topaste con este blog, te recomiendo este video:
https://youtu.be/CFvy6zSsOEc