mir-group/allegro

How is allegro trained with forces? And are there available weights for running full scale MD simulations?

JSLJ23 opened this issue · 1 comments

JSLJ23 commented

Hi developers of Allegro,

I have two questions namely on the methodology behind allegro and it's applications:

  1. In the Nature communications publication, the model's architecture is depicted as such where the energies of the atoms are summed to get the energies of the system. I can see how the loss function with energy can be differentiated with this through the rest of the model, but I don't quite understand how you can include the force labels in the training data... A number of examples from the sGDML datasets have forces in the XYZ but how are these actually included in the loss function if the model predicts energy?

  2. Also from the more recent preprint, you guys have also shown the ability to run full scale MD simulations on proteins. I was wondering are weights available for these versions of the models for end users to run MD simulations with?

Thank you for the time to address my queries.

Hi @JSLJ23 ,

The forces are computed using auto-differentiation from the predicted energy, and are then included in the loss function as well. Thus the gradients of the loss with regard to the weights end up including 2nd derivatives (computed analytically using autodifferentiation) of the network's predictions. Force and energy predictions are thus not independent, but correctly reflect the underlying physics as two "views" of the same potential energy surface.