Или причем тут фильтра Калмана.
Что это за фильтр такой и почему он популярен? Первый раз я столкнулся с этим фильтром, когда требовалось байесовское обновление параметров модели. Да-да, именно так; в фильтре Калмана ведется расчет вероятностей (гауссианы), поэтому он может считаться байесовским обновлением, по краймей мере байесовская подоплека присуствует.
Мы все любим гауссианы, иногда даже напрасно. Если можно точно поставить эксперимент и имеется четкое распределение, то, конечно, надо этим использоваться. Но в реальной жизни слишком часто совокупности всех сил, вмешивающихся в эксперимент, не рассчитать, а по ЦПТ они вполне сходятся к гаусу. Поэтому мы и шум в наших моделях обычно берем гаусом. И, видимо, именно поэтому данный фильтр применяется повсеместно, особенно в треках предметов в видео или изображениях.
Попробую описать работу фильтра. С чего начинается траектория? С движения :)
Пусть наша точка двигается. Для это у нас будет вектор x состоящий из координаты и скорости (x = [ v, p]). Мы хотим внести неопределенность. Не вдаваясь в подробности, скажу, что это делается матрицей ковариаций (её нам тоже придется определить в будущем для эксперимента, можно её находить из неопределенностей, насколько можем оценить).
Не стоит забывать, что могут существовать силы, подталкивающие точку. Они должны быть записаны в уравнение движения. А для общей ковариации эксперимента мы добавляем на каждог шаге еще ковариацию шума. Это очень сложные предложения, но дальше мы посмотрим, как это описывать в python.
На каждом шаге вы пытаемся измерить и очередным предсказанием внести ясность в ковариации.
Тут мы видим синие - самые рандомные числа в пределах [-2, 2], желтый - фильтр калмана пытается найти трек и предсказывать.
Как мы видим, довольно неплохо. Как это запускать, все будет здесь, может и не сразу
_____________________________________
Друзья, подписывайтесь и ставьте лайки :) Тогда я буду больше писать интересных вещей! Всем хорошего дня!