Feature functions

KernelSpectralDensities.ShiftedRFFType
ShiftedRFF([rng::AbstractRNG], S::SpectralDensity, l::Int)

Random Fourier feature function with a random shift, projecting an input x into l dimensionional feature space.

Definition

This feature function is defined as

\[ \sqrt{2 / l} \cos(2 π ((w^T x) + b))\]

where w sampled from the spectral density S, b is uniformly sampled from [0, 2π] and l is the number of sampled frequencies.

Examples

julia> k = SqExponentialKernel();

julia> S = SpectralDensity(k, 1);

julia> rff = ShiftedRFF(S, 2);

julia> rff(1.);
source
KernelSpectralDensities.DoubleRFFType
DoubleRFF([rng::AbstractRNG], S::SpectralDensity, l::Int)

Random Fourier feature function with cos and sin terms, projecting an input x into l dimensionional feature space.

Definition

This feature function is defined as

\[ \sqrt{1 / l} [\cos(2 π w' x), \sin(2 π w' x)]\]

where w sampled from the spectral density S, with a total of l/2 sampled frequencies. The output will be the result of [cos(...w_1), cos(...w_2), ..., cos(...w_l/2), sin(...w_1), sin(...w_2), ..., sin(...w_l/2)].

Examples

julia> k = SqExponentialKernel();

julia> S = SpectralDensity(k, 1);

julia> rff = DoubleRFF(S, 2);

julia> rff(1.);
source
KernelSpectralDensities.ApproximateGPSampleType
ApproximateGPSample(rff::AbstractRFF)

An approximate sample from the GP prior defined by the kernel that corresponds to the spectral density S that the RFF rff is based on.

Definition

Using the a vector of l random fourier features r(x), we can define the Bayesian linear model

\[ g_s(x) = w' r(x)\]

where w_i ~ N(0, 1), i = 1,...,l. Each draw of w results in a different function sample from the GP prior.

Examples

julia> k = SqExponentialKernel();

julia> S = SpectralDensity(k, 1);

julia> rff = DoubleRFF(S, 2);

julia> ap = ApproximateGPSample(rff);

julia> ap(1.);
source