Inteligencia Artificial: de la Ciencia Ficción a Alexa

Marcelo Andrieu, Technical Product Marketing Manager
March 13, 2018

Para los aficionados a la ciencia ficción como yo, la «inteligencia artificial (IA)» siempre ha despertado nuestra imaginación. Como campo de estudio, la IA forma parte de los círculos académicos desde mediados de los años 50.

Desde entonces, la IA ha sido tanto considerada la clave del futuro de nuestra civilización como despreciada como un entretenimiento para frikis.

Sin embargo, a lo largo de los últimos años la IA ha empezado a adquirir una relevancia real. En gran parte, esto está relacionado con la disponibilidad de capacidad de computación potente, más barata y más rápida, el internet de las cosas y la explosión de los datos generados en forma de imágenes, texto, mensajes, documentos, transacciones, mapas y otros.

Muchas empresas están adoptando la IA activamente, por ejemplo, para librar a los trabajadores altamente capacitados de las tareas rutinarias, repetitivas y de baja cualificación. De hecho, las predicciones de IDC estiman que el gasto en IA y aprendizaje automático aumentará desde los 8000 millones de dólares en 2016 hasta los 47.000 millones en 2020.

Solo tiene que mirar a su alrededor para ver el uso generalizado de las aplicaciones con IA, incluyendo las tecnologías más amplias de voz y lenguaje natural, así como la automatización industrial y la robótica. Y sus casos de uso son muy numerosos, incluyendo:

  • Servicios financieros.
  • Atención al cliente.
  • Asistencia sanitaria.
  • Descubrimiento de medicamentos.
  • Genómica.

Más recientemente, la IA está empezando a ganar terreno en el trabajo basado en conocimiento y las áreas creativas como las artes visuales, la música, las imágenes y la generación de guiones de vídeos y películas.

En términos generales, muchas de estas aplicaciones de IA pertenecen a la categoría de inteligencia artificial débil. Se trata de tecnologías que ejecutan ciertas tareas tan bien como los humanos o a veces incluso mejor, como clasificar imágenes en Pinterest y reconocer caras en Facebook.

Estas tecnologías exponen algunas facetas de la inteligencia humana, de las que hablaré enseguida. Pero ¿cómo? ¿De dónde viene esa inteligencia?

Volvamos a lo básico: ¿qué es la inteligencia artificial?

John McCarthy, uno de los padres de la IA, la definió como

«la ciencia y la ingeniería de construir máquinas inteligentes, especialmente programas informáticos inteligentes».

En otras palabras, es una manera de hacer que el hardware o el software ejecutado en él piensen de manera inteligente, similar a como lo hacen los humanos.

Por tanto, en el fondo se trata de entender cómo funciona nuestro cerebro, cómo aprendemos, decidimos y actuamos cuando tratamos de resolver un problema, y después usar estos conocimientos para desarrollar software y sistemas «inteligentes».

¿Qué es la Inteligencia?

A efectos de este artículo, podemos usar la definición de inteligencia elaborada en el artículo «Artificial intelligence - Intelligent systems» («Inteligencia artificial, sistemas inteligentes»)

«La habilidad de un sistema para calcular, razonar, percibir relaciones y analogías, aprender de la experiencia, almacenar y recuperar información de la memoria, resolver problemas, comprender ideas complejas, usar el lenguaje natural de manera fluida, clasificar, generalizar y adaptarse a nuevas situaciones».

Así que, de manera muy simplificada, cuando hablamos de inteligencia estamos implicando a varias funciones muy complejas:

  • Aprendizaje
  • Razonamiento
  • Resolución de problemas
  • Percepción
  • Inteligencia Lingüística

Eso es mucho. Hoy en día, solemos decir que un sistema es «artificialmente inteligente» si tiene al menos una de estas «inteligencias». Por supuesto, cuantas más, mejor.

El aprendizaje reviste un interés especial, porque queremos dotar a estos sistemas de la capacidad de aprender por sí mismos.

Machine Learning

En su forma más básica, el aprendizaje automático trata de diseñar modelos. Los modelos están formados por algoritmos que usan datos, aprenden de ellos y producen inferencias o predicciones sobre algo.

Así que en lugar de programar funciones de software para ejecutar una tarea concreta, entrenamos a la máquina inteligente con datos y modelos que le dan la capacidad de hacer inferencias y predicciones y tomar decisiones.

Una de las aplicaciones más sofisticadas del aprendizaje automático es la detección y clasificación de imágenes. En su día, esto requería una gran cantidad de programación manual. Los programadores escribían clasificadores que, como puede imaginar, ayudaban a clasificar las imágenes.

Por ejemplo, usaban un código de detección de bordes para identificar dónde empezaba y terminaba un objeto, código de detección de formas para identificar si el objeto tenía un cierto número de lados y segmentos y otros clasificadores para detectar letras, números o símbolos.

Con la ayuda de todos estos clasificadores, los programadores escribían algoritmos para tratar de entender una imagen y determinar, por ejemplo, que era una señal de STOP. Los resultados eran buenos, pero no grandiosos. ¿Un ejemplo de resultado no tan bueno? En un día con niebla, si la señal de STOP no es claramente visible, o si la rama de un árbol cubre parte de ella, el sistema no produciría el resultado esperado. Da miedo, ¿verdad?

Pero todo eso estaba a punto de cambiar radicalmente.

Deep Learning: Neuronas en Capas

Las redes neuronales se basan en nuestra interpretación de las conexiones entre neuronas en nuestros cerebros. Las neuronas reales pueden conectarse a cualquier otra neurona que esté lo bastante cerca en cualquier dirección, mientras que las redes neuronales artificiales tienen capas, conexiones y direcciones específicas en las que circulan los datos.

En una red neuronal, los datos se envían a la primera capa de neuronas y cada neurona individual pasa los resultados a una segunda capa. La segunda capa hace su trabajo y así sucesivamente, hasta llegar a la última capa y producir el resultado final. Cada neurona de la red asigna un «peso» al dato de entrada, que define cómo de preciso o de impreciso es en relación a la tarea que se está ejecutando.El resultado final se decide mediante la suma agregada de todos esos pesajes. Basándose en ellos, la red neuronal obtiene un «vector de probabilidad», esto es, una conjetura bien fundamentada.

https://youtu.be/aircAruvnKk

La red se va entrenando a medida que obtiene respuestas erróneas y acertadas. En el ejemplo anterior de la señal de STOP, la red necesita ver miles o millones de imágenes, hasta que los pesajes de los datos de entrada de las neuronas están lo bastante afinados como para producir la respuesta correcta la mayoría del tiempo, aunque esté lloviendo o con niebla. En ese momento, la red neuronal ha aprendido y se ha enseñado a sí misma qué aspecto tiene una señal de STOP, o cómo reconocer la cara de alguien, un perro, un pez o un gato, que es lo que hizo Andrew Ng en Google.

https://www.youtube.com/watch?v=IHZwWFHWa-w

Ng creó redes neuronales realmente grandes y profundas, incrementando el número de neuronas y de capas y ejecutando enormes cantidades de datos (más de 10 millones de imágenes de vídeos de YouTube) en el sistema para entrenarlo. De ahí la expresión «aprendizaje profundo». El resultado es un reconocimiento de imágenes que en algunos casos es igual, si no superior, al de un ser humano.

Pero el trabajo con imágenes es solo la punta del iceberg. El aprendizaje profundo permite muchas otras aplicaciones prácticas, lo que hace posible todo tipo de «cosas inteligentes»: coches sin conductor, mejor medicina preventiva, recomendaciones de películas, sistemas expertos, chats y mucho más.

La IA se ejecuta sobre datos. Montones de datos.

Los datos lo son todo. El poder de aprendizaje profundo de la IA procede de su habilidad de aprender patrones a partir de grandes cantidades de datos. Y esto hace que sea fundamental entender los conjuntos de datos.

La mayoría de los avances recientes de la IA han sido impulsados por la disponibilidad de una potencia de procesamiento mayor, el refinamiento de los modelos y algoritmos y las enormes mejoras en los conjuntos de datos. Tenemos acceso a cantidades masivas de datos, y eso es la buena noticia...

Pero ¿cuál es la mala? En el contexto de los casos de uso y las aplicaciones específicos de IA, hay datos buenos y malos (y en caso de que se lo esté preguntando, sí, también hay datos falsos). El caso es que la recopilación, clasificación y etiquetado de los conjuntos de datos usados para entrenar los modelos está siendo una parte muy difícil y costosa del viaje de la IA.

Hay recursos como Facets, una herramienta de visualización de datos de código abierto que le ayuda a entender sus conjuntos de datos de aprendizaje automático, sus características y la interacción entre los diferentes elementos de los datos.

Con frecuencia, las empresas comienzan sus proyectos de IA pero no se dan cuenta de la importancia de los buenos conjuntos de datos, que no son lo mismo que tener un montón de datos. Esto puede convertirse en un problema difícil de resolver una vez que está profundamente implicado en el proyecto y ha sido la causa de muchos fracasos, incluso entre los grandes actores del sector.

Manos a la obra

El proceso de IA típico puede dividirse en una serie de pasos:

  1. Recopilación de datos
  2. Preparación de datos
  3. Elección del modelo
  4. Entrenamiento del modelo
  5. Evaluación
  6. Ajuste de parámetros
  7. Inferencia o predicción

Hay un vídeo genial de Yufeng G que describe este proceso como una serie de 7 pasos, en términos sencillos de entender. Véalo. Su artículo sobre aprendizaje automático (y el vídeo que incluye) también son divertidos de leer y de ver.

https://www.youtube.com/watch?v=nKW8Ndu7Mjw

Herramientas e infraestructuras

TensorFlow es probablemente la infraestructura de deep learning más popular hoy en día. TensorFlow es una biblioteca de código abierto desarrollada originalmente por el equipo de Google Brain. El equipo de TensorFlow ha creado un gran número de modelos, de los que muchos incluyen pesos de modelos entrenados. La API de detección de objetos o tf-seq2sec para servicios de traducción son grandes ejemplos. El Tutorial de Reconocimiento de Imágenes de TensorFlow y TensorFlow Playground son buenos sitios para empezar a experimentar con la IA.

Por supuesto, hay otras infraestructuras potentes, como Caffe, PyTorch y BigDL. Son cada vez mejores y están incorporando usuarios y casos de uso rápidamente.

Se están desarrollando nuevas herramientas de aprendizaje profundo para simplificar la definición de arquitecturas de redes neuronales y el ajuste de parámetros, formación distribuida e implantación y gestión de modelos.

Además, los simuladores, como los gemelos digitales, permiten a los desarrolladores acelerar el desarrollo de los sistemas de IA y las bibliotecas de refuerzo del aprendizaje que se integran con ellos (eche un vistazo a la biblioteca que forma parte del RISE Lab de Ray, es un ejemplo fantástico).

Tareas de aprendizaje automático

En términos generales, podemos clasificar las principales tareas de machine learning en cuatro grupos:

  • Aprendizaje supervisado: usado para inferir una función desde datos etiquetados. El objetivo es encontrar los mejores parámetros del modelo para predecir con precisión etiquetas desconocidas en otros objetos. Si la etiqueta es un número, la tarea se llama regresión. Si la etiqueta procede de un número de valores relativamente pequeño y definido, es una clasificación.
  • Aprendizaje no supervisado: usado cuando tenemos información o etiquetas limitadas sobre los objetos. En este caso, agrupamos los objetos en clústeres buscando similitudes entre ellos.
  • Aprendizaje semisupervisado: usado cuando tenemos objetos tanto etiquetados como no etiquetados. Este enfoque puede mejorar significativamente la precisión debido a la mezcla de datos de entrenamiento.
  • Aprendizaje por refuerzo: esto es lo que llamaríamos «aprender adaptándose». Piense en él como un juego donde obtiene puntos por cada movimiento. Así, hace el primer movimiento tratando de maximizar los puntos obtenidos por él. Esto afecta el entorno, así que se adapta a a él y hace el próximo movimiento tratando otra vez de obtener el mayor número de puntos posible y sigue repitiendo lo mismo hasta alcanzar un objetivo de puntos concreto. Esta tarea sigue y sigue y sigue... Si quiere saber más, tómese la pastilla azul y haga clic en el enlace pero ¡no diga que no le avisé!

Algoritmos

A lo largo de los años, se han desarrollado diferentes algoritmos para resolver diferentes tipos de casos de uso e incluir aprendizaje con árboles de decisión, programación con lógica inductiva, aprendizaje reforzado, redes bayesianas y agrupamiento, entre muchos otros.

Estos son algunos de los algoritmos más usados:

  • Regresión linear y clasificador lineal: simple y muy útil en muchos casos donde los algoritmos más complejos resultarían excesivos.
  • Regresión logística: el clasificador no lineal más simple, que combina parámetros lineales y función sigmoide no lineal.
  • Árbol de decisión: en principio, este enfoque algorítmico es similar a la manera en que los humanos tomamos decisiones.
  • K-medias: un algoritmo muy fácil de entender, derivado originalmente del procesamiento de señales. Divide un número de objetos en clústeres donde cada objeto pertenece al clúster con el centroide más cercano.

Si le interesa la programación, le recomiendo Machine Learning Algorithms and Sample Code («Algoritmos y códigos de ejemplo de aprendizaje automático») y AI Tools, Platforms, Libraries («Herramientas, plataformas y bibliotecas de IA»).

Aplicaciones de la IA

La IA cada vez se integra más en los procesos de negocio en una variedad de áreas. Estas son solo algunas de ellas:

  • Aplicaciones de ventas y CRM
  • Pagos y servicios de pago
  • Logística y envíos
  • Recomendaciones a clientes
  • Fabricación

Un ejemplo: Northface usa IBM Watson para ayudar a los consumidores a decidir qué ropa es mejor para ellos en función de su ubicación, género y preferencias de actividad. Es genial si quieres hacer senderismo en el norte de Noruega en noviembre.

PayPal ha aprovechado los modelos de detección de fraude para proteger las transacciones digitales de los clientes. Al usar aprendizaje profundo en la seguridad de las transacciones, PayPal ha reducido el ratio de fraude al 0,32 %, en torno al 1 % menos que la media del sector.

La IA está tomando impulso prácticamente en todas partes, pero hay algunas áreas que merece la pena destacar:

  • Visión. Estos sistemas «ven», entienden e interpretan los datos visuales. El uso de IA para diagnosticar pacientes o el reconocimiento facial de «personas de interés» son grandes ejemplos.
  • Reconocimiento de voz. Oír y entender el lenguaje natural, incluyendo acentos, ruidos, inflexiones, etc. Por ejemplo, traducción automática, conversión de voz a texto o entradas de voz para dispositivos.
  • Reconocimiento de escritura
  • Sistemas expertos. Aplicaciones que integran IA y datos para facilitar explicaciones y consejos a los usuarios finales.

Lo que se avecina

Sin duda, la IA está cogiendo mucho impulso en la actualidad, en buena parte debido a la confluencia de facilitadores como una gran capacidad de procesamiento a bajo coste, acceso a enormes cantidades de datos, almacenamiento prácticamente ilimitado y progresos en los modelos y algoritmos.

Las empresas de todos los sectores están encontrando rápidamente casos de uso donde la IA puede aplicarse de manera efectiva.

Sin embargo, a corto plazo parece que las aplicaciones y los casos de uso con los índices de éxito y adopción más altos son los que tienen un impacto o un retorno de la inversión directo y medible. «Mejorar la interacción con el cliente» es genial, pero es un beneficio más difuso que «reducir los paquetes perdidos en un 5-10 %» o «aumentar la probabilidad de ventas adicionales en un 8 %».

Aunque todavía nos queda mucho para conseguir una IA digna de la ciencia ficción, es evidente que se están haciendo progresos significativos y que las empresas y los consumidores están obteniendo beneficios reales.

Lo siento, tengo que irme. Alexa me está llamando.

Entre tanto, si es un usuario pionero de la IA o le gustaría serlo, eche un vistazo a este webinar a demanda:

Cómo ayudar a su empresa a convertirse en uno de los primeros usuarios de AI.

¡Feliz aprendizaje profundo!