My goal is to use a Gaussian Process Regression (GPR) model with the GPyTorch library with the SOAP (smooth overlap of atomic positions) descriptor that can be obtained with the DScribe library.
I have generated the SOAP descriptors for my dataset and used a GPR model, which gives very poor results. It seems that the Kernel function I have initially used (the RBF-Kernel) is not suitable in combination with the SOAP descriptor (I can't figure out any other reason for the extremely high prediction error). The authors of the original SOAP paper (Phys. Rev. B 87, 184115) came up with the SOAP kernel that is said to be tailored for the SOAP descriptor as far as I understand:

\begin{equation} K(\rho, \rho') = \left(\frac{\rho\,\rho'}{\sqrt{\rho\rho\,\rho'\rho'}}\right)^{\zeta} \end{equation}

Where $\rho$ is the partial power spectrum vector which is the output of the SOAP descriptor generation. My central question is: Are there any libraries in which this kernel is already implemented or does someone have an idea how to implement it in popular GPR libraries like GPyTorch ? I have read a few papers in which the combination of SOAP and GPR is reported and it seems to work quite well (for example Nat. Commun. 9, 4501 (2018)).

  • 1
    $\begingroup$ If I am not wrong, many of the Bartok-Csanyi kernels are implemented in the DScribe library, although it's not pytorch. Maybe this paper is useful arxiv.org/abs/2010.12857, as they have a link to a github repo where they use these kernels along with GPR. If you study the code, most probably you are able to implement something similar taking advantage of torch. $\endgroup$
    – Anon
    Oct 29, 2023 at 10:46


You must log in to answer this question.

Browse other questions tagged .