Stochastic Control, Filtering & Mathematical Finance

the particle filter

The particle filter is the practical numerical method for nonlinear, non-Gaussian filtering — the algorithm you reach for when the conditional distribution is not Gaussian and so the Kalman filter does not apply and the Zakai/Kushner-Stratonovich SPDE has no closed form. The idea is delightfully simple: represent the conditional distribution of the hidden state not by a formula but by a cloud of weighted random samples ('particles'), and update that cloud as each observation arrives. It is a Monte Carlo method run sequentially in time, hence its other name, sequential Monte Carlo (SMC).

The basic (bootstrap) particle filter cycles three steps. (1) Propagate: push each particle forward through the signal dynamics, sampling X^(i)_{t+1} from the transition law given X^(i)_t — this is the prediction step, the particles drift and spread as the hidden state would. (2) Weight: when an observation y arrives, multiply each particle's weight by the likelihood of that observation given the particle, w^(i) proportional to p(y given X^(i)) — particles that explain the data well get heavy weights, those that do not get light ones; the weighted empirical measure sum_i w^(i) delta_{X^(i)} now approximates the conditional distribution. (3) Resample: draw a new equally-weighted set of particles from the current weighted set (with replacement), duplicating heavy particles and killing light ones. Resampling is the crucial fix for WEIGHT DEGENERACY — without it, after a few steps almost all the weight collapses onto a single particle and the cloud no longer represents the distribution. As the number of particles N grows, the weighted empirical measure converges to the true conditional distribution.

Particle filters matter because they are general (any state-space model, any noise), easy to implement, and the only practical exact-in-the-limit tool for genuinely nonlinear filtering — they are used in robotics localisation, target tracking, epidemiology, and Bayesian computation broadly. Honest caveats that practitioners live with: convergence is at the Monte Carlo rate 1/sqrt(N), so high accuracy is expensive; the method suffers the CURSE OF DIMENSIONALITY — in high-dimensional state spaces the number of particles needed can grow exponentially, because the importance weights become degenerate (one particle dominates) unless N is enormous. Resampling cures weight degeneracy but introduces SAMPLE IMPOVERISHMENT (loss of diversity, repeated particles), which extra moves (resample-move, regularisation) try to mitigate. So the particle filter is a powerful, asymptotically correct, but finite-sample-noisy approximation — not the exact filter, and not a free pass out of high dimensions.

A robot localising in a known map from noisy sonar: spread thousands of particles (candidate poses) over the map. Each sonar reading reweights them by how well the predicted reading matches the actual one; resampling concentrates particles around poses consistent with all readings so far. Over a few seconds the cloud collapses from 'I could be anywhere' to a tight blob at the true location — Monte Carlo localisation, a textbook particle filter.

Monte Carlo localisation: a particle cloud collapses onto the true pose as observations rule out wrong hypotheses.

Resampling cures weight degeneracy but causes sample impoverishment, and the filter suffers the curse of dimensionality — in high-dimensional states the required particle count can grow exponentially. Convergence is only at the 1/sqrt(N) Monte Carlo rate.

Also called
sequential Monte CarloSMCbootstrap filter粒子濾波序貫蒙地卡羅自助濾波器