Analytic Banana#

Overview#

This benchmark consists of an analytically defined PDF \(\pi : \mathbb{R}^2 \rightarrow \mathbb{R}\) resembling the shape of a banana. It is based on a transformed normal distribution. The variance may be adjusted.

Contour Samples

Authors#

Run#

docker run -it -p 4243:4243 linusseelinger/benchmark-analytic-banana

Properties#

Model

Description

posterior

Posterior density

posterior#

Mapping

Dimensions

Description

input

[2]

2D coordinates \(x \in \mathbb{R}^2\)

output

[1]

Log PDF \(\pi\) evaluated at \(x\)

Feature

Supported

Evaluate

True

Gradient

False

ApplyJacobian

False

ApplyHessian

False

Config

Type

Default

Description

a

double

2.0

Transformation parameter

b

double

0.2

Transformation parameter

scale

double

1.0

Scaling factor applied to the underlying normal distribution’s variance

Mount directories#

Mount directory

Purpose

None

Source code#

Model sources here.

Description#

We begin with a normally distributed random variable \(Z \sim \mathcal{N}(\begin{pmatrix} 0 \\ 4 \end{pmatrix}, scale \begin{pmatrix} 1.0 & 0.5\\ 0.5 & 1.0 \end{pmatrix})\), and denote its PDF by \(f_Z\).

In order to reshape the normal distribution, define a transformation \(T : \mathbb{R}^2 \rightarrow \mathbb{R}^2\)

\[\begin{split} T(x) := \begin{pmatrix} x_1 / a \\ a x_2 + a b (x_1^2 + a^2) \end{pmatrix}. \end{split}\]

Finally, the benchmark log PDF is defined as

\[ log(\pi(x)) := log(f_Z(T(x))). \]

This distribution is inspired by Chi Feng’s excellent online mcmc-demo.