¿Qué es el Machine Learning?
El Machine Learning, o aprendizaje automático, es una rama de la inteligencia artificial que permite a los sistemas aprender de los datos y mejorar su rendimiento sin necesidad de ser programados explícitamente para cada tarea.
En lugar de seguir instrucciones fijas, los algoritmos de Machine Learning analizan grandes volúmenes de datos, identifican patrones y hacen predicciones o toman decisiones basadas en esa información.
Objetivo del Machine Learning
El objetivo principal del machine learning es desarrollar o mejorar algoritmos de aprendizaje automático para que puedan aprender de diferentes tipos de datos. De esta forma, se generan modelos capaces de realizar predicciones precisas o identificar patrones en los conjuntos de datos, dependiendo de la finalidad y el paradigma.
¿Qué es la Inteligencia Artificial (IA)?
Partiendo del inicio, la IA se define como la teoría o el desarrollo de sistemas inteligentes mediante el uso de ordenadores para realizar tareas que, a priori, solo los humanos podemos realizar. Un ejemplo claro es identificar un animal en una fotografía.
¿IA y Machine Learning son lo mismo?
Es importante destacar que la IA no se limita únicamente al aprendizaje automático. Existen algoritmos que no contemplan el aprendizaje automático, como los empleados en visión artificial, aunque ambos conceptos se asocian frecuentemente.
Machine Learning: Un campo clave dentro de la IA
Dentro del ámbito de la IA, uno de los campos más destacados es el machine learning, que parte de la base de que las máquinas que desarrollan tareas inteligentes pueden (y deben) aprender de la experiencia para mejorar su rendimiento.
¿Es realmente inteligencia?
Aunque no se puede considerar inteligencia en el mismo sentido que la humana, los algoritmos de machine learning pueden realizar tareas complejas y adaptarse a los cambios en los datos sin intervención humana. Sin embargo, su capacidad asociativa es limitada. Por ejemplo, necesitan varias iteraciones para aprender conceptos simples.
Proyectos avanzados como DALL·E de OpenAI muestran los avances significativos en este campo, evidenciando que el aprendizaje automático está evolucionando rápidamente.
Paradigmas del Machine Learning
Ahondando un poco más, dentro del Machine Learning podemos encontrar diferentes paradigmas:
- Aprendizaje supervisado: Los datos de entrenamiento (que es aquel conjunto de datos que se emplea para entrenar al algoritmo) están etiquetados, de manera que el algoritmo tiene la entrada (raw data) y la salida (predicción correcta/etiqueta). Durante la fase de entrenamiento, identifica patrones y tendencias dentro de una misma etiqueta, y cómo diferenciarla de las demás, de modo que es capaz de identificar muestras similares y etiquetarlas correctamente. Durante la fase de validación, se usa el modelo obtenido en la fase de entrenamiento con datos que el modelo no ha visto antes, de modo que el modelo hace predicciones de las etiquetas de dichas muestras. Teniendo en cuenta que los datos están etiquetados y partiendo de la base de que las etiquetas son correctas, se pueden obtener diferentes métricas para evaluar el rendimiento del modelo en base a los aciertos en las predicciones y las etiquetas originales de dichas muestras (matriz de confusión). Un ejemplo de este tipo de algoritmos puede ser el KNN.
- Aprendizaje no supervisado: En este caso, los datos no están etiquetados, de manera que es el algoritmo el que da de manera matemática, identifica patrones y estructuras ocultas en la distribución de los datos. Requiere de más recursos, suelen tardar más en entrenarse pero son más potentes. Generalmente, todo lo relacionado con aprendizaje no supervisado se desarrolla usando redes neuronales, aunque hay cientos de estructuras de redes neuronales y otros algoritmos capaces de trabajar con datos no etiquetados. El rendimiento de estos algoritmos se cuantifica con funciones de coste, entre otras. Un ejemplo de este tipo de algoritmos puede ser HCA.
- Reinforcement learning: Es el enfoque que trata de imitar cómo los humanos aprenden, usando siempre el método ensayo-error. Las respuestas favorables son recompensadas y las no favorables se descartan. Un ejemplo de este tipo de algoritmos sería el Q-learning.
Ciclo de Vida de un Modelo de Machine Learning
El ciclo de vida de un modelo de Machine Learning, como bien se mencionó al inicio, comienza con la selección del algoritmo a emplear. Dependiendo del algoritmo, los demás pasos pueden cambiar, pero como norma general, podemos decir que siguen el paso de entrenamiento, validación y despliegue.
División del Conjunto de Datos en Modelos Supervisados
Por lo general, en los modelos supervisados, el conjunto de datos se divide en los datos de entrenamiento y los datos de validación, normalmente en un ratio 70/30. Los datos de entrenamientos son con los que el modelo aprenderá, y se emplearán en la también llamada fase de entrenamiento. Durante esta fase, el algoritmo irá ajustándose de la manera que considere (empleando distintos ratios, pesos…) para conseguir identificar/clasificar los datos de entrenamiento; es decir, se le dan 600 imágenes de gatos y se le dice que son gatos, y el algoritmo (si se se ha seleccionado correctamente) encontrará la función que a él le permita saber que eso es un gato.
En la fase de validación, se le dan al modelo muestras que no haya visto antes, se espera a que de una respuesta y se compara dicho output con la etiqueta que se tenía.
Como se puede observar, esto solo aplica a los modelos de aprendizaje supervisado, pues en el aprendizaje no supervisado no hay etiquetas y el rendimiento de un modelo se cuantifica con otras funciones, como pueden ser las funciones de coste.
Machine Learning en ElasticSearch
Hay muchas herramientas que ya proveen al usuario con modelos pre-entrenados y listos para usar datos nuevos, como puede ser ES.
ES proporciona una serie de APIs que permiten acceder a modelos híbridos de machine learning, que si bien no son customizables por el usuario, permiten cierta customización. Para que dicho modelo sea lo más genérico posible, nace de la combinación de cuatro algoritmos principales:
- Clustering: Agrupar muestras similares.
- Time series decomposition: Descomponer datos de timeseries en sus diferentes componentes (FT).
- Bayesian distribution modelling: Permite modelar la incertidumbre de la entrada y la salida del modelo.
- Correlation Analysis: Identifica correlaciones en las muestras.
En ES el uso del ML se emplea principalmente para identificar comportamientos anómalos dentro de un conjunto de datos. Es decir, permite generar un modelo sobre el comportamiento que siguen unos datos determinados, detecta desviaciones del mismo, y las categoriza.
Jobs & datafeeds
En ES, los modelos que creamos se refieren como jobs. Dichos modelos tienen como objetivo identificar comportamientos anómalos, es decir, desviaciones del modelo. Por ello, en cada job se pueden definir diferentes detectores que detectan anomalías en diferentes casos.
Un detector emplea una función que se aplica a los datos de un bucket de tiempo, y detecta anomalías en estos datos “procesados”. Los diferentes detectores dentro del mismo job son independientes.
Entonces, en el job (un archivo JSON) se define la lógica del modelo, así como los fields de los índices que ese modelo usará.
Por otro lado está el datafeed, que es el encargado de alimentar de datos al job. El datafeed, a rasgos generales, envía datos de uno o varios índices de ES a un job de ML, que los procesa y genera un modelo. El datafeed es customizable a diferentes niveles, permitiendo hacer filtros de tipo query y configurar retardos en el caso de métricas que puedan tenerlo.
Anomalias
En cuanto se refiere a las anomalías, conocer los niveles jerárquicos de las puntuaciones de anomalías de machine learning es esencial a la hora de entender la información que dicha puntuación nos transmite. Permite conocer de qué depende dicha anomalía, como se manifiesta o como se puede usar como un indicador de alerta.
Record score:
- Es el nivel jerárquico más bajo de puntuación de anomalías, y se corresponde con la aparición de un comportamiento anómalo para un sample en concreto. Es decir, hace referencia a la aparición de un comportamiento inusual en su nivel más simple.
Por ejemplo: En el último minuto, las peticiones a una determinada API son un 200% mayores de lo normal.
Influencer score:
- Es el nivel jerárquico medio de puntuación de anomalías, y se refiere a cuantificar la contribución de una determinada entidad o ”influencer” al comportamiento anómalo aparecido. Por ello, a cada entidad se le otorga una puntuación dependiendo de su influencia en la puntuación de la anomalía, que la relaciona con el resto de entidades. Por ejemplo: De diez países cuyos usuarios usan nuestra web, saber cual de ellos es el que mayor influencia tiene sobre una anomalía ocurrida en cierto intervalo de tiempo.
Bucket score:
- Es el nivel jerárquico más alto de puntuación de anomalías, y se corresponde con la agregación de la puntuación en función del tiempo (en concreto, en función del bucket_span). Pretende considerar diferentes comportamientos anómalos y relacionarlos en función de la magnitud de sus record score y el número de anomalías en ese espacio de tiempo, si ocurren al mismo tiempo.
Nota: No es una media al uso, pero usa los influencer scores de cada bucket_span.
Por ejemplo: Evaluar las desviaciones de los usuarios de un servicio en un intervalo de tiempo.
Para detectar y alertar desviaciones del global del conjunto de datos en función del tiempo, el bucket score sería el más apropiado. Para alertar de las entidades que mayor peso tienen en los comportamientos más anómalos, el influencer score sería la métrica a analizar. Para alertar de la anomalía más severa en una ventana de tiempo, se debería usar el record score.
Por último, existe un tipo de puntuación que si bien no entra en el apartado anterior, es muy útil. El Multi Bucket Impact es una puntuación cuyo valor oscila entre -5 y 5, y lo que permite cuantificar es un comportamiento anómalo que se extiende a lo largo del tiempo. En concreto, se analiza el bucket de tiempo actual y los once buckets anteriores para determinar si el comportamiento anómalo, más o menos independientemente de su puntuación, es categorizado como evento anómalo por la duración que ha tenido.
Tal vez pueda interesarte:
- Escalabilidad sin límites: El poder de Zabbix Proxy y su automatización dentro del ecosistema IOMETRICS® Observability
- IA: ¿Ser agente o no ser? Esa no siempre es la pregunta.
- Evento anual de clientes: innovación, Agentes Autónomos y alta cocina
- Observabilidad moderna con OpenTelemetry: De la detección a la Causa Raíz
- Vuelve a emocionarte con el MWC26