robbert-harms / MDT

Microstructure Diffusion Toolbox
GNU Lesser General Public License v3.0
48 stars 18 forks source link

option --patience #34

Closed StefaniaOliviero closed 3 years ago

StefaniaOliviero commented 3 years ago

Hi, my issue regards the option "patience" for the fit processing: as I understood, it should be used to set the number of iterations of the fit process. The question is "What is the difference between the different iterations? The starting points for the non-initialized parameters?" "If yes, which is the stochastic method used to select the starting points? Is there a kind of perturbation to the first set of starting-points?"

Regards Stefania Oliviero

robbert-harms commented 3 years ago

Hi Stefania,

The patience is indeed the number of iterations for the fit process, but slightly different from how you interpret it. Every optimization algorithm has, internally, a loop. For example, a simple Gauss-Newton search will require a few iterations to converge to a good estimate. Precisely this iteration counter is controlled (indirectly) with patience.

The idea of patience comes from the problem that every optimization algorithm does a different amount of work per iteration. Some algorithms require only 5 iterations to reach convergence, while others do less work per iteration and as such require 100 iterations. The idea of patience is to map these values to a common denominator, i.e. for the first algorithm we would set nmr_iterations = 20 * patience while for the other we would set nmr_iterations = patience. Or something to that effect. This abstraction is not a very accurate though and one often finds himself tuning patience per algorithm.

For the rest, MDT does not do any stochastic parameter selection before or during optimization.

Best wishes,

Robbert Harms

StefaniaOliviero commented 3 years ago

Hi Robbert, Thanks a lot for your delailed explanation. Best Regards Stefania Oliviero

Ottieni Outlook per Androidhttps://aka.ms/ghei36


From: Robbert Harms @.> Sent: Friday, March 19, 2021 10:25:26 AM To: robbert-harms/MDT @.> Cc: StefaniaOliviero @.>; Author @.> Subject: Re: [robbert-harms/MDT] option --patience (#34)

Hi Stefania,

The patience is indeed the number of iterations for the fit process, but slightly different from how you interpret it. Every optimization algorithm has, internally, a loop. For example, a simple Gauss-Newton search will require a few iterations to converge to a good estimate. Precisely this iteration counter is controlled (indirectly) with patience.

The idea of patience comes from the problem that every optimization algorithm does a different amount of work per iteration. Some algorithms require only 5 iterations to reach convergence, while others do less work per iteration and as such require 100 iterations. The idea of patience is to map these values to a common denominator, i.e. for the first algorithm we would set nmr_iterations = 20 * patience while for the other we would set nmr_iterations = patience. Or something to that effect. This abstraction is not a very accurate though and one often finds himself tuning patience per algorithm.

For the rest, MDT does not do any stochastic parameter selection before or during optimization.

Best wishes,

Robbert Harms

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/robbert-harms/MDT/issues/34#issuecomment-802683073, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOYBVSBFEZTLHRW6NOVI2BLTEMKANANCNFSM4ZK2KJ7Q.