Re: [Bayes++] Observation model for SIR scheme
Brought to you by:
mistevens
From: Michael S. <ma...@mi...> - 2006-11-16 11:57:32
|
On Wednesday, 15. November 2006 22:01, Nicola Bellotto wrote: > Steven, > > I am trying to implement a particle filter using the "SIR_schee", but I > have some problem with the observation model. The filter needs a model > derived from "Likelihood_observe_model" and four classes are already > implemented for linear-linearized/correlated-uncorrelated models. OK. I think you are refering to the four General_XX_observe_model classes in models.hpp. > Unfortunately my observation model is not linear (with uncorrelated > noises), indeed I used a "Correlated_addative_observe_model" for a previous > UKF implementation. Do you have an example of non-linear observation model > for the SIR_scheme? Looking at the class 'General_LzCoAd_observe_mode', the implementation only needs a 'Correlated_addative_observe_model' to generalise. Sadly I have restricted the interface to a 'Linrz_correlated_observe_model' which is unnecessary. I think I should change this in the future. You can easily generalise you own 'Correlated_addative_observe_model' by inheriting from Likelihood_observe_model and copying the addition likelihood function code from the class 'General_LzCoAd_observe_model'. The function definitions, which compute the likelihood of a correlated Gaussian noise are, at the end of 'bayesFltAlg.hpp'. > Do I have to define a new likelihood "L"? If so, I do > not understand exactly what it is... For the SIR_scheme your observe model must define a likelihood function. I like the following from Wikipedia... Informally, if "probability" allows us to predict unknown outcomes based on known parameters, then "likelihood" allows us to determine unknown parameters based on known outcomes. The likelihood function is at the core of all Bayesian inference. Fundementally, all the observation models in Bayes++ define a likelihood. Most of the definitions restrict the form the function takes however. These restrictions (such as Gaussian noise) allow for simple numeric solutions. So when you use a Kalman filter, the observation likelihood is expressed as a few matrices rather then an arbitary likelihood function. The SIR_scheme, and other sampled solutions to Bayesian inference, have the advantage that they can find an approximate solution when an arbitary likelihood function is defined. How to define a likelihood function: Imagine you can define the conditional probability of some observation z, given the system state x as p( z | x ). If you knew x (which you generally don't!) then you can use this function to find the probability of a observation z. Conversely if you know z (which is true in our case) then fixing z in p( z | x ) defines a function of x. This is the Likelihood function, and can be writen L( x ). It is not a probability, for example, a continues likelihood function will not in general integrate to 1. I has many similar properties. All this said, you only need to use the SIR_scheme when you have a complex likelihood function which cannot be well approximated by any of the simpler models. Building likelihood function of real observations can be quite difficult however. "Bayesian Multiple Target Tracking" Lawrence D Stone, Carl A Barlow, Thomas L Corwin is a good reference. As a starter, it can be quite a lot of fun to compare the results on simiple problems between the SIR_scheme and other schemes. All the best, Michael -- ___________________________________ Michael Stevens Systems Engineering 34128 Kassel, Germany Phone/Fax: +49 561 5218038 Navigation Systems, Estimation and Bayesian Filtering http://bayesclasses.sf.net ___________________________________ |