Matlab Kernel Toolbox
The KERN software can be downloaded
here.
Release Information
Current release is 0.2.
As well as downloading the KERN software you need to obtain the toolboxes specified below. These can be downloaded using the same password you get from registering for the KERN software.
Further minor updates to kern for working with the new gpsim code (corrected handling of white kernel in multiKern).
Version 0.171
Minor changes to kernCreate for multiKern structures where there are different numbers of points in each block.
Version 0.17
Further improvements on the stability of the sim kernel. Addition of the driven input single input motif kernel (Antti Honkela) and the modification of the multiKern type to allow each block to have a different number of time points (Pei Gao).
Version 0.168
Found a bug in tensor gradient which meant gradients weren't being computed correctly with respect to X when more X and X2 are both provided as input arguments and both have length larger than 1.
Antti Honkela improved the numerial stability of the sim kernel through judicious use of erfc.
Version 0.167
Added 'translate' kernel which allows wrapping of other kernels with a kernel that translates the input location. Useful for moving the non-stationarity around the input space.
Version 0.166
Added periodic version of RBF kernel (see Rasmussen and Williams pg 92 or Mackay's introduction to GPs (1998)) and periodic version of Gibbs's non-statinary kernel (see e.g. pg 93 of Rasmussen and Williams).
Version 0.165
Added flag which indicates whether or not a kernel is stationary. This can be used for speeding computations (stationary kernels have a constant diagonal). Also replaced calls to constraining functions with 'optimiDefaultConstraint' calls which return the default constraint (making it easier for the user to change).
Version 0.163
This release removes the stubs for several KernDiagGradX.m files, which
were confusing kernDiagGradX.m, which assumes they only exist if the function
is implemented. For the kernel types 'lin', 'poly', 'mlp', and their 'ard'
counter-types, these files existed but weren't yet implemented.
Version 0.162
Added the Gibbs's non-stationary kernel, the rational quadratic kernel and the Matern kernel with nu = 3/2 and nu = 5/2.
Verison 0.161
Introduced the single input motif kernel for the GPSIM
toolbox. Also there is much more documentation, and a new file
kernelGenerator.py for creating the basic files for your own kernels.
Examples
This toolbox allows computation of several different kernels and their gradients. You can add kernels to the toolbox by creating versions of the relevant files. Once added, they can be tested using the kernTest
. For example you can test the RBF kernel by writing
>> kernTest('rbf')
There are several kernels implemented, the ones that are being maintained for the latest release are:
gibbs
gibbsperiodic
lin
linard
rbf
rbfard
rbfperiodic
matern32
matern52
ratquad
mlp
mlpard
poly
polyard
sim
white
whitefixed
bias
cmpnd
tensor (tensor kernels).
file (a kernel written in a file).
A new kernel can be created using the compound kernel, cmpnd
or the tensor kernel, tensor
. The compound kernel is made up of sums of individual kernels. Most often you will need to create a kernel containing a base kernel (e.g. rbf
) and adding a white noise kernel, white
and perhaps a constant offset through the bias kernel bias
. On initialisation most kernel parameters are set to 1. Exceptions are ARD scale parameters, the variance of the white and bias kernels and the weight and bias variances of the mlp
kernels.