Hablar de Inteligencia Artificial está de moda. En los últimos meses, parecería que no hay lanzamiento tecnológico que no incluya coletillas «con capacidades de IA», «aprendizaje automático», «machine learning» y muchas otras que habitualmente se asocian al objetivo común de que un un futuro lejano las máquinas sean realmente capaces de «pensar» de la misma forma en que lo hace un ser humano.
¿Pero en qué se diferencian estos términos? ¿Es lo mismo machine learning que deep learning? ¿Qué son las tecnologías de procesamiento natural del lenguaje? ¿Qué programas y lenguajes de programación se emplean para el desarrollo de las tecnologías que sustentan la IA?
Comencemos por dar respuesta a la que sobre el papel parece la pregunta más sencilla de todas. Cuando hablamos de inteligencia artificial…¿a qué nos estamos refiriendo en realidad? A diferencia de otras tecnologías, la IA puede representar muchas cosas para muchas personas diferentes. IA es esa voz que te habla desde tu altavoz Amazon Echo, pero también es ese robot que automatiza un proceso industrial, el asistente virtual que te ahorra tiempo en gestiones con tu banco o el cerebro del GPS que te ayuda a guiarte en una ciudad que no conoces bien.
En este sentido, más que una tecnología en concreto, es más correcto afirmar que la Inteligencia Artificial es un paraguas bajo el que se encuentran un amplio conjunto de tecnologías que van desde el machine learning a la visión artificial, desde las redes neuronales al modelado de datos.
Machine Learning
El Machine Learning representa la primera etapa para las empresas que quieren añadir capacidades de IA a su portfolio de IT. La base sobre la que se asienta es dotar a los ordenadores la capacidad de desarrollar de forma automática sus propios algoritmos, entrenando para ello distintos modelos.
Un ejemplo clásico es cómo enseñamos a un ordenador a entender lo que es un gato: si entrenamos el modelo introduciendo miles de fotos que contienen gatos, esperamos que en un momento determinado la máquina «comprenda» qué características son intrínsecas de un gato y cómo diferenciar un gato de algo que no lo es. De esta forma si un usuario por ejemplo quiere buscar fotos de gatos en sus álbumes de fotos, el sistema es capaz de interpretar aquellas imágenes que los contienen, analizando exclusivamente su contenido y no (como hasta ahora) las etiquetas que se han introducido manualmente con anterioridad.
Esto que parece tan sencillo de explicar, no es por supuesto sencillo en absoluto. Porque aunque es fácil distinguir un gato de algo que no lo es, baste recordar que también son estos algoritmos los que indican a Facebook que una obra de arte como la «Venus de Willendorf» representa un desnudo y por lo tanto es merecedora de censura en esta red.
Si queréis saber más os recomendamos la lectura de nuestro artículo «Machine Learning: cuando aprenden las máquinas» en el que explicamos con mucha más profundidad de qué forma y que metodología están utilizando los científicos de datos a la hora de que los ordenadores puedan comprender de forma autónoma la naturaleza de los datos que se le presentan.
Deep Learning
El deep learning o aprendizaje profundo, supone llevar el machine learning un paso (o varios) más allá. A diferencia del machine learning, el aprendizaje profundo crea nuevas capas de aprendizaje automático más allá del primer punto de decisión. Estas nuevas capas reciben el nombre de redes neuronales y teóricamente simulan la forma en la que operan los cerebros humanos.
Una vez que un algoritmo de machine learning produce un resultado, el aprendizaje profundo lo toma como input para un nuevo algoritmo de machine learning, repitiendo la operación sucesivamente en distintas capas que se relacionan entre sí.
Volviendo al ejemplo anterior, una vez que el algoritmo determina que en la foto hay un gato, un segundo algoritmo debería ser capaz de determinar que es un gato de angora (y no uno persa o cualquier otro), un tercero podría ser capaz de determinar la edad aproximada de ese gato y así sucesivamente.
Procesamiento natural del lenguaje
Dos son los campos en los que más se está avanzando cuando hablamos de IA: PNL (procesamiento natural del lenguaje) y Visión Artificial. Comencemos con el primero.
Si tenemos en cuenta que los seres humanos no hablamos utilizando unos y ceros, ¿cómo podemos comunicarnos de forma natural con las máquinas? Esta es la pregunta a la que intentan dar respuesta los ingenieros que se han especializado en el procesamiento natural del lenguaje.
Los primeros resultados de este esfuerzo han visto su materialización en asistentes personales como Amazon Alexa, Microsoft Cortana, Google Assistant y otros. Y aunque es cierto que han aprendido a interpretar muchas de las preguntas con las que les interpelamos, lo cierto es que el hecho de que el lenguaje humano no pueda «traducirse» en forma de ecuaciones matemáticas dificulta mucho el avance en este campo. En estos momentos, utilizando machine learning y deep learning los algoritmos de PNL pueden responder a preguntas como «¿Quién es Pedro Sánchez?» o por el contexto «¿Cómo se llama la mujer del presidente del Gobierno?» pero si le preguntamos «¿Qué ha pasado en la última sesión de investidura?» descubriremos cómo la IA aún no ha llegado a ese estadio en el que «entienda» que le estamos preguntando por Pedro Sánchez.
Por otro lado, también es importante señalar que el PNL sirve para mucho más, Actualmente los algoritmos de procesamiento natural del lenguaje se están empleando cada vez más para encontrar información en grandes volúmenes de información no estructurada, como pueden ser e-mails, registros médicos, publicaciones en redes sociales, vídeos, etc. de modo que se facilite el proceso de búsqueda de información. Ante un conjunto de millones de documentos, son estos algoritmos los que pueden ayudar a un bufete de abogados a responder a preguntas como «¿En qué otros casos circunstancias similares dieron como resultado esta pena de prisión?»
Visión artificial
La visión artificial supone conseguir que un ordenador sea capaz de reconocer imágenes de la misma forma en que lo haría un ser humano. Es decir no se trata tanto de recoger un conjunto de píxeles, sino entender qué representan en el mundo real y cómo unos objetos se relacionan con otros. En estos momentos, dos son las áreas en las que más se está profundizando en este campo: el reconocimiento facial y la navegación autónoma.
El primero que se usa en tareas tan sencillas como desbloquear un smartphone, se está empleando cada vez más en miles de cámaras de seguridad instaladas en todo el mundo con el objetivo de facilitar la prevención del crimen o la identificación de personas sospechosas o desaparecidas. Además está encontrando otros usos prácticos a la hora de facilitar el embarque en aviones e incluso, el poder «pagar con la cara«.
En cuanto a los sistemas de navegación autónoma, su aplicación principal se encuentra en ese futuro vehículo autónomo capaz de conducir a sus pasajeros de un punto A a un punto B sin necesidad de intervención humana de ningún tipo, contando para ello con cámaras capaces de entender el estado y las distintas señales de tráfico, la presencia de peatones y otros vehículos más pequeños y responder ante situaciones inesperadas.
Python, TensorFlow y Keras
Pero a nivel práctico, ¿cuáles son los programas específicos o lenguajes de programación que facilitan el desarrollo de algoritmos y aplicaciones para la IA? En primer lugar Python, un lenguaje de programación que en los últimos años parecía estar viviendo una plácida decadencia y que sin embargo, ha demostrado ser ideal para (en la fase actual) entrenar modelos de machine learning, analizar grandes conjuntos de datos, construir modelos estadísticos…etc. Si ya entramos en áreas concretas como el desarrollo de modelos de aprendizaje automático, TensorFlow es desde luego la gran referencia.
Muchas de las empresas que afirman incorporar machine learning como parte de las características de su solución comercial, lo hacen sirviéndose del proyecto open-source TensorFlow. Nacido en las entrañas de Google y conocido en su primera etapa como DistBelief, el proyecto se basa en una serie de librerías que utilizan un sistema de aprendizaje automático basado en redes neuronales de aprendizaje profundo.
Uno de los complementos más más importantes para TensorFlow es Keras, una biblioteca de red neuronal de código abierto escrita precisamente en Python. Además de sobre TensorFlow, también tiene soporte para Microsoft Cognitive Toolkit, Theano o MXNet. Keras está diseñada para permitir la experimentación rápida con redes neuronales profundas y como ventajas cuenta el ser fácil de utilizar y su carácter modular.
Fuente:
Rodolfo de Juana, R. J. (2019, 29 julio). Cinco tecnologías en las que se apoya la Inteligencia Artificial. Recuperado 29 julio, 2019, de https://www.muycomputerpro.com/2019/07/29/cinco-tecnologias-en-las-que-se-apoya-la-inteligencia-artificial