<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2668" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=018441218-22062005><FONT face=Arial 
color=#0000ff size=2>Anish,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=018441218-22062005><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=018441218-22062005><FONT face=Arial 
color=#0000ff size=2>As far as I can tell, all of the optimization algorithms 
from Netlib are local. Global optimization is considerably harder, and requires 
much more crunching. Examples are simulated annealing, multi-starts, i.e. 
stochastically sampling the solutions space, particle swarm methods, and 
sequential response surfaces. I am new enough to ITK that I cannot say which if 
any of these might usefully be implemented in ITK. Particle swarm methods are an 
interesting option because they are so easy to program. Be advised, however, 
there are no global methods that guarantee conversion.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=018441218-22062005><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=018441218-22062005><FONT face=Arial 
color=#0000ff size=2>Dan</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV><!-- Converted from text/rtf format -->
<P><SPAN lang=en-us><FONT face="Times New Roman">Daniel R Einstein, 
PhD<BR>Biological Monitoring and Modeling<BR>Pacific Northwest National 
Laboratory<BR>P.O. Box 999; MSIN P7-59<BR>Richland, WA 99352<BR>Tel: 509/ 
376-2924<BR>Fax: 509/376-9064<BR></FONT></SPAN><A 
href="mailto:daniel.einstein@pnl.gov"><SPAN lang=en-us><U><FONT 
face="Times New Roman" 
color=#0000ff>daniel.einstein@pnl.gov</FONT></U></SPAN></A><SPAN 
lang=en-us></SPAN> </P>
<DIV>&nbsp;</DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> 
insight-users-bounces+daniel.einstein=pnl.gov@itk.org 
[mailto:insight-users-bounces+daniel.einstein=pnl.gov@itk.org] <B>On Behalf Of 
</B>Ashish Poddar<BR><B>Sent:</B> Wednesday, June 22, 2005 10:58 
AM<BR><B>To:</B> Luis Ibanez<BR><B>Cc:</B> insight-users @ itk. 
org<BR><B>Subject:</B> [Insight-users] Re: [Insight-developers] a small bug 
initkConjugateGradientOptimizer<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV>Hi,</DIV>
<DIV>&nbsp;</DIV>
<DIV>Most of the optimizers which I have came across help in finding the local 
minima around the given initial approximation. But in that case I mostly end up 
in a wrong place. Is there any algorithm which helps to scan the global space 
somehow and help in determining the global minima. </DIV>
<DIV>&nbsp;</DIV>
<DIV>Other problem that I am facing with the conjugate gradient method is that 
the scales do not work for conjugate gradient optimizer. The scales are only 
taken into account in the very first initialization step and are never 
considered again in any of the latter iterations. I want to fix some of the 
parameters by setting the scale to some extreme value (I used to set 100 or 
something for regular step gradient descent optimizer and it used to serve the 
purpose very conveniently). </DIV>
<DIV>&nbsp;</DIV>
<DIV>any help will be highly appreciated,</DIV>
<DIV>with regards,</DIV>
<DIV>Ashish.<BR><BR>&nbsp;</DIV>
<DIV><SPAN class=gmail_quote>On 5/18/05, <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="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><BR>Hi 
  Ashish,<BR><BR>The Conjugate Gradient method is only convenient when the 
  cost<BR>function has smooth second derivatives.&nbsp;&nbsp;If your cost 
  function <BR>is noisy, is is unlikely that this optimizer will behave 
  nicely.<BR><BR>Note that is is common to find that Image Metrics are 
  rather<BR>noisy functions.<BR><BR><BR><BR>&nbsp;&nbsp; 
  Regards,<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Luis<BR><BR><BR><BR>--------------------<BR><BR>Ashish 
  Poddar wrote:<BR><BR>&gt; Hi,<BR>&gt;<BR>&gt; I also am right now struggling 
  with the initialization options for the<BR>&gt; Conjugate Gradient for which I 
  could not find any examples. While <BR>&gt; searching I came across an example 
  for Levenberg Marquardt Optimizer<BR>&gt; which seems to be having similar 
  interface as that of conjugate<BR>&gt; gradient optimizer. However the similar 
  initialization did not worked <BR>&gt; for Conjugate gradient. If someone can 
  point out any reference for<BR>&gt; Conjugate Gradient, it would be 
  great.<BR>&gt;<BR>&gt; Earlier I was using regular step gradient descent 
  optimizer with these<BR>&gt; parameters: <BR>&gt; Transform - Centered 
  Affine<BR>&gt; Scale for first 9 parameters - 1.0<BR>&gt; Scale for next 6 
  parameters - 0.0001<BR>&gt; Number of Iterations - 400<BR>&gt; Minimum Step 
  Length - 0.0001<BR>&gt; Maximum Step Length - 0.005<BR>&gt;<BR>&gt; Any help 
  will be highly appreciated,<BR>&gt; with regards,<BR>&gt; 
  Ashish.<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt; On 5/17/05, Ashish Poddar &lt;<A 
  href="mailto:ahpoddar@gmail.com">ahpoddar@gmail.com</A>&gt; wrote: 
  <BR>&gt;<BR>&gt;&gt;Hi Luis,<BR>&gt;&gt;<BR>&gt;&gt;Thank you for the quick 
  action. probably similar change is required<BR>&gt;&gt;for Levenberg Marquardt 
  Optimizer too.<BR>&gt;&gt;<BR>&gt;&gt;with regards,<BR>&gt;&gt;Ashish. 
  <BR>&gt;&gt;<BR>&gt;&gt;On 5/16/05, Luis Ibanez &lt;<A 
  href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</A>&gt; 
  wrote:<BR>&gt;&gt;<BR>&gt;&gt;&gt;Hi 
  Ashish,<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;Thanks for pointing this out. 
  <BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;You are right, the GetValue() method should be 
  const.<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;A fix has now been committed to the CVS 
  repository.<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;Please let us know if you encounter 
  any other problem. 
  <BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;Thanks<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Luis<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;----------------------<BR>&gt;&gt;&gt;Ashish 
  Poddar wrote:<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;hi,<BR>&gt;&gt;&gt;&gt; 
  <BR>&gt;&gt;&gt;&gt;I am not sure whether it qualifies as a bug or not, but 
  surely affects<BR>&gt;&gt;&gt;&gt;the re-usability and pluggability model of 
  ITK Library.<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;the GetValue() function in 
  ConjugateGradientOptimizer class currently is 
  <BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;MeasureType 
  GetValue();<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;but in case of 
  RegularStepGradientDescentOptimizer class its defined by macro 
  as<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;MeasureType GetValue() const; 
  <BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;which is an interface mis-match... 
  This I encountered when i replaced<BR>&gt;&gt;&gt;&gt;regular step gradient 
  descent optimizer by conjugate gradient<BR>&gt;&gt;&gt;&gt;optimizer. In the 
  observer I was using a const reference of the <BR>&gt;&gt;&gt;&gt;optimizer 
  and displaying the value (just the example which 
  is<BR>&gt;&gt;&gt;&gt;available for the same nothing new 
  =D)...<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;with 
  regards,<BR>&gt;&gt;&gt;&gt;Ashish. 
  <BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;<BR>&gt;&gt;--<BR>&gt;&gt;Ashish 
  Poddar<BR>&gt;&gt;Have an acceptable reason for accepting 
  anything.<BR>&gt;&gt;Y:ashish_poddar | <A 
  href="mailto:MSN:ashish_poddar@yahoo.com">MSN:ashish_poddar@yahoo.com</A><BR>&gt;&gt;<BR>&gt;<BR>&gt;<BR>&gt;<BR><BR><BR><BR></BLOCKQUOTE></DIV><BR><BR><BR>-- 
<BR>Ashish Poddar<BR>Have an acceptable reason for accepting 
anything.<BR>Y:ashish_poddar | <A 
href="mailto:MSN:ashish_poddar@yahoo.com">MSN:ashish_poddar@yahoo.com</A> 
</BODY></HTML>