[Insight-users] Costfunction convergance

Reinhard Hameeteman reinhard.afstuderen at gmail.com
Thu Feb 9 08:32:33 EST 2006


Hi all,
I'm trying to get some things clear for me about the LBFGSB optimizer,
which I use to do a B-spline Mutual Information based registration.
There is a GetCostFunctionConvergenceFactor function that is defined as:

virtual double itk::LBFGSBOptimizer::GetCostFunctionConvergenceFactor(
) [virtual]

Set/Get the CostFunctionConvergenceFactor. Algorithm terminates when
the reduction in cost function is less than factor * epsmcj where
epsmch is the machine precision. Typical values for factor: 1e+12 for
low accuracy; 1e+7 for moderate accuracy and 1e+1 for extremely high
accuracy.

Now the value returned by the cost function,
itk::LBFGSBOptimizer::MeasureType, is a double. A double ranges form
about 10e-308 to 10e+308. So when
GetCostFunctionConvergenceFactor=1e+12 the optimizer would terminate
when the cost function value changes less then 1e-196. This seems
unreasonable. Where am I going wrong?

BTW epsmcj should probably be epsmch.

Regards,
Reinhard


More information about the Insight-users mailing list