22 votos

RNN frente al filtro de Kalman: ¿aprendizaje de la dinámica subyacente?

Como recientemente me he interesado por los filtros de Kalman y las redes neuronales recurrentes, me parece que ambos están estrechamente relacionados, pero no encuentro suficiente literatura al respecto:

En un filtro de Kalman, el conjunto de ecuaciones es : $$x_{k} = Ax_{k-1} + Bu_{k} + w_{k-1}$$ $$ z_k = Hx_k + v_k$$

con $x$ el estado y $z$ la medición.

En una RNN de Elman (de ici ), la relación entre las capas es $$h_{k} = \sigma_h (Uh_{k-1} + Wx_{k} + b)$$ $$ y_k = \sigma_y (Vh_k + c)$$

con $x$ la capa de entrada, $h$ la capa oculta y $y$ la capa de salida y $\sigma$ son las funciones de activación de las capas.

Está claro que los dos conjuntos de ecuaciones son iguales, módulo de las activaciones. La analogía aquí parece ser la siguiente. La capa de salida corresponde al estado medido, la capa oculta es el estado verdadero, impulsado por un proceso $x$ que es la capa de entrada.

  • Primera pregunta: ¿es viable la analogía? Y ¿cómo podemos interpretar las activaciones?

  • Segunda pregunta : en un filtro de Kalman el $A$ es la de la dinámica subyacente del estado $x$ . Dado que el entrenamiento de una RNN permite aprender la $W$ ¿son capaces las RNN de aprender la dinámica del estado subyacente? Es decir, una vez que mi RNN está entrenada, ¿puedo mirar los coeficientes de mi red para adivinar la dinámica de mis datos?

(Voy a intentar hacer el experimento con datos generados artificialmente, para ver si esto funciona, y actualizaré en cuanto esté hecho)

EDIT : Me gustaría tener acceso a este documento

3voto

user3294147 Puntos 6

Sí, están relacionados porque ambos se utilizan para predecir $y_{n}$ et $s_{n}$ en el paso de tiempo n basándose en alguna observación actual $x_{n}$ y estado $s_{n-1}$ es decir, ambos representan una función $F$ tal que $$F(x_{n}, s_{n-1}) = (y_{n}, s_{n})$$ La ventaja de la RNN sobre el filtro Kalman es que la La arquitectura RNN puede ser arbitrariamente compleja (número de capas y neuronas) y se aprenden sus parámetros mientras que el algoritmo (incluidos sus parámetros) del filtro de Kalman es fijo.

Las redes neuronales recurrentes son más generales que el filtro de Kalman. De hecho, se podría entrenar una RNN para simular un filtro de Kalman.
Las redes neuronales son una especie de modelos de caja negra y los pesos y las activaciones no suelen ser interpretables (sobre todo en las capas más profundas).

Al final, las redes neuronales sólo se optimizan para hacer las mejores predicciones y no para tener parámetros "interpretables".
Hoy en día, si se trabaja con series temporales, se dispone de datos suficientes y se desea la máxima precisión, la RNN es el enfoque preferido.

2voto

chrishmorris Puntos 9

Como dices, la diferencia son las funciones de activación.

El propósito habitual de un filtro de Kalman se utiliza para modelizar un proceso intrínsecamente lineal, en el que las observaciones están sujetas a ruido aditivo. Puede salirse con la suya utilizando un filtro de Kalman si hay una desviación lenta de la linealidad, pero no si el proceso es fuertemente no lineal.

En cambio, las redes neuronales obtienen una potencia extra utilizando una función de activación no lineal. (Por eso son adecuadas para modelar procesos no lineales, al menos dentro de la cobertura convexa del conjunto de entrenamiento.

El comportamiento asintótico de una red neuronal lo decide la función de activación, no los datos de entrenamiento. Por eso el Teorema de Aproximación Universal tiene la condición "... en soporte compacto". Esto no es muy sorprendente: ningún conjunto de entrenamiento finito contiene pruebas sobre el comportamiento asintótico.

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