Перейти к содержанию

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

Материал из Мегавики — свободной энциклопедии

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

В сравнении с обычно применяемыми для подобных задач методами — расширенными фильтрами Кальмана (EKF) — многочастичные фильтры не зависят от методов линеаризации или апроксимации. Обычный EKF плохо справляется с существенно нелинейными моделями, а также в случае шумов системы и измерений, сильно отличающихся от гауссовых, поэтому были разработаны различные модификации, такие как UKF (англ. unscented KF), QKF (англ. Quadrature KF) и т. п.[3]. Следует отметить, что в свою очередь многочастичные фильтры более требовательны к вычислительным ресурсам.

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

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

Постановка задачи[править]

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

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

xk=fk(xk1,vk),

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

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

yk=hk(xk,wk),

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

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

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

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

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

X1μ(x1) и
Xn(Xn1=xn1)f(xnxn1),
(1)

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

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

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

Yn(Xn=xn)h(ynxn), (2)

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

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

X1X2X3X4Y1Y2Y3Y4

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

Определённая таким образом модель системы и измерений известна как скрытая марковская модель[6].

Уравнение (1) определяет априорное распределение для процесса {Xn}:

p(x1:n)=μ(x1)k=2nf(xkxk1) (3)

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

p(y1:nx1:n)=k=1nh(ykxk), (4)

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

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

p(x1:ny1:n)=p(x1:n)p(y1:nx1:n)p(y1:n), (5)

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

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

Выборка по значимости[править]

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

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

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

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

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

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

В более общем случае, когда выборка из p затруднена, применяется другое распределение q (так называемое англ. instrumental or importance distribution), а для сохранения несмещённости оценки вводятся весовые коэффициенты wi на основе отношения r(x(i))=p(x(i))/q(x(i))[3]:

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

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

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

Перевыборка[править]

Хотя вспомогательное распределение используется в основном для упрощения выборки из основного распределения p, часто применяется процедура «выборки и перевыборки по значимости» (англ. sampling importance resampling, SIR). Эта процедура состоит из двух этапов: собственно выборки по значимости с вычислением весов wi, и дополнительной выборки точек, учитывающих эти веса[3].

Перевыборка особенно необходима для последовательных фильтров[3].

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

Методы многочастичной фильтрации и сглаживания являются наиболее известными примерами алгоритмов последовательного метода Монте-Карло (англ. sequential Monte Carlo, SMC). До такой степени, что в литературе часто не делают между ними различия. Тем не менее, SMC включает в себя более широкий класс алгоритмов, применимых для описания более сложных приблизительных методов фильтрации и сглаживания[7].

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

Если записать плотность как:[5]

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

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

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

ϕ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).


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

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-алгоритма.

Алгоритм[править]

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

   Алгоритм МЧФ
   -- инициализация
   для 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
   кц

См. также[править]

Примечания[править]

  1. 1,0 1,1 Микаэльян, 2011.
  2. Gordon, Salmond, Smith, 1993.
  3. 3,0 3,1 3,2 3,3 3,4 3,5 3,6 3,7 Cappé, Godsill, Moulines, 2007.
  4. Del Moral, Pierre. Non Linear Filtering: Interacting Particle Solution. (англ.) // Markov Processes and Related Fields. — 1996. — Vol. 2, no. 4. — P. 555–580.
  5. 5,0 5,1 5,2 Doucet, Johansen, 2011.
  6. Doucet, Johansen, 2011, 2.1 Hidden Markov Models and Inference Aims.
  7. Doucet, Johansen, 2011, 3 Sequential Monte Carlo Methods.

Литература[править]

Ссылки[править]