Многочастичный фильтр

Материал из testwiki
Перейти к навигации Перейти к поиску

Многочасти́чный фильтрШаблон:Sfn (МЧФ, Шаблон:Lang-en — «фильтр частиц», «частичный фильтр», «корпускулярный фильтр») — последовательный метод Монте-Карло — рекурсивный алгоритм для численного решения проблем оценивания (фильтрации, сглаживания), особенно для нелинейных и не-гауссовских случаев. Со времени описания в 1993 годуШаблон:Sfn Н. Гордоном, Д. Салмондом и А. Смитом используется в различных областях — навигации, робототехнике, компьютерном зрении.

В сравнении с обычно применяемыми для подобных задач методами — расширенными фильтрами Кальмана (EKF) — многочастичные фильтры не зависят от методов линеаризации или апроксимации. Обычный EKF плохо справляется с существенно нелинейными моделями, а также в случае шумов системы и измерений, сильно отличающихся от гауссовых, поэтому были разработаны различные модификации, такие как UKF (Шаблон:Lang-en), QKF (Шаблон:Lang-en) и т. п.Шаблон:Sfn. Следует отметить, что в свою очередь многочастичные фильтры более требовательны к вычислительным ресурсам.

Термин «particle filter» был дан Дел Моралом в 1996 году[1], а «sequential Monte Carlo» — Лю (Liu) и Ченом (Chen) в 1998.

Многие используемые на практике многочастичные фильтры выводятся применением последовательного метода Монте-Карло к последовательности целевых распределенийШаблон:Sfn.

Постановка задачи

МЧФ предназначен для оценки последовательности скрытых переменных xn для n=1,2, на основании наблюдений yn при n=1,2,. Для простоты изложения будем считать, что рассматривается динамическая система, и xn и yn — действительные вектора состояния и измерений соответственноШаблон:Sfn.

Стохастическое уравнение состояния системы имеет вид:

xk=fk(xk1,vk),

где fk функция изменения состояния системы, vk — случайная величина, возмущающее воздействие.

Уравнение измерений:

yk=hk(xk,wk),

где hk функция измерения, wk — случайная величина, шум измерений.

Функции fk и hk в общем случае нелинейные, а статистические характеристики шума системы (vk) и измерений (wk) предполагаются известными.

Задачей фильтрации является получение оценки x^k на основе известных к моменту k результатов измерений y1:k.

Скрытая марковская модель и байесовский вывод

Шаблон:Main

Рассмотрим дискретный марковский процесс {Xn}n1 со следующими распределениями вероятностей:

Шаблон:EF

где μ(x) — плотность вероятности, f(xnxn1) — условная плотность вероятности (переходная плотность вероятности) при переходе от xn1 к xn.

Здесь нотация XYf() означает, что X при условии Y распределено как f().

Реализации процесса {Xn} (скрытые переменные xn) наблюдаются посредством другого случайного процесса {Yn}n1 — процесса измерений — с маргинальными плотностями:

Шаблон:EF

где h(ynxn) — условная плотность вероятности (плотность измерений), измерения считаются статистически независимыми.

Модель может проиллюстрирована следующей диаграммой переходов:

X1X2X3X4Y1Y2Y3Y4

Для простоты считаем, что переходная плотность и плотность измерений не зависят от n. Параметры модели считаются заданными.

Определённая таким образом модель системы и измерений известна как скрытая марковская модельШаблон:Sfn.

Уравнение Шаблон:Eqref определяет априорное распределение для процесса {Xn}:

Шаблон:EF

Аналогично Шаблон:Eqref задаёт функцию правдоподобия:

Шаблон:EF

Здесь и далее нотация xk:l для kl обозначает (xk,,xl).

Таким образом, байесовский вывод для {X1:n} при известных реализациях измерений {Y1:n}, обозначенных соответственно как {x1:n} и {y1:n}, будет опираться на апостериорное распределение

Шаблон:EF

где (здесь dx1:n — доминирующая мера):

p(y1:n)=p(x1:n)p(y1:nx1:n)dx1:n.

Выборка по значимости

См. также Выборка по значимости.

Метод Монте-Карло позволяет оценивать свойства довольно сложных распределений вероятностей, например, путём вычисления средних и дисперсии в виде интегралаШаблон:Sfn:

θ¯=θ(x)p(x)dx,

где θ(x) — функция для оценивания. Например, для среднего можно положить: θ(x)=x.

В случае невозможности аналитического решения, задача может быть решена численно генерированием случайных выборок с плотностью p(x), обозначим их как x(i)1iN, и получением среднего арифметического по точкам выборкиШаблон:Sfn:

θ¯1Ni=1Nθ(x(i))

В более общем случае, когда выборка из p затруднена, применяется другое распределение q (так называемое Шаблон:Lang-en), а для сохранения несмещённости оценки вводятся весовые коэффициенты wi на основе отношения r(x(i))=p(x(i))/q(x(i))Шаблон:Sfn:

wi=r(x(i))j=1Nr(x(j))

после чего вычисляет взвешенное среднее:

θ¯=θ(x)r(x)q(x)dxi=1Nwiθ(x(i)),

Перевыборка

Хотя вспомогательное распределение используется в основном для упрощения выборки из основного распределения p, часто применяется процедура «выборки и перевыборки по значимости» (Шаблон:Lang-en). Эта процедура состоит из двух этапов: собственно выборки по значимости с вычислением весов wi, и дополнительной выборки точек, учитывающих эти весаШаблон:Sfn.

Перевыборка особенно необходима для последовательных фильтровШаблон:Sfn.

Последовательный метод Монте-Карло

Методы многочастичной фильтрации и сглаживания являются наиболее известными примерами алгоритмов последовательного метода Монте-Карло (Шаблон:Lang-en). До такой степени, что в литературе часто не делают между ними различия. Тем не менее, SMC включает в себя более широкий класс алгоритмов, применимых для описания более сложных приблизительных методов фильтрации и сглаживанияШаблон:Sfn.

Последовательные методы Монте-Карло являются классом методов Монте-Карло, которые производят последовательную выборку из последовательности целевых плотностей вероятностей {fn(x1:n)} увеличивающейся размерности, где каждое fn(x1:n) определено на декартовой степени 𝒳nШаблон:Sfn.

Если записать плотность как:Шаблон:Sfn

fn(x1:n)=ϕn(x1:n)Zn, где
ϕn:𝒳n+ известна поточечно, а
Zn=ϕn(x1:n)dx1:n — нормализующая, возможно неизвестная, постоянная, то

SMC-алгоритм будет находить приближения fk(x1:k) и оценки Zk для k=1,2,.

Например, для случая фильтрации можно положить (см. Шаблон:Eqref):

ϕn(x1:n)=p(x1:n)p(y1:nx1:n) и
Zn=p(y1:n),

из чего будем иметь:

fn(x1:n)=p(x1:n)p(y1:nx1:n)p(y1:n)=p(x1:n|y1:n).


Опуская вывод, схему предиктор-корректор можно представить в следующем видеШаблон:Sfn:

p(x1:ny1:n1)=p(x1:n1y1:n1)f(xnxn1) — предиктор,
p(x1:ny1:n)=h(ynxn)p(x1:ny1:n1)p(yny1:n1) — корректор.

Множитель (p(yny1:n1))1 — нормализующая постоянная, которая не требуется для обычного SMC-алгоритма.

Алгоритм

Типичный алгоритм многочастичного фильтра можно представить в следующем видеШаблон:Sfn:

   Алгоритм МЧФ
   -- инициализация
   для i = 1...N:
     выборка ξ0(i) из q0(x0y0)
     -- начальные веса
     ω0(i):=h(y0ξ0(i))μ(ξ0(i)) / q0(ξ0(i)y0) 
   кц
   для n = 1...T:
     если ПЕРЕВЫБОРКА то
       -- выбор индексов ji{1,,N} N частиц в соответствии с весами
       j1:N = SelectByWeight({wn1(j)})
       для i = 1...N:
         xn1(i):=ξn1(ji)
         wn1(i):=1/N
     иначе
       для i = 1...N:
         xn1(i):=ξn1(i)
     для i = 1...N:
       -- шаг распространения частицы
       ξn(i)qn(ξn(i)ξn1(i),yn)
       -- обновление весов
       ωn(i):=wn1(i)h(ynξn(i))f(ξn(i)xn1(i)) / qn(ξn(i)xn1(i),yn) 
     кц
     -- нормализация весов
     s:=j=1Nωn(j)
     для i = 1...N:
       wn(i):=ωn(i)/s
   кц

См. также

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:Вс