-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathKernelFunctions.jl
More file actions
136 lines (114 loc) · 3.87 KB
/
KernelFunctions.jl
File metadata and controls
136 lines (114 loc) · 3.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
module KernelFunctions
export kernelmatrix, kernelmatrix!, kernelmatrix_diag, kernelmatrix_diag!
export duplicate, set! # Helpers
export Kernel, MOKernel
export ConstantKernel, WhiteKernel, EyeKernel, ZeroKernel, WienerKernel
export CosineKernel
export SqExponentialKernel, RBFKernel, GaussianKernel, SEKernel
export LaplacianKernel, ExponentialKernel, GammaExponentialKernel
export ExponentiatedKernel
export FBMKernel
export MaternKernel, Matern12Kernel, Matern32Kernel, Matern52Kernel
export LinearKernel, PolynomialKernel
export RationalKernel, RationalQuadraticKernel, GammaRationalKernel
export PiecewisePolynomialKernel
export PeriodicKernel, NeuralNetworkKernel
export KernelSum, KernelProduct, KernelTensorProduct
export TransformedKernel, ScaledKernel, NormalizedKernel
export GibbsKernel
export Transform,
SelectTransform,
ChainTransform,
ScaleTransform,
LinearTransform,
ARDTransform,
IdentityTransform,
FunctionTransform,
PeriodicTransform
export with_lengthscale
export median_heuristic_transform
export NystromFact, nystrom
export gaborkernel
export spectral_mixture_kernel, spectral_mixture_product_kernel
export ColVecs, RowVecs
export MOInput, prepare_isotopic_multi_output_data, prepare_heterotopic_multi_output_data
export IndependentMOKernel,
LatentFactorMOKernel, IntrinsicCoregionMOKernel, LinearMixingModelKernel
# Reexports
export tensor, ⊗, compose
using Compat
using ChainRulesCore: ChainRulesCore, Tangent, ZeroTangent, NoTangent
using ChainRulesCore: @thunk, InplaceableThunk
using CompositionsBase
using Distances
using FillArrays
using Functors
using LinearAlgebra
using Requires
using SpecialFunctions: loggamma, besselk, polygamma
using IrrationalConstants: logtwo, twoπ, invsqrt2
using LogExpFunctions: softplus
using StatsBase
using TensorCore
# Hack to work around Zygote type inference problems.
const Distances_pairwise = Distances.pairwise
using Statistics: median!
abstract type Kernel end
abstract type SimpleKernel <: Kernel end
include("utils.jl")
include("distances/pairwise.jl")
include("distances/dotproduct.jl")
include("distances/delta.jl")
include("distances/sinus.jl")
include("transform/transform.jl")
include("transform/scaletransform.jl")
include("transform/ardtransform.jl")
include("transform/lineartransform.jl")
include("transform/functiontransform.jl")
include("transform/selecttransform.jl")
include("transform/chaintransform.jl")
include("transform/periodic_transform.jl")
include("kernels/transformedkernel.jl")
include("transform/with_lengthscale.jl")
include("basekernels/constant.jl")
include("basekernels/cosine.jl")
include("basekernels/exponential.jl")
include("basekernels/exponentiated.jl")
include("basekernels/fbm.jl")
include("basekernels/gabor.jl")
include("basekernels/matern.jl")
include("basekernels/nn.jl")
include("basekernels/periodic.jl")
include("basekernels/piecewisepolynomial.jl")
include("basekernels/polynomial.jl")
include("basekernels/rational.jl")
include("basekernels/sm.jl")
include("basekernels/wiener.jl")
include("kernels/gibbskernel.jl")
include("kernels/scaledkernel.jl")
include("kernels/normalizedkernel.jl")
include("matrix/kernelmatrix.jl")
include("kernels/kernelsum.jl")
include("kernels/kernelproduct.jl")
include("kernels/kerneltensorproduct.jl")
include("kernels/overloads.jl")
include("kernels/neuralkernelnetwork.jl")
include("approximations/nystrom.jl")
include("generic.jl")
include("mokernels/moinput.jl")
include("mokernels/mokernel.jl")
include("mokernels/independent.jl")
include("mokernels/slfm.jl")
include("mokernels/intrinsiccoregion.jl")
include("mokernels/lmm.jl")
include("chainrules.jl")
include("test_utils.jl")
function __init__()
@require Kronecker = "2c470bb0-bcc8-11e8-3dad-c9649493f05e" begin
include("matrix/kernelkroneckermat.jl")
end
@require PDMats = "90014a1f-27ba-587c-ab20-58faa44d9150" begin
include("matrix/kernelpdmat.jl")
end
end
end