[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