  Many machine/deep learning artificial neural networks are trained to simply
be interpolation functions that map input variables to output values
interpolated from the training data in a linear/nonlinear fashion. Even when
the input/output pairs of the training data are physically accurate (e.g. the
results of an experiment or numerical simulation), interpolated quantities can
deviate quite far from being physically accurate. Although one could project
the output of a network into a physically feasible region, such a postprocess
is not captured by the energy function minimized when training the network;
thus, the final projected result could incorrectly deviate quite far from the
training data. We propose folding any such projection or postprocess directly
into the network so that the final result is correctly compared to the training
data by the energy function. Although we propose a general approach, we
illustrate its efficacy on a specific convolutional neural network that takes
in human pose parameters (joint rotations) and outputs a prediction of vertex
positions representing a triangulated cloth mesh. While the original network
outputs vertex positions with erroneously high stretching and compression
energies, the new network trained with our physics prior remedies these issues
producing highly improved results.
