From: Eskil Jönsson on 29 Mar 2010 05:47 Just a little quick question. I'm using DiffMinChange to obtain bigger steps. Would this reason be included in your 'wrong reason' category. My problem is that I compare multiple images (I'm comparing body scans from different time periods) and when I try to register these scans without increasing the DiffMinChange my function does not find a propper search direction. But when I increase it to almost 1 (=1 pixel) it works much better. It is however not as stable as I would want it to be. //Eskil > You should almost never want to touch > 'diffminchange' and 'diffmaxchange'. > I'll argue that most who do try to > use these parameters are doing so for > the wrong reasons.
From: John D'Errico on 29 Mar 2010 07:00 "Eskil Jönsson" <eskil_j(a)hotmail.com> wrote in message <hopsum$soc$1(a)fred.mathworks.com>... > Just a little quick question. I'm using DiffMinChange to obtain bigger steps. Would this reason be included in your 'wrong reason' category. > > My problem is that I compare multiple images (I'm comparing body scans from different time periods) and when I try to register these scans without increasing the DiffMinChange my function does not find a propper search direction. > But when I increase it to almost 1 (=1 pixel) it works much better. It is however not as stable as I would want it to be. > > //Eskil > > > You should almost never want to touch > > 'diffminchange' and 'diffmaxchange'. > > I'll argue that most who do try to > > use these parameters are doing so for > > the wrong reasons. Yes, this is one of those wrong reasons. You are trying to convince the optimizer to not realize this is a discrete problem when it really is one. These optimizers use diffminchange to estimate the gradient of the objective (a sum of squares) with respect to the parameters. If the parameters are really discrete things, then it cannot differentiate with respect to them. John
From: Eskil Jönsson on 29 Mar 2010 10:03 "John D'Errico" <woodchips(a)rochester.rr.com> wrote in message <hoq18a$51s$1(a)fred.mathworks.com>... > "Eskil Jönsson" <eskil_j(a)hotmail.com> wrote in message <hopsum$soc$1(a)fred.mathworks.com>... > > Just a little quick question. I'm using DiffMinChange to obtain bigger steps. Would this reason be included in your 'wrong reason' category. > > > > My problem is that I compare multiple images (I'm comparing body scans from different time periods) and when I try to register these scans without increasing the DiffMinChange my function does not find a propper search direction. > > But when I increase it to almost 1 (=1 pixel) it works much better. It is however not as stable as I would want it to be. > > > > //Eskil > > > > > You should almost never want to touch > > > 'diffminchange' and 'diffmaxchange'. > > > I'll argue that most who do try to > > > use these parameters are doing so for > > > the wrong reasons. > > Yes, this is one of those wrong reasons. > > You are trying to convince the optimizer to not realize > this is a discrete problem when it really is one. > > These optimizers use diffminchange to estimate the > gradient of the objective (a sum of squares) with > respect to the parameters. If the parameters are > really discrete things, then it cannot differentiate > with respect to them. > > John Well not really. It is a discrete problem from the start, but I'm using tformarray (transform multiple images) inside my fminunc-function to make an interpollation (I guess) between the different 'layers' of the 3d volume so none discrete value are very much acceptable. Current setting is: DiffMineChange: 0.1 DiffMaxChange: 5 //Eskil
|
Pages: 1 Prev: Problem in quad & quadgk Next: converting the size of expression |