KernelFunctions.jl

Model-agnostic kernel functions compatible with automatic differentiation

KernelFunctions.jl is a general purpose kernel package. It aims at providing a flexible framework for creating kernels and manipulating them. The main goals of this package compared to its predecessors/concurrents in MLKernels.jl, Stheno.jl, GaussianProcesses.jl and AugmentedGaussianProcesses.jl are:

  • Automatic Differentation compatibility: all kernel functions should be differentiable via packages like ForwardDiff.jl or Zygote.jl
  • Flexibility: operations between kernels should be fluid and easy without breaking.
  • Plug-and-play: including the kernels before/after other steps should be straightforward.

The methodology of how kernels are computed is quite simple and is done in three phases :

  • A Transform object is applied sample-wise on every sample
  • The pairwise matrix is computed using Distances.jl by using a Metric proper to each kernel
  • The Kernel function is applied element-wise on the pairwise matrix

For a quick introduction on how to use it go to User guide