11"""
2- ` SqExponentialKernel()`
2+ SqExponentialKernel()
33
4- The squared exponential kernel is an isotropic Mercer kernel given by the formula:
4+ The squared exponential kernel is a Mercer kernel given by the formula:
55```
66 κ(x,y) = exp(-‖x-y‖²)
77```
8+ Can also be called via `SEKernel`, `GaussianKernel` or `SEKernel`.
89See also [`ExponentialKernel`](@ref) for a
910related form of the kernel or [`GammaExponentialKernel`](@ref) for a generalization.
1011"""
1112struct SqExponentialKernel <: BaseKernel end
1213
1314kappa (κ:: SqExponentialKernel , d²:: Real ) = exp (- d²)
1415iskroncompatible (:: SqExponentialKernel ) = true
15-
1616metric (:: SqExponentialKernel ) = SqEuclidean ()
1717
1818Base. show (io:: IO ,:: SqExponentialKernel ) = print (io," Squared Exponential Kernel" )
@@ -23,10 +23,11 @@ const GaussianKernel = SqExponentialKernel
2323const SEKernel = SqExponentialKernel
2424
2525"""
26- `ExponentialKernel([ρ=1.0])`
27- The exponential kernel is an isotropic Mercer kernel given by the formula:
26+ ExponentialKernel()
27+
28+ The exponential kernel is a Mercer kernel given by the formula:
2829```
29- κ(x,y) = exp(-ρ ‖x-y‖)
30+ κ(x,y) = exp(-‖x-y‖)
3031```
3132"""
3233struct ExponentialKernel <: BaseKernel end
@@ -35,21 +36,24 @@ kappa(κ::ExponentialKernel, d::Real) = exp(-d)
3536iskroncompatible (:: ExponentialKernel ) = true
3637metric (:: ExponentialKernel ) = Euclidean ()
3738
38- Base. show (io:: IO ,:: ExponentialKernel ) = print (io," Exponential Kernel" )
39+ Base. show (io:: IO , :: ExponentialKernel ) = print (io, " Exponential Kernel" )
3940
4041# # Alias ##
4142const LaplacianKernel = ExponentialKernel
4243
4344"""
44- `GammaExponentialKernel([ρ=1.0, [γ=2.0]])`
45+ GammaExponentialKernel(; γ = 2.0)
46+
4547The γ-exponential kernel is an isotropic Mercer kernel given by the formula:
4648```
47- κ(x,y) = exp(-ρ^(2γ) ‖x-y‖^(2γ))
49+ κ(x,y) = exp(-‖x-y‖^(2γ))
4850```
51+ Where `γ > 0`, (the keyword `γ` can be replaced by `gamma`)
52+ For `γ = 1`, see `SqExponentialKernel` and `γ = 0.5`, see `ExponentialKernel`
4953"""
5054struct GammaExponentialKernel{Tγ<: Real } <: BaseKernel
5155 γ:: Vector{Tγ}
52- function GammaExponentialKernel (;gamma:: T = 2.0 , γ:: T = gamma) where {T<: Real }
56+ function GammaExponentialKernel (; gamma:: T = 2.0 , γ:: T = gamma) where {T<: Real }
5357 @check_args (GammaExponentialKernel, γ, γ >= zero (T), " γ > 0" )
5458 return new {T} ([γ])
5559 end
5862kappa (κ:: GammaExponentialKernel , d²:: Real ) = exp (- d²^ first (κ. γ))
5963iskroncompatible (:: GammaExponentialKernel ) = true
6064metric (:: GammaExponentialKernel ) = SqEuclidean ()
65+
66+ Base. show (io:: IO , κ:: GammaExponentialKernel ) = print (io, " Gamma Exponential Kernel (γ = $(first (κ. γ)) )" )
0 commit comments