Kalman Filter via a Simple and Intuitive Derivation [pdf]
cl.cam.ac.uk
cl.cam.ac.uk
Edit: all the way through now. Certainly this would be much more useful as an intro to Kalman filters (rather than an introduction to introducing Kalman filters) had some intuition been given.
Sequential Bayesian Filtering is how you apply repeated evidence to a moving target. There are three steps:
1. Predict: Using some Markov process, move your prior distribution forward in time so it's compatible with your new evidence. (Intuitively, everything becomes less certain as it's free to move around. Mathematically, doing this with continuous probabilities tends to mean an incredibly gross integral.)
2. Update: Using Bayes' Rule, update your probabilities with the new evidence. (Intuitively, this bunches the distribution back up. If the predict/update don't vary in time/quality, this tends to asymptotically reach some sort of balance. Mathematically, this tends to also be gross.)
3. Notreallyastep: Recycle your results as the priors in step 1 next time. (Note this means your result needs to be in the same format as your old priors if you don't want to re-solve all the math every update.)
If you get around the gross math by doing everything in finite space and brute forcing it (integrals become summations), you get a hidden Markov model.
If you get around the gross math by dingo a Monte-Carlo approximation, you get a particle filter.
If you assume your priors are normal, your evidence is normal, and your update function fits in a matrix multiplication, then you're in luck: all of the math works out so your result is also normal. That's a Kalman Filter.
The paper consists of lecture notes for 2nd year computer science undergraduates at Cambridge.
https://books.google.com/books?id=7papZR4oVssC&pg=PA84&lpg=P...
Sigh.
KF is essentially solving a QP with equality constraints (Boyd's course is a good place for details), which can be solved exactly with a single decomposition of the KKT system - picking an ordering is all that matters for complexity.
This is essentially the principle on which all of Sparse Linear algebra and Graphical models work. There is nothing special about the structure of KF, nor in LQR, nor in their non-linear generalizations.
One can symbolically unroll Schur complements multiple times to make block-LU appear opaque and sophisticated, but it really is not (this of course is not to say this is done deliberately). KF can also derived from the Bayes' network model, but extending this to non-linear forms like EKF, and to things which are not first-order becomes rather troublesome (or impossible).
I'd have appreciated a post asking for details rather than infantile derision.
I did spend 5 minutes perusing the paper you linked, and couldn't make heads or tails of it. For myself and all other mere mortals unfamiliar with this mathematical machinery, I can assure you that details are far from trivial.
Thanks for taking your time to explain.
I can assure you, this is way more readable than many other papers. I can totally understand the "minutiae" comment there.
Easy enough in one dimension, surprisingly hard in several dimensions.
Even after all that, could I explain what the Kalman gain is to a ten year old? Not a chance.
It's geared towards software engineers and doesn't assume much math background. Highly recommend.
https://www.cs.unc.edu/~welch/kalman/media/pdf/maybeck_ch1.p...
Write one, print out every intermediate value to see how the matrix changes. It will be not-quite-correct, but it will give you insights to how exactly a kalman filter works
Anyone know of attempts at that? (Or applying one to a real situation?)