<div dir="ltr"><p>Hi joel</p>
<p>I think its clear ... do you want to implement this approach in v4 ? the "regular step" type behavior is what we achieve by other methods in v4 - i.e. the steps detailed to you previously. we can help with a v4 implementation of the v3 version, if you like. </p>
<p style>if you prefer to fix v3 then, as brad said, there are several tests that will need adjustment. am sure someone would help with that too.</p><p style>b</p><p>---------- Forwarded message ----------</p><div class="gmail_quote">
From: "Joël Schaerer" <<a href="mailto:joel.schaerer@gmail.com" target="_blank">joel.schaerer@gmail.com</a>><br>Da<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div>Hi Nick,<br>
<br>
What I called the "first scaling" is the application of scales
that is done before gradient normalization, in the AdvanceOneStep
method:<br>
<br>
itkRegularStepGradientDescentBaseOptimizer.cxx<br>
187 for ( unsigned int i = 0; i < spaceDimension; i++ )<br>
188 {<br>
189 transformedGradient[i] = m_Gradient[i] / scales[i];<br>
190 previousTransformedGradient[i] =<br>
191 m_PreviousGradient[i] / scales[i];<br>
192 }<br>
<br>
The "second scaling" would be my proposed change, replacing <br>
<br>
itkRegularStepGradientDescentOptimizer.cxx<br>
42 for ( unsigned int j = 0; j < spaceDimension; j++ )<br>
43 {<br>
44 newPosition[j] = currentPosition[j] +
transformedGradient[j] * factor;<br>
45 }<br>
46<br>
<br>
with<br>
<br>
itkRegularStepGradientDescentOptimizer.cxx<br>
42 for ( unsigned int j = 0; j < spaceDimension; j++ )<br>
43 {<br>
44 newPosition[j] = currentPosition[j] +
transformedGradient[j] * factor / scales[j];<br>
45 }<br>
46<br>
<br>
basically a second application of the parameter scales.<br>
<br>
I hope this is clearer?<br>
<br>
joel<br>
<br>
On 07/05/2013 23:22, Nick Tustison wrote:<br>
</div>
<blockquote type="cite">
Hi Joel,
<div><br>
</div>
<div>Also, could you clarify your question a bit? The snippet of
interest in </div>
<div>the old itkRegularStepGradientOptimizer is</div>
<div><br>
</div>
<div>
<div> for(unsigned int j=0; j<spaceDimension; j++)</div>
<div> {</div>
<div> newPosition[j] = currentPosition[j] +
transformedGradient[j] * factor;</div>
<div> }</div>
</div>
<div><br>
</div>
<div>When you write of "first scaling" are you referring to
multiplication by </div>
<div>"factor"? </div>
<div><br>
</div>
<div>Nick</div>
<div><br>
</div>
<br>
</blockquote>
<br>
</div>
</blockquote></div>
</div>