[Insight-developers] Optimizer termination criteria
Zachary Pincus
zpincus at stanford.edu
Tue Jun 28 14:56:22 EDT 2005
Hello folks,
I've been chatting with the folks who contributed the SPSA optimizer to
ITK (on the users list), partially about the termination criteria for
that class. Initially we thought that adding a few different criteria
would be good, but on reflection (a) there are simply too many
reasonable options for termination criteria to support all of them in
one class, (b) this would contribute even more to the balkanization of
the optimizer API that had been previously mentioned, and (c) this
wouldn't do any good for any other optimizers.
So the suggestion that we came up with was that in general optimizers
might be best to not implement any fancy termination criteria,* and
instead rely on user-provided callbacks to terminate optimization.
Then, provided with a prefab set of callbacks for most reasonable types
of termination criteria (size of parameter change, size of objective
function value change, size of gradient), the user could simply plug in
the appropriate criteria for their task.
So: Is this a good idea? Or is there enough of a performance penalty
from adding callbacks that requiring a callback for every optimizer
would be infeasible? Or some other objection?
If this is a worthy goal, I think it would be possible to refactor
existing optimizers so that their "termination criteria API" stays the
same, while they, behind the scenes, just use callbacks. This way,
backwards compatibility could be maintained, while still allowing users
to remove these criteria and add their own.
What do you guys think? Does this suggestion even approach a reasonable
work-to-reward tradeoff, compared to some of the other stuff on the ITK
roadmap?
Thanks,
Zach Pincus
Department of Biochemistry and Program in Biomedical Informatics
Stanford University School of Medicine
* Or some optimizer-specific criteria that is best evaluated in the
optimizer itself, e.g. the OnePlusOne optimizer's
frobenius-norm-of-the-A-matrix criteria.
More information about the Insight-developers
mailing list