Is SOAP descriptor of invariance with respect to rotation? #88
-
Hi everyone, If I did not misunderstand, the SOAP kernel K(P,P') would not change by rotating the configurations. But dose the descriptor P have the same property? If it doesn't, why we use P to directly predict the configuration energy through neural network in the ML force-filed (energy has rotational symmetry), as the provided example ML force-filed said? |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 3 replies
-
Hi @permissionx, The SOAP descriptor P is invariant to rotations. You can also check this yourself by calculating it for the same system but with different rotations. |
Beta Was this translation helpful? Give feedback.
-
Hi everyone, |
Beta Was this translation helpful? Give feedback.
-
hi Lauri, thanks for your answer.
the species that I used in my code is: species=cif[s].get_chemical_symbols()
and "s" is different compounds (with different numbers and species).
is it correct? unfortunately the dimension is different.
I don't know what happen, when I check for 1 compound the result of that
line code is this:
AgCrS2: 8Cr, 8 Ag, 16 S.
I really appreciate your help.
…On Tue, Nov 8, 2022 at 12:05 PM Lauri Himanen ***@***.***> wrote:
You should check the basic tutorial
<https://singroup.github.io/dscribe/latest/tutorials/basics.html#typical-workflow>.
You need to specify the full set of chemical elements in your whole dataset
in the species-argument when constructing the descriptor.
—
Reply to this email directly, view it on GitHub
<#88 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A4CCF37ICYQYUJAKHN25YHDWHIGFLANCNFSM5YADX45A>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
hi Lauri
thanks for your help.
I did species as you said. In this way I got the same dimension for
different compositions. But the shape(dimension), I mean soap.get_number of
features() is too high. I tried just for 8 compounds, the dimension is
2340. Is it correct or not?
I doubt to this line of code: Actually I made the SOAP from the cif, I
mean that I put soap.creat(cif). Is it correct or not?
best regards.
…On Wed, Nov 23, 2022 at 11:53 PM Lauri Himanen ***@***.***> wrote:
Here is a concrete example:
If you want to work with a dataset that has two structures: H2O and NO,
then the species you input for SOAP should be: ["H", "O", "N"]. This way
you get the same number of features when you call soap.create(H2O) and
soap.create(NO).
—
Reply to this email directly, view it on GitHub
<#88 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A4CCF33NMFAHBKWY2JH5JV3WJ4NGTANCNFSM5YADX45A>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hi every one
I made the Soap for 2 compounds(Ag2CrO2 & AlCr2).
When I put species=['Ag','Cr','O','Al'], the dimension of both is 108(the
same dimension).
But when I put species=cif.get_atomic_number(), the dimension for Ag2CrO2
is 63 and for AlCr2 is 30. The non_count_zeros in the first way for Ag2CrO2
is 63 and for AlCr2 is 30.
In both of them: average='inner'.(I also checked the average='outer'.)
I want to use ML, because of that I put the first way.
My problem is:
when the number of species increases, So does the dimension of Soap(It puts
zeros).
For example just for 10 data the dimension is 3978.
Soap dimension is sensitive to the number of species.
The dimension is too high for my dataset. Unfortunately my system couldn't
run it and killed it.
What should I do?
Is there any condition that I put in to prevent the increase in dimensions?
Thanks a lot.
Best regards.
On Sat, Dec 10, 2022 at 8:40 PM mansoure hashemi ***@***.***>
wrote:
… hi Lauri
thanks for your help.
I did species as you said. In this way I got the same dimension for
different compositions. But the shape(dimension), I mean soap.get_number of
features() is too high. I tried just for 8 compounds, the dimension is
2340. Is it correct or not?
I doubt to this line of code: Actually I made the SOAP from the cif, I
mean that I put soap.creat(cif). Is it correct or not?
best regards.
On Wed, Nov 23, 2022 at 11:53 PM Lauri Himanen ***@***.***>
wrote:
> Here is a concrete example:
>
> If you want to work with a dataset that has two structures: H2O and NO,
> then the species you input for SOAP should be: ["H", "O", "N"]. This way
> you get the same number of features when you call soap.create(H2O) and
> soap.create(NO).
>
> —
> Reply to this email directly, view it on GitHub
> <#88 (reply in thread)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/A4CCF33NMFAHBKWY2JH5JV3WJ4NGTANCNFSM5YADX45A>
> .
> You are receiving this because you commented.Message ID:
> ***@***.***>
>
|
Beta Was this translation helpful? Give feedback.
-
Hello Lauri
I am really interested in this paper "Dscribe: Library of descriptors for
machine learning in materials science".
I would really appreciate it if you could send the code of formation energy
of this paper to my email to practice with it.
Best regards,
Mansoure
…On Tue, Feb 7, 2023 at 8:41 AM Lauri Himanen ***@***.***> wrote:
Hi @mansoure2022 <https://github.com/mansoure2022>,
The dimensionality of the SOAP output increases quadratically with the
number of species with the default settings. There are several ways you can
control the dimensionality issue:
1. Use dimensionality reduction techniques
<https://en.wikipedia.org/wiki/Dimensionality_reduction>.
2. Use sparse matrices if your ML pipeline supports them. SOAP can
return sparse arrays by specifying sparse=True
3. Turn off pairwise information in SOAP with crossover=False. Note
that this may be detrimental to the information contained in the features.
—
Reply to this email directly, view it on GitHub
<#88 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A4CCF3YDIHZFSFD7WSPBY5TWWJ3KHANCNFSM5YADX45A>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
Hi @permissionx,
The SOAP descriptor P is invariant to rotations. You can also check this yourself by calculating it for the same system but with different rotations.