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:
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?
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».
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:
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.
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.
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.
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.
El proceso de IA típico puede dividirse en una serie de pasos:
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
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).
En términos generales, podemos clasificar las principales tareas de machine learning en cuatro grupos:
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:
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»).
La IA cada vez se integra más en los procesos de negocio en una variedad de áreas. Estas son solo algunas de ellas:
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:
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!
Appian es una empresa de software que automatiza los procesos comerciales. La plataforma Appian incluye todo lo que necesitas para diseñar, automatizar y optimizar incluso los procesos más complejos, desde el principio hasta el final. Las organizaciones más innovadoras del mundo confían en Appian para mejorar sus flujos de trabajo, unificar los datos y optimizar las operaciones, lo que resulta en un mejor crecimiento y experiencias superiores para los clientes.