Mucho se habla de la importancia de los datos hoy en día, tanto es así, que parece ser que la medida de riqueza está empezando a derivar en volumen de datos.
Pero no son los datos por sí solos los que generan un valor. Es el estudio de grandes volúmenes de datos para, en función de una necesidad de negocio, identificar patrones y aprender de ellos para posteriormente obtener un beneficio. Y esto es lo que hoy en día denominamos Machine Learning o Aprendizaje automático.
Pero un segundo, no nos equivoquemos. Esto no implica que los ordenadores sean capaces de predecir el gordo de navidad, sino que realizan las acciones para las cuales han sido programadas. Dichas acciones se realizan de manera autónoma, de forma que el aprendizaje para un dominio de conocimientos es automático, buscando la mínima intervención humana.
Este aprendizaje se traduce en la capacidad de identificación de patrones simples o complejos, a partir de un gran volumen de datos de entrada, por parte del algoritmo interno que ejecuta el ordenador. En la informática tradicional se definía un algoritmo con contexto y detalles determinados para cada acción, limitando sus capacidades, pero esto no es así en los algoritmos empleados en machine learning, los cuales, en función de los datos de entrada, autodefinen sus acciones.
Se pueden clasificar los tipos de algoritmos de machine learning según el modo en que aprenden en dos grandes grupos: Supervised Learning (aprendizaje dirigido) o Unsupervised Learning (aprendizaje no supervisado). Existe un tercer grupo llamado Reinforcement Learning o aprendizaje por refuerzo, que es una mezcla de los dos primeros. Por último, destacamos el Deep Learning (Aprendizaje profundo) el cual es una evolución del Supervised Learning pero empleando las llamadas redes neuronales (capas lógicas con funcionamiento similar al del cerebro humano) para la construcción del modelo.
En el Supervised Learning los datos de entrada son en un primer lugar de entrenamiento (podríamos decir que están etiquetados), al proporcionar estos datos al algoritmo este lo procesa y extrae un modelo. Con este modelo cada vez que entra un nuevo dato al sistema se evalúa y la máquina proporciona una respuesta.
Pongamos un ejemplo para entendernos: el correo spam. A todos nos habrá tocado alguna vez indicarle a nuestro proveedor de correo si quería que clasificara cierto contenido como spam o no. Este algoritmo mejora su precisión cada vez que llega otro correo de spam y lo cataloga como tal, o bien cuando el usuario le indica que no lo es. De esta manera se llega a un punto en el cual el algoritmo tiene la suficiente confianza como para clasificar los correos sin tener que consultar al usuario.
Otro ejemplo: tasa de abandono universitario. Para este caso, podríamos plantear la necesidad que una universidad quisiera determinar cuál es la tasa de abandono académico entre sus alumnos. Deberíamos recopilar toda la información posible sobre estudiantes, tanto los que hayan terminado los estudios como los que los hayan abandonado, y estudiar todos los datos en relación con su trayectoria académica: notas medias de expedientes, situación laboral, estudios becados, etc. Todo aquello que nos proporcione algún dato que pueda haber influenciado en que un estudiante abandone sus estudios en un determinado momento de su trayectoria académica.
Figura 1: Esquema en bloques de Supervised Learning. Fuente: propia
Por otro lado, en el Unsupervised Learning los datos que se introducen de entrada no tienen ningún tipo de etiqueta (o clasificación). Es el propio algoritmo el que debe extraer patrones, tendencias, anomalías para la creación de un modelo. Un ejemplo de aplicación son las técnicas de marketing en la colocación de productos en supermercados. Se dan 5 cestos de la compra como datos de entrada al sistema, entonces este construye modelos de tendencias y patrones con un cierto nivel de confidencia, cómo podría ser que si existe pan y mantequilla existirá tanta probabilidad de que haya mermelada. O por ejemplo, se podría también determinar que si hay cereales existe una elevada probabilidad de que haya leche también. Bien, estos modelos de ejemplo son posteriormente aplicados en la distribución de productos, poniéndolos más cercanos o más lejos en función de la estrategia comercial.
Figura 2: Esquema en bloques de Unsupervised Learning. Fuente: propia.
Así pues en función del modo de aprendizaje existen tipologías de algoritmos más eficientes para cada caso, que no desarrollaremos en detalle en este artículo. Tan solo destacar, para aquellos lectores de nivel técnico más avanzado, que existen desde algoritmos de regresión hasta de redes neuronales pasando por algoritmos Bayesianos, todo un repertorio de lo más interesante para aquellos románticos de la matemática.
Llegados a este punto, me parece interesante comentar una aplicación del machine learning que está muy de moda hoy en día: el Natural Language Processing (Procesamiento del Lenguaje Natural) o NLP, para abreviar. Este término ha tomado fuerza estos últimos años, debido a la llegada de los Chatbots, la traducción automática de idiomas, el análisis de sentimientos, la generación automática de keywords y otros. Este algoritmo es en realidad una agrupación de los algunos citados anteriormente y se emplea para que las computadoras sean capaces de entender a los humanos, con un cierto coeficiente de acierto. Pero como todos sabemos, el lenguaje está lleno de ambigüedades y si ya es difícil entendernos entre nosotros a veces, imaginaos la burda tarea que debe ser hacer que un ordenador entienda la ironía o el sarcasmo. Así pues este es un objetivo difícil de conseguir por el momento, pero ya se están aplicando algunas técnicas para mejorar-lo.
Un ejemplo de cómo NLP nos ayuda agilizando nuestras tareas diarias se vería ilustrado en la nueva funcionalidad de Gmail: el Smart Compose. Esta nueva funcionalidad incorporada por Google recientemente emplea algoritmos de Machine Learning que permiten dar sugerencias inteligentes de frases completas que usa el usuario frecuentemente dada una situación determinada.
En resumen, desde las ideas más básicas sobre Inteligencia Artificial planteadas por Aristóteles en la antigua Grecia, pasando por el diseño de la máquina universal de Alan Turing (1936), la victoria de Deep Blue (IBM) al ajedrez contra Gari Kaspárov (1997), la victoria de Watson (IBM, 2011) en Jeopardy! hasta la victoria de AlphaGo (programa informático diseñado por Google DeepMind en 2016) contra el campeón mundial de Go, podemos decir con firmeza que el "ansia de aprender" de las máquinas no tiene frenos.
De hecho, hace unos días, Google ya presentaba un Doodle que hace, con ayuda de la Inteligencia Artificial, un homenaje a Johann Sebastian Bach, en el que, añadiendo una simple melodía de dos compases la IA crea el resto. Quién sabe si en un futuro serán las máquinas quienes compongan las melodías más bellas que jamás podamos escuchar, y que quizás hasta las máquinas puedan llegar a sentir esas melodías como los humanos.