Kalman Filter - VISUALLY EXPLAINED!

Поділитися
Вставка
  • Опубліковано 20 бер 2021
  • This tutorial explains the Kalman Filter from Bayesian Probabilistic View and as a special case of Bayesian Filtering.
    As part of this tutorial, some of the essential foundational concepts such as the notion of Latent Variable Models, Bayes' Theorem, Markov Chain, State Space Modeling, and LG-SSM are also explained.
    Here is a notebook showing the application of Kalman Filter on a Synthetic Dataset. The notebook uses Tensorflow Probability. What makes TFP interesting is that it can work in batch mode and make use of accelerators like GPU & TPU.
    colab.research.google.com/dri...
    The link to the paper which shows full derivation of Kalman Filter equations
    arxiv.org/pdf/1910.03558.pdf
    Look at Section 8 (the last section). Also, pay attention to the symbols/notations (x vs z).
    #kalmanfilter
    #BayesFilter
    #StateSpaceModel
  • Наука та технологія

КОМЕНТАРІ • 117

  • @pectenmaximus231
    @pectenmaximus231 9 днів тому +1

    I rarely comment on these kinds of videos but this really was a great exposition, well done.

  • @user-or7ji5hv8y
    @user-or7ji5hv8y 3 роки тому +10

    So much grief could have been saved if your explanation was available in my university days. Really clearly explained.

  • @100rabhkr_India
    @100rabhkr_India 2 роки тому +12

    Hands down. The best lecture on Kalman Filter!!!!!

  • @shaswatgupta6590
    @shaswatgupta6590 5 місяців тому +5

    Sir, this is beautifully explained. Loved the clarity. The sequence of building blocks used to teach was so intuitive. Thank you!

  • @KapilSachdeva
    @KapilSachdeva  2 роки тому +15

    *Key insights/takeaways that I had wished to convey using this tutorial*
    _Failure to convey those insights properly and intuitively is a function of my limitations_
    * Appreciate the difference between Model & Algorithm. Our goal is *state estimation* using the State Space model. There *could be many algorithms* that could operate to find the unknown parameters of our model.
    * Start first by understanding the model and then worry about the algorithms to use. Appreciate *why states form a Markov chain* and *why we can consider the observations as independent* of each other.
    * Instead of starting with Kalman Filter equations and/or trying to justify its components (Gain, matrix, etc), a more intuitive & scalable approach is to first understand the model, then *understand how and why the Bayes Rule would help with state estimation*
    * Kalman Filter is an *efficient algorithm* to find the parameters of the State Space model provided the model is *constrained/limited* to have "Gaussian" Random variables for state and observations and linear functions for transition & observation functions.
    * Efficiency of Kalman Filter is a consequence of the fact that when the components (likelihood and prior) in Bayes Rule are Gaussian then we do not need to compute the integral numerically (the normalization constant). We have an *analytical solution i.e. a closed-form solution* or perhaps in simple English, we can say we have a formula.
    * As mentioned above if every component in Bayes Rule is Gaussian it is helpful for computation. However, if your transition & observation functions are *non-linear* then the output (or the next state in our case) would not be Gaussian and then Bayes Rule will haunt us. This is *why linear functions are required*. In a way, appreciate that the requirement of linear function has more to do with the requirement to use Gaussian Random variables in Bayes Rule.
    * Many algorithms in statistics follow this 2-step pattern of "predict" and "update" and so does Bayesian Filtering (... and by extension Kalman Filtering)
    * Prediction at the very first step in the state-space model is your "intelligent" guess. In the subsequent steps, it's even more intelligent as it has included some observations from the previous time steps
    * Is it really fair to have assumptions of Gaussian Random Variables and linear functions for transition & observation?
    * Appreciate the delicate dance/balance between the accuracy of inference and the computational cost. If your product is extremely accurate but computationally so heavy that it does not provide desired user experience it is of no use to anyone!
    * Control theory people use *x* for state and *z* for observations. Statisticians and ML folks use *z* for state and *x* for observations. And people who suffer because of all this notational inconsistency are us!

  • @abhinav_mzn
    @abhinav_mzn Рік тому +7

    Your presentation makes it very simple to understand...please keep making videos like this, there is a shortage of content like this on UA-cam.

  • @zlatasmolyaninova1140
    @zlatasmolyaninova1140 4 місяці тому

    this is the most clear explanation among all i have read/watched! thank you very much

  • @Omeomeom
    @Omeomeom 2 роки тому +1

    you ate this video up no lie your presentation and scope level was perfect thank you for this amazing information

  • @michaelwirtzfeld7847
    @michaelwirtzfeld7847 Рік тому +1

    Thank you. Your framing of the linear Kalman filter is very well done. I look forward to your future videos of the Kalman filter under non-linear conditions.

  • @amiyabanerjee2443
    @amiyabanerjee2443 10 місяців тому +1

    Loved your way of explanation. Amazing! Keep adding more such educational videos.

  • @pranabislam7875
    @pranabislam7875 Рік тому +1

    This lecture was incredibly clear and informative wow 10/10

  • @yaoismyhero
    @yaoismyhero Рік тому +1

    Kapil, your videos are amazing, including this one! Your teaching and presentation skills are top-notch.

  • @lakdafari
    @lakdafari 6 місяців тому +2

    Outstanding explanation. Thank you so much for making this so clear.

  • @ayushichaturvedi3854
    @ayushichaturvedi3854 Рік тому +1

    Wish I came across this video wayyy back! Such a saviour, thanks Kapil sir!

  • @rahulbirari401
    @rahulbirari401 3 місяці тому +1

    Just Mind-blowing loved the way you explained concepts and slowly built on it, that's how inventions and human mind works and mathematics is just a tool to realize/record complex ideas.
    Other lectures directly jump into maths without explaining the idea.

  • @arunabhbora5610
    @arunabhbora5610 7 місяців тому +1

    Best video I have ever watched in AI domain, Thank you Sir for the precisely detailed concept.

  • @violinplayer7201
    @violinplayer7201 Рік тому +1

    Best explanation on kalman filter! Thanks so much!

  • @annawilson3824
    @annawilson3824 Рік тому +1

    Kapil, this was nothing short of a brilliant video, 11/10!

  • @aruntakhur
    @aruntakhur 3 роки тому +4

    Beautifully Explained. Really seeking some other topics to be covered by you like Deep unsupervised learning (Pieter Abbeel) in your way :).

  • @ritishmaram3326
    @ritishmaram3326 2 роки тому +1

    Excellent explanation sir, truly motivating and inspiring sir. Thank you so much !

  • @vi5hnupradeep
    @vi5hnupradeep 2 роки тому +1

    Thankyou so much sir ! You make things look so simple 💯

    • @KapilSachdeva
      @KapilSachdeva  2 роки тому

      Thanks Vishnu for your appreciation 🙏 . It makes me happy to know that this is helpful.

  • @ruslansergeev4061
    @ruslansergeev4061 4 місяці тому +1

    This is an absolute internet gem !

  • @gastonparra2971
    @gastonparra2971 4 місяці тому

    Excellent presentation; the video is so interesting.

  • @rossijuan9548
    @rossijuan9548 Рік тому +1

    Excellent explanation, many thanks!

  • @raulpalmaa
    @raulpalmaa 8 місяців тому +1

    Thanks for this tutorial.

  • @SaurabhKataria10
    @SaurabhKataria10 Рік тому +1

    Thanks so much for this. Terrific!

  • @alexandervocaet566
    @alexandervocaet566 3 роки тому +3

    Your video is gold, good sir.

  • @tuna5287
    @tuna5287 Місяць тому

    The best! Thank you sir

  • @szb120
    @szb120 2 роки тому +1

    Well explained, thank you!

  • @user-or7ji5hv8y
    @user-or7ji5hv8y 3 роки тому +2

    A possible suggestion. I think a Tensorflow probability example of this would be really nice.

  • @luizemediato6987
    @luizemediato6987 Рік тому +1

    Very nice explanation. Thank you very much.

  • @MLDawn
    @MLDawn 8 місяців тому

    I really wish you would put an equally amazing tutorial on Kalman Bucy filters (continuous state space models). Thanks

  • @gentle-g
    @gentle-g Рік тому +1

    Nice explain!! Thank you prof.

  • @gvpathi
    @gvpathi 6 місяців тому +1

    Clear and information flow is natural.

  • @Manishkumar-ww4gm
    @Manishkumar-ww4gm 2 роки тому +1

    Very Nice explanation Sir.Than you!

  • @sun1908
    @sun1908 Рік тому +1

    Thank you.. very nicely explained.

  • @ssshukla26
    @ssshukla26 3 роки тому +2

    I just completed your video. Nice one. Subscribed.

  • @AI_Financier
    @AI_Financier 8 місяців тому +1

    A superb video, thanks. a simple numerical example at the end would be great.

    • @KapilSachdeva
      @KapilSachdeva  8 місяців тому

      There is a link to the notebook in the description of the video.

  • @xuyang2776
    @xuyang2776 5 місяців тому

    Thanks a lot ! This video is easiest to understand that I have ever seen. But I have a question. If the parameters A(k-1) in transition function and H(k-1) in the emission function are unknown, how to handle?

  • @FGundogan
    @FGundogan 10 місяців тому +1

    An application would help great, many thx Kapil!

  • @naifalkhunaizi4372
    @naifalkhunaizi4372 2 роки тому +1

    Art at its best

  • @deepikabhoominathan4969
    @deepikabhoominathan4969 Рік тому +1

    Explained neat and clean...thanks a lot 👏 keep explaining the topics in artificial intelligence sir

  • @jameschen2308
    @jameschen2308 3 роки тому +2

    Top notch!

  • @user-or7ji5hv8y
    @user-or7ji5hv8y 3 роки тому +2

    Do you have examples of where such Kalman filtering can be useful.

    • @KapilSachdeva
      @KapilSachdeva  3 роки тому +3

      I am assuming that you are asking about why Bayesian Perspective of Kalman Filter is important & useful.
      Kalman Filter, the algorithm, assumes "Linear Gaussian" State Space Model whereas most of the real world phenomenon do not have linear transition & observation functions and assumption of Gaussian distribution for State & Measurement Random variables is not always appropriate.
      Note - In the above paragraph I have distinguished between "algorithm" (i.e. Kalman Filter) and "model" (i.e. State Space). It is important to appreciate this difference.
      Seeing Kalman Filter as a special case of Bayes' Filter helps you appreciate that you can apply other algorithms to find your latent/state variables. Essentially, you now have a "general framework" of Bayesian "predict" and "update" equations where distributions could be other than Gaussian provided you have a way (algorithm) to solve these equations. For e.g. you could use Variational Inference or MCMC methods to approximate the posterior state.
      And in the modern machine learning realm, you can think of the transition & observation functions being modeled by neural networks. See for example this paper - arxiv.org/abs/1609.09869 (Structured Inference Networks for Nonlinear State Space Models)
      As you can appreciate that this way of thinking in terms of a general framework helps you find solutions for more sophisticated problems where Kalman Filter's requirements (i.e. linear functions & gaussian random variables) are not met.
      Hope this makes sense; let me know if you need more clarifications.

  • @Vidit2011998
    @Vidit2011998 2 роки тому +1

    Professors in Germany couldn't teach a shit about this. Meanwhile you explained wonderfully!

  • @alnar447
    @alnar447 Рік тому

    Excellent. At around 13 min mark the measurements could potentially indicate any state with certain probability? Emission function can take measure ment to any given state? So multiple arrows potentially

    • @KapilSachdeva
      @KapilSachdeva  Рік тому

      Not sure if I understand the question. Could you please elaborate?

  • @kentoshintani3020
    @kentoshintani3020 3 роки тому +1

    Which presentation software are you using?
    Microsoft ppt?

  • @adarshsdinopark8251
    @adarshsdinopark8251 Рік тому

    Can you please share the link for particle filter

  • @vijaymaraviya9443
    @vijaymaraviya9443 2 роки тому +1

    Thank you 👌🏼❤️

  • @pratikanand2200
    @pratikanand2200 3 роки тому +1

    you really explained the concept very well but I think that if you could give an example first then understanding this, was fun. Wikipedia has a good example of this.

    • @KapilSachdeva
      @KapilSachdeva  3 роки тому

      Thanks Pratik. Point noted. Good feedback; though it does not compensate for a concrete example I could have provided, there is a link to a notebook in the description. It shows a modern implementation of KF using tensorflow probability. Check it out if interested. 🙏

  • @100rabhkr_India
    @100rabhkr_India 2 роки тому +1

    Sir, do we have lectures on particle filter. An solved example for Kalman Filter will be a "cherry on the cake"

    • @KapilSachdeva
      @KapilSachdeva  2 роки тому

      Thanks Saurabh. Nothing on particle filter yet but I have thought about making one. Hopefully soon 🙏
      Look in the description of the video. You will find the link to the example.

  • @100rabhkr_India
    @100rabhkr_India Рік тому

    Time 28:58, Can you please explain what will be the value of m_k in the 1st equation of Update? How is the calculated and updated? Is it a constant?

    • @KapilSachdeva
      @KapilSachdeva  Рік тому +1

      m_k is the observation (eg the value that your sensor will give) at step k.

  • @aishahalbarakati7942
    @aishahalbarakati7942 2 роки тому

    Would you please share the paper of the derivation that you mentioned at the end of the video??

    • @KapilSachdeva
      @KapilSachdeva  2 роки тому +1

      Here it is -
      arxiv.org/pdf/1910.03558.pdf
      Look at Section 8 (the last section). Also pay attention to the symbols/notations (x vs z).

    • @aishahalbarakati7942
      @aishahalbarakati7942 2 роки тому

      @@KapilSachdeva Thank you

    • @KapilSachdeva
      @KapilSachdeva  2 роки тому

      🙏

  • @roy1660
    @roy1660 3 роки тому +3

    Please upload video on particle filters and feedback particle filters

    • @KapilSachdeva
      @KapilSachdeva  3 роки тому +1

      Sorry for the late reply; will make some tutorials on them as they are indeed very interesting. Working on some other tutorials that would be prerequisites for particle filters.

    • @roy1660
      @roy1660 3 роки тому +1

      @@KapilSachdeva Thanx for the consideration.

    • @KapilSachdeva
      @KapilSachdeva  3 роки тому +1

      🙏

  • @partha95123
    @partha95123 Рік тому +1

    Wow!

  • @MLDawn
    @MLDawn 8 місяців тому

    I really wished you had also explained the meaning of Kalman gain at 28:45.

  • @mmattb
    @mmattb Рік тому +1

    Dumb question: Why are the transition (A) and emission (H) matrices time indexed (referring to the slide at ~26:30)? Is that intended to imply that a Kalman Filter can be applied to a nonstationary process? Second dumb question: why is the time index on H k-1 instead of k? The conditional probability distribution on the right side of the slide shows k as the time index, which makes sense to me, but I don't understand why k-1 is shown on the left side.
    Anyway, thanks a bunch for the video. I love you build up the basics first!

    • @KapilSachdeva
      @KapilSachdeva  Рік тому

      Both of your questions are valid (and definitely not dumb)-
      See below resource:
      arxiv.org/pdf/1910.03558.pdf
      Look at Section 8 (the last section). Also, pay attention to the symbols/notations (x vs z)
      (a) yes it can be applied to non stationary process and some literature puts the time step as you will see in above paper
      (b) I made the typo 😒it should be H_k and not H_{k-1}

    • @mmattb
      @mmattb Рік тому +1

      Ah okay, that clears it up. Thanks a bunch Kapil.

    • @KapilSachdeva
      @KapilSachdeva  Рік тому

      🙏

  • @user-wr4yl7tx3w
    @user-wr4yl7tx3w 2 роки тому +1

    Be great to see a python coding example.

    • @KapilSachdeva
      @KapilSachdeva  2 роки тому +2

      There is a link to an example notebook in the description

  • @jameschen2308
    @jameschen2308 3 роки тому +1

    Are you a professor?

    • @KapilSachdeva
      @KapilSachdeva  3 роки тому

      No I am not :) ... but any concern?

    • @jameschen2308
      @jameschen2308 3 роки тому +1

      @@KapilSachdeva no concern, sir, just very appreciative

    • @KapilSachdeva
      @KapilSachdeva  3 роки тому

      @@jameschen2308 thanks. Very kind of you.

  • @PrashantBatule
    @PrashantBatule Рік тому

    A good explanation, much appreciative of the content! But I think there is no extraordinary "visualization" here compared to a standard textbook. I would suggest a more intuitive explanation through an example, which is nowhere to be found on the internet.

    • @KapilSachdeva
      @KapilSachdeva  Рік тому

      🙏 thanks for the feedback.
      Yes I have been thinking about re-explaining it with an example.
      Regarding “extraordinary visualization”. This could be subjective and I understand that it is not a 3blue1brown level visualization 😊 but it does not mean it is not good enough.
      As a matter of fact some of the “extraordinary visualizations” could hide the necessary underlying conceptual details. They impress people but not necessarily help them understand the details.