ApproximateGPs.jl
ApproximateGPs.jl copied to clipboard
Pseudo-Observation Parametrisations
As discussed on the call the other day, I've implemented a couple of pseudo-observation parametrisations. The first has been used in a few places now, so I really think that we should support it. The thing I refer to as the "decoupled pseudo-observation" parametrisation is quite non-standard (I've not actually seen it used anywhere before, just been using it in my own work), but it's a really obvious extension, so I figure why not?
I've had to add an additional abstract type to make it possible to have different fields from those in the `SparseVariationalApproximation", that's why there are quite a lot of LOC changes.
Also, I've expanded on the parametrisation explanations, and provided some code examples that actually run and are now CI'd, so they won't go stale.
Keen to know what people make of this.
Codecov Report
Merging #121 (a7a7143) into master (490ece8) will increase coverage by
0.79%. The diff coverage is100.00%.
:exclamation: Current head a7a7143 differs from pull request most recent head d47c809. Consider uploading reports for the commit d47c809 to get more accurate results
@@ Coverage Diff @@
## master #121 +/- ##
==========================================
+ Coverage 93.61% 94.41% +0.79%
==========================================
Files 5 5
Lines 329 376 +47
==========================================
+ Hits 308 355 +47
Misses 21 21
| Impacted Files | Coverage Δ | |
|---|---|---|
| src/SparseVariationalApproximationModule.jl | 93.89% <100.00%> (+3.41%) |
:arrow_up: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact),ø = not affected,? = missing dataPowered by Codecov. Last update 490ece8...d47c809. Read the comment docs.
but it's a really obvious extension, so I figure why not?
I'm rather more hesitant about it, because any added code incurs a maintenance burden throughout the future lifetime... so if you'd like to add these I'd like to be more convinced why they're genuinely useful. Are they easier/faster to optimise? What do you gain from using them?
Whether or not we end up adding these specific parameterisations, I think it would still be good to add the AbstractSparseVariationalApproximation type anyway to allow people to add parameterisations like this