Skip to content
This repository has been archived by the owner on Apr 24, 2024. It is now read-only.

Subset of Regressor Kernel (low-rank approximation) #61

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

agoscinski
Copy link
Collaborator

@agoscinski agoscinski commented Sep 13, 2023

This is a bit of a deprecated branch, that got a bit lost in other work, but I would like to revive it. Starting to rebase it, once #60 is merged


📚 Documentation preview 📚: https://equisolve--61.org.readthedocs.build/en/61/

@agoscinski agoscinski force-pushed the kernel_models branch 4 times, most recently from 8853e8c to 699ac3b Compare September 19, 2023 07:33
@agoscinski agoscinski changed the title Sparse Kernel (low-rank approximation) Subset of Regressor Kernel (low-rank approximation) Sep 19, 2023
@agoscinski
Copy link
Collaborator Author

agoscinski commented Sep 19, 2023

This PR is now in the stage of a first working draft which is still missing a lot of features that are needed to be actually useful.

I leave this PR now until I have again time which is might be in a month. Anyone who wants to continue on this is invited to do so. I tried to make meaningful todo messages everywhere. There are three main features that are missing that need some thinking to integrate them properly

  • gradients: I think here we need a different operation than dot, because the training points and the pseudo points both have gradients, but the kernel only computes the similarity between the gradients instead of computing the real gradients. We could implement such an operation in the AggregateKernel. We probably need to generate gradients by finite difference for the tests,
  • accumulate over certain key names: one should be able to accumulate the kerenl over certain columns of the keys (like neighbor species). I added the argument accumulate_key_names in SorKernelRidge that should specify this
  • components

There are some things I actually would like to change in the solver (include rcond into other solvers than lstsq), that would make the behavior a bit more consistent and maybe more robust, but I don't want to play around with this as long as we don't have a robust testing framework around it. So the current version is one to one from librascal. The only thing I removed is the division by the std of y (the delta), because this is the job of the standardizer.

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

Successfully merging this pull request may close these issues.

3 participants