Fitting potential energy surfaces is one of the most common uses of Machine learning in
computational chemistry. This app will allow you to use a deep neural network to predict the potential energy
curve for the 1-fluoro 2-nitro ethane molecule. The figure below shows the potential curve calculated with
wB97XD/aug-cc-pVTZ which is used as the "training" data for the DNN. The model will try to learn this
training data and reproduce it as accurately as possible. Press here for a video of the
dihedral angle of the molecule rotating across the barrier.
You can select hyper-parameters for the DNN below.
The number of layers: each layer is a set of "neurons." A layer receives data, transforms that data,
(see below) and then passes it on to the next layer. Each DNN has an input layer which reads in the data,
an output layer which produces the final answer, and n hidden layers, which
do the "learning." Is there is 1 hidden layer, the model is called a universal approximator but if it has
more than 1 hidden layer, it is a deep learning model. The more layers, the more the model can learn.
The number of units: each layer h has a certain number of units which are akin to neurons. Each unit takes a piece
of input data, xi,and first applies a linear transformation to it: yh,i = Mhxi+bh.
This yh,i is then passed through an activator function (see below) before being passed to the next layer.
The width: the model can have a single stack of layers as described above, or it can have more than one stack of layers which come together
at the output layer. This gives the model more flexibility in learning.
Skip connections: this allows a copy of the input data to "skip" the layers and go directly to the output layer. This allows another
path for learning, and preserves any information in the input data.
The activation: the transformed data yh,i is passed through a non-linear activation function so that we don't just
end up with linear-regression. The non-linear functions can include hyperbolic tangent, a sigmoid function, or a special transformation called a
rectified linear unit. Each activation is appropriate for different situations.
The optimizer: the set of Mh and bh values for each unit of each layer are called the weights and biases
for the model, or often just called the weights. In order to learn accurately, the best possible sets of weights are needed.
These optimal weights are found through a process by which the accuracy of each successive approximation of the training data is differentiated
with respect to the weights, and the weights that produce the most accurate answer are found.
The epochs: the optimization is a method of successive approximations, which we call training so the more you try, the closer you get to
the answer. Some problems need more or less training that others.
The training process is compute-intensive, so it will take a while (usually a minute or so). The epoch update will show your progress.
Press here to hide/show neural network option descriptions.
This plot shows the high-level wB97XD potential surface in
red
and the machine-learning prediction in green.
This is the work of Dr. Mauricio Cafiero and may be used widely though attribution is appreciated.