Многочастичный фильтр
Многочасти́чный фильтрШаблон: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.
Постановка задачи
МЧФ предназначен для оценки последовательности скрытых переменных для на основании наблюдений при . Для простоты изложения будем считать, что рассматривается динамическая система, и и — действительные вектора состояния и измерений соответственноШаблон:Sfn.
Стохастическое уравнение состояния системы имеет вид:
- ,
где функция изменения состояния системы, — случайная величина, возмущающее воздействие.
Уравнение измерений:
- ,
где функция измерения, — случайная величина, шум измерений.
Функции и в общем случае нелинейные, а статистические характеристики шума системы () и измерений () предполагаются известными.
Задачей фильтрации является получение оценки на основе известных к моменту результатов измерений .
Скрытая марковская модель и байесовский вывод
Рассмотрим дискретный марковский процесс со следующими распределениями вероятностей:
где — плотность вероятности, — условная плотность вероятности (переходная плотность вероятности) при переходе от к .
Здесь нотация означает, что при условии распределено как .
Реализации процесса (скрытые переменные ) наблюдаются посредством другого случайного процесса — процесса измерений — с маргинальными плотностями:
где — условная плотность вероятности (плотность измерений), измерения считаются статистически независимыми.
Модель может проиллюстрирована следующей диаграммой переходов:
Для простоты считаем, что переходная плотность и плотность измерений не зависят от . Параметры модели считаются заданными.
Определённая таким образом модель системы и измерений известна как скрытая марковская модельШаблон:Sfn.
Уравнение Шаблон:Eqref определяет априорное распределение для процесса :
Аналогично Шаблон:Eqref задаёт функцию правдоподобия:
Здесь и далее нотация для обозначает .
Таким образом, байесовский вывод для при известных реализациях измерений , обозначенных соответственно как и , будет опираться на апостериорное распределение
где (здесь — доминирующая мера):
- .
Выборка по значимости
См. также Выборка по значимости.
Метод Монте-Карло позволяет оценивать свойства довольно сложных распределений вероятностей, например, путём вычисления средних и дисперсии в виде интегралаШаблон:Sfn:
- ,
где — функция для оценивания. Например, для среднего можно положить: .
В случае невозможности аналитического решения, задача может быть решена численно генерированием случайных выборок с плотностью , обозначим их как , и получением среднего арифметического по точкам выборкиШаблон:Sfn:
В более общем случае, когда выборка из затруднена, применяется другое распределение (так называемое Шаблон:Lang-en), а для сохранения несмещённости оценки вводятся весовые коэффициенты на основе отношения Шаблон:Sfn:
после чего вычисляет взвешенное среднее:
- ,
Перевыборка
Хотя вспомогательное распределение используется в основном для упрощения выборки из основного распределения , часто применяется процедура «выборки и перевыборки по значимости» (Шаблон:Lang-en). Эта процедура состоит из двух этапов: собственно выборки по значимости с вычислением весов , и дополнительной выборки точек, учитывающих эти весаШаблон:Sfn.
Перевыборка особенно необходима для последовательных фильтровШаблон:Sfn.
Последовательный метод Монте-Карло
Методы многочастичной фильтрации и сглаживания являются наиболее известными примерами алгоритмов последовательного метода Монте-Карло (Шаблон:Lang-en). До такой степени, что в литературе часто не делают между ними различия. Тем не менее, SMC включает в себя более широкий класс алгоритмов, применимых для описания более сложных приблизительных методов фильтрации и сглаживанияШаблон:Sfn.
Последовательные методы Монте-Карло являются классом методов Монте-Карло, которые производят последовательную выборку из последовательности целевых плотностей вероятностей увеличивающейся размерности, где каждое определено на декартовой степени Шаблон:Sfn.
Если записать плотность как:Шаблон:Sfn
- , где
- известна поточечно, а
- — нормализующая, возможно неизвестная, постоянная, то
SMC-алгоритм будет находить приближения и оценки для .
Например, для случая фильтрации можно положить (см. Шаблон:Eqref):
- и
- ,
из чего будем иметь:
- .
Опуская вывод, схему предиктор-корректор можно представить в следующем видеШаблон:Sfn:
- — предиктор,
- — корректор.
Множитель — нормализующая постоянная, которая не требуется для обычного SMC-алгоритма.
Алгоритм
Типичный алгоритм многочастичного фильтра можно представить в следующем видеШаблон:Sfn:
Алгоритм МЧФ
-- инициализация
для i = 1...N:
выборка из
-- начальные веса
кц
для n = 1...T:
если ПЕРЕВЫБОРКА то
-- выбор индексов N частиц в соответствии с весами
= SelectByWeight()
для i = 1...N:
иначе
для i = 1...N:
для i = 1...N:
-- шаг распространения частицы
-- обновление весов
кц
-- нормализация весов
для i = 1...N:
кц
См. также
Примечания
Литература
- Шаблон:Публикация
- Шаблон:Статья См. также более раннюю версиюШаблон:Ref-en
- Шаблон:Статья
- Шаблон:Статья
- Шаблон:Книга
Ссылки
- Particle Filter, SciPy Cookbook