Approximation methods
When the input $x$ to a GP node is itself uncertain (i.e. a distribution rather than a point), kernel expectations of the form $\mathbb{E}_{q(x)}[k(x, x')]$ must be approximated. RxGP provides approximation methods for this purpose.
Generalized Unscented Transform
RxGP.GenUnscented — Type
The GenUnscented structure defines the approximation method of Generalized Unscented Transform.
RxGP.GenUT — Type
An alias for the GenUnscented approximation method.
RxGP.GenUnscentedTransform — Type
An alias for the GenUnscented approximation method.
GenUnscented (aliases: GenUT, GenUnscentedTransform) extends the classical Unscented Transform by incorporating skewness and kurtosis of the input distribution to select sigma points and weights. This is particularly useful for non-Gaussian input beliefs.
The sigma points and weights are computed from the first four moments of the distribution:
- Mean $\mu$
- Covariance $\Sigma$
- Skewness $\gamma_1$
- Excess kurtosis $\gamma_2$
Kernel expectation approximation
RxGP.approximate_kernel_expectation — Function
approximate_kernel_expectation(method::AbstractApproximationMethod, g::Function, distribution)Approximate the expectation $\mathbb{E}_{q(x)}[g(x)]$ where $x \sim$ distribution using the specified approximation method.
RxGP.approximate_kernel_expectation! — Function
approximate_kernel_expectation!(gbar, method::AbstractApproximationMethod, g::Function, distribution)In-place version of approximate_kernel_expectation. Writes the result into the pre-allocated array gbar.
These functions approximate expectations of the form:
\[\bar{g} = \mathbb{E}_{q(x)}\bigl[g(x)\bigr] \approx \sum_{i} w_i \, g(\sigma_i)\]
where $\sigma_i$ are the sigma/quadrature points and $w_i$ the corresponding weights.
The in-place variant approximate_kernel_expectation! writes the result into a pre-allocated array, avoiding allocations in hot loops.
Supported approximation methods
| Method | Type | Description |
|---|---|---|
GenUnscented | GenUnscented() | Generalized Unscented Transform using skewness and kurtosis |
| Gauss-Hermite | via ReactiveMP's ghcubature | Standard cubature-based approximation |