[Insight-users] Regular Step Gradient Descent optimizer

Ming Chao mingchao2005 at gmail.com
Tue May 2 18:49:50 EDT 2006


Hi,

When I used Regular Step Gradient Descent optimizer to register two images I
saw an abnormal behavior. The metric value first decreased but after some
iterations it became larger. See the following output:

0   -0.835581   [-0.00321978, -0.0466639, 0.0883861]
1   -0.836504   [-0.00422488, -0.0933436, 0.176817]
2   -0.83737   [-0.00293453, -0.139983, 0.265265]
3   -0.838174   [0.000731481, -0.18652, 0.353701]
4   -0.838908   [0.00685175, -0.232884, 0.442092]
5   -0.839563   [0.015502, -0.278993, 0.530404]
6   -0.840129   [0.0267537, -0.32476, 0.618602]
7   -0.840598   [0.0406717, -0.370081, 0.706649]
8   -0.84096   [0.0573129, -0.414844, 0.794509]
9   -0.84121   [0.0767229, -0.458919, 0.882148]
10   -0.841343   [0.0989338, -0.50216, 0.969537]
11   -0.841358   [0.123961, -0.544401, 1.05665]
12   -0.841256   [0.151799, -0.58545, 1.14349]
13   -0.841041   [0.182419, -0.625084, 1.23004]
14   -0.840719   [0.215761, -0.663034, 1.31634]
15   -0.840298   [0.214669, -0.680096, 1.41487]
16   -0.839375   [0.216594, -0.696938, 1.51342]
17   -0.838339   [0.221686, -0.713544, 1.6119]
18   -0.837215   [0.230089, -0.729893, 1.7102]
19   -0.836032   [0.241937, -0.74596, 1.80819]
20   -0.83482   [0.257347, -0.76171, 1.90573]
21   -0.833613   [0.276409, -0.7771, 2.00268]
22   -0.832445   [0.299184, -0.792076, 2.09889]
23   -0.831349   [0.325688, -0.806571, 2.19422]
24   -0.830357   [0.35589, -0.820502, 2.28853]
25   -0.829494   [0.389705, -0.833768, 2.3817]
26   -0.828783   [0.426981, -0.84624, 2.47365]
27   -0.828236   [0.467495, -0.857749, 2.56435]
28   -0.827859   [0.510938, -0.868055, 2.65383]
29   -0.827633   [0.556896, -0.876774, 2.74221]
30   -0.827525   [0.60475, -0.883034, 2.8298]
31   -0.827502   [0.650812, -0.875321, 2.91822]
32   -0.827512   [0.629235, -0.881114, 2.87349]
33   -0.827519   [0.603546, -0.883645, 2.83067]
34   -0.827483   [0.620407, -0.880267, 2.84881]
35   -0.827564   [0.608674, -0.882388, 2.84506]
36   -0.827459   [0.613038, -0.88246, 2.84059]
37   -0.827529   [0.610107, -0.882339, 2.84166]
38   -0.827493   [0.611332, -0.882386, 2.8407]

However, if I change the optimizer to the LBFGSB optimizer, I got the
following output:

0   -0.840282   [-0.0321978, -0.466639, 0.883861]
1   -0.840732   [0.0493198, -0.53362, 1.01199]
2   -0.840735   [0.0592661, -0.540774, 1.03432]
3   -0.840751   [0.100359, -0.570829, 1.11035]

This looks reasonable. The setup for the registration is the following:


   typedef itk::BSplineInterpolateImageFunction<ImageType, double >
InterpolatorType;
  typedef itk::ImageRegistrationMethod<ImageType, ImageType >
RegistrationType;

  typedef itk::NormalizedCorrelationImageToImageMetric<ImageType,ImageType
>    MetricType;

    typedef itk::TranslationTransform< double, Dimension >
TransformType;

Can anybody tell me why I have so different results with different
optimizers?

Thanks,

Ming
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20060502/dc624a80/attachment.htm


More information about the Insight-users mailing list