La palabra de moda de los últimos años es “machine learning” o aprendizaje automático. Junto a la proliferación de fuentes y tecnologías de “big data”, es la tendencia que apunta a una presencia cada vez mayor de decisiones tomadas por un ordenador, en cada ámbito de nuestra vida.
¿Qué es?
Vayamos por partes. En primer lugar, definamos “machine learning”. En esencia, se trata de procesos de toman decisiones o hacen un cálculo basándose en un procesamiento de datos en vez de un algoritmo. Es decir, en vez de que una persona programe como tiene que calcular el ordenador, la máquina misma “aprende” en base al conjunto de datos que tiene disponible.
Este “aprendizaje” automático no es más que una búsqueda de patrones y relaciones entre los datos de los que se dispone. La calidad de ese aprendizaje será directamente proporcional a la calidad y veracidad de los datos de los que se parte.
En el mundo Microsoft, Azure dispone de una plataforma de aprendizaje automático (Azure Machine Learning Studio) con la que podemos empezar a trastear gratis.
¿Para qué?
El hecho de que una máquina pueda aprender a partir de unos datos de prueba, nos da una serie de escenarios en los que se cumple que disponemos de muchos datos, pero no vemos claro un algoritmo a priori que pueda tomar decisiones. En ese caso delegamos la decisión a la fórmula que la máquina ha sacado y que se basa en la relación entre los datos.
Los usos más frecuentes de “machine learning” son:
• Clasificación: el ordenador divide una serie de datos en categorías separadas. Por ejemplo, el reconocimiento de imágenes, donde un ordenador distingue si la foto es de una flor o de una casa, estaría en este grupo. El filtro de spam del correo electrónico o el reconocimiento de caracteres o de voz es otro ejemplo claro de clasificación.
• Regresión: cuando el ordenador tiene que calcular un resultado numérico basándose en otros datos. Por ejemplo, el precio óptimo de un producto en un día concreto o la valoración del valor de un piso.
• Scoring: regresión donde el resultado indica un valor relativo, habitualmente un porcentaje o una ordenación. Por ejemplo, el ranking de las mejores universidades que se publica cada año.
• Clústering: parecido a la clasificación pero sin disponer de categorías predefinidas. Las categorías se deciden basándose en elementos con características parecidas. El ejemplo adecuado sería el análisis de contactos de Office 365 que detecta grupos cohesionados de personas que se comunican mucho entre ellos, basándose en los datos de correos y reuniones en Outlook. Otro ejemplo claro: la búsqueda de imágenes parecidas en Google.
Juntos pero (no) revueltos
El algoritmo de aprendizaje automático básico es la correlación entre las variables de los datos. Dos variables tienen correlación cuando el cambio en una de ellas causa un cambio en la otra, de mismo signo o del signo opuesto. Por ejemplo, la altura y el peso de una persona están correlacionados: a más altura se tiende a pesar más.
La correlación se expresa en un coeficiente de correlación que varía entre -1 y +1. La correlación negativa es cuando un incremento en una variable causa un decremento en la otra. La correlación cero es que no hay ninguna relación entre las variaciones de las dos variables. Por ejemplo: el valor de venta de un coche usado está positivamente correlacionado al tiempo que ha pasado en el garaje y negativamente correlacionado al kilometraje de ese coche.
Un modelo de aprendizaje automático, en esencia, no es más que una colección de correlaciones más o menos precisas de muchas variables de los datos de entrada. De esta manera la máquina puede sacar conclusiones de una o varias variables basándose en las otras. Para ello, primero se “entrena” el modelo de predicción usando una fracción de los datos y se le indica que variables son entrada (las condiciones del coche por ejemplo) y que variable es el resultado (el valor del coche). La correlación entre los datos explicará, con más o menos grado de fiabilidad, el cómputo del resultado a partir de nuevos datos.
La correlación no siempre se debe a una relación causa-efecto. Puede ser que las dos variables en correlación no tienen nada que ver una con la otra, sino que hay una variable oculta que tiene relación causal entre las dos variables. Por ejemplo, podríamos observar que el número de muertes por ahogamiento está directamente correlacionado con el número de helados vendidos al día: las dos variables varían da manera parecida en los meses del año. Sin embargo, no deberíamos concluir que son los helados los que causan los ahogamientos. Sencillamente, las altas temperaturas causan que la gente compre más helados y se bañe más en el agua, lo que causa más ahogamientos.
Bienvenidos al pasado
El gran talón de Aquiles de “machine learning”, en mi opinión, está en ese párrafo anterior. A lo sumo nos puede dar una aproximación de correlaciones entre datos pero la máquina es ignorante en cuando a la causalidad entre esos datos. Allí es donde entra la figura de un “data scientist”, una persona con sólidos conocimientos de matemáticas y de estadística, capaz de separar el grano (correlación con causalidad) de la paja (correlaciones sin causalidad). La máquina por si sola no sabe si lo que calcula con gran coeficiente de correlación tiene sentido o no.
La otra debilidad de aprendizaje automático es que es una ventana al pasado. Al entrenar el modelo predictivo con datos disponibles, inevitablemente le estaremos entrenando para que prediga en base al pasado. Mientras algunas cosas físicas no cambian en el tiempo, como la relación entre la temperatura y los helados y los ahogamientos, hay otras que podrían cambiar como las tendencias de compra, la popularidad de una zona o los patrones de criminalidad en un barrio. Hay que tener mucho cuidado en revisar estos modelos periódicamente en base a los nuevos datos y ajustar el modelo si hace falta. Si no lo hacemos, estaríamos haciendo predicciones falsas. Recordad la letra pequeña de los bancos: “rentabilidades pasadas no implican rentabilidades futuras”.
Los datos del pasado pueden ocultar prejuicios de valor muy peligrosos. Por ejemplo, si una de las variables en el modelo de predicción es la nacionalidad o color de piel de la persona, estaríamos haciendo un juicio de valor y no una correlación estadística. Es decir, la máquina podría decidir que una persona inmigrante es menos apropiada para un puesto de trabajo o para un crédito, basándose en los datos pasados que indican que entre los delincuentes o morosos hay muchas personas de la misma nacionalidad que el aplicante. Sin embargo, si esto lo hiciera una persona en vez de una máquina estaría cometiendo el delito de discriminación y acabar en un juicio.
En resumen
En mi opinión, mucha parte de la popularidad de “machine learning” está justificada. La disponibilidad de muchos datos en el presente permite detectar tendencias antes de que se conviertan en un problema (el mantenimiento predictivo de infraestructura), tomar decisiones con más fiabilidad o permite visualizar con más claridad nuestro día a día (My Analytics de Office 365). Saber de “machine learning” y de como y cuando aplicarlo, será necesario cada vez más en nuestra profesión. Nos toca aprender (de manera “manual”) y un buen comienzo podría ser este curso gratuito en eDX.
Sin embargo, nuestra responsabilidad como profesionales de la tecnología también pasa por reconocer sus limitaciones y los problemas éticos que conlleva. No podemos abdicar de ello si no queremos que el maravilloso futuro de “machine learning” se convierta en el infierno distópico de “machine ruling” al estilo de SkyNet.
Edin Kapić
SharePoint and O365 Architect – MVP | Soluciones Microsoft | SOGETI ESPAÑA
Pingback: Basura dentro, basura fuera – itblogsogeti