Hi Luis,<br>
<br>
Thanks. I noticed that for optimizers such as gradient descent and LM,
we are required to explicitly write GetDerivative() function. However,
sometimes, the cost function is very complicated, and it's almost
impossible to formulate such a derivative explicitly. Now, my question
is, under such circumstance, what can we do?<br>
<br>
Best regards,<br>
Carl DING<br><br><div><span class="gmail_quote">On 4/3/06, <b class="gmail_sendername">Luis Ibanez</b> &lt;<a href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>Hi Carl,<br><br>You will find examples on how to set your own cost functions<br>to ITK optimizers by looking at the tests in the directory:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Insight/Testing/Code/Numerics/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkAmoebaOptimizerTest.cxx
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkConjugateGradientOptimizerTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkCumulativeGaussianOptimizerTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkExhaustiveOptimizerTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkFRPROptimizerTest.cxx*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkGradientDescentOptimizerTest.cxx
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkLBFGSBOptimizerTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkLBFGSOptimizerTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkLevenbergMarquardtOptimizerTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkOptimizersHierarchyTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkPowellOptimizerTest.cxx*
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkRegularStepGradientDescentOptimizerTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkSPSAOptimizerTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkVersorRigid3DTransformOptimizerTest.cxx<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itkVersorTransformOptimizerTest.cxx<br><br><br><br>
All of them set customized cost functions that are different<br>from the ImageMetrics used in the registration framework.<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;Regards,<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Luis<br><br><br>-------------------<br>Feng Ding wrote:<br>
&gt; Dear all,<br>&gt;<br>&gt; My question is how to set my own cost function (eg. f(x,y)=x^2+y^2) for<br>&gt; an optimizer. I hope to run the optimization process separately, not in<br>&gt; the image to image registration framework. Thank you!
<br>&gt;<br>&gt; Best regards,<br>&gt; Carl DING<br>&gt;<br>&gt;<br>&gt; ------------------------------------------------------------------------<br>&gt;<br>&gt; _______________________________________________<br>&gt; Insight-users mailing list
<br>&gt; <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br><br></blockquote></div>
<br>