Observations, Sensors, and Multimodal Data › Missing, Delayed, and Noisy Observations

Michael BrenndoerferJune 13, 20266 min read
World Models HandbookAll chapters
Part 3 of 12Representing Agents and Worlds
Chapter 13Observations, Sensors, and Multimodal Data › Missing, Delayed, and Noisy Observations
Reading section 5 of 11 · Missing, Delayed, and Noisy Observations · 6 minSection 5 of 11 · 6 min

Book contents

Section 5 of 11 · 6 min read

Observations, Sensors, and Multimodal Data › Missing, Delayed, and Noisy ObservationsOne section · Sections in this chapter5 / 11 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

With calibration and synchronization in place, we can characterize three degradation modes that commonly occur in real datasets. Each has a principled treatment that traces back to the belief-state machinery from Part II.

Noise: Know Its Shape

The default assumption in filtering is additive Gaussian noise, zt=h(st)+vtz_t = h(s_t) + v_t with vt∼N(0,R)v_t \sim \mathcal{N}(0, R), where ztz_t is the measurement, sts_t is the state, hh is the observation function, and vtv_t is zero-mean Gaussian measurement noise with covariance RR. This is often adequate, but real sensors violate it in characteristic ways. Encoder quantization error is bounded and is often approximated as uniform under suitable input or dither assumptions; without those assumptions it depends deterministically on the true value. Cameras have signal-dependent shot noise and can produce heavy-tailed outliers from reflections or sensor defects. IMUs have time-correlated errors such as random walks that an independent-noise model underestimates. When errors persist across updates, a filter that assumes independence can become overconfident.

There is also bias, a systematic offset that averaging cannot remove. Bias is especially dangerous because a model may absorb it as repeatable structure, while repeated samples do not cancel it. Large variance can be equally damaging, and noisy training data does not automatically make an ordinary model uncertainty-aware; both error types must be modeled and calibrated. Practical defenses include redundancy across sensors with independent bias sources, periodic re-zeroing against known references, and explicit bias states in the filter, which is how IMU biases are estimated in visual-inertial odometry. Instead of assuming the bias away, the filter promotes it to part of the state and estimates it alongside position. This state-augmentation trick recurs throughout estimation theory and will appear again in the next section.

Missing Data: Model the Absence

Observations go missing. Cameras are occluded or blinded by glare, network streams stutter, tactile arrays fail cell by cell. Any imputation should carry an explicit mask or uncertainty rather than masquerade as a measurement. In filter terms, a missing observation means no measurement update, so uncertainty grows under prediction until the next observation arrives.

This uncertainty growth is concrete and quantitative. With the continuous white-acceleration model used later in this chapter, let qaq_a denote the acceleration-noise spectral density. The one-step position-noise variance is Q11=qa Δt3/3Q_{11}=q_a\,\Delta t^3/3. Starting from zero covariance, pure prediction over kk steps gives P11=qa(kΔt)3/3P_{11}=q_a(k\Delta t)^3/3. A scalar position measurement with variance RR then reduces that prior variance to P11+=P11R/(P11+R)P_{11}^{+}=P_{11}R/(P_{11}+R):

In[4]:
Code
import numpy as np

dt = 0.01
q_accel = 0.3**2  # white-acceleration PSD (m^2 / s^3)
gap = 90  # blind prediction steps
R_UPDATE = 0.0025  # position-measurement variance (m^2)

k_blind = np.arange(gap + 1)
prior_var = q_accel * (k_blind * dt) ** 3 / 3.0
posterior_var = prior_var[-1] * R_UPDATE / (prior_var[-1] + R_UPDATE)

# Repeat the final time so the update appears as a vertical covariance drop.
blind_time = np.append(k_blind * dt, k_blind[-1] * dt)
pos_var = np.append(prior_var, posterior_var)
Out[5]:
Visualization
Curve of position variance rising cubically during a measurement gap, then dropping at an update
Position variance under continuous white-acceleration prediction during a 90-step measurement gap. Variance grows cubically, then a position update reduces it according to the scalar Gaussian covariance update.

The cubic growth is the continuous white-acceleration signature after integrating acceleration into velocity and position. A planner can use a calibrated covariance to respond cautiously as the belief becomes stale. An unmasked imputed value would instead invite downstream code to treat a guess as a measurement.

In learning terms, masking or modality dropout can expose the model to gaps during training. Modality dropout randomly deletes whole sensor streams, encouraging less brittle dependence on any one modality. It can improve degradation behavior, but does not guarantee it when deployment failures differ from the training dropout pattern.

Missingness can also be informative. Discriminating "nothing there" from "sensor failed" is itself an inference problem, and models that track per-modality reliability can use dropout patterns as evidence. Occlusion is often spatially structured and correlated with predicted scene layout, while some failures affect whole frames or channels. These are heuristics rather than guarantees: failures can be spatially structured, and occlusion can remove an entire view, so reliability metadata and diagnostics still matter.

Delay: Out-of-Sequence Measurements

Delay produces the subtlest failure mode. When a measurement with timestamp t−Δt - \Delta arrives at time tt, calling it a measurement of the current state injects a systematic error proportional to how fast the world moves. Notice the structure of the error: it is not random, it is a deterministic function of the state's velocity, which means the filter cannot average it away and the resulting estimate is biased in exactly the direction of motion. In filtering language this is an out-of-sequence measurement, and there are standard remedies:

  • Buffer and refilter. Keep a short history of past beliefs and controls. When the delayed measurement arrives, rewind the filter to its timestamp, apply the update, and replay the intervening predictions and updates. This is exact for linear-Gaussian models and the approach we implement below. Its costs are memory, proportional to the latency times the base rate, and compute, proportional to the same quantity per delayed measurement.
  • Augment the state. Append the delayed state (or the measurement itself) to the state vector and update jointly, as delayed-state Kalman filters and visual-inertial estimators do. The state-augmentation trick from the bias discussion reappears: rather than special-casing the delayed measurement, we enlarge the estimation problem until the delayed measurement becomes an ordinary one.
  • Predict forward. Apply the update at arrival time against a prediction of what the measurement would look like now, using the model to propagate from t−Δt - \Delta to tt. This often uses less history and replay work, but its accuracy depends on the transition model and on which intervening measurements it ignores.

All three remedies require a trustworthy timestamp and a dynamics model over the latency interval. Buffer-and-refilter restores a stored past belief, applies the delayed update, and then reruns the transition model forward over the latency window. Its quality therefore depends on the same transition model used elsewhere for prediction.