You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We should figure out how to scale the loss with number of atoms. For GAP and ACE, we've settled on
loss = (w / sqrt(N)) ^2 (E-Eref)^2
for both energy and virial (extensive). From what I can tell, MACE uses `
loss = wM ((E-Eref)/N)^2
In addition to a (trivial) square on the magnitude of the weight, these do not scale the same with number of atoms. They can be mapped to each other through
wM = N w^2
The former assumes that the energy errors are uncorrelated. The latter assumes something else, but I'm not sure how to define it in terms of correlations. But, for example, if you double the system size you get twice as many forces, but the same scale E/N, so same contribution from the energy.
Maybe the scaling should be selectable by the user?
Also, in general, there are many possibly duplicative loss functions coded up, and it would be very nice if they were unified. I can even imagine all of them being implemented as huber, and recover the quadratic ones by setting the threshold to infinity.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
We should figure out how to scale the loss with number of atoms. For GAP and ACE, we've settled on
for both energy and virial (extensive). From what I can tell, MACE uses `
In addition to a (trivial) square on the magnitude of the weight, these do not scale the same with number of atoms. They can be mapped to each other through
The former assumes that the energy errors are uncorrelated. The latter assumes something else, but I'm not sure how to define it in terms of correlations. But, for example, if you double the system size you get twice as many forces, but the same scale E/N, so same contribution from the energy.
Maybe the scaling should be selectable by the user?
Also, in general, there are many possibly duplicative loss functions coded up, and it would be very nice if they were unified. I can even imagine all of them being implemented as huber, and recover the quadratic ones by setting the threshold to infinity.
Beta Was this translation helpful? Give feedback.
All reactions