Giter Site home page Giter Site logo

jakublala / alchemical-kernels Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.15 MB

Pytorch implementation of Alchemical Kernels from Phys. Chem. Chem. Phys., 2018,20, 29661-29668

Python 100.00%
energy-prediction kernel-ridge-regression soap alchemical-kernel rascaline elpasolite

alchemical-kernels's Introduction

PyTorch Implementation of Alchemical Kernels

Reproduced from Feature optimization for atomistic machine learning yields a data-driven construction of the periodic table of the elements with a simplified loss function compared to the original paper. The idea is to use kernel ridge regression to fit the structure-energy relationship from the SOAP descriptor representation. The SOAP vector is computed by librascal.

Nevertheless, to reduce the dimensionality of the kernel, an alchemical kernel is used, which describes the elemental information of the 39 elements present in the dataset as a linear combination of 4 pseudo-elements, or alchemical elements. This then allows us to produce a reconstruction of the periodic table of elements as shown in the figure below, for 2, 3, and 4 pseudo-elements (taken from the original paper).

periodic_table

The dataset used is an elpasolite dataset of 8k structure from Machine Learning Energies of 2 Million Elpasolite (ABC2D6) Crystals. My slightly different approach in terms of learning the coupling parameters, compared to the original paper, is given in the figure below.

model_structure

We use two different datasets during training: a) training dataset: learns the weights that describe the kernel-energy relationship through linear matrix regression and b) optimization dataset: learns the coupling parameters U that transfer the full SOAP descriptor into the reduced SOAP vector with the reduced dimensionality. We train the weights and coupling parameters simultaneously.

It was found that there is training instability if we detach the gradients in the training dataset path, betwen the weights and the U coupling parameters. Hence the parameter updates of the U matrix are updated using gradients that propagate through both paths - training and optimization.

alchemical-kernels's People

Contributors

jakublala avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.