-
Notifications
You must be signed in to change notification settings - Fork 22
Description
It is important to account for uncertainty in system behavior and sensor data for more accurate models. This is handled by having process noise is added at state transition and measurement noise added at measurement (output equation). This is currently handled by manual tuning.
It would be helpful to have a feature to estimate noise in a similar way to the parameter estimation method. However, this is a challenging issue because noise is dynamic and values sample from a distribution.
Some initial exploration is documented in the add-noise-estimation-mc
branch in estimate_noise.ipynb
This starts with a Monte Carlo brute force approach as a baseline, which is computationally expensive, has a large search space, and is overall unrealistic in real use cases. This is done by picking a process and measurement noise as a goal and generating “realˮ data to compare guess and estimation against. The current approach is optimized based on mean and std error.
One example run with 10,000 simulations achieved the following results:
○ Data: [1.8 process noise, 0.4 measurement noise]
○ Guess: [3 process noise, 2 measurement noise]
○ Optimized: [1.8 process noise, 2.4 measurement noise]
Next steps:
- Update optimization to minimize a different error measure (distributional
similarity) - Explore search space with heatmap visualization
- Coarse-to-fine optimization with fewer samples or earlier stop time
- Open to ideas → Vectorized prediction with multiple possibilities, unscented Kalman filter, sigma points
Resources: