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

Материал из 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(xk−1,vk),

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

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

yk=hk(xk,wk),

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

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

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

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

Шаблон:Main

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

Шаблон:EF

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

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

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

Шаблон:EF

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

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

X1→X2→X3→X4→…↓↓↓↓…Y1Y2Y3Y4…

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

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

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

Шаблон:EF

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

Шаблон:EF

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

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

Шаблон:EF

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

p(y1:n)=∫p(x1:n)p(y1:n∣x1:n)dx1:n.

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

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

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

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

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

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

θ¯≈1N∑i=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)dx≈∑i=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:n∣x1:n) и
Zn=p(y1:n),

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

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


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

p(x1:n∣y1:n−1)=p(x1:n−1∣y1:n−1)f(xn∣xn−1) — предиктор,
p(x1:n∣y1:n)=h(yn∣xn)p(x1:n∣y1:n−1)p(yn∣y1:n−1) — корректор.

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

Алгоритм

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

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

См. также

Примечания

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

Литература

Ссылки

Шаблон:Вс