[Insight-users] OptimizerScales and VersorRigid3DTransformOptimizer

Toon Huysmans denhuys at hotmail.com
Fri May 27 11:09:29 EDT 2005


Yes Luis, 
	You made it very clear to me, but I noticed in one of my
registrations, where the optimizer had to travel far over the image,
that one of the translation variables was repeatedly increased by
approx. the maximum step length.  But I would expect that it would
increase with the maximum step length multiplied by the scaling for that
parameter. Because the maximal change in the parameters should be
proportional to the scales, or not?

If this not clear I could show you the output of the parameters at each
iteration...

Many thanks,

Toon.

-----Oorspronkelijk bericht-----
Van: Luis Ibanez [mailto:luis.ibanez at kitware.com] 
Verzonden: vrijdag 27 mei 2005 16:50
Aan: Toon Huysmans
CC: insight-users at itk.org
Onderwerp: Re: [Insight-users] OptimizerScales and
VersorRigid3DTransformOptimizer


Hi Toon,


Your question:


          "Is it correct if I state that the OptimizerScales have
           no influence on the MaximumStepLength of the optimizer?"



One answer:


                          Yes and No



1) for the YES:  It is correct to say that if you change the scaling
                  parameter that will not change the step length that
                  you set from the *outside* of the optimizer.

2) for the NO:   The scaling parameters will affect the actually step
                  length that the optimizer performs *internally*.
                  To be more precise, it affects the projections of
                  that step length along each one of the coordinates
                  in the parametric space.


The purpose of the scaling factors in the optimizer is to bring
any parametric space to a form in which the basin of the cost
function have radial symmetry (or close to it).

If you are using ITK optimizers of the "gradient-descent" type,
the scaling parameters are actually applied to the gradient-vector
that is used to update the current position in the parametric space.
In that context, you can say that they are multiplying the step length
internally.



Are you using the RegularStepGradientDescent ?

if so, the reason why the MaximumStepLength doesn't change, is simply
that this is an initial parameter. The optimizer just use it as the
first value to assign to the actual "step length".  From that initial
value, the optimizer decides whether to shrink the step length based
on directional changes in the derivative.  If you call GetMax length
at every iteration, you will always get the same value.  The value
that you may want to look at is the "CurrentStepLenght".




     Regards,



        Luis



--------------------
Toon Huysmans wrote:
>  
> 
> Hey,
> 
>  
> 
>             Is it correct if I state that the OptimizerScales have no 
> influence on the MaximumStepLength of the optimizer?  I would expect 
> that if the optimizer scale for a certain variable is set to <s>, and 
> the maximum step length is set to <l>, that the maximum step I can 
> expect would be <s*I>.  But what I see is that the maximum step is 
> always <l>, no matter how small <s> is.
> 
>  
> 
> Any clues?
> 
> Thanks,
> 
>  
> 
>  
> 
> Toon Huysmans.
> 
>  
> 
> Postal Address:
> 
>  
> 
>   Vision Lab, Department of Physics
> 
>   University of Antwerp (CMI)
> 
>   Groenenborgerlaan 171 (U306)
> 
>   B-2020 Antwerp, Belgium
> 
> Tel: +32 (0) 3 265 32 24
> 
> Fax: +32 (0) 3 265 33 18
> 
> Email: toon.huysmans at ua.ac.be <mailto:toon.huysmans at ua.ac.be>
> 
> Web: http://webhost.ua.ac.be/visielab/staff/tohu/
> 
>  
> 
> 
>
------------------------------------------------------------------------
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users





More information about the Insight-users mailing list