3. Investigador/estudiante en Tomas Bata
University in Zlín, República Checa
Docente en Tecnologico Nacional de Mexico en
Celaya, Mexico
Microsoft MVP en IA y Tecnologías de
Desarrollador
Luis
Beltrán
4. Agenda
● Detección de Anomalías: Una introducción
● Azure Cognitive Services
● ¿Qué es el Servicio de Anomaly Detector?
● Demo
● Apuntes finales
● Q & A
5.
6. Detección de anomalÍas
● La detección de anomalías
es el proceso de encontrar
valores atípicos, elementos
inesperados o eventos raros
en una serie de tiempo.
● Reconoce e identifica
patrones de comportamiento
de datos inusuales, los
cuales no son consistentes
con los valores esperados.
Value
Time
7. La detección de anomalías asume que:
● Las anomalías ocurren muy raramente en los datos.
● Existe una diferencia significativa entre las características de las
anomalías y los datos normales.
En resumen, la detección de anomalías identifica puntos de datos que
no encajan bien con el resto de los datos.
8. La importancia de la detección de anomalÍas
Los datos anómalos se pueden conectar a problemas como:
● fraude bancario
● problemas médicos
● defectos estructurales
● equipos que funcionan mal
● y mucho más
Es importante determinar qué puntos de datos pueden considerarse
valores atípicos, ya que la identificación de estos eventos es relevante
para los propietarios de datos (empresas).
10. ¿quÉ es el servicio de anomaly detector?
● Un servicio de IA que ayuda a prevenir problemas antes de que ocurran.
● Al ingerir datos de series temporales, selecciona el modelo de detección
que mejor se adapte a los datos para garantizar una alta precisión.
● Determina los límites, los valores esperados y qué puntos de datos son
anomalías.
Prueba el servicio: https://aka.ms/adDemo (requiere una llave)
11. ● Anomaly Detector proporciona una API RESTful y SDK para varias
tecnologías y lenguajes.
● Se puede implementar con contenedores Docker para análisis de
datos on-premises.
12. Anomaly detector api
Actualmente, la API ofrece tres
funcionalidades:
● Encuentra anomalías para
toda la serie
● Detecta el estatus de
anomalía del último punto en
la serie de tiempo.
● Encuentra el punto de
inflexión de la serie completa.
API reference: https://westus2.dev.cognitive.microsoft.com/docs/services/AnomalyDetector/operations/post-timeseries-entire-detect
14. Encuentra anomalÍas en la serie completa
Esta operación genera un modelo utilizando una serie completa, cada
punto se detecta con el mismo modelo. Los puntos antes y después de un
cierto punto se utilizan para determinar si se trata de una anomalía. Toda
la detección puede dar al usuario un estado general de la serie temporal.
{
"period": 7,
"expectedValues": [ 32894418.961561, 29707932.244719, … ],
"isAnomaly": [ false, false, … ],
"isNegativeAnomaly": [ false, false, … ],
"isPositiveAnomaly": [ false, false, … ],
"upperMargins": [ 1644720.948078, 1485396.612235, … ],
"lowerMargins": [ 1644720.948078, 1485396.612235, … ],
}
Request URL
https://{endpoint}/anomalydetector/v1.0/timeseries/entire/detect
Contenido de la
Respuesta
15. Detecta el estatus de anomalÍa del Último
punto en la serie de tiempo
Esta operación genera un modelo utilizando puntos anteriores al último.
Es decir, solo se utilizan puntos históricos para determinar si el punto
objetivo es una anomalía o no. La última detección de puntos coincide
con el escenario de monitoreo en tiempo real de las métricas comerciales.
{
"isAnomaly": false,
"isPositiveAnomaly": false,
"isNegativeAnomaly": false,
"period": 12,
"expectedValue": 809.2328084659704,
"upperMargin": 40.46164042329852,
"lowerMargin": 40.46164042329852,
"suggestedWindow": 49
}
Request URL
https://{endpoint}/anomalydetector/v1.0/timeseries/last/detect
Contenido de la
Respuesta
16. Encuentra el punto de inflexión de la serie
completa
Esta operación genera un modelo utilizando una serie completa, cada punto
se detecta con el mismo modelo. Con este método, se utilizan puntos antes y
después de un determinado punto para determinar si se trata de un punto de
cambio de tendencia. Toda la detección puede detectar todos los puntos
de cambio de tendencia de la serie temporal.
{
"period": 4,
"confidenceScores": [ 0, 0.0018, 0.3281 … ],
"isChangePoint": [ false, false, true, … ],
}
Request URL
https://{endpoint}/anomalydetector/v1.0/timeseries/changepoint/detect
Contenido de la
Respuesta
17. Sensibilidad (sensitivity)
El valor de sensibilidad de la API tiene un efecto directo en los límites
creados para la detección de anomalías.
25. recomendaciones
● Los puntos de datos deben estar separados por el mismo intervalo.
● No contar con menos del 10% del número esperado de puntos en tus
datos no debería afectar negativamente el proceso de detección de
anomalías.
● Incluye al menos 12 puntos de datos si tus datos no tienen un patrón
estacional claro (máximo 8640 puntos).
● O incluye al menos 4 patrones de ocurrencias si sus datos tienen un
patrón estacional claro.
26. Detalles tÉcnicos
La innovación de Microsoft proporciona un framework genérico para
conectar diferentes conjuntos de algoritmos y así manejar un amplio
espectro de diferentes series temporales. Se han utilizado los siguientes
algoritmos:
● Fourier Transformation
● STL Decomposition
● Dynamic Threshold
● Extreme Studentized Deviate (ESD)
● Z-score detector
● SR-CNN
https://techcommunity.microsoft.com/t5/ai-customer-engineering-team/introducing-azure-anomaly-detector-api/ba-p/490162
28. Para aprender mÁs
Cognitive Services Lab In Action (Build 2018)
https://channel9.msdn.com/Events/Build/2018/THR3107
Anomaly Detector
https://azure.microsoft.com/en-us/services/cognitive-services/anomaly-detector/
AI Show – Anomaly Detector videos
https://channel9.msdn.com/Tags/anomaly-detector
Introduction to Anomaly Detector
https://docs.microsoft.com/en-us/learn/modules/intro-to-anomaly-detector/
29. Para aprender mÁs
Identify abnormal time-series data with Anomaly Detector
https://docs.microsoft.com/en-us/learn/modules/identify-abnormal-time-
series-data-anomaly-detector/
Build an Enterprise-ready Anomaly Detection Solution
https://info.microsoft.com/ww-ondemand-rapidly-build-an-anomaly-
detection-solution.html
Install and run Anomaly Detector containers
https://docs.microsoft.com/en-us/azure/cognitive-services/anomaly-
detector/anomaly-detector-container-howto
31. ¡Gracias por tu atención!
Luis Beltrán
Tomás Bata University in Zlín
Tecnológico Nacional de México en Celaya
About Me:
https://about.me/luis-beltran
Hola a todos, gracias a todos por asistir a mi sesión para el Digital Transformation Saturday 2022. Es un placer para mí estar aquí y hablar sobre un servicio cognitivo interesante en la cartera de IA de Microsoft que ofrece una funcionalidad que vale la pena considerar y puede ser útil en nuestros negocios.
Antes de comenzar, permítanme presentarme, soy un MVP mexicano de Microsoft que actualmente vive en la República Checa, soy investigador de la Universidad Tomas Bata en Zlin. Me enfoco en redes neuronales profundas, reconocimiento facial y algoritmos de detección de emociones. Desarrollar aplicaciones móviles e integrar servicios en la nube es una actividad que realmente disfruto. Del mismo modo, me apasiona compartir conocimientos con la comunidad.
Así que comencemos con nuestro tema. Aquí, discutamos brevemente la agenda
Comenzaré con una introducción a la detección de anomalías, ¿qué es? ¿Por qué es importante considerarlo? Pero también, ¿dónde encaja en el campo del ML?
Luego, nos dirigiremos a los servicios cognitivos, de los que estoy bastante seguro de que has oído hablar.
El tercer punto nos lleva al tema principal de nuestra charla, por lo que exploraremos a fondo el servicio de detector de anomalías.
Te mostraré una demostración donde se utiliza este servicio para el análisis de datos
Concluiremos nuestra sesión con algunas reflexiones finales que considero relevantes con respecto al tema.
Si tiene alguna pregunta, no dude en agregarla en el chat, intentaré responderlas a todas al final de la presentación.
Hablemos de la detección de anomalías
En primer lugar, ML es un campo de estudio que mezcla la ciencia de datos con la estadística para permitir a las computadoras la capacidad de "aprender" sin ser programadas explícitamente. Esto permite a los usuarios ampliar la experiencia y mejorar los resultados con una intervención humana mínima.
ML crea resultados mediante modelos de regresión, detección de anomalías, agrupación en clústeres y clasificación. ¿Qué preguntas de negocios estás tratando de resolver? Esa es la clave para determinar el tipo de algoritmo/método que vas a aplicar.
Definición: La detección de anomalías es el proceso de encontrar valores atípicos, inesperados o raros elementos / eventos de series temporales.
Una serie temporal es una secuencia de puntos de datos numéricos en orden sucesivo.
La detección de anomalías identifica los puntos de datos en los datos que no encajan bien con el resto de los datos.
¿AD no es solo clasificación?
La respuesta es sí si se cumplen las tres condiciones siguientes.
* Ha etiquetado los datos de entrenamiento
* Las clases anómalas y normales están equilibradas (digamos al menos 1:5)
* Los datos no están autocorrelacionados. ( Ese punto de datos no depende de puntos de datos anteriores. Esto a menudo se rompe en los datos de series temporales).
Sin embargo, a menudo es muy difícil encontrar datos de entrenamiento, e incluso cuando puede encontrarlos, la mayoría de las anomalías son eventos de 1: 1000 a 1: 10 ^ 6 donde las clases no están equilibradas. Además, la mayoría de los datos, como los datos de los casos de uso de IoT, estarían autocorrelacionados.
En otras palabras, la detección de valores atípicos es la identificación de observaciones raras que levantan sospechas al diferir significativamente de la mayoría de los datos.
Reducción de falsos positivos
¿Alguna vez ha usado su tarjeta de crédito en una nueva tienda o ubicación solo para que la rechace?
¿Alguna vez se ha bloqueado una venta porque cobraste una cantidad más alta de lo habitual?
Las tarjetas de crédito de los consumidores se rechazan sorprendentemente a menudo en transacciones legítimas.
Una causa es que las tecnologías de detección de fraude utilizadas por el banco de un consumidor han marcado incorrectamente la venta como sospechosa.
Otro aspecto es que los falsos positivos son una preocupación importante a la hora de considerar decisiones. Por lo tanto, las compensaciones de precisión (dado que el modelo predijo una anomalía, qué tan probable es que sea cierta) y el recuerdo (cuántas anomalías detectará el modelo) son diferentes de los casos de uso de clasificación normales.
Así que ahora podrías pensar. ¿Necesito ser un experto en ML, python, redes neuronales y otras técnicas para analizar enormes conjuntos de datos con el fin de encontrar anomalías con una alta exactitud, precisión y confianza? ¿Es esta una tarea solo al alcance de los científicos de datos?
Gracias a los servicios cognitivos en la nube que ofrece Microsoft Azure, no necesita ser un experto o científico de datos para inyectar inteligencia artificial en sus aplicaciones.
Estas son las API, SDK y servicios disponibles que tienen como objetivo ayudar a los desarrolladores a crear aplicaciones inteligentes sin el uso de "inteligencia artificial directa" y sin la necesidad de habilidades y conocimientos de ciencia de datos. Azure Cognitive Services permite a los desarrolladores agregar fácilmente características cognitivas a sus aplicaciones.
Azure Cognitive Services permite que las aplicaciones vean, escuchen, hablen, comprendan e incluso comiencen a razonar. La oferta de Azure Cognitive Services se puede dividir en cuatro pilares principales: visión, voz, lenguaje y decisión.
Un servicio de IA que le ayuda a prever los problemas antes de que ocurran.
Al ingerir datos de series temporales, selecciona el modelo de detección que mejor se adapte a los datos para garantizar una alta precisión. Se adapta identificando y aplicando automáticamente los modelos que mejor se adaptan a sus datos, independientemente de la industria, el entorno o el volumen de datos.
Determina los límites, los valores esperados y qué puntos de datos son anomalías
Anomaly Detector proporciona una API, lo que significa que se puede integrar fácilmente en aplicaciones y procesos.
No se requieren conocimientos previos en ML, pero por supuesto ayuda
El servicio de detección de anomalías admite varias funcionalidades:
uno es para detectar toda la serie con el modelo entrenado por la serie temporal
otro es detectar el último punto con el modelo entrenado por puntos antes.
También se proporciona detección de puntos de cambio, que es otro escenario común en el análisis de series temporales y la supervisión de servicios.
Ya se ha mencionado que la API acepta datos de series temporales.
Como puede ver, el formato es json, y puede reconocer que los valores incluyen una marca de tiempo que especifica cuándo ocurrió este valor, puede ser un precio, una tasa, una variación, cualquier valor numérico.
Otra información importante es la granularidad, que especifica la frecuencia de cada punto de la serie temporal, por ejemplo, el primer elemento ocurrió en marzo, mientras que el segundo en abril, según lo especificado por la granularidad mensual.
La sensibilidad es un caso especial, lo discutiremos más adelante
Como se ha dicho, la API ofrece tres funcionalidades; el primero se trata de analizar toda la serie temporal y encontrar todas las anomalías que están presentes en el lote.
Se construye un modelo y cada punto de datos se evalúa con respecto al modelo para determinar si se trata de un valor normal o un evento raro. En realidad, el valor anterior y el siguiente también se tienen en cuenta cuando se realiza este análisis.
El punto de conexión (endpoint) es entire/detect y puede ver el resultado: el análisis devuelve una colección de valores esperados, máginas superiores e inferiores que determinan los límites de valor, más sobre eso en un segundo. Para saber si el punto es una anomalía, comprobarás la colección de isonomalia y podrás determinar si es positiva o negativa.
Una anomalía positiva significa que el valor real es mayor que el esperado.
Una anomalía negativa significa que el valor real es menor que el esperado.
Con este servicio, los clientes empresariales pueden descubrir incidentes y establecer un flujo lógico para el análisis de causa raíz.
El endpoint es last/detect
Similar al anterior, pero en lugar de matrices, solo se devuelve un punto como resultado
Cambiar los objetivos de detección de puntos para descubrir cambios de tendencia en las series temporales.
El extremo es changepoint/detect y el resultado recupera la matriz de puntuaciones de confianza para cada cálculo que determina si el punto de datos es un punto de cambio de tendencia o no.
Los sistemas de detección de anomalías de última generación a menudo utilizan un enfoque de talla única, lo que significa que aplican un algoritmo específico en todos los tipos de series temporales.
La experiencia de aprendizaje de Microsoft es que cada algoritmo puede manejar mejor tipos específicos de series temporales.
AD tiene una amplia gama de aplicaciones, como detección de fraude, vigilancia, diagnóstico, limpieza de datos y mantenimiento predictivo.