Description
(Apologies if it seems like I've been spamming too many issues!)
BayesianOptimisation.jl is a neat little package built on top of GaussianProcesses.jl that provides support for Bayesian Optimisation, a common application of Gaussian Process. It would be quite useful if this could be made to work with AGP.jl in order to benefit from the added flexibility provided by KernelFunctions.jl.
Having a look at the code of BO.jl it seems that adding support for AGP.jl should not be too difficult in principle. One crucial ingredient is the ability to update GPs on the fly, which seems less straightforward with AGP.jl compared to GP.jl's fit!
function. The second requires implementing maximum a posteriori (MAP) estimation of kernel hyperparameters, which is part of BO.jl. For now one could simply replace this by maximum likelihood (ML) estimation, but adding support for priors over kernel parameters one way or another could be very useful. I think the train! function basically performs ML estimation, but having to specify the number of iterations is a bit less convenient than the automatic approach adapted in GP.jl.