× Note: This article has been migrated from my previous website without modification; some images might be missing or be disproportionately large.

GSoC Week 2 and Week 3 - Implementing GP Kernels!

How two weeks just flew by!

These two weeks into GSoC have been intense! I implemented all the kernel functions present in PyMC3 using Tensorflow and TensorFlow Probability. I also wrote a full walkthrough through the Covariance API in PyMC4 that explains all the kernel functions implemented and their features. I also noticed that TensorFlow Probability doesn’t perform Automatic Relevence Determination on its kernels which is a problem and I will have to subclass those kernels and implement methods to perform ARD myself. It isn’t difficult, but it will make the API look much complex. I will dedicate the next week to wrap that up so I can get started with GP models.

ENH: add all covariance functions for gp from PyMC3

#285: ENH: add all covariance functions for gp from PyMC3

This is the PR I have been working on from the past two weeks. It implements all the covariance functions and explains their usage in a quickstart notebook. Here are the tasks I have completed in this PR.

Covariance functions added: - RatQuad - Exponential - Matern52 - Matern32 - Matern12 - Linear - Polynomial - Cosine - Periodic - Gibbs - WarpedInput - ~~Coregion~~ - ScaledCov - ~~Kron~~

Tests added: - RatQuad - Exponential - Matern52 - Matern32 - Matern12 - Linear - Polynomial - Cosine - Periodic - Gibbs - WarpedInput - ~~Coregion~~ - ScaledCov - ~~Kron~~

Docs added: - RatQuad - Exponential - Matern52 - Matern32 - Matern12 - Linear - Polynomial - Cosine - Periodic - Gibbs - WarpedInput - ~~Coregion~~ - ScaledCov - ~~Kron~~

Other Tasks: - Add Notebook for mean and covariance functions. - Fix docs such that the pydocstyle lint pass.

One of the challenges I faced was with Coregion kernel, which needs indexing with arrays and tensors (advanced indexing) which is not supported by TensorFlow. This makes it difficult to implement the kernel efficiently. I will try to complete this next week as soon as possible.

A call with the mentors!

I also had a video call with my mentors (Christopher Fonnesbeck and Osvaldo Martin) this week, which was very exciting, and gave me valuable insights of my work. The whole PyMC team has alse been very welcoming and helpful! Thanks to all their help!

Wrapping it up…

More or less, I was able to complete all the tasks I listed for these two weeks. Two more successful weeks and I am quite happy about it. The best thing is that I am not lagging behind, which makes it possible for me to work on sota GP models which are not listed in my proposal (which would be amazing)!