JuliaGaussianProcesses / JuliaGaussianProcesses/KernelFunctions.jl
Spectral distribution and domain of kernel input
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 275
- Forks
- 41
- PR merge metrics
- No merged PRs in 30d
Description
I'd like to have a function spectral_distribution which takes a kernel defined over R^d and returns in spectral distribution. For example
function spectral_distribution(k::SqExponentialKernel)
MvNormal(dim(k), ones(dim(k)))
end
However, there is one big API incompatibility with such a method: currently, there is no way to determine what domain a KernelFunctions.jl kernel is defined over. In particular, there's no way to tell whether a given kernel is defined over R^1 or R^3 or R^100. The underlying issue is that Distances.jl does not distinguish this, and KernelFunctions.jl largely works on top of that API. This is also an issue for #9 and #10.
I suggest instead adding the domain as an explicit parameter to the kernel.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the KernelFunctions.jl kernel API and the Distances.jl assumptions that prevent a kernel's domain dimension from being identified. Compare the proposed spectral_distribution function and explicit domain parameter with the concerns in issues #9 and #10. Done means the API direction is resolved for determining kernel domains and supporting spectral distributions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend-api-design, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100