tweak the updater.jl script
Add an `efish` kwarg to `gnll_forwarddiff` that secretly swaps in the
Add wrapper layer to the `gnll` function so that the coordinate
Documentation: https://man.sr.ht/~cgeoga/GPMaxlik.jl/
Issue tracker: https://todo.sr.ht/~cgeoga/GPMaxlik.jl/
Build status: https://builds.sr.ht/~cgeoga/GPMaxlik.jl/
This software is designed with a few simple goals:
Working with the giant matrices, be it in the form of updating low-rank factorizations of off-diagonal blocks, applying an iterative solver, or computing a trace, is a significant runtime bottleneck. This package aims to aggressively minimize all of these operations. Features to accomplish this include:
Please take a look at the documentation for complete information about
functionality. But in addition to the docs, please refer to the files in
./example
for complete usage demonstrations. You probably can almost
copy-paste the relevant example file, write the covariance function you need,
load in your actual data, and otherwise keep the script nearly as-is.
Despite not being hosted on github, this package is in the official registries. So adding it is as easy as
julia> ]add GPMaxlik
The package has no dependencies outside of the standard library and should introduce very little complexity to your codebase, and AD will pass right through it.
This package has been used several times in the wild already.
gnll
interface were used to fit a complex
25-parameter model to 17k data points in [2]. Not only was this a very hard
optimization problem, but efficiency was key when even the most efficient pass
to compute the stochastic gradient and expected Fisher matrix required 25
matrices of size 17k. See the appendix of [2] for more details on how this
framework made an otherwise infeasible problem feasible.If you use this software in your academic work, please cite this software library (GPMaxlik.jl):
@software{GB_GPMaxlik2021,
author = {Geoga, Christopher J. and Beckman, Paul G.},
title = {GPMaxlik.jl},
url = {https://git.sr.ht/~cgeoga/GPMaxlik.jl},
year = {2021},
publisher = {Sourcehut}
}
[1]: Scalable Gaussian Process Computations Using Hierarchical Matrices
[2]: Flexible nonstationary spatio-temporal modeling of high-frequency monitoring data