21 votos

Estrategias de aumento de datos para la previsión de series temporales

Estoy considerando dos estrategias para hacer un "aumento de datos" en la previsión de series temporales.

Primero, un poco de historia. Un predictor $P$ para predecir el siguiente paso de una serie temporal $\lbrace A_i\rbrace$ es una función que normalmente depende de dos cosas, los estados pasados de la serie temporal, pero también los estados pasados del predictor:

$$P(\lbrace A_{i\leq t-1}\rbrace,P_{S_{t-1}})$$

Si queremos ajustar/entrenar nuestro sistema para obtener un buen $P$ entonces necesitaremos suficientes datos. A veces, los datos disponibles no son suficientes, por lo que nos planteamos aumentarlos.

Primera aproximación

Supongamos que tenemos la serie temporal $\lbrace A_i \rbrace$ con $1 \leq i \leq n$ . Y supongamos también que tenemos $\epsilon$ que cumpla la siguiente condición: $0<\epsilon < |A_{i+1} - A_i| \forall i \in \lbrace 1, \ldots,n\rbrace$ .

Podemos construir una nueva serie temporal $\lbrace B_i = A_i+r_i\rbrace$ donde $r_i$ es una realización de la distribución $N(0,\frac{\epsilon}{2}) $ .

Entonces, en lugar de minimizar la función de pérdida sólo sobre $\lbrace A_i \rbrace$ También lo hacemos en $\lbrace B_i \rbrace$ . Por lo tanto, si el proceso de optimización dura $m$ pasos, tenemos que "inicializar" el predictor $2m$ veces, y calcularemos aproximadamente $2m(n-1)$ estados internos del predictor.

Segundo enfoque

Calculamos $\lbrace B_i \rbrace$ como antes, pero no actualizamos el estado interno del predictor utilizando $\lbrace B_i \rbrace$ pero $\lbrace A_i \rbrace$ . Sólo utilizaremos las dos series juntas en el momento de calcular la función de pérdida, por lo que calcularemos aproximadamente $m(n-1)$ estados internos del predictor.

Por supuesto, aquí hay menos trabajo computacional (aunque el algoritmo es un poco más feo), pero no importa por ahora.

La duda

El problema es: desde un punto de vista estadístico, ¿cuál es la "mejor" opción? ¿Y por qué?

Mi intuición me dice que la primera es mejor, porque ayuda a "regularizar" las ponderaciones relacionadas con el estado interno, mientras que la segunda sólo ayuda a regularizar las ponderaciones relacionadas con el pasado de las series temporales observadas.


Extra:

  • ¿Alguna otra idea para aumentar los datos en la previsión de series temporales?
  • ¿Cómo ponderar los datos sintéticos en el conjunto de entrenamiento?

9voto

ascripter Puntos 108

¿Alguna otra idea para aumentar los datos en la previsión de series temporales?

Actualmente estoy pensando en el mismo problema. He encontrado el documento "Aumento de datos para la clasificación de series temporales utilizando redes neuronales convolucionales" de Le Guennec et al. que, sin embargo, no cubre la previsión. Aun así, los métodos de aumento que se mencionan allí parecen prometedores. Los autores comunican 2 métodos:

Rebanado de ventanas (WS)

Un primer método que se inspira en el ordenador vis consiste en extraer cortes de las series temporales y realizar la clasificación a nivel de corte. Este método se introdujo para series temporales en [6]. En el entrenamiento, a cada corte extraído de una serie temporal de clase y se le asigna la misma clase y se aprende un clasificador utilizando los cortes. El tamaño del corte es un parámetro de este método. En el momento de la prueba, cada trozo de una serie temporal de prueba se clasifica utilizando el clasificador aprendido y se realiza una votación por mayoría para decidir una etiqueta predicha. Este método se denomina window slicing (WS).

Deformación de ventanas (WW)

La última técnica de aumento de datos que utilizamos es más específica de las series temporales. Consiste en deformar un fragmento seleccionado aleatoriamente de una serie temporal acelerándolo o reduciéndolo, como se muestra en la Fig. 2. El tamaño del corte original es un parámetro de este método. La Fig. 2 muestra una serie temporal del conjunto de datos "ECG200" y los datos transformados correspondientes. Obsérvese que este método genera series temporales de entrada de diferentes longitudes. Para solucionar este problema, realizamos para que todas tengan la misma longitud. En este documento, sólo consideramos relaciones de deformación iguales a 0.5 o 2 pero se podrían utilizar otras proporciones e incluso ajustar la proporción óptima mediante validación cruzada en el conjunto de entrenamiento. En lo sucesivo, este método se denominará window warping (WW).

Fig. 2 from paper

Los autores mantuvieron el 90% de las series sin cambios (es decir, WS se ajustó a un corte del 90% y para WW se deformó el 10% de las series). Según los informes, los métodos reducen el error de clasificación en varios tipos de datos de series (temporales), excepto en representaciones 1D de contornos de imágenes. Los autores tomaron sus datos de aquí: http://timeseriesclassification.com

¿Cómo ponderar los datos sintéticos en el conjunto de entrenamiento?

En el aumento de imágenes, dado que no se espera que el aumento cambie la clase de una imagen, es habitual ponderarlo como cualquier dato real. Predicción de series temporales (e incluso clasificación de series temporales) puede ser diferente:

  1. Una serie temporal no es fácilmente perceptible como un objeto contiguo para los humanos, por lo que, dependiendo de cuánto se manipule, ¿sigue siendo de la misma clase? Si sólo se trocea y deforma un poco y las clases son visualmente distintas, esto podría no plantear problemas en las tareas de clasificación.
  2. En cuanto a la previsión, yo diría que

    2,1 WS sigue siendo un buen método. No importa en qué parte del 90% de la serie te fijes, seguirías esperando una previsión basada en las mismas reglas => ponderación total.

    2.2 WW: Cuanto más cerca esté del final de la serie, más prudente seré. Intuitivamente, se me ocurriría un factor de ponderación deslizante entre 0 (deformación al final) y 1 (deformación al principio), suponiendo que las características más recientes de la curva son las más relevantes.

9voto

Aesir Puntos 71

Recientemente he aplicado otro enfoque inspirado en este documento de Bergmeir, Hyndman y Benítez.

La idea es tomar una serie temporal y aplicar primero una transformación como la de Box Cox o la de Yeo-johnson (que resuelve algunos problemas de la de Box Cox) para estabilizar la varianza de la serie, aplicando después una descomposición STL sobre la serie transformada para series estacionales o una descomposición de loess para obtener los residuos de la serie. Tomando estos residuos y aplicándoles un bootstrap de bloques móviles para generar $B$ series adicionales. Estos $B$ A las series adicionales se les vuelve a añadir la tendencia inicial y la estacionalidad de la serie de partida antes de invertir por último la transformada de potencia aplicada en el primer paso.

De este modo, se pueden generar tantas series temporales adicionales como sea necesario que representen bastante bien la serie temporal inicial. He aquí un ejemplo de aplicación sobre algunos datos reales para generar series temporales adicionales similares:

Augmented series

Aquí el aumento se muestra utilizando una transformación Yeo-johnson y no Box Cox como se sugiere en el artículo original.

8voto

ascripter Puntos 108

¿Alguna otra idea para aumentar los datos en la previsión de series temporales?

Otra respuesta con un enfoque diferente, basada en "Aumento del conjunto de datos en el espacio de características" por DeVries y Taylor.

En este trabajo, demostramos que extrapolación entre muestras en el espacio de características pueden utilizarse para aumentar los conjuntos de datos y mejorar el rendimiento de los algoritmos de aprendizaje supervisado. La principal ventaja de nuestro planteamiento es que es independiente del dominio No requiere conocimientos especializados, por lo que puede aplicarse a muchos tipos de problemas.

A mí me parece prometedor. En principio se puede tomar cualquier autoencoder para crear representaciones en el espacio de características. Estas características pueden interpolarse o extrapolarse.

La figura siguiente muestra como ejemplo la interpolación de dos vectores del espacio de características $C_j$ y $C_k$ (tenga en cuenta que se registran resultados más positivos para extrapolando a partir de dos vectores, véase el documento para más detalles). El vector aumentado resultante $C'$ se decodifica de nuevo en el espacio de entrada y se introduce en la red para su entrenamiento.

De nuevo, el documento se limita a la clasificación de secuencias. Pero, de nuevo, OMI, los principios son los mismos para el análisis de regresión. Obtienes nuevos datos presumiblemente de la misma distribución que tus datos reales, eso es lo que quieres.

architecture of AE augmentation

Si elaboramos más este principio de generación de datos por una red neuronal, acabaremos con Redes Generativas Adversariales (GAN) . Podrían utilizarse de forma similar para generar datos aumentados, lo que probablemente constituirá la forma más sofisticada y vanguardista de hacerlo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X