public Matrix calculateWeightUpdates(LayerSensitivity layerSensitivity,
Vector previousLayerActivationOrInput, double alpha, double momentum)
{
Layer layer = layerSensitivity.getLayer();
Matrix activationTranspose = previousLayerActivationOrInput.transpose();
Matrix momentumLessUpdate = layerSensitivity.getSensitivityMatrix()
.times(activationTranspose).times(alpha).times(-1.0);
Matrix updateWithMomentum = layer.getLastWeightUpdateMatrix().times(
momentum).plus(momentumLessUpdate.times(1.0 - momentum));
layer.acceptNewWeightUpdate(updateWithMomentum.copy());
return updateWithMomentum;
}