octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Octave Forge] Possible addition of gradient-descent framework for o


From: Olaf Till
Subject: Re: [Octave Forge] Possible addition of gradient-descent framework for optim package
Date: Fri, 23 Oct 2015 09:56:58 +0200
User-agent: Mutt/1.5.23 (2014-03-12)

On Fri, Oct 23, 2015 at 08:59:54AM +0200, Daniel Kraft wrote:
> ...
> and very different from
> optimisation in vector spaces where such algorithms are usually
> formulated.  This is much more similar to optimisation on manifolds, as
> far as I understand the general optimisation theory (which is not my
> main topic of research).
> 
> For instance, the concepts of "point" and "direction" are very different
> from each other.  You cannot simply do something like
> 
>   x_new = x_current + step * direction".
> 
> I assume that all existing algorithm code would have to be rewritten for
> that (but I may be wrong).

Unfortunately I can't comment on this, since I'm not familiar with
your field of research ...

> ...
> Which callbacks do you mean here -- the function evaluation and gradient
> computation and so on?  I'm not sure if this can be used to extract all
> of the information I use -- which includes not just all points along the
> optimisation, but also things like accepted line-search steps.  Is this
> available from the callbacks?

There is also the callback function(s) in the option
"user_interaction" (similar to Matlabs "OutputFcn"). There are some
(optional) standard fields in the informational structure it gets as
an argument. But each algorithm can choose to add additional
information to it; it might be good, however, to decide on the names
of the fields and their contents in community. As yet we have no
algorithm with line-search.

> Summarising the discussion so far, I think that the problem I'm tackling
> with shape optimisation is quite different from the usual numerical
> optimisation stuff (mostly because the setting is not a vector space).
> I think that one cannot easily fit it into existing optimisation
> backends; since it is still "optimisation", I believe that my code could
> still fit to the optim package -- as a separate category for
> optimisation on manifolds, for instance.  But I also understand if you
> think this is too far off the scope of the package; after all, maybe it
> fits best to level-set for shape optimisation unless a separate package
> for manifolds or shape optimisation is created.

Since you say your problem needs an algorithm with line search, a new
algorithm would indeed have to be added. But as you say your problem
can't be transformed into one in which just vector elements are
optimized, this would indeed be a blocker from using existing
frontends of optim.

If that is so, I'd favour leaving your code in 'levelset' or in a
separate package. A similar issue are neural nets, where optimization
is performed, too, but the code is not in the 'optim' package.

Olaf

-- 
public key id EAFE0591, e.g. on x-hkp://pool.sks-keyservers.net

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]