Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Visual example for kernel via AbstractGPs #133

Closed

Conversation

theogf
Copy link
Member

@theogf theogf commented Jul 1, 2020

In the style of Duvenaud Cookbook, I automatically added GP samples for each of the kernels. It's automatically generated via Documenter.

@willtebbutt
Copy link
Member

willtebbutt commented Jul 1, 2020

  1. I definitely like this feature, it's a great idea!
  2. Is this repo really the right place to locate it? It feels wrong to introduce dependencies on AbstractGPs into this package, since it's not an inherently GP-specific thing, and it's basically a cyclic dependence. Would it be better to locate these either in AbstractGPs or on the JuliaGaussianProcesses webpage (if that's a thing we have?)

@theogf
Copy link
Member Author

theogf commented Jul 1, 2020

The dependency is only in the docs! So this should not be a problem there!

@devmotion
Copy link
Member

I agree with @willtebbutt, it's a great idea but probably should be moved to a different repo or webpage. If we want to add visualizations to the documentation in KernelFunctions, maybe one could plot the actual kernel functions, either as a function of both x and y or just for fixed y = 0. To me it feels this repo is really about the kernel functions whereas AbstractGP would be more suitable for the "cool" GP stuff.

@theogf
Copy link
Member Author

theogf commented Jul 1, 2020

maybe one could plot the actual kernel functions, either as a function of both x and y or just for fixed y = 0

That's what I had in mind first, but for some kernels, it makes no sense. For example for all the linear kernels you would not see anything. Also in my opinion, seeing the kernel function usually does not tell you much 😅

@theogf
Copy link
Member Author

theogf commented Jul 1, 2020

The only solution to this would be to plot a contour everytime, but then this is even less clear to understand I think.

@willtebbutt
Copy link
Member

willtebbutt commented Jul 1, 2020

The only solution to this would be to plot a contour everytime, but then this is even less clear to understand I think.

I'm a big fan of a heatmap in general i.e. plot the kernel matrix -- it doesn't tell you what sample paths look like, but it at least tells you roughly what covaries with what.

I really would prefer that all of these visualisations went in a more general set of docs though -- we could do with org-level docs, like what SciML, JuliaDiff and Turing do.

@devmotion
Copy link
Member

For example for all the linear kernels you would not see anything.

Haha yeah maybe the choice y = 0 wasn't a good one, but it should be fine for some other (random) choice of y?

In any case, to me it still feels more appropriate to visualize the actual functions that we implement in this repo if we want to add visualizations to KernelFunctions. Visualizations in AbstractGP or for JuliaGaussianProcesses might be the better option though.

@willtebbutt
Copy link
Member

The more I think about it the more I would really like to see org-level docs so that we can easily explain to potential users how all of the package relate to one another in a single place.

@theogf
Copy link
Member Author

theogf commented Jul 1, 2020

The more I think about it the more I would really like to see org-level docs so that we can easily explain to potential users how all of the package relate to one another in a single place.

That sounds really good indeed. Maybe we could get a subwebsite in turing.ml like turing.ml/juliagps and get a similar structure. I am not sure how this would go. Do we need to create an extra repo for it?

@willtebbutt
Copy link
Member

It would be good to be separate from the Turing website I think. Does github let orgs host their own website, e.g. I use willtebbutt.github.io as my personal webpage and github somehow knows how to make it based on one of my repos.

@willtebbutt
Copy link
Member

https://docs.github.com/en/github/working-with-github-pages/about-github-pages

Presumably there's something here that could help us.

@theogf
Copy link
Member Author

theogf commented Jul 1, 2020

Well right now kernelfunctions is hosted on juliagaussianprocesses.github.io so yes it is possible.

@willtebbutt
Copy link
Member

Well right now kernelfunctions is hosted on juliagaussianprocesses.github.io so yes it is possible.

Let's just put the general docs there then!

@theogf
Copy link
Member Author

theogf commented Jul 1, 2020

But then how do we proceed? Actually how does Turing.jl proceeds to have general docs? If that's okay we could copy the turing.ml website structure

@devmotion
Copy link
Member

If that's okay we could copy the turing.ml website structure

My impression over the last months has been that the Jekyll (?) based system of the Turing webpage and in particular the integration with Weave (regarding Plots) is a bit annoying to work with and broken partly (I think mostly on the Weave side). Maybe we could just use Documenter + Literate. Something more similar to the Turing setup would be Franklin (+ Literate?).

@theogf
Copy link
Member Author

theogf commented Jul 1, 2020

I literally have no idea how to set that up. Could you create a repo with the bare-bones structure?

@devmotion
Copy link
Member

Depends on what we want to do exactly 😄 If we start with a simple Documenter page at https://juliagaussianprocesses.github.io/ then we just have to create a repo "JuliaGaussianProcesses/juliagaussianprocesses.github.io" and setup Documenter therein (just like in KernelFunctions or AbstractGPs). The same applies if we want to use Franklin, we just have to setup Franklin in this repo according the Franklin docs. If we would like to use a different location for the webpage (if we would own one 😛), then we could name the repo in an arbitrary way and e.g. just add a CNAME file in the repo (as, e.g., done in https://github.com/SciML/DiffEqDocs.jl).

@theogf
Copy link
Member Author

theogf commented Jul 1, 2020

Oh yeah you're right, I am completely stupid, it's just the equivalent of doing a personal webpage via github. I will investigate into it then! Maybe we can take this discussion to Zulip ? So we decide what do we use for the docs?

@devmotion
Copy link
Member

If we want to add visualizations to the documentation in KernelFunctions, maybe one could plot the actual kernel functions

I just noticed that exactly this is actually done in Duvenaud's cookbook 😄

@willtebbutt
Copy link
Member

Oh yeah you're right, I am completely stupid, it's just the equivalent of doing a personal webpage via github. I will investigate into it then! Maybe we can take this discussion to Zulip ? So we decide what do we use for the docs?

Could you open an issue about it on AbstractGPs or KernelFunctions? Would prefer to keep as much of our discussions in public forums as possible :)

@theogf
Copy link
Member Author

theogf commented Jul 1, 2020

Yeah that would be the best solution having a visualization of both!

@theogf theogf deleted the visual_examples_docs branch July 21, 2021 14:54
@theogf
Copy link
Member Author

theogf commented Jul 21, 2021

Closed in favor of #316

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants