Почему в фильтре Калмана вероятность вычисляется с использованием результатов фильтра, а не сглаженных результатов?

11

Я использую фильтр Калмана очень стандартным способом. Система представлена ​​уравнением состояния xt+1=Fxt+vt+1 и уравнением наблюдения yt=Hxt+Azt+wt .

Учебники учат , что после применения фильтра Калмана и получать «прогнозы на один шаг x^t|t1 (или «отфильтрованная оценка»), мы должны использовать их для вычисления функции правдоподобия:

fyt|It1,zt(yt|It1,zt)=det[2π(HPt|t1H+R)]12exp{12(ytHx^t|t1Azt)(HPt|t1H+R)1(ytHx^t|t1Azt)}

Мой вопрос: почему функция правдоподобия вычисляется с использованием «отфильтрованной оценки» а не «сглаженной оценки» ? Разве является лучшей оценкой вектора состояния?x^t|t1x^t|Tx^t|T

Густаво Амаранте
источник
Я отредактировал название, чтобы оно было более информативным.
Юхо Коккала

Ответы:

5

Чтобы ответить на ваш вопрос: вы можете использовать плотность сглаживания. Но ты не обязан. В ответе Ярле Туфто есть разложение, которое вы используете. Но есть и другие.

Использование рекурсий Кальмана

Здесь вы оцениваете вероятность как

f(y1,,yn)=f(y1)i=2nf(yi|y1,,yi1).

Однако средние значения и дисперсии не всегда полностью определяют распределения вероятностей в целом. Ниже приводится разложение, которое вы используете для перехода от фильтрации распределений к условным вероятностям :f(xi1|y1,,yi1)f(yi|y1,,yi1)

(1)f(yi|y1,,yi1)=f(yi|xi)f(xi|xi1)f(xi1|y1,,yi1)dxidxi1.

Здесь - плотность перехода состояний ... часть модели, а - плотность наблюдений ... снова часть модели. В своем вопросе вы пишете их как и соответственно. Это то же самое.f(xi|xi1)f(yi|xi)xt+1=Fxt+vt+1yt=Hxt+Azt+wt

Когда вы получаете распределение прогноза состояния на шаг впереди, это вычисляет . Когда вы интегрируете снова, вы получаете (1) полностью. Вы напишите эту плотность полностью в своем вопросе, и это то же самое.f(xi|xi1)f(xi1|y1,,yi1)dxi1

Здесь вы используете только разложения вероятностных распределений и предположения о модели. Этот расчет вероятности является точным расчетом. Там нет ничего дискреционного, что вы можете использовать, чтобы сделать это лучше или хуже.

Использование алгоритма EM

Насколько мне известно, нет другого способа оценить вероятность непосредственно в такого рода модели пространства состояний. Тем не менее, вы все равно можете сделать оценку максимального правдоподобия, оценив другую функцию: вы можете использовать алгоритм EM. На шаге ожидания (E-шаг) вы должны вычислить Здесь

f(x1,,xn|y1,yn)logf(y1,,yn,x1,,xn)dx1:n=Esmooth[logf(y1,,yn,x1,,xn)].
f(y1,,yn,x1,,xn)это вероятность «полных данных», и вы берете ожидание логарифма этого относительно плотности сглаживания суставов. Часто случается так, что, поскольку вы берете журнал полной вероятности данных, термины разбиваются на суммы, а из-за линейности оператора ожидания вы берете ожидания в отношении предельных распределений сглаживания ( Вы упоминаете в своем вопросе).

Другие вещи

В некоторых местах я читал, что EM - это «более стабильный» способ максимизировать вероятность, но я никогда не видел, чтобы этот аргумент был аргументирован, и я не видел, чтобы это слово «стабильный» было определено вообще, но я также не использовал действительно изучил это дальше. Ни один из этих алгоритмов не обходит локальное / глобальное испытание максимумов. Лично я склонен использовать Кальмана чаще всего просто по привычке.

Это правда, что сглаженные оценки состояния обычно имеют меньшую дисперсию, чем фильтрация, поэтому я полагаю, что вы правы, если у вас есть некоторая интуиция, но вы на самом деле не используете состояния. Вероятность, которую вы пытаетесь максимизировать, не зависит от состояний.

Тейлор
источник
Насколько отличаются KF и EM? Они заканчивают тем, что делали то же самое в смутно похожих манерах.
Митч
1
@ Митч, наверное, это то, что заслуживает большего, чем комментарий. Это будет зависеть от того, какой оптимизатор общего назначения вы используете с KF, и какой тип EM вы используете. Я не собираюсь быть слишком уверенным, не глядя на это.
Тейлор
7

Как правило, по правилу произведения точное значение вероятности может быть записано как Из предположения о модели пространства состояний следует, что вектор ожидания и матрица дисперсии каждого обусловленного прошлыми наблюдениями, могут быть выражены как и

f(y1,,yn)=f(y1)i=2nf(yi|y1,,yi1).
yi
E(yi|y1,,yi1)=E(Hxt+Azt+wt|y1,,yi1)=HE(xt|y1,,yi1)+Azt+Ewt=Hx^t|t1+Azt,
Var(yi|y1,,yi1)=Var(Hxt+Azt+wt|y1,,yi1)=HVar(xt|y1,,yi1)H+Varwt=HPt|t1H+R.
Так что это дает вам точную вероятность без вычисления каких-либо сглаженных оценок.

Хотя вы, конечно, можете использовать сглаженные оценки, которые на самом деле являются лучшими оценками неизвестных состояний, это не даст вам функцию вероятности. Фактически вы будете использовать наблюдаемое значение для оценки своего собственного ожидаемого значения, так что, вероятно, это приведет к некоторому смещению в итоговых оценках. yi

Ярле Туфто
источник
0

Я думаю, что лучший ответ относительно того, «почему» не используется сглаживающее распределение (как правило), это эффективность. В принципе несложно рассчитать (сглаживание) предельной вероятности в смысле «один-на-один» следующим образом. Удалить наблюдение j, запустить сглаживание Кальмана на оставшиеся данные. Затем оцените вероятность невидимого y (j). Повторите это для всех j. Подведите логарифмические вероятности. Более быстрые версии этого работают с (рандомизированными) блоками удерживаемых образцов (например, CV с кратным увеличением). Обратите внимание, что эта схема требует более общей реализации фильтра / сглаживателя Калмана, который может произвольно пропускать обновления измерений, где это необходимо. Проход назад / сглаживание не получает доступ к измерениям (алгоритм RTS в любом случае) и остается тем же.

Если временные ряды «достаточно длинные», то это вряд ли принесет пользу, так как вероятность фильтрации «сгорает» в своем начальном переходном процессе. Но если набор данных короткий, более дорогая вероятность сглаживания может стоить того. Сглаживатель с фиксированной задержкой может быть промежуточным решением.

Трипвуд
источник