Skip to content

Commit 78adde5

Browse files
committed
Added doc explanation on rotation equivariant features
1 parent 562252e commit 78adde5

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

docs/src/explanations/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ all about.
1313

1414
concepts
1515
soap
16+
rotation_adapted
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
Rotation-Adapted Features
2+
=========================
3+
4+
Equivariance
5+
------------
6+
7+
Descriptors like SOAP are translation, rotation, and permutation invariant.
8+
Indeed, such invariances are extremely useful if one wants to learn an invariant target (e.g., the energy).
9+
Being already encoded in the descriptor, the learning algorithm does not have to learn such a physical requirement.
10+
11+
The situation is different if the target is not invariant. For example, one may want to learn a dipole. The dipole rotates with a rotation of the molecule, and as such, invariant descriptors do not have the required symmetries for this task.
12+
13+
Instead, one would need a rotation equivariant descriptor.
14+
Rotation equivariance means that, if I first rotate the structure and compute the descriptor, I obtain the same result as first computing the descriptor and then applying the rotation, i.e., the descriptor behaves correctly upon rotation operations.
15+
Denoting a structure as :math:`A`, the function computing the descriptor as :math:`f(\cdot)`, and the rotation operator as :math:`\hat{R}`, rotation equivariance can be expressed as:
16+
17+
.. math::
18+
:name: eq:equivariance
19+
20+
f(\hat{R} A) = \hat{R} f(A)
21+
22+
Of course, invariance is a special case of equivariance.
23+
24+
25+
Rotation Equivariance of the Spherical Expansion
26+
------------------------------------------------
27+
28+
The spherical expansion is a rotation equivariant descriptor.
29+
Let's consider the expansion coefficients of :math:`\rho_i(\mathbf{r})`.
30+
We have:
31+
32+
.. math::
33+
34+
\hat{R} \rho_i(\mathbf{r}) &= \sum_{nlm} c_{nlm}^{i} R_n(r) \hat{R} Y_l^m(\hat{\mathbf{r}}) \nonumber \\
35+
&= \sum_{nlmm'} c_{nlm}^{i} R_n(r) D_{m,m'}^{l}(\hat{R}) Y_l^{m'}(\hat{\mathbf{r}}) \nonumber \\
36+
&= \sum_{nlm} \left( \sum_{m'} D_{m',m}^l(\hat{R}) c_{nlm'}^{i}\right) B_{nlm}(\mathbf{r}) \nonumber
37+
38+
and noting that :math:`Y_l^m(\hat{R} \hat{\mathbf{r}}) = \hat{R} Y_l^m(\hat{\mathbf{r}})` and :math:`\hat{R}r = r`, equation :ref:`(1) <eq:equivariance>` is satisfied and we conclude that the expansion coefficients :math:`c_{nlm}^{i}` are rotation equivariant.
39+
Indeed, each :math:`c_{nlm}^{i}` transforms under rotation as the spherical harmonics :math:`Y_l^m(\hat{\mathbf{r}})`.
40+
41+
Using the Dirac notation, the coefficient :math:`c_{nlm}^{i}` can be expressed as :math:`\braket{nlm\vert\rho_i}`.
42+
Equivalently, and to stress the fact that this coefficient describes something that transforms under rotation as a spherical harmonics :math:`Y_l^m(\hat{\mathbf{r}})`, it is sometimes written as :math:`\braket{n\vert\rho_i;lm}`, i.e., the atomic density is "tagged" with a label that tells how it transforms under rotations.
43+
44+
45+
Completeness Relations of Spherical Harmonics
46+
---------------------------------------------
47+
48+
Spherical harmonics can be combined together using rules coming from standard theory of angular momentum:
49+
50+
.. math::
51+
:name: eq:cg_coupling
52+
53+
\ket{lm} \propto \ket{l_1 l_2 l m} = \sum_{m_1 m_2} C_{m_1 m_2 m}^{l_1 l_2 l} \ket{l_1 m_1} \ket{l_2 m_2}
54+
55+
where :math:`C_{m_1 m_2 m}^{l_1 l_2 l}` is a Clebsch-Gordan (CG) coefficient.
56+
57+
Thanks to the one-to-one correspondence (under rotation) between :math:`c_{nlm}^{i}` and :math:`Y_l^m`,
58+
:ref:`(2) <eq:cg_coupling>` means that one can take products of two spherical expansion coefficients (which amounts to considering density correlations), and combine them with CG coefficients to get new coefficients that transform as a single spherical harmonics.
59+
This process is known as coupling, from the uncoupled basis of angular momentum (formed by the product of rotation eigenstates) to a coupled basis (a single rotation eigenstate).
60+
61+
One can also write the inverse of :ref:`(2) <eq:cg_coupling>`:
62+
63+
.. math::
64+
:name: eq:cg_decoupling
65+
66+
\ket{l_1 m_1} \ket{l_2 m_2} = \sum_{l m} C_{m_1 m_2 m}^{l_1 l_2 l m} \ket{l_1 l_2 l m}
67+
68+
that express the product of two rotation eigenstates in terms of one. This process is known as decoupling.
69+
70+
Example: :math:`\lambda`-SOAP
71+
-----------------------------
72+
73+
A straightforward application of :ref:`(2) <eq:cg_coupling>` is the construction of :math:`\lambda`-SOAP features.
74+
Indeed, :math:`\lambda`-SOAP was created in order to have a rotation and inversion equivariant version of the 3-body density correlations.
75+
The :math:`\lambda` represents the degree of a spherical harmonics, :math:`Y_{\lambda}^{\mu}(\hat{\mathbf{r}})`,
76+
and it indicates that this descriptor can transform under rotations as a spherical harmonics, i.e., it is rotation equivariant.
77+
78+
It is then obtained by considering two expansion coefficients of the atomic density, and combining them with a CG iteration to a coupled basis,
79+
as in :ref:`(2) <eq:cg_coupling>`.
80+
The :math:`\lambda`-SOAP descriptor is then:
81+
82+
.. math::
83+
84+
\braket{n_1 l_1 n_2 l_2\vert\overline{\rho_i^{\otimes 2}, \sigma, \lambda \mu}} =
85+
\frac{\delta_{\sigma, (-1)^{l_1 + l_2 + \lambda}}}{\sqrt{2 \lambda + 1}}
86+
\sum_{m} C_{m (\mu-m) \mu}^{l_1 l_2 \lambda} c_{n_1 l_1 m}^{i} c_{n_2 l_2 (\mu - m)}^{i}
87+
88+
where we have assumed real spherical harmonics coefficients.

0 commit comments

Comments
 (0)