From b4f17c3b630d648527b3229a0501fa40256cfe44 Mon Sep 17 00:00:00 2001 From: st-- Date: Sat, 2 Apr 2022 13:13:45 +0200 Subject: [PATCH] Some bugfixes (#125) * support ScalMat in FiniteGP observation covariance * patch bump * Update src/LaplaceApproximationModule.jl Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- Project.toml | 2 +- src/LaplaceApproximationModule.jl | 14 ++++++++++---- src/SparseVariationalApproximationModule.jl | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Project.toml b/Project.toml index 5df985ef..eec75222 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "ApproximateGPs" uuid = "298c2ebc-0411-48ad-af38-99e88101b606" authors = ["JuliaGaussianProcesses Team"] -version = "0.4.0" +version = "0.4.1" [deps] AbstractGPs = "99985d1d-32ba-4be9-9821-2ec096f28918" diff --git a/src/LaplaceApproximationModule.jl b/src/LaplaceApproximationModule.jl index e9e968b6..e596a72d 100644 --- a/src/LaplaceApproximationModule.jl +++ b/src/LaplaceApproximationModule.jl @@ -179,16 +179,22 @@ function _check_laplace_inputs( end struct LaplaceCache{ - Tm<:AbstractMatrix,Tv<:AbstractVector,Td<:Diagonal,Tf<:Real,Tc<:Cholesky + Tm<:AbstractMatrix, + Tv1<:AbstractVector, + Tv2<:AbstractVector, + Tv3<:AbstractVector, + Td<:Diagonal, + Tf<:Real, + Tc<:Cholesky, } K::Tm # kernel matrix - f::Tv # mode of posterior p(f | y) + f::Tv1 # mode of posterior p(f | y) W::Td # diagonal matrix of ∂²/∂fᵢ² loglik Wsqrt::Td # sqrt(W) loglik::Tf # ∑ᵢlog p(yᵢ|fᵢ) - d_loglik::Tv # ∂/∂fᵢloglik + d_loglik::Tv2 # ∂/∂fᵢloglik B_ch::Tc # cholesky(I + Wsqrt * K * Wsqrt) - a::Tv # K⁻¹ f + a::Tv3 # K⁻¹ f end function _laplace_train_intermediates(dist_y_given_f, ys, K, f) diff --git a/src/SparseVariationalApproximationModule.jl b/src/SparseVariationalApproximationModule.jl index 132de1ab..2a134b4b 100644 --- a/src/SparseVariationalApproximationModule.jl +++ b/src/SparseVariationalApproximationModule.jl @@ -9,7 +9,7 @@ using LinearAlgebra using Statistics using StatsBase using FillArrays: Fill -using PDMats: chol_lower +using PDMats: chol_lower, ScalMat using AbstractGPs: AbstractGPs using AbstractGPs: @@ -306,7 +306,7 @@ Statistics. PMLR, 2015. """ function AbstractGPs.elbo( sva::SparseVariationalApproximation, - fx::FiniteGP{<:AbstractGP,<:AbstractVector,<:Diagonal{<:Real,<:Fill}}, + fx::FiniteGP{<:AbstractGP,<:AbstractVector,<:Union{Diagonal{<:Real,<:Fill},ScalMat}}, y::AbstractVector{<:Real}; num_data=length(y), quadrature=DefaultExpectationMethod(),