OptParams is a Configuration-compatible case class that can be used to select optimization routines at runtime.
Tracks the information about the optimizer, including the current point, its value, gradient, and then any history.
Runs the function, and if it fails to decreased by at least improvementRequirement numFailures times in a row, then we abort
Runs the function, and if it fails to decreased by at least improvementRequirement numFailures times in a row, then we abort
how often we run the evaluation