[Insight-users] RE: AmoebaOptimizer and SetScales

Ross, James C (Research) ross at crd.ge.com
Wed Feb 23 09:59:06 EST 2005


Zach,

When using, e.g., an affine transformation I get good behavior with the AmoebaOptimizer by setting the scales corresponding to the translational components to 1/(translateScale)^2 (where translateScale != 1) and the remaining scales to 1.  

What metric are you using?

-James

-----Original Message-----
Date: Mon, 21 Feb 2005 13:41:00 -0800
From: Zachary Pincus <zpincus at stanford.edu>
Subject: [Insight-users] AmoebaOptimizer and SetScales
To: ITK Users <insight-users at itk.org>
Message-ID: <67948ffc935e41324237c901eb0e5bd9 at stanford.edu>
Content-Type: text/plain; charset=US-ASCII; format=flowed

Hello again,

I've noticed that the SetScales() call doesn't seem to have the effect 
on the AmoebaOptimizer advertised by the documentation about 
optimizers.

Basically, setting a scale any larger than one for any parameter seems 
to cause the AmoebaOptimizer to drive that parameter to zero. Setting a 
scale smaller than one causes the optimizer to try to drive that 
parameter to + or -infinity. (The larger or smaller the scale, the 
faster this happens.)

When I substitute, say, the OnePlusOneEvolutionaryOptimizer for the 
AmoebaOptimizer (holding all else the same), everything works as it 
should: parameters with a large scaling change more slowly than those 
with a small scaling.

Has anyone else noticed this? Is the problem here my failing to 
understand something about how the downhill simplex algorithm works, or 
is there some bad interaction between this algorithm and scaling?

Zach Pincus

Department of Biochemistry and Program in Biomedical Informatics
Stanford University School of Medicine




More information about the Insight-users mailing list