[Insight-developers] problm with vnl optimizers and scales

Zachary Pincus zpincus at stanford.edu
Thu Mar 3 19:10:49 EST 2005


Hello all,

I think I've found a minor problem with how the VNL optimizer wrappers 
deal with user-provided scales. Specifically, they do not adjust the 
starting parameter values to take account of the scale factors, but 
they adjust everything else. This causes the starting parameter values 
to become distorted, which poses problems in cases where the starting 
values are important. (Say, when using large scales to hold a parameter 
near it's starting value, or when using hill-climbing.)

Here's how things work, and what's wrong (as far as I can tell):

(1) VNL wrapper optimizers use a "cost function adapter" which scales 
parameters by dividing them by the scale. So if the vnl optimizer asks 
for the value at (10, 10), and the scales are (10, 2), then the cost 
function adapter returns the value at (1, 5). So if the initial 
position is at (0, 0), the real optimum is at (2, 1), and the scales 
are set to (1000, 1000), the vnl optimizer would have to move from 
(0,0) to (2000, 1000) to find that optimum. This is how setting a large 
scale in one axis can slow the optimizer's progress in that axis.

(2) The VNL wrapper optimizers divide the final parameter values they 
get from the optimizer by the scales before returning them to the user. 
This takes the (2000, 1000) from the previous example and sets it back 
to the expected (2, 1).

(3) Here is the problem: The VNL wrapper optimizers DO NOT scale up the 
initial parameters. Suppose that in the previous example, the initial 
position is set precisely to the maximum (2, 1). So the optimizer 
shouldn't have to move at all! However, currently, the initial position 
is passed un-scaled to the vnl optimizer. So the VNL optimizer starts 
at (2, 1) and has to traverse to (2000, 1000). The right thing to do is 
quite clearly to multiply the initial parameters by the scale.

Do people agree that this is a problem? If so, I'll fix the vnl 
optimizer wrappers to deal with it.

Zach



More information about the Insight-developers mailing list