[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