Brad,
That is an interesting question - how to decide step sizes near the
optimum solution. Probably we need to consider the stopping criteria in
ITK (ex. on metric gradient, parameter changes, etc). Thanks!
Bao
On 5/27/2014 8:26 AM, Bradley Lowekamp wrote:
Hello,
Thanks for the info. Overall I was very impressed with the robustness of the
scales estimate.
Except one trivial case! An Estimator is also used to estimate the learning
rate ( indirect step size ). For the trivial cast of the same image (cthead1),
and an identity translation transform so we are already at presumable an
optimal local minima, the estimated learning rate blows up yielding a super
sonic step size. I would think the case of being at a minimum should warrant
special handling by the estimators as we can hope this is the case for
multi-resolution. Any thoughts on this situation?
Are there parameters in the optimizer/estimator to account for this? I saw the gradient
descent based optimizers have a "MaximumStepSizeInPhysicalUnits" which looks
like is may bound this learning rate/step size.
Thanks,
Brad
On May 23, 2014, at 11:07 AM, Baohua Wu <[email protected]> wrote:
Brad,
I might miss something since there has been a lot of code changes after I
worked on it years ago. Here is my understanding after reviewing some code
about sampling strategy.
RegistrationParameterScalesEstimator< TMetric >
::SetScalesSamplingStrategy()
{
if( this->m_VirtualDomainPointSet )
{
this->SetSamplingStrategy(VirtualDomainPointSetSampling);
}
else if( this->TransformHasLocalSupportForScalesEstimation() )
{
this->SetSamplingStrategy(CentralRegionSampling);
}
else if (this->CheckGeneralAffineTransform())
{
this->SetSamplingStrategy(CornerSampling);
}
else
{
this->SetSamplingStrategy(RandomSampling);
this->SetNumberOfRandomSamples( SizeOfSmallDomain );
}
}
1) Currently SetSamplingStrategy is already protected, but
SetScalesSamplingStrategy is public. Should SetScalesSamplingStrategy should be
protected as well? Probably yes if it is always called internally.
2) I think FromShiftBased may use CentralRegionSampling. As the code above
shows, it depends on the properties of the transform.
3) Your parameters looks right. Please keep in mind that m_CentralRegionRadius
for voxel indices, and m_SmallParameterVariation is for a small parameter step
in computing transform changes. m_SmallParameterVariation will be normalized in
most cases.
Thank you!
Bao
On 5/22/2014 9:08 AM, brian avants wrote:
i believe these questions might best be answered by michael stauffer
and baohua wu, both cc'd.
brian
On Thu, May 22, 2014 at 8:41 AM, Bradley Lowekamp
<[email protected]> wrote:
Nick,
We are working on ITKv4 Registration for SimpleITK. I am adding some methods
for the Scales Estimators. This is what I currently have:
Self& SetOptimizerScales( const std::vector<double> &scales);
Self& SetOptimizerScalesFromJacobian(unsigned int centralRegionRadius = 5
);
Self& SetOptimizerScalesFromIndexShift(unsigned int centralRegionRadius =
5,
double smallParameterVariation =
0.01 );
Self& SetOptimizerScalesFromPhysicalShift(unsigned int centralRegionRadius
= 5,
double smallParameterVariation =
0.01 );
I have a couple questions:
1) Despite the some public methods to set the SamplingStrategy, this is really
set by the implementation of the estimator is not not configurable for any
estimator? ( Should these methods[1][2] actually be protected?)
2) I can't seem to determine if the FromShiftBased estimators actually use the
centralRegionRadius, is that actually used?
3) Those parameters look right? missing anything?
Thanks,
Brad
[1]
http://www.itk.org/Doxygen/html/classitk_1_1RegistrationParameterScalesEstimator.html#a28bda2ed3551af2cacb30b6920180881
[2]
http://www.itk.org/Doxygen/html/classitk_1_1RegistrationParameterScalesEstimator.html#aa7f519d80e0cabe7d25de1ae6f287cc4
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php
Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ
Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php
Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ
Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers