Las Piezas del Machine Learning

09 febrero 2018

Las Piezas del Machine Learning

by Ángel Delgado

Desde el equipo de Data Science de Sngular hoy os vamos a contar en qué consiste el machine learning. A veces se habla de algoritmos, de modelos, de predicciones… y en Sngular trabajamos con ello todos los días.

A estas alturas todos ya hemos oído hablar del machine learning y los diferentes logros que se han conseguido gracias a este. El machine learning (o aprendizaje automático) es una rama dentro de la inteligencia artificial donde, más allá de conseguir que una máquina aprenda, se busca además que lo haga por sí sola.

Leer la premisa anterior desde fuera puede sonar a que el machine learning es un proceso cercano a la magia, pero en realidad se basa en construir conceptos complejos usando decisiones lógicas simples a modo de ladrillos, dándoles estructura por medio de las matemáticas y usando las herramientas de computación como mano de obra.

Por otro lado, las noticias de lo que han conseguido empresas como Google y Facebook con estas técnicas nos hacen pensar que con el machine learning se puede resolver cualquier pregunta. Nada más lejos de la realidad. El objetivo de este artículo está en analizar conceptualmente, a modo de resumen, las bases que hacen que el machine learning funcione, para así entender no solo cómo se desarrolla sino cuáles son sus posibles limitaciones.

1.- Datos

Comparando el machine learning con un coche, los datos son el combustible que lo alimenta, de modo que es importante tanto que sea de buena calidad como que haya suficiente para alcanzar el objetivo que se busca.

Si bien es cierto que la obtención previa de los datos no forma parte del proceso de machine learning, sí es un punto clave a la hora de entender cómo funciona, puesto que el conocimiento de la máquina no viene impuesto ad hoc por inferencia humana, sino de los insigths que guardan los datos. La afirmación anterior parte de la premisa de que los datos siguen un comportamiento mayoritariamente determinista, lo cual no siempre es cierto. Esperar que el machine learning funcionase en situaciones no deterministas sería como esperar que alguien prediga el número premiado de la lotería en todos los sorteos estudiándose los números premiados de años anteriores.

El ser humano puede llegar a ver en los datos relaciones lineales, monotonías, repeticiones… que constituyen comportamientos con unas relaciones sencillas. La ventaja de las máquinas es que son capaces de encontrar fácilmente relaciones como funciones no lineales, combinaciones o verosimilitudes estadísticas. Un ejemplo de esto son los bancos, en los que se ha dejado que las máquinas que aprenden a estimar el riesgo de impago a partir de información que proporcionan los clientes sin tener conocimiento del entorno (negocio, mercado…) por medio de ecuaciones que predicen mejor que lógicas humanas como “cuanto más salario, menos probable es el impago”.

A la hora de resolver un problema por medio de técnicas de machine learning se deben buscar fuentes de información que sean determinantes de alguna forma a la hora de sacar conclusiones (aunque el ojo humano no lo vea), por ello es importante intentar obtener la mayor cantidad de datos posibles y estudiar, a posteriori, coeficientes como la correlación entre variables, así como entre combinaciones no lineales de estas que nos permitan ver qué hay, o no, interesante en los datos para enseñar luego a la máquina.

Gran parte de la lógica en la que se fundamenta el machine learning se lleva desarrollando desde el siglo pasado, pero no ha sido hasta los últimos avances tecnológicos cuando se ha podido explotar su potencial. Uno de los impulsores del machine learning ha sido la mejora de los sistemas de almacenamiento y procesado. Las bases de datos indexadas junto con los sistemas Big Data permiten un almacenamiento de datos mayor y más rápido (además de escalables y con mejor persistencia del dato).

El valor de este punto es dar lugar a unos datos que guarden una información significativa poco redundante y normalizada, de forma que se evite introducir información no imparcial a priori.

 

2.- Matemáticas

La particularidad del machine learning frente a otros sistemas de inteligencia artificial es que el ser humano no implementa su conocimiento en la máquina, sino que le proporciona la información con la que quiere que aprenda, y es la propia máquina la que infiere las leyes que son determinantes en la toma de decisiones. La gran ventaja de la inferencia por medio de la máquina está en la escalabilidad. Es decir, el conocimiento resultante que puede llegar a obtener es proporcional a la cantidad de datos que se usan, llegando a ser más precisos que el obtenido mediante conocimiento humano; si la cantidad de datos es suficiente (sin entrar en más detalle, algunos ejemplos de esto están en los traductores y en algunos juegos, donde la los datos con los que se ha entrenado a la máquina han sido suficientemente representativos y el problema sigue una casuística altamente determinista).

Como hemos dicho, este proceso de aprendizaje lo hace sin interferencia del ser humano, pero sí es necesario que alguien le defina lo que es aprender, para lo cual es necesario recurrir a las matemáticas.

El concepto de aprender referido a una máquina se traduce en calcular la distribución de probabilidad (condicional si es supervisado y no condicional si no lo es) que siguen los datos, de modo que una vez ha aprendido un conjunto de datos, dándole datos nuevos, la máquina es capaz de hacer deducciones de las reglas que ha inferido.

Es aquí donde es necesario recurrir a la teoría de la estadística. Sin indagar demasiado en el proceso, hay que notar que, a pesar de que existan múltiples soluciones para el mismo problema, es vital un experto en datos que conozca las propiedades de las familias de funciones y/o algoritmia del proceso, para elegir la solución que no solo aprenda bien los datos que ya tenemos, sino que sea flexible y robusta en la predicción de los datos futuros.

Una mala elección en el algoritmo de machine learning es como quien se aprende un libro de matemáticas de memoria, si le preguntas por un problema que haya estudiado te sabrá responder, pero si le pides que te resuelva uno nuevo a partir de lo aprendido fallará porque no entiende la lógica.

El proceso de iteración sobre los datos, en muchos algoritmos, no ocurre una sola vez, sino que se produce de forma reiterada. En estos casos en cada iteración se calcula, de forma matemática, la precisión del modelo con el objeto de buscar maximizarla. Esto en la práctica supone implementar una serie de fórmulas que le dicen a la máquina cómo aprender y para eso es necesario también recurrir a una herramienta matemática denominada optimización.

Teniendo en cuenta que un modelo, antes de mostrarle los datos, está ciego, la optimización sería como el bastón que le guía en cada paso.

 

3.- Computación

Como hemos dicho, existen diferentes distribuciones estadísticas y procesos de optimización para conseguir que la máquina aprenda. Estos determinan lo que se denomina el modelo. Ya hemos entendido que funcionan de manera general y el trabajo de un Data Scientist está en particularizarlo para el problema en cuestión.

Aunque se suele llamar mejor modelo a aquel que obtiene mejor resultado en las métricas a optimizar, en realidad, intervienen otros factores, como la velocidad y eficiencia del proceso para que soporte toma de decisiones de un flujo de datos continuo sin saturarse o que tenga una solución a llevar a cabo, antes de que sea demasiado tarde. Este proceso requiere conocer la complejidad computacional del modelo elegido, así como la capacidad de las máquinas que se tienen a disposición. De nada nos sirve un modelo que prediga el tiempo del día siguiente con precisión, pero tarde una semana en converger a un resultado.

En este tema han sido determinantes los avances tecnológicos de los últimos años, ya que la tecnología de hace unos años no tenía los recursos necesarios para poder procesarse. Estas mejoras no son solo de carácter vertical, sino también horizontal, como es la computación distribuida (concepto que va al hilo del Big Data y el almacenamiento distribuido) y también nuevas técnicas del uso del hardware, como es el uso de la GPU para el procesamiento.

 

4.- ¿Por qué es mejor que el razonamiento humano?

Este artículo solo es una vista de lo que supone el machine learning a través de pinceladas sobre los temas que concierne. De este modo se ha intentado mostrar que el machine learning es un flujo de trabajo en el que intervienen, entre otros, los conceptos que hemos resumido (optimización, distribución de probabilidad, riqueza representativa del dato…).

El motivo por el que llega a funcionar igual o mejor que el conocimiento humano está en que el poder de las matemáticas le da la capacidad de entender insigths que el ser humano no ve y en la velocidad de computación de las máquinas y su capacidad de procesar, en solo días u horas, la experiencia que un humano tardaría años en asimilar.

En los problemas donde falla (o funciona peor que el ser humano) son aquellos en los que los conceptos a entender requieren una abstracción mayor que la que se puede obtener por medio de la interacción con datos numéricos, por ejemplo, ser capaz de captar ironías en el lenguaje natural entre humanos. Este problema no es realmente porque las máquinas procesen la información peor que los humanos, sino porque el humano, aunque no sea consciente, está altamente cualificado por su experiencia para esas tareas. En el ejemplo del lenguaje natural, un humano habla todos los días, escucha a otras personas, lee, escribe… dedica infinidad de tiempo a tratar la información del lenguaje, además de a interactuar y ser corregido, por tanto, lo que lo único que necesitan las máquinas para alcanzarnos en este campo también es más tiempo y datos. Démosles tiempo.

 

5.- Conclusión

El machine learning no es magia, es ciencia y la ciencia consiste en entender, por medio de la observación, la lógica de lo que nos rodea. Que en el proceso de observación no se obtenga la información suficiente o que la información esté basada en procesos aleatorios hace que el machine learning no funcione correctamente (como tampoco funcionaría el razonamiento humano). Lo que sí que está claro es que si tienes datos suficientes que se relacionan con alguna lógica, oculta o no, seguramente un modelo de machine learning la encuentre de manera más precisa que cualquier humano.

Si tienes datos y tienes un proyecto en el que creas que las máquinas puedan ayudar, desde el equipo de Data Science de Sngular las pondremos a pensar para ti.

Volver a la listaSiguiente artículo
arrow

Titulo

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.