[Insight-developers] single valued cost function

Iván Macía imacia at vicomtech.org
Tue Jul 20 11:08:55 EDT 2010


Hi, 

My vote for this change. I had to implement custom cost functions where
GetDerivative() did not make sense and had to implement it as an empty
function with a warning. I don't see obvious any backward compatibility
problems either.

Regards

Iván

-----Mensaje original-----
De: insight-developers-bounces at itk.org
[mailto:insight-developers-bounces at itk.org] En nombre de Ziv Yaniv
Enviado el: jueves, 15 de julio de 2010 21:52
Para: Karthik Krishnan
CC: insight-developers at itk.org
Asunto: Re: [Insight-developers] single valued cost function

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
>
>


-- 
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
web: http://isiswiki.georgetown.edu/zivy/
_______________________________________________
Powered by 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



More information about the Insight-developers mailing list