conferences | speakers | series

Espetando Series Temporales desde Zacaba

home

Espetando Series Temporales desde Zacaba
Opensouthcode 2019

Durante las últimas décadas del siglo XX, tanto en la industria como en la academia se han llevado a cabo numerosas aportaciones y desarrollos relacionados con el análisis de series temporales (_Time series_). Sin embargo, no es hasta estos últimos años en los que la industria se ha lanzado al análisis y cómputo masivo de este tipo de datos. El auge del Internet de la Cosas y la necesidad de analizar y monitorizar datos en los que el tiempo no es una simple métrica más, sino el eje principal sobre el que versan otras variables es lo que ha puesto el foco de atención en el análisis de series temporales. Esta creciente demanda de cómputo debe ser acompasada por las últimas generaciones de procesadores, (_multicore y GPUs_), así como en el desarrollo de tecnologías de _Big Data_ y de computación distribuida, las cuales proporcionan los medios para tratar estos grandes volúmenes de datos en tiempo real suave. A pesar de la existencia de librerías que tratan time series, observamos principalmente dos limitaciones: 1) La funcionalidad que ofrecen estas librerías se encuentra muy fragmentada en librerías inconexas y 2) la mayoría de estas librerías son secuenciales, es decir, no explotan las ventajas de las nuevas arquitecturas de procesador, por lo que no son capaces de aprovechar los recursos que ofrecen los procesadores paralelos como _GPUs_ o _CPUs multicores_. Para superar las dos limitaciones anteriores, presentamos Khiva (https://github.com/shapelets/khiva), una librería open source que permite la ejecución de una larga lista de algoritmos de análisis de series temporales sobre _GPUs_. Khiva incorpora algoritmos de reducción de dimensionalidad, cálculo de distancias, normalización, regresión, regularización, extracción de características, _clustering_ y búsqueda de patrones, etc. Para la implementación de todos los algoritmos hemos usado la librería Arrayfire como capa de abstracción de las principales _APIs_ de _GPUs_ para cómputo, OpenCL y Nvidia CUDA. De esta forma, somos capaces de asegurar que la librería Khiva se puede ejecutar en cualquier plataforma independientemente de la _GPU_ que se encuentre disponible. Además de la aceleración del tiempo de ejecución, otra de las principales ventajas que proporciona Khiva, es que la mayoría de los algoritmos mencionados son concatenables. Debido a que implementamos una estrategia lazy para las transferencias de memoria entre _CPU_ y _GPU_, así solo se transfieren datos entre _CPU_ y _GPU_ si es estrictamente necesario, por lo que evitamos todas aquellas transferencias que son innecesarias. En esta charla, nos centraremos en el análisis y búsqueda de patrones de series temporales, analizaremos en profundidad los algoritmos más avanzados y observaremos como estos algoritmos nos pueden servir para encontrar _motifs_, _discords_ y anomalías. Para mostrar la potencia de análisis de Khiva se usarán varios casos de uso (https://github.com/shapelets/khiva-use-cases) y validaremos como podemos extraer nuevas conclusiones de este tipo de datos.

Durante las últimas décadas del siglo XX, tanto en la industria como en la academia se han llevado a cabo numerosas aportaciones y desarrollos relacionados con el análisis de series temporales (_Time series_). Sin embargo, no es hasta estos últimos años en los que la industria se ha lanzado al análisis y cómputo masivo de este tipo de datos. El auge del Internet de la Cosas y la necesidad de analizar y monitorizar datos en los que el tiempo no es una simple métrica más, sino el eje principal sobre el que versan otras variables es lo que ha puesto el foco de atención en el análisis de series temporales. Esta creciente demanda de cómputo debe ser acompasada por las últimas generaciones de procesadores, (_multicore y GPUs_), así como en el desarrollo de tecnologías de _Big Data_ y de computación distribuida, las cuales proporcionan los medios para tratar estos grandes volúmenes de datos en tiempo real suave. A pesar de la existencia de librerías que tratan time series, observamos principalmente dos limitaciones: 1) La funcionalidad que ofrecen estas librerías se encuentra muy fragmentada en librerías inconexas y 2) la mayoría de estas librerías son secuenciales, es decir, no explotan las ventajas de las nuevas arquitecturas de procesador, por lo que no son capaces de aprovechar los recursos que ofrecen los procesadores paralelos como _GPUs_ o _CPUs multicores_. Para superar las dos limitaciones anteriores, presentamos Khiva (https://github.com/shapelets/khiva), una librería open source que permite la ejecución de una larga lista de algoritmos de análisis de series temporales sobre _GPUs_. Khiva incorpora algoritmos de reducción de dimensionalidad, cálculo de distancias, normalización, regresión, regularización, extracción de características, _clustering_ y búsqueda de patrones, etc. Para la implementación de todos los algoritmos hemos usado la librería Arrayfire como capa de abstracción de las principales _APIs_ de _GPUs_ para cómputo, OpenCL y Nvidia CUDA. De esta forma, somos capaces de asegurar que la librería Khiva se puede ejecutar en cualquier plataforma independientemente de la _GPU_ que se encuentre disponible. Además de la aceleración del tiempo de ejecución, otra de las principales ventajas que proporciona Khiva, es que la mayoría de los algoritmos mencionados son concatenables. Debido a que implementamos una estrategia lazy para las transferencias de memoria entre _CPU_ y _GPU_, así solo se transfieren datos entre _CPU_ y _GPU_ si es estrictamente necesario, por lo que evitamos todas aquellas transferencias que son innecesarias. En esta charla, nos centraremos en el análisis y búsqueda de patrones de series temporales, analizaremos en profundidad los algoritmos más avanzados y observaremos como estos algoritmos nos pueden servir para encontrar _motifs_, _discords_ y anomalías. Para mostrar la potencia de análisis de Khiva se usarán varios casos de uso (https://github.com/shapelets/khiva-use-cases) y validaremos como podemos extraer nuevas conclusiones de este tipo de datos.

Speakers: Antonio Vilches