bayesbay.perturbations.NoisePerturbation

class bayesbay.perturbations.NoisePerturbation(targets)

Perturbation by changing the noise level estimation

Parameters:

targets (List[Target])

Reference Details

type

type of current perturbation (i.e. class name)

Returns:

the name of this current class

Return type:

str

perturb(state)

proposes a new state by perturbing the data noise of the given state and calculates the log of the corresponding partial acceptance probability

\[\begin{split}\underbrace{\alpha_{p}}_{\begin{array}{c} \text{Partial} \\ \text{acceptance} \\ \text{probability} \end{array}} = \underbrace{\frac{p\left({\bf m'}\right)}{p\left({\bf m}\right)}}_{\text{Prior ratio}} \underbrace{\frac{q\left({\bf m} \mid {\bf m'}\right)}{q\left({\bf m'} \mid {\bf m}\right)}}_{\text{Proposal ratio}} \underbrace{\lvert \mathbf{J} \rvert}_{\begin{array}{c} \text{Jacobian} \\ \text{determinant} \end{array}},\end{split}\]

which in this case equals zero since a uniform probability distribution is inherently assumed for the noise properties.

Parameters:

state (State) – the given current state

Returns:

the proposed new state and \(\alpha_{p} = \log( \frac{p({\bf m'})}{p({\bf m})} \frac{q\left({\bf m} \mid {\bf m'}\right)}{q\left({\bf m'} \mid {\bf m}\right)} \lvert \mathbf{J} \rvert) = 0\)

Return type:

Tuple[State, Number]

__call__(state)

same as perturb()

Parameters:

state (State) – the given current state

Returns:

proposed new state and the partial acceptance probability excluding log likelihood ratio for this perturbation

Return type:

Tuple[State, Number]

back to top