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

WIP: Per Site Descriptors #48

Merged
merged 3 commits into from
Nov 18, 2022
Merged

WIP: Per Site Descriptors #48

merged 3 commits into from
Nov 18, 2022

Conversation

cortner
Copy link
Member

@cortner cortner commented Nov 17, 2022

This will address #47;

There seems to still be a bug in the jacobian. Will fix asap. (EDIT: this is now fixed, this PR is ready to be tested)

@VladCarare - please look at test/rpi/test_descriptors.jl to see how they can be used.

@cortner
Copy link
Member Author

cortner commented Nov 17, 2022

@VladCarare - can you explain the context in which you are planning to use the jacobian of the descriptors? My sense if that this should be very rarely needed. E.g. if this arises during GP regression then one should instead use backward mode differentiation, instead of forwardmode and the jacobians should never be computed.

One context where one does want the jacobian is when estimating sensitivities.

@VladCarare
Copy link

@VladCarare - can you explain the context in which you are planning to use the jacobian of the descriptors? My sense if that this should be very rarely needed. E.g. if this arises during GP regression then one should instead use backward mode differentiation, instead of forwardmode and the jacobians should never be computed.

One context where one does want the jacobian is when estimating sensitivities.

I spoke with James Darby, I think indeed something related to sensitivities is what I want.
I am basically dealing with some environments where I think the N=2 descriptors are degenerate. And in the same context, if I am to do an ACE fit, the training error on energies becomes worse the bigger the weight I put on forces. I understand (from Gabor) that the degeneracy of the descriptor may be one culprit of this. And the way to test it is by getting these Jacobian matrices for all environments, getting a square matrix, and looking at the eigenvalues of it. I understand that we expect 6 eigenvalues to be 0, due to the symmetry we input into our descriptors (rotational, translational), but that we may find a 7th eigenvalue close to 0, due to the artificial symmetry given by the degenerate N=2 descriptor.
I want to do a similar thing for N=3 descriptors; and compare the histogram of eigenvalues for N=2 and N=3 cases. See if I see something meaningful.

@VladCarare - please look at test/rpi/test_descriptors.jl to see how they can be used.

Thank you! will take a look at as soon as possible

@VladCarare
Copy link

So the test runs fine for me, with the output:

h | error
1e-02 | 1.06e+00
1e-03 | 1.10e-01
1e-04 | 1.10e-02
1e-05 | 1.10e-03
1e-06 | 1.10e-04
1e-07 | 1.10e-05
1e-08 | 1.15e-06
1e-09 | 4.48e-06
1e-10 | 3.84e-05

I'll test I can get what I want from it very soon.

@cortner
Copy link
Member Author

cortner commented Nov 18, 2022

ok, I think for the sake of moving this along, I'll just merge this and tag/register a new version. In a few minutes you can use this from ACE1.jl version 0.10.2. If any problems arise, just file a new issue please. I think for what you are trying to do this is the right thing.

@cortner cortner merged commit 2470490 into main Nov 18, 2022
@cortner cortner deleted the descriptors branch November 18, 2022 01:00
This pull request was closed.
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.

2 participants