Saltar al contenido
coden

El filtro de Kalman: cómo estimar a partir de mediciones imprecisas dónde está un coche y a qué velocidad va

Combinación de dos mediciones y ganancia de Kalman, el filtro como media acumulada, el modelo de estados, predicción y corrección, seguimiento de un coche por GPS con estimación de la velocidad no medida, ajuste de los ruidos Q y R, optimalidad y extensiones no lineales.

14 minutos Matěj Žalmánek 2026-10-15

Serie Fundamentos de IA Parte 41 de 52
  1. Mapa de la inteligencia artificial: qué es cada cosa y cómo encaja todo
  2. Breve historia de la inteligencia artificial: de Turing a los modelos de lenguaje
  3. Datos, modelo, entrenamiento, inferencia: los conceptos básicos en un solo ejemplo
  4. Cómo leer la notación matemática: símbolos, subíndices, sumatorios y cuantificadores
  5. Conjuntos y relaciones: las piezas con las que se construyen las definiciones en IA
  6. Funciones y aplicaciones: por qué todo modelo de IA es una función
  7. Lógica y demostraciones: las reglas con las que se razona en IA
  8. Grafos y árboles: la estructura sobre la que se apoyan la búsqueda y las redes neuronales
  9. Álgebra lineal para aprendizaje automático: vectores, matrices y por qué la IA sobre todo multiplica
  10. Derivadas, gradiente y regla de la cadena: cómo sabe un modelo en qué dirección aprender
  11. Descenso de gradiente: cómo aprende un modelo
  12. Qué es la probabilidad: del lanzamiento de un dado a los axiomas de Kolmogórov
  13. Probabilidad condicionada y teorema de Bayes: cómo cambiar una estimación cuando te enteras de algo nuevo
  14. Variable aleatoria y función de distribución: una sola función que lo dice todo sobre la distribución
  15. Función de densidad y función de probabilidad: por qué una variable continua tiene probabilidad cero en cada punto
  16. Esperanza, varianza y covarianza: dónde está una distribución, qué anchura tiene y qué se relaciona con qué
  17. Resumen de las distribuciones de probabilidad: Bernoulli, binomial, Poisson, uniforme, normal y exponencial
  18. Ley de los grandes números y teorema central del límite: por qué las medias se comportan de forma tan predecible
  19. Estadística y estimación de parámetros: máxima verosimilitud, MAP e intervalos de confianza
  20. Teoría de la información: entropía, entropía cruzada y divergencia KL, el origen de las funciones de pérdida
  21. Búsqueda en el espacio de estados: BFS, DFS, UCS y A* con animaciones
  22. Juegos y adversarios: minimax, poda alfa-beta y Monte Carlo tree search
  23. Satisfacción de restricciones: backtracking, propagación de restricciones y AC-3 con un sudoku y un mapa de regiones checas
  24. Lógica y sistemas basados en conocimiento: encadenamiento hacia delante y hacia atrás, resolución y sistemas expertos
  25. Planificación: STRIPS, el mundo de bloques, heurísticas a partir de la relajación y la planificación en los agentes de IA
  26. Búsqueda local y recocido simulado: un viajante por las capitales regionales checas
  27. Algoritmos genéticos: población, cruce, mutación y selección en una mochila para la excursión
  28. Estrategias evolutivas y programación genética: de la regla de un quinto a la ley de Kepler
  29. Optimización por colonia de hormigas: cómo un rastro de feromona encuentra un camino corto
  30. Optimización por enjambre de partículas: inercia, experiencia propia y experiencia del enjambre
  31. Neuroevolución: evolución de los pesos y la forma de las redes neuronales, y el algoritmo NEAT
  32. Conjuntos difusos y funciones de pertenencia: cómo escribir «algo cálido»
  33. Lógica difusa y probabilidad: por qué «algo cálido» no significa «probablemente cálido»
  34. Lógica difusa: t-normas, implicaciones y reglas SI–ENTONCES
  35. Control difuso: Mamdani y Sugeno, del ventilador al péndulo invertido sobre un carro
  36. Agrupamiento difuso: el algoritmo fuzzy c-means y los puntos entre clusters
  37. Sistemas neuro-difusos (ANFIS): reglas difusas que aprenden de los datos
  38. Cadenas de Markov: matriz de transición, distribución estacionaria y PageRank
  39. Modelos ocultos de Márkov: el algoritmo de Viterbi y el casino deshonesto
  40. Redes bayesianas: por qué está mojada la hierba y qué significa eso para el aspersor
  41. El filtro de Kalman: cómo estimar a partir de mediciones imprecisas dónde está un coche y a qué velocidad va
  42. Tipos de aprendizaje automático: supervisado, no supervisado, semisupervisado y más
  43. Prompts, contexto y RAG: cómo darle a un modelo la información correcta
  44. Autocodificadores variacionales (VAE): imágenes nuevas a partir de un espacio latente continuo
  45. Redes generativas adversarias (GAN): el falsificador contra el detective
  46. Modelos de difusión: cómo el ruido puro se convierte en una imagen
  47. Procesos de decisión de Markov: estados, acciones, recompensas y ecuaciones de Bellman
  48. Q-learning y DQN: aprender el valor de las acciones, de la tabla a la red neuronal
  49. Gradiente de la política y PPO: aprender directamente la política
  50. Cómo funciona un agente de IA: un modelo de lenguaje en un bucle con herramientas
  51. Programación con agentes de IA: encargo, pruebas y revisión
  52. Evaluación y seguridad de los sistemas de IA: cómo medir y cómo vigilar

Temario completo de la serie 52 de 83 temas publicados

Qué te llevarás
  • Cómo se combinan dos mediciones imprecisas y qué es la ganancia de Kalman.
  • Cómo el filtro alterna la predicción según el modelo y la corrección según la medición — y estima incluso lo que nadie mide.
  • Por qué importa tanto el ajuste de los ruidos Q y R y cómo se las arregla el filtro con un mundo no lineal.

Conviene conocer antes: Modelos ocultos de Márkov: el algoritmo de Viterbi y el casino deshonesto, Resumen de las distribuciones de probabilidad: Bernoulli, binomial, Poisson, uniforme, normal y exponencial

El Apolo 11 voló a la Luna con un ordenador de a bordo que tenía menos memoria que una calculadora gráfica actual. Aun así, la navegación tenía que estimar continuamente, a partir de mediciones imprecisas de estrellas, del radar y de los sensores inerciales, dónde estaba la nave y a qué velocidad iba. La ayudó un método que Rudolf Kálmán publicó en 1960 y que Stanley Schmidt llevó a la práctica para la NASA. Hoy el filtro de Kalman está en cada móvil que combina el GPS con el acelerómetro, en cada dron y en cada coche que se mantiene solo en su carril. Con esta parte termina el módulo sobre modelos probabilísticos.

Continúa las partes Modelos ocultos de Márkov y Resumen de las distribuciones de probabilidad.

1. Dos mediciones imprecisas valen más que una

Empecemos por algo sencillo. Medimos dos veces la distancia a un faro: una con un instrumento preciso —100 m con una incertidumbre (desviación típica) de 5 m— y otra con uno tosco —110 m con una incertidumbre de 10 m—. ¿Cuál es la mejor estimación?

Teorema — combinación de dos estimaciones normales

Si tenemos dos estimaciones independientes N(m1, σ12) y N(m2, σ22), la estimación combinada es normal con

m = m1 + K (m2 − m1),   σ2 = (1 − K) σ12,   donde K = σ12 / (σ12 + σ22).

De forma equivalente, 1/σ2 = 1/σ12 + 1/σ22: las precisiones se suman.

Demostración. La estimación combinada tiene una densidad proporcional al producto de ambas densidades (teorema de Bayes con la primera estimación como distribución a priori y la segunda como verosimilitud). En el exponente se suman dos funciones cuadráticas:

−(x − m1)2 / (2σ12) − (x − m2)2 / (2σ22) = −½ (1/σ12 + 1/σ22) x2 + (m1/σ12 + m2/σ22) x + const.

Una densidad con exponente −½ ax2 + bx es, tras completar el cuadrado, normal con varianza 1/a y esperanza b/a. De ahí 1/σ2 = 1/σ12 + 1/σ22, es decir, σ2 = σ12σ22 / (σ12 + σ22) = (1 − K) σ12, y m = σ2 (m1/σ12 + m2/σ22) = (1 − K) m1 + K m2 = m1 + K (m2 − m1). ∎

Dicho de forma sencilla

Toma la primera estimación y desplázala hacia la segunda, tanto más cuanto más te fíes de la segunda. El número K te dice qué parte de la diferencia debes adoptar. El resultado es más preciso que cada medición por separado; incluso una medición tosca aporta información.

m = m1 + K (m2 − m1),   K = σ12 / (σ12 + σ22),   σ2 = (1 − K) σ12

m1, σ12
la primera estimación (azul en la figura) es el punto de partida: desde ella nos desplazamos; su varianza en el numerador de K dice: cuanto menos nos fiamos de la primera estimación, más lejos de ella podemos movernos
m2, σ22
la segunda estimación (ámbar); entra en la fórmula solo a través de la diferencia m2 − m1: si ambas coincidieran, no habría nada que corregir. Su varianza en el denominador de K reduce la ganancia: de una medición tosca nos fiamos poco
K
la ganancia de Kalman, un número entre 0 y 1: qué parte de la diferencia adoptar. Es la proporción de la incertidumbre de la primera estimación en la incertidumbre total, así que la estimación más precisa «tira» del resultado hacia sí
m, σ2
la estimación combinada (verde); el factor 1 − K < 1 garantiza que la nueva incertidumbre sea menor que la primera: cada medición, incluso tosca, aporta algo
Desplázate de la primera estimación hacia la segunda en la proporción que marca en cuál confías más.
8090100110120130 distancia (m) densidad de prob. (1/m)
Combinación de dos mediciones de distancia precisa: 100 ± 5 mtosca: 110 ± 10 mcombinada: 102 ± 4,5 m

Aquí K = 25 / (25 + 100) = 0,2: adoptamos una quinta parte de la diferencia y obtenemos 102 m con una incertidumbre de √20 ≈ 4,5 m, menos que los 5 m del instrumento preciso. Este número K es la ganancia de Kalman, y el filtro entero no es más que este paso repetido en el tiempo.

Ejemplo — combinación de las mediciones 100 ± 5 m y 110 ± 10 m paso a paso

Varianzas: σ12 = 52 = 25, σ22 = 102 = 100.

Ganancia: K = 25 / (25 + 100) = 0,2.

Esperanza: m = 100 + 0,2 · (110 − 100) = 102 m, lo mismo que la media ponderada 0,8 · 100 + 0,2 · 110.

Varianza: σ2 = (1 − 0,2) · 25 = 20,   σ = √20 ≈ 4,47 m.

Comprobación mediante las precisiones: 1/25 + 1/100 = 0,04 + 0,01 = 0,05 = 1/20. ✓

2. Medir repetidamente una misma magnitud

Medimos la temperatura de una habitación con un termómetro de incertidumbre 2 °C, cincuenta veces seguidas, y tras cada medición combinamos el nuevo dato con la estimación que llevamos. Tras cincuenta mediciones la estimación es 19,895 °C —exactamente la media aritmética de todas las mediciones— y la incertidumbre es 0,283 °C = 2/√50. Así que el filtro de Kalman para una magnitud que no cambia es una simple media móvil acumulada. Se vuelve interesante cuando la magnitud cambia con el tiempo.

Teorema — el filtro para una magnitud constante es una media acumulada

Medimos una constante con un instrumento de varianza σ2 y empezamos con una estimación tan incierta que la primera medición la anula por completo (v0 → ∞). Entonces, tras k mediciones, se cumple

Kk = 1/k,   mk = mk−1 + (1/k) (zk − mk−1) = (z1 + … + zk) / k,   vk = σ2/k.

Demostración por inducción. Para k = 1 es K1 = v0 / (v0 + σ2) → 1, así que m1 = z1 y v1 = σ2. Si vk−1 = σ2/(k − 1), entonces Kk = vk−1 / (vk−1 + σ2) = (1/(k − 1)) / (1/(k − 1) + 1) = 1/k y vk = (1 − 1/k) · σ2/(k − 1) = σ2/k. Si mk−1 es la media de las primeras k − 1 mediciones, entonces mk = ((k − 1) mk−1 + zk) / k es la media de las k. ∎

Dicho de forma sencilla

La décima medición pesa una décima parte en la media de diez números, y exactamente eso es lo que le da el filtro. Cuanto más sabes ya, menos te mueve una sola medición nueva. La incertidumbre baja como 1/√k: para reducir el error a la mitad necesitas cuatro veces más mediciones.

Ejemplo — las tres primeras mediciones de temperatura

Nuestro filtro empieza con una estimación de 0 °C y una varianza de 106 (incertidumbre de 1 000 °C: «no sé nada»); la varianza de la medición es 22 = 4.

1.ª medición 23,098 °C: K1 = 106 / (106 + 4) ≈ 1, estimación 23,098 °C, varianza 4,00.

2.ª medición 21,967 °C: K2 = 4 / (4 + 4) = 1/2, estimación 23,098 + ½ · (21,967 − 23,098) = 22,533 °C, varianza 2,00.

3.ª medición 16,630 °C: K3 = 2 / (2 + 4) = 1/3, estimación 22,533 + ⅓ · (16,630 − 22,533) = 20,565 °C, varianza 1,33 = 4/3.

Comprobación: (23,098 + 21,967 + 16,630) / 3 = 20,565 °C, una media corriente. Tras cincuenta mediciones la varianza es 4/50 = 0,08 y la incertidumbre √0,08 ≈ 0,283 °C.

3. El modelo de estados

Definición — modelo lineal de estados

Un estado oculto xk ∈ ℝn evoluciona y una medición zk lo capta con ruido:

xk = F xk−1 + wk,   wk ~ N(0, Q),    zk = H xk + vk,   vk ~ N(0, R).

F es la matriz de transición, H la matriz de medición, Q la covarianza del ruido de proceso y R la covarianza del ruido de medición.

Dicho de forma sencilla

Es el modelo oculto de Márkov de la parte anterior, solo que el estado no es «dado honrado o dado trucado», sino un vector de números, por ejemplo la posición y la velocidad. La física dice cómo evoluciona el estado más o menos (F); los empujones aleatorios y la imprecisión del modelo los resume Q. El instrumento solo ve una parte del estado (H) y se equivoca en R.

Nuestro ejemplo: un coche va por la carretera a una velocidad más o menos constante de 15 m/s, pero el conductor a veces frena un poco o acelera: una aceleración aleatoria con una desviación típica de 0,5 m/s². El estado es (posición, velocidad), el paso es 1 s, así que F = [[1, 1], [0, 1]]: la nueva posición es la anterior más la velocidad. El GPS mide solo la posición, con una incertidumbre de 8 m: H = [1, 0], R = 64.

Definición — matriz de covarianza y distribución normal multivariante

Para un vector aleatorio X ∈ ℝn con esperanza μ = E[X], la matriz de covarianza es Σ = E[(X − μ)(X − μ)T], es decir, Σij = cov(Xi, Xj). En la diagonal están las varianzas de las componentes y fuera de ella las covarianzas; la matriz es simétrica y semidefinida positiva.

La notación X ~ N(μ, Σ) indica la distribución normal multivariante, con densidad proporcional a exp(−½ (x − μ)T Σ−1 (x − μ)). Para una aplicación lineal se cumple AX + c ~ N(Aμ + c, A Σ AT), y la suma de vectores normales independientes es normal con la suma de las covarianzas.

Dicho de forma sencilla

La matriz de covarianza es «la incertidumbre de varios números a la vez». En la diagonal está cuánta duda tenemos sobre la posición y cuánta sobre la velocidad. Fuera de la diagonal está si los errores van juntos: una covarianza positiva entre posición y velocidad significa «si hemos estimado el coche demasiado adelantado, probablemente también le hemos atribuido una velocidad demasiado alta».

Ejemplo — de dónde sale la matriz Q

Durante un paso de duración Δt actúa sobre el coche una aceleración aleatoria constante a ~ N(0, q2). Según las fórmulas del movimiento uniformemente acelerado:

pk = pk−1 + Δt · vk−1 + ½ Δt2 a,   vk = vk−1 + Δt · a.

Sin ruido, esto es F = [[1, Δt], [0, 1]]. El ruido es w = g a con el vector g = (½ Δt2, Δt), y según la regla AΣAT de arriba

Q = q2 g gT = q2 [[Δt4/4, Δt3/2], [Δt3/2, Δt2]].

Para Δt = 1 s y q = 0,5 m/s²: Q = 0,25 · [[0,25; 0,5], [0,5; 1]] = [[0,0625; 0,125], [0,125; 0,25]]. Así que en un segundo la aceleración aleatoria añade una incertidumbre de √0,0625 = 0,25 m en la posición y de 0,5 m/s en la velocidad, y ambos errores tienen el mismo signo; por eso la covarianza es positiva. Esta es exactamente la matriz del código de más abajo.

4. Predicción y corrección

Algoritmo — filtro de Kalman

La estimación es una distribución normal con esperanza x̂ y covarianza P. En cada paso:

Predicción: x̂− = F x̂,   P− = F P FT + Q.

Corrección: K = P− HT (H P− HT + R)−1,   x̂ = x̂− + K (z − H x̂−),   P = (I − K H) P−.

Dicho de forma sencilla

Predicción: «según la física, el coche debería estar ahora aquí», y como la física no es perfecta, la incertidumbre crece un poco. Corrección: llega la medición; la diferencia entre la medición y la predicción (la innovación) se adopta solo en la proporción K, según en cuál de las dos confíes más. Es la combinación de dos mediciones del primer capítulo: una «medición» es la predicción del paso anterior y la otra es el GPS. Además, la covarianza P recuerda cómo se relacionan el error de posición y el de velocidad, y gracias a eso el filtro corrige también la velocidad, que nadie mide.

Los colores de los desgloses de abajo coinciden con las figuras: la predicción (antes, la «primera estimación») en azul, la medición en ámbar, el resultado en verde y la ganancia en violeta.

x̂− = F x̂,   P− = F P FT + Q

x̂−, P−
la predicción para este paso, antes de que llegue la medición; hace el papel de la «primera estimación» de la combinación de dos mediciones
F … FT
el modelo hace avanzar la estimación; la incertidumbre se propaga con la regla AΣAT (en el coche: una velocidad incierta se convierte en un segundo en incertidumbre de la posición). No basta con FP, porque la covarianza es una magnitud cuadrática: se multiplica por la izquierda y por la derecha
Q
el modelo no es perfecto (el conductor frena un poco), así que la incertidumbre se suma en cada paso; sin Q, P caería a cero y el filtro dejaría de hacer caso a las mediciones
Predicción: adónde llega el estado según la física y cuánto crece con ello la incertidumbre.

K = P− HT (H P− HT + R)−1

H P− HT
la incertidumbre de la predicción traducida al lenguaje del instrumento (en el coche, solo la varianza de la posición); corresponde a σ12
R
la varianza de la medición, corresponde a σ22; la suma del paréntesis es la varianza de la innovación S: cuánto pueden discrepar la medición y la predicción por puro azar
P− HT
la covarianza de todo el estado con la magnitud medida; gracias a ella recibe una ganancia no nula también la velocidad, que nadie mide: el error de posición y el de velocidad están relacionados
K
la ganancia de Kalman, un número por cada componente del estado; la inversa en lugar de una división se usa solo porque la medición puede ser un vector
En una dimensión con H = 1 es exactamente la K = σ12 / (σ12 + σ22) del primer capítulo.

x̂ = x̂− + K (z − H x̂−),   P = (I − K H) P−

x̂−, P−
la predicción: el punto de partida desde el que nos desplazamos
z
la nueva medición (en la figura, los puntos ámbar del GPS); el único sitio por donde entran datos en la estimación
H
convierte la predicción del estado en lo que debería mostrar el instrumento; la medición y el estado no se pueden restar directamente, porque el GPS solo ve la posición, no la velocidad
K
qué parte de la innovación z − Hx̂− adoptar en cada componente del estado
x̂, P
la estimación corregida (verde en la figura); el factor I − KH reduce la incertidumbre, tanto más cuanto mayor parte de la medición hayamos adoptado
Corrección: el mismo «desplázate hacia la medición en la proporción K», solo que para vectores.
import numpy as np

F = np.array([[1, 1], [0, 1]])                    # posición += velocidad
H = np.array([[1, 0]])                            # solo medimos la posición
Q = 0.5**2 * np.array([[1/4, 1/2], [1/2, 1]])     # aceleración aleatoria
R = np.array([[8**2]])                            # GPS ± 8 m

def kalman(mereni, x, P):
    for z in mereni:
        x, P = F @ x, F @ P @ F.T + Q             # predicción
        K = P @ H.T @ np.linalg.inv(H @ P @ H.T + R)
        x = x + K @ (z - H @ x)                   # corrección según la innovación
        P = (np.eye(2) - K @ H) @ P
        yield x, P
Ejemplo — los dos primeros pasos del filtro con los datos del coche

Inicio. La primera medición del GPS es z1 = 8,44 m. El filtro empieza con la posición 8,44 m, velocidad 0 y una incertidumbre grande P0 = [[100; 0], [0; 100]] (10 m y 10 m/s). La corrección con esa misma medición no cambia la posición (la innovación es 0), solo reduce su varianza: K = 100 / (100 + 64) = 0,610, P11 = (1 − 0,610) · 100 = 39,02.

Predicción para el segundo 2. x̂− = (8,44 + 0; 0) = (8,44; 0,00). La covarianza FPFT suma a la varianza de la posición la varianza de la velocidad (posición += velocidad):

P− = [[39,02 + 100 + 0,0625; 100 + 0,125], [100 + 0,125; 100 + 0,25]] = [[139,09; 100,13], [100,13; 100,25]].

Corrección. Medición z2 = 23,23 m, innovación y = 23,23 − 8,44 = 14,78 m, su varianza S = 139,09 + 64 = 203,09.

K = (139,09; 100,13) / 203,09 = (0,685; 0,493),

x̂ = (8,44 + 0,685 · 14,78; 0 + 0,493 · 14,78) = (18,57 m; 7,29 m/s).

Tras dos mediciones el filtro «sabe» que el coche se mueve, aunque nadie ha medido la velocidad: la ha estimado en 7,3 m/s (la real es 13,9 m/s). La ganancia para la velocidad es no nula solo gracias a la covarianza 100,13 fuera de la diagonal. ¿Por qué solo la mitad? Las mediciones tienen un ruido de 8 m, así que el filtro todavía no se toma del todo en serio una diferencia de 15 m; en los segundos siguientes la velocidad se ajusta.

5. El filtro sigue al coche

Un minuto de trayecto, una medición del GPS por segundo. En ese tiempo el coche recorre casi un kilómetro, así que el ruido se perdería en una gráfica de la posición. Por eso dibujamos cuánto va el coche por delante o por detrás respecto a una marcha a exactamente 15 m/s:

−25025 01020 0102030405060 desviación respecto a 15 m/s (m) velocidad (m/s) tiempo (s)
Seguimiento del coche: arriba, desviación de la posición; abajo, velocidad realidad mediciones del GPS estimación del filtro ± 2σ

Las mediciones del GPS se desvían de la posición real en promedio 8,3 m (desde el segundo diez, cuando el filtro ya se ha puesto en marcha). La estimación del filtro, solo 4,9 m: un 41 % menos. Y la velocidad, que ningún sensor mide, la estima con un error de 0,8 m/s: el filtro la deduce de cómo cambia la posición. Al principio no conoce la velocidad (empieza desde cero), pero en unos segundos la capta. La banda ±2σ es la incertidumbre honesta del filtro: la posición real queda dentro en el 95 % de los pasos, justo como debe ser.

Definición — error medio (RMSE) y banda ±2σ

El «error medio» en esta parte es la raíz del error cuadrático medio (RMSE) sobre los pasos k = 10, …, 59 (N = 50):

RMSE = √( (1/N) ∑k (x̂k − xk)2 ),

donde xk es la posición real y x̂k la estimación (o la propia medición). Los cuadrados castigan más los errores grandes que los pequeños, y la raíz devuelve el resultado a metros. Para el GPS solo, el RMSE debería salir en torno a σ = 8 m, y salió 8,3 m.

La banda ±2σ es el intervalo x̂k ± 2√Pk,11. Para una distribución normal, el intervalo μ ± 2σ contiene una probabilidad de 0,9545; si el filtro ha calculado bien su incertidumbre P, la realidad tiene que caer dentro de la banda en torno al 95 % de los pasos.

Tras unos pocos pasos la ganancia de Kalman se estabiliza en K ≈ (0,30; 0,05): de cada innovación el filtro adopta un 30 % en la posición y un 5 % (0,05 m/s por metro de innovación) en la velocidad. Sobre 50 trayectos simulados, el error del filtro es en promedio el 55 % del error del GPS solo.

Teorema — ganancia estacionaria

En las fórmulas de P−, K y P no aparecen las mediciones z: la covarianza y la ganancia se pueden calcular de antemano. Al unir predicción y corrección se obtiene una recurrencia (la ecuación de Riccati discreta)

P−k+1 = F (P−k − P−kHT (HP−kHT + R)−1 HP−k) FT + Q.

Para F, H, Q, R constantes que cumplan las condiciones habituales (el sistema es observable —a partir de una serie de mediciones se puede averiguar todo el estado— y el ruido Q actúa sobre todas sus componentes), la sucesión converge a un único punto fijo, independientemente de la P0 inicial; la ganancia converge entonces a un valor estacionario.

En el coche: tras 60 pasos, K = (0,297; 0,052) y P = [[19,04; 3,35], [3,35; 1,29]], es decir, el filtro confía en sí mismo hasta √19,04 ≈ 4,4 m en la posición y √1,29 ≈ 1,1 m/s en la velocidad.

Dicho de forma sencilla

Al principio el filtro no sabe casi nada y se traga cada medición (ganancia 0,61, luego 0,68). A medida que la estimación se vuelve más precisa, la ganancia baja, hasta que se estabiliza donde la incertidumbre que añade el ruido Q en cada paso es igual a la que quita la medición. A partir de ahí ya no cambia nada, y por eso en dispositivos sencillos la ganancia se suele calcular una vez de antemano y el filtro solo multiplica por números fijos.

6. En quién confiar: Q y R

El filtro necesita conocer Q y R. El fabricante del GPS suele indicarla, pero el ruido de proceso es más difícil de estimar. ¿Qué pasa si le das al filtro valores distintos de los que tienen los datos?

Ruido de proceso que supone el filtro (m/s²)0,010,10,5 (real)210
error de posición (m)9,295,884,865,677,08
error de velocidad (m/s)1,190,860,791,535,19

Cuando el filtro cree que el coche va a una velocidad casi exactamente constante (Q pequeña), se aferra a su modelo y reacciona tarde a la aceleración real: el error de posición es incluso mayor que con el GPS solo. Cuando, al contrario, espera cambios bruscos (Q grande), no se fía del modelo y copia las mediciones ruidosas. El mejor resultado lo da con el valor real, 0,5. Lo mismo vale para R: con una incertidumbre del GPS de 2, 8 y 30 m, el error de posición sale 5,66; 4,86 y 5,39 m.

7. ¿Por qué precisamente así?

Teorema — optimalidad del filtro de Kalman

Si el modelo es lineal y los ruidos son normales, la distribución N(x̂k, Pk) es exactamente la distribución a posteriori del estado P(xk | z1, …, zk). Sin el supuesto de normalidad, el filtro de Kalman es la mejor estimación lineal en el sentido del error cuadrático medio.

Dicho de forma sencilla

El filtro de Kalman es el teorema de Bayes aplicado una y otra vez. La predicción es la distribución a priori, la medición es la verosimilitud y la corrección es la distribución a posteriori. La distribución normal tiene la rara propiedad de que el producto de normales vuelve a ser normal, así que basta con recordar la esperanza y la covarianza en lugar de toda la función. Es el algoritmo hacia delante de los modelos ocultos de Márkov para un estado continuo.

p(xk | z1:k) ∝ p(zk | xk) · ∫ p(xk | xk−1) p(xk−1 | z1:k−1) dxk−1

∫ p(xk | xk−1) p(xk−1 | z1:k−1) dxk−1
la predicción (distribución a priori): no conocemos con exactitud el estado anterior, así que promediamos la transición sobre todos los estados anteriores posibles, ponderados por lo que creíamos la vez anterior. La integral es el análogo continuo de la suma ∑i del algoritmo hacia delante de los HMM. Para un modelo lineal y una distribución normal sale N(Fx̂, FPFT + Q)
p(zk | xk)
la verosimilitud de la nueva medición: lo bien que cada lugar explicaría lo que mostró el GPS; según el modelo es N(zk; Hxk, R)
p(xk | z1:k)
la distribución a posteriori tras todas las mediciones; «∝» porque no necesitamos la constante de normalización p(zk | z1:k−1): el producto de dos densidades normales lo resuelve la demostración del teorema del principio de esta parte, y de ella sale exactamente el paso de corrección
El teorema de Bayes en el tiempo: la predicción por la verosimilitud da una nueva estimación, que es la predicción para el paso siguiente.

8. Cuando el mundo no es lineal

  • El filtro de Kalman extendido (EKF) linealiza el modelo no lineal en cada paso mediante la derivada; así lo hacía también la navegación del Apolo.
  • El filtro de Kalman unscented (UKF), en lugar de derivadas, hace pasar por el modelo unos pocos puntos elegidos con cuidado y a partir de ellos calcula la nueva esperanza y la nueva covarianza.
  • El filtro de partículas renuncia por completo a la distribución normal: representa la estimación con miles de muestras («partículas») que se mueven según el modelo y se reponderan según las mediciones. Puede manejar incluso una estimación con varios picos, por ejemplo «el robot está en la cocina o en el salón».
  • Dónde se usa: fusión del GPS, el acelerómetro y el giroscopio en los móviles, navegación de aviones, drones y cohetes, seguimiento de objetos por radar, estimación de la posición de coches autónomos e incluso suavizado de series temporales económicas.
Definición — filtro de Kalman extendido (EKF)

El modelo es no lineal: xk = f(xk−1) + wk, zk = h(xk) + vk. El EKF calcula la esperanza con las funciones no lineales y la covarianza con sus matrices jacobianas (matrices de derivadas parciales) en la estimación actual:

Fk = ∂f/∂x |x̂k−1,   Hk = ∂h/∂x |x̂−k,

x̂− = f(x̂),   P− = Fk P FkT + Q,   x̂ = x̂− + K (z − h(x̂−)),   K y P como antes, con Hk en lugar de H.

Ejemplo: un radar mide la distancia h(px, py) = √(px2 + py2); entonces Hk = (px/d, py/d) con d = √(px2 + py2), el vector unitario en dirección al objetivo. Para un objetivo en (300, 400) m es d = 500 m y Hk = (0,6; 0,8). El resultado ya no es la distribución a posteriori exacta, sino solo una aproximación; cuanto más curvo es el modelo dentro del rango de la incertidumbre, peor.

9. Resumen

  • Dos mediciones normales independientes se combinan con una media ponderada; las precisiones se suman y el peso K es la ganancia de Kalman.
  • El filtro de Kalman repite una predicción según el modelo y una corrección según la medición; para una magnitud constante es una media acumulada.
  • En el coche redujo el error de posición de 8,3 m (GPS) a 4,9 m y estimó también la velocidad no medida con un error de 0,8 m/s; la banda ±2σ cubrió la realidad en el 95 % de los pasos.
  • El resultado depende de Q y R: demasiada confianza en el modelo reacciona tarde; demasiado poca copia el ruido.
  • Para un modelo lineal con ruido normal, el filtro es una actualización bayesiana exacta; el mundo no lineal lo manejan el EKF, el UKF y los filtros de partículas.

Con esta parte termina el módulo sobre modelos probabilísticos. ¿Quieres probarlo por ti mismo? Pide a un agente de IA que escriba un filtro de Kalman para los datos del acelerómetro de tu propio teléfono y comprueba lo bien que estima cuánto has movido el teléfono.

¿Lo ves de otra manera? Escribe a support@coden-app.com.

Un Agente en tu ordenador, controlado desde el móvil