https://github.com/GPflow/GPflow
Revision db383233eaf595a04b4eafc9872845e66ba54634 authored by Mark van der Wilk on 23 November 2016, 18:31:25 UTC, committed by James Hensman on 23 November 2016, 18:31:25 UTC
This squash-commit contains a large volume of work by @markvdw and @alexisboukouvalas. I'm keeping all of the commit history here for posterity. Interested viewers can see some discussion on github, under pull request #195.

* Initial code for new kernel expectations.
- RBF done.
- Added another transformation in etransforms.py.

* first step to merge gplvm and kernexp approaches

* Added kernel expectations of linear, and eKxz for RBF.
- NB: Linear still need to be tested better.
- Todo: exKxz for linear.

* Added multidimensional quadrature in `Kern` base class for kernel expectations.
- Replaced monte carlo tests with more reliable quadrature tests.
- Added exKxz for `Linear` kernel

* testing new ekernels code, starting on active dimensions, further testing needed as well as modifying Bayesian GPLVM code

* Linear and Polynomial kernels did not respect active_dims properly in Kdiag.
- Added slice call to Linear.Kdiag
- Fixed TestSlice to test more kernels.
- Fxied TestSlice to have the correct inputdim.

* Begin work on sum kernel, smoothing out active_dims for ekernels.

* Fixed `input_dim` in `test_kerns.py`. Added assertion.

* kernexp quadrature now works with `active_dims`.
- exKzx which doesn't work now raises an error from TensorFlow.
- Various other assertions.

* Better deduction of `input_dim` for `kernels.Combination`.

* Small fix of test.

* Fixed issue of KzxKxz in Add kernel. Solution checks for diagonal q(X) and performs quadrature on the covariance of KzxKxz if not diagonal.

* GPLVM now works with new kernel expectation code.
- Added a new DiagMatrix transform.
- Removed legacy code.
- Modified GPLVM to accept full covariance matrices.

* Fixing a small error in DiagMatrix transform.

* Added warnings.

* Removed etransforms code. BlockTriDiagonalTransform is now only used in tests.

* Prevent `TridiagonalBlockRep` from being tested as a `Transform`.

* improvements to DiagonalMatrix transform

* improved testing of kernel slice

* update test to use kernels

* `ekernels.RBF` ARD bug fixed.

* Increased test coverage.

* Increased test coverage.

* docstring for gplvm, removed unused variable in ekernels

* testing composite kernels in gplvm

* Added Prod to `ekernels.py`.

* Fixed usage of `tf.gather_nd`, which does not have a gradient in `_slice_cov()`.

* add GPLVM notebook, increase testing to include Prod kernels, add documentation stub, fix bibliography

* improve GPLVM notebook with working example

* Fixed bug that `X_var` in `BayesianGPLVM` gets slightly different values.

* Quadrature can be switched off, plus the appropriate checks.

* Kernel expectations now accept 2D variances.

* Fix to test.

* Reworked quadrature code in Add in anticipation of adding exact expectations for certain pairs of kernels.

* Added Linear + Add cross terms for overlapping active_dims.

* Initial try for extra test for `ekernels.Add` cross terms.

* `_slice_cov` now again compatible with numpy arrays.


* Requested code reviews.
1 parent 419c43b
History
Tip revision: db383233eaf595a04b4eafc9872845e66ba54634 authored by Mark van der Wilk on 23 November 2016, 18:31:25 UTC
Kernel expectations (#195)
Tip revision: db38323
File Mode Size
__init__.py -rw-r--r-- 0 bytes
gpflowrc_test.txt -rw-r--r-- 157 bytes
reference.py -rw-r--r-- 891 bytes
test_autoflow.py -rw-r--r-- 5.4 KB
test_conditionals.py -rw-r--r-- 6.4 KB
test_config.py -rw-r--r-- 2.9 KB
test_coregion.py -rw-r--r-- 6.3 KB
test_custom_op.py -rw-r--r-- 2.3 KB
test_data_object.py -rw-r--r-- 6.5 KB
test_ekerns.py -rw-r--r-- 18.8 KB
test_gplvm.py -rw-r--r-- 5.1 KB
test_hmc.py -rw-r--r-- 4.2 KB
test_kerns.py -rw-r--r-- 15.3 KB
test_likelihoods.py -rw-r--r-- 12.7 KB
test_mean_functions.py -rw-r--r-- 11.3 KB
test_method_equivalence.py -rw-r--r-- 4.2 KB
test_methods.py -rw-r--r-- 7.4 KB
test_model.py -rw-r--r-- 4.7 KB
test_param.py -rw-r--r-- 16.4 KB
test_pickle.py -rw-r--r-- 4.8 KB
test_predict.py -rw-r--r-- 6.3 KB
test_priors.py -rw-r--r-- 2.9 KB
test_transforms.py -rw-r--r-- 4.8 KB
test_variational.py -rw-r--r-- 8.5 KB

back to top