Las empresas de Software as a Service (SaaS) han ganado un enorme protagonismo en los últimos años, principalmente por lo novedoso de los productos [...]
Leer más »En los últimos años todos los temas referentes a la Inteligencia Artificial (IA) están levantando un enorme interés. Quizás sea porque el corazón de las grandes tecnológicas está movido por algoritmos que aprenden de los datos de los usuarios y optimizan el servicio que se le presta a estos usuarios; o porque se ha puesto a disposición de los técnicos multitud de herramientas y tecnologías que ayudan a implementar software basado en algoritmos de aprendizaje automático, “deep-learning”, procesamiento del lenguaje natural o tratamiento de imágenes.
No debemos dejarnos llevar por la moda actual: todo el mundo habla e incluso sabe de Inteligencia Artificial. Pero lejos de ser algo muy novedoso o inventado por genios americanos hace tres días, hay profesionales en España que llevan muchos años dedicados a la IA, algunos desde la década de los 90. Lo anterior no es exageración: la IA es una ciencia que se implementa usando herramientas tecnológicas. No es sólo informática, no es sólo estadística, no es sólo matemáticas, o psicología o neurología.
Es una “nueva ciencia” que empezó en los años 40 con el modelado de la neurona por Warren McCulloch y Walter Pitts. Ciencia que se suele datar su comienzo oficial en el verano 1956 durante las jornadas en el Dartmouth College de Stanford; pero en el 1950 Turing ya había escrito su famosísimo artículo de “Computing Machinery and Intelligence” con la formulación del test de Turing para saber si una máquina es inteligente o no. Después del llamado “Artificial Intelligence Winter”, resurgió en la segunda mitad de los 80 con nuevos paradigmas y algoritmos de entrenamiento de redes de neuronas artificiales, hasta la nueva época dorada de nuestros días.
En este artículo se hará un repaso de una de las ramas de la Inteligencia Artificial que quizás está generando un mayor número de aplicaciones prácticas: el Aprendizaje Automático (del término inglés Machine Learning - ML). Se verá en qué consiste, métodos de entrenamiento y ejemplos prácticos; ejemplos menos sensacionalistas de los que aparecen de vez en cuando en los periódicos, como que el Pentágono es capaz de predecir lo que va a pasar en los próximos días.
El Aprendizaje Automático trata de cómo construir sistemas informáticos que automáticamente aprendan de la experiencia y mejoren con los nuevos datos conocidos. Se intenta modelar los procesos de aprendizaje que se observan en los sistemas nerviosos de los seres vivos y especialmente en el cerebro humano. Una de las técnicas del aprendizaje automático que más se usan en la actualidad son las Redes de Neuronas Artificiales, que se inspiran en las células que forman el sistema nervioso humano: las neuronas.
En algunas ocasiones resulta útil para comprender un concepto comparar la realidad que representa con lo que no es; el Aprendizaje Automático en muchas ocasiones lo presentan como unas “estadísticas avanzadas” o como una parte de la computación o programación, vemos por qué no:
Además de lo visto en los dos puntos anteriores el Aprendizaje Automático, está muy relacionado con el estudio del aprendizaje humano y animal en psicología, neurología y campos afines. Las cuestiones de cómo los ordenadores pueden aprender y cómo los animales aprenden, probablemente tendrán respuestas muy relacionadas.
▷ Te puede interesar: Por qué el aprendizaje automático (ML) es tan popular en el S. XXI
El origen de la ciencia actual del Aprendizaje Automático lo podríamos datar en los trabajos de nuestro premio novel Ramón y Cajal, el cual describió por primera vez los sistemas nerviosos de los seres vivos, describiendo la neurona y los procesos sinápticos. Estos estudios fueron la base para que los pioneros de la IA modelaran las neuronas artificiales, dando lugar a las redes de neuronas artificiales (ANN: Artificial Neural Networks).
A partir de la división histórica ofrecida por Rusell y Norving se pueden distinguir las siguientes etapas históricas:
El primer trabajo que es reconocido generalmente como perteneciente a la Inteligencia Artificial fue realizado por Warren McCulloch y Walter Pitts. Ambos propusieron un modelo de neurona artificial en el que cada neurona se caracterizaba por un estado de “on-off”.
McCulloch y Pitts también sugirieron que las redes de neuronas artificiales podrían aprender.
Donald Hebb desarrolló una regla simple para modificar el peso de las conexiones entre las neuronas. Su regla, denominada “Hebbian Learnig”, sigue siendo un modelo útil a día de hoy.
En 1950, Marvin Minsky y Dean Edmons construyeron el primer ordenador neuronal: el SNARC, que simulaba una red de 40 neuronas.
No se puede terminar este breve repaso a los principios de la Inteligencia Artificial sin nombrar el influyente trabajo “Computing Machinery and Intelligence”, de Alan Turing, donde se introdujo el famoso test de Turing, así como los conceptos de aprendizaje automático (Machine Learning), algoritmos genéticos (Genetic Algorithms) y aprendizaje reforzado (Reinforcement Learning).
Podemos situar el “nacimiento oficial” en el verano de 1956 en el Dartmouth College de Stanford.
El padre fue John McCarthy, que convenció a Minsky, Claude Shannon, y Nathaniel Rochester para reunir a los investigadores más eminentes en los campos de la teoría de autómatas, redes neuronales y del estudio de la inteligencia, con el fin de organizar unas jornadas de trabajo durante los dos meses del verano de 1956.
En Dartmouth se definió por qué es necesaria una nueva disciplina en vez de agrupar los estudios en IA dentro de alguna de las disciplinas ya existentes.
Principales razones por las que la IA debía considerarse una nueva disciplina:
Estos fueron unos años de un gran entusiasmo porque aparecieron trabajos bastante prometedores:
Muchos investigadores en el nuevo campo de la IA hicieron predicciones realmente aventuradas y que nunca llegaron a cumplirse. Por ejemplo, el premio nóvel Herbert Simon llegó a predecir en 1957 que las máquinas podrían pensar, aprender y crear, de modo que superarían en poco tiempo a la propia mente humana. Evidentemente, se ha demostrado que es falso.
Una de las principales dificultades de la IA se centraba en limitaciones fundamentales de las estructuras básicas usadas para generar comportamiento inteligente. Por ejemplo, en 1969 Minsky y Papert probaron que el perceptrón en realidad podía aprender muy pocas cosas.
A mitad de la década de los 80, desde varios grupos de investigación se avanzó en el algoritmo de aprendizaje de “back-propagation” para las redes neuronales. En concreto, para el Perceptrón Multicapa, desarrollado originalmente en 1974.
Este algoritmo fue aplicado en muchos problemas de aprendizaje y la difusión de los resultados en los artículos de procesamiento paralelo y distribuido causaron una gran expectación .
En los últimos años, se ha vuelto más frecuente construir a partir de las teorías ya existentes que desarrollar otras nuevas. De este modo, se está dotando a estas teorías del rigor matemático que precisan, lo que está permitiendo implementar su eficiencia en problemas reales en lugar de en simulaciones o ejemplos simples de laboratorio.
Algunos investigadores punteros de la Inteligencia Artificial y el Aprendizaje Automático han expresado su descontento con los progresos de la Inteligencia Artificial, piensan que más que seguir mejorando el rendimiento en ciertas áreas o ejemplos concretos; la IA debe retornar al principio expresado por Simon: “máquinas que piensan, que aprenden y que crean”. De esta corriente han surgido nuevas líneas de trabajo como Inteligencia Artificial General (Artificial General Intelligence - AGI)
Por último resaltar el salto cuantitativo y cualitativo que las tecnologías de Big Data han supuesto para el tratamiento de grandes cantidades de datos. Ésto junto con el desarrollo de entornos y librerías por las grandes tecnológicas: Google, AWS, Facebook o Microsoft, permiten implementar sistemas basados en algoritmos de Aprendizaje Automático con relativa facilidad. Incluso en los últimos años se disponen de modelos ya entrenados, por ejemplo: para el tratamiento de imágenes o el tratamiento del lenguaje natural.
Quizás el estado del arte actual se sitúa, no sólo en el aprendizaje a partir de los datos, si no en la producción de contenido original, un ejemplo ocurre el campo del lenguaje natural: la generación de resúmenes de textos e incluso el desarrollo de textos originales, algunos desarrollos ya se están usando para la redacción de noticias, redacción de contratos (abogados virtuales), etc.
El Aprendizaje Automático es importante porque permite abordar con éxito problemas que de otra forma serían de muy difícil resolución, estos problemas son todos aquellos que cumplen principalmente dos características:
En resumen, si no se conocen o no se pueden programar las “leyes fundamentales” que gobiernan un sistema (industrial, económico o social), quizás la única forma de solventar cuestiones o problemas de estos sistemas sea usando el aprendizaje automático: a partir de datos históricos conocidos, hacer que la IA pueda inferir el comportamiento de éstos sistemas y por tanto crear modelos que lo expliquen, y puedan predecir su evolución futura.
Para enumerar los beneficios del Aprendizaje Automático podemos centrarnos en las Redes de Neuronas Artificiales, técnica fundamental que sustenta el aprendizaje automático y cuyas ventajas principales se pueden enumerar como sigue:
Para ver las principales técnicas de Aprendizaje Automático se puede partir de los tres principales problemas que se pueden enfrentar con la Inteligencia Artificial: segmentación, clasificación y predicción.
Se verá cada tipo de problema y el tipo de aprendizaje automático más adecuado:
Para segmentar un conjunto de datos se usa el llamado aprendizaje no supervisado. Este aprendizaje, a partir de vectores de características o variables trata de encontrar similitudes y diferencias entre ellos, formando grupos de vectores o patrones que presentan características similares.
Estudiando las características de los patrones que conforman un grupo se puede ver cuáles son aquellas que definen ese grupo y cuáles son las que más se diferencian con respecto al resto de grupos.
Si se usan técnicas de aprendizaje no supervisado como los denominados mapas auto-organizados los patrones de variables son “proyectados” en un mapa, usualmente de dos dimensiones donde aquellos que tienen características comunes o más parecidas se van situando en un mismo segmento y en los segmentos vecinos. Pudiéndose, como en todo mapa, ver qué está lejos o cerca y por tanto saber qué patrón de comportamiento se parecen más y cuáles se parecen menos. También se podrán analizar “caminos” sobre el mapa para estudiar la dificultad de moverse de un segmento a otro.
En este caso también se usará un aprendizaje supervisado, para cada vector de entrada en un momento determinado se predice la salida, que suele ser una variable continua, en un instante futuro. Durante el entrenamiento se conoce el valor de esa variable de salida en el futuro, usándose el error cometido (valor predicho – valor futuro real) para reajustar los parámetros de la red neuronal.
En los problemas anteriores se han visto el aprendizaje supervisado y no supervisado, si el problema al que nos enfrentamos es de toma de decisiones en entornos cambiantes, en los cuales el sistema basado en aprendizaje automático debe aprender mientras “juega” en ese entorno, el aprendizaje por refuerzo podría ser la técnica a usar.
El aprendizaje por refuerzo (del inglés Reinforcement Learning) también es conocido como un modelo de aprendizaje semi-supervisado. En esta técnica se permite a un agente interactuar con un entorno con el fin de maximizar unas recompensas. El aprendizaje por refuerzo no es más que un proceso de decisión de Markov.
Se presentan a continuación algunos ejemplos de la vida real pertenecientes a los tres o cuatro tipos de problemas y técnicas de aprendizaje automático vistos en el punto anterior. Necesariamente el número de ejemplos será muy reducido, ni tan siquiera una breve muestra de la gran cantidad de aplicaciones actuales del aprendizaje automático.
1. Predicción de impagos en créditos de clientes.
Para las entidades financieras es muy importante adelantarse a los posibles problemas de pago de sus clientes con créditos.
Se trata de un problema de clasificación, donde el patrón de características de un cliente puede pertenecer a una de las dos clases posibles: pagará sus créditos o no pagará sus créditos.
Los patrones de características se formarán con clientes históricos, sus créditos, movimientos, … y se le asignará la clase a la que pertenecen: pagaron sus créditos o no pagaron sus créditos. Mediante aprendizaje supervisado se entrenarán modelos para que ante un patrón de características de un cliente evalúe a qué clase pertenece: a los que pagarán sus créditos o a los que no.
2. Predicción de la demanda de consumo eléctrico a corto plazo.
Uno de los grandes problemas de la energía eléctrica es su almacenamiento por lo que es importante cuál será su consumo en el corto plazo de tiempo. Es un problema de predicción donde dado el consumo histórico cada día y cada hora, en un momento dado se quiere predecir el consumo que habrá en un tiempo futuro. Por ejemplo, a una determinada hora se quiere predecir el consumo 48 horas después.
Este problema de predicción usará variables de consumo anteriores (por ejemplo: el de hace una hora, el de hace dos horas, 24 horas, …), más alguna variable externa a la propia serie temporal de consumos horarios (por ejemplo: la temperatura actual y la predicha, si dentro de 48 es un día festivo, …) para predecir el consumo 48h después. Mediante aprendizaje supervisado, se entrenarán modelos predictivos, para predecir el consumo futuro, calculándose el error cometido con el consumo real y usando ese error para reajustar los parámetros del modelo predictivo.
3. Conocer cuántos tipos de clientes compran los productos de una empresa y cuáles son sus características más relevantes.
La gran mayoría de empresas quieren conocer a sus clientes, muchas veces no saben exactamente qué buscan, han recogido gran número de variables sobre ellos y quieren explotarlas “a ver qué sale”, qué características importantes para el negocio definen a sus clientes. Estas variables pueden ser principalmente: variables socio-económicas, transacciones comerciales con la empresa y características de los productos o servicios adquiridos.
Este es un problema de segmentación, donde se crea un patrón de características a partir de las variables conocidas y mediante aprendizaje no supervisado se crearán automáticamente segmentos de patrones de clientes similares. Estos segmentos facilitarán el analizar las características de los patrones de clientes que han caído en cada segmento. Muchas veces facilitará el análisis representar alguna característica concreta de los patrones, por ejemplo, ventas medias o máximas de los clientes de un segmento, o qué dos productos han adquirido más o por qué canal hacen las compras: tiendas físicas u online.
4. Asignación de recursos en un clúster de computación
La asignación de los recursos limitados a diferentes tareas normalmente implica el desarrollo de algoritmos que implementan reglas definidas por los expertos humanos. El aprendizaje por refuerzo puede ser usado para asignar y planificar los recursos de computación a los trabajos encolados, con el objetivo de minimizar el tiempo que los trabajos tardan en ser ejecutados.
El agente (componente software del aprendizaje con refuerzo) conoce el estado actual de la asignación de recursos y un perfil de los trabajos encolados, este agente puede elegir entre más de una acción en cada momento en que tiene que tomar una decisión. La recompensa se puede definir como la inversa del tiempo que tardan en ejecutarse los jobs (a más tiempo, menor es la recompensa y a menos tiempo entonces mayor es la recompensa). De manera iterativa el aprendizaje supervisado irá definiendo la política que maximice el total de la recompensa (el tiempo de ejecución sea menor).
5. Definir qué productos o servicios deben ser ofrecidos a qué clientes porque tienen una mayor probabilidad de ser adquiridos por esos clientes.
Prácticamente todas las empresas tienen la necesidad de conocer de todos sus productos o servicios cuáles son los que pueden ser requeridos por un cliente particular en un momento determinado, con el fin de no perder esa oportunidad comercial. Éste es un problema de clasificación, pero al contrario de lo visto en el ejemplo 1, las clases no son binarias, sino que serían muchas, por ejemplo pueden ser una para cada producto del porfolio. El algoritmo de aprendizaje supervisado usaría patrones de características de los clientes que tendrían como salida qué producto compraron en un momento determinado, aprendiendo a asignar el producto correcto a un cliente en cada momento.
En este artículo se ha intentado mostrar que el Aprendizaje Automático es una ciencia con aplicaciones prácticas, que resuelve problemas empresariales complejos y actuales. Ciencia que ya tiene una historia lo suficientemente amplia para que se tenga un conocimiento, experiencia y tecnologías suficientes para construir sistemas robustos basadas en el aprendizaje automático.
Por la limitación de este artículo no se ha podido incidir en otras experiencias y aplicaciones que estamos usando prácticamente todos los días: buscadores en internet, reconocimiento de caras y objetos en fotografías tomadas con el móvil, búsqueda de fotografías en esos mismos móviles, asistentes a la conducción en coches, asistentes en el control de tráfico aéreo, aplicaciones de defensa y de seguridad, y un largo etcétera.
Se ha visto por qué el Aprendizaje Automático es importante y qué características debe tener un problema para que tenga sentido el aplicar técnicas de Inteligencia Artificial, y cómo a partir de la tipología del problema que se quiere resolver, se puede saber qué técnica de aprendizaje automático puede ser más adecuada.
Como conclusión, y aún a riesgo de parecer exagerado, me gustaría resaltar que la Inteligencia Artificial será para las empresas la ciencia que marcará las diferencias entre dos compañías que compitan en el mismo sector, que aportará las ventajas competitivas más importantes y que, en definitiva, determinará la empresa que sobreviva y crezca, y la que simplemente mantenga la inercia a duras penas e incluso desaparezca.
El planteamiento anterior se justifica por dos características de una buena implementación de soluciones basadas en la IA en las empresas:
Si pensamos en los dos puntos anteriores la empresa sigue haciendo lo mismo que antes pero mejor, mucho más eficientemente a la vez que mejora el servicio dado a sus clientes.
Lo anterior es importante, pero lo mejor es que se libera talento de tareas repetitivas y que aporta muy poco valor. El talento es el activo más valioso que tienen las empresas, y gracias al Aprendizaje Automático puede estar dedicado a tareas que aporten mucho valor a los clientes y a la vez sean estimulantes para la “inteligencia natural”.
Las empresas de Software as a Service (SaaS) han ganado un enorme protagonismo en los últimos años, principalmente por lo novedoso de los productos [...]
Leer más »La Cámara Oficial de Comercio de Sevilla, en colaboración con el Instituto Español de Analistas Financieros (IEAF), ofreció el pasado 16 de marzo [...]
Leer más »Las tecnologías de IA se usan actualmente en las empresas para la transformación de los procesos de negocio, impulsar la interacción con los client [...]
Leer más »El auge de la Inteligencia Artificial (IA) en los negocios está muy de actualidad. Su uso se está extendiendo y está cambiando, incluso, los modelo [...]
Leer más »