[Insight-developers] Optimizer termination criteria

Stephen R. Aylward aylward at unc.edu
Wed Jun 29 10:06:39 EDT 2005


I think this should be a part of a broader effort to standardize the 
optimizers like we standardized the transforms.   There seem to be 
general categories of optimizers whose re-use would benefit from 
subclassing the optimizer hierarchy.

On 6/20, Simon Warfield sent a great email to the developers that 
summarizes numerous inconsistencies with the optimizers.   I've got a 
copy somewhere....it should also be in the archives.

We've been having trouble with optimizers because some problems must 
avoid overfitting by using termination criterion based on a system's 
performance on a second set of data.  Your change would make this MUCH 
easier - so we wouldn't have to keep changing ITK methods in a problem 
specific way.

How about putting something up on the wiki to let people know what you 
are doing....

THANKS!
Stephen


Zachary Pincus wrote:
> 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.
> 
> _______________________________________________
> Insight-developers mailing list
> Insight-developers at itk.org
> http://www.itk.org/mailman/listinfo/insight-developers

-- 
===========================================================
Dr. Stephen R. Aylward
Associate Professor of Radiology
Adjunct Associate Professor of Computer Science and Surgery
http://caddlab.rad.unc.edu
aylward at unc.edu
(919) 966-9695


More information about the Insight-developers mailing list