[Insight-developers] single valued cost function

Daniel Blezek Blezek.Daniel at mayo.edu
Thu Jul 15 17:45:41 EDT 2010


Shame that OPT++ is LGPL, would be a nice addition to ITK...


On 7/15/10 2:51 PM, "Ziv Yaniv" <zivy at isis.imac.georgetown.edu> wrote:

> Karthik,
> 
> You are obviously correct. Either the optimizer hierarchy should reflect
> this, or the type of the cost function passed to optimizers that require
> derivatives should be changed to the proposed
> SingleValuedCostFunctionWithDerivative.
> 
> I believe the only itk optimizer that doesn't require a derivative is
> the Amoeba optimizer?
> 
> In any case, a nice design of an optimization hierarchy is described in:
> 
> J. C. Meza, R. A. Oliva, P. D. Hough, and P. J. Williams, "OPT++: An
> Object Oriented Toolkit for Nonlinear Optimization",  ACM Transactions
> on Mathematical Software, Volume 33, Number 2, June 2007.
> 
> The toolkit's site is https://software.sandia.gov/opt++/index.html
> 
>                         Ziv
> 
> 
> On 7/15/2010 2:52 PM, Karthik Krishnan wrote:
>> On Fri, Jul 16, 2010 at 12:02 AM, Ziv Yaniv
>> <zivy at isis.imac.georgetown.edu <mailto:zivy at isis.imac.georgetown.edu>>
>> wrote:
>> 
>>     What was the reasoning behind having the GetValueAndDerivative and
>>     the pure virtual GetDerivative method in the
>>     SingleValuedCostFunction class? This does not accommodate non
>>     differentiable functions in a natural way.
>> 
>>     I see two options:
>> 
>>     Slight modification of the current cost function hierarchy,
>>     1. Remove both methods from the SingleValuedCostFunction class.
>>     2. Add a class SingleValuedCostFunctionWithDerivative adding the two
>>     methods and inheriting from SingleValuedCostFunction
>>     3. Modify the inheritance of the direct subclasses (7 according to
>>     doxygen) from the old class to the new one.
>> 
>> 
>> Don't you also need to to include a similar additional hierarchy in the
>> optimizers, since the hierarchy of cost functions should be matched by
>> the space of optimizers.
>> 
>> There are only two kinds of cost functions : (a) single valued
>> multivariate (b) Multivalued multivariate cost functions. Likewise there
>> are two kinds of optimizers as well.
>> 
>> thx
>> --
>> karthik
>> 
>> 
>>     No change to code base,
>>     1. Implementation of GetDerivative in a subclass that cannot compute
>>     one just throws an excpetion. Ugly but guaranteed to get the
>>     developers attention.
>> 
>>     Am I missing something? If not, I would be happy if itk-v4 adopts
>>     the first option.
>> 
>>                        Ziv
>> 
>> 
>>     --
>>     Ziv Yaniv, PhD., Research Assistant Professor
>>     Imaging Science and Information Systems (ISIS) Center
>>     Department of Radiology
>>     Georgetown University Medical Center
>>     2115 Wisconsin Avenue, Suite 603
>>     Washington, DC, 20007,
>> 
>>     Phone: +1-202-687-7286
>>     Fax: +1-202-784-3479
>>     email: zivy at isis.georgetown.edu <mailto:zivy at isis.georgetown.edu>
>>     web: http://isiswiki.georgetown.edu/zivy/
>>     _______________________________________________
>>     Powered by www.kitware.com <http://www.kitware.com>
>> 
>>     Visit other Kitware open-source projects at
>>     http://www.kitware.com/opensource/opensource.html
>> 
>>     Kitware offers ITK Training Courses, for more information visit:
>>     http://kitware.com/products/protraining.html
>> 
>>     Please keep messages on-topic and check the ITK FAQ at:
>>     http://www.itk.org/Wiki/ITK_FAQ
>> 
>>     Follow this link to subscribe/unsubscribe:
>>     http://www.itk.org/mailman/listinfo/insight-developers
>> 
>> 
> 

-- 
Daniel Blezek, PhD
Medical Imaging Informatics Innovation Center

P 127 or (77) 8 8886
T 507 538 8886
E blezek.daniel at mayo.edu

Mayo Clinic
200 First St. S.W.
Harwick SL-44
Rochester, MN 55905
mayoclinic.org
³It is more complicated than you think.² -- RCF 1925



More information about the Insight-developers mailing list