[SciPy-dev] Abstract vectors in optimization

Robert Kern robert.kern@gmail....
Thu Jan 8 14:39:28 CST 2009


On Thu, Jan 8, 2009 at 09:59, Ben FrantzDale <benfrantzdale@gmail.com> wrote:
> On Tue, Jan 6, 2009 at 10:56 PM, Robert Kern <robert.kern@gmail.com> wrote:

>> I still don't think this interface supports the manifold-optimization
>> use case. The inner product and norm implementations need more
>> information than just the vectors.
>
> Good point. I've been focused on optimizing within a vector space not on a
> manifold. For nonlinear CG, I suppose the gradient needs to be a vector in
> the tangent space, which itself must be a Hilbert space, but the state
> "vector" can be in an affine space or on a manifold. What is the
> mathematically-correct operation for moving such a "vector" on its manifold?
> That operation would take the place of the line
>     xk += alpha_k * pk
> where pk is a vector in the tangent space.

You basically need to define a move(x0, dx, alpha) function.

> PS
> If you have references for optimizing on a manifold, I would be very curious
> to read more about it. Wikipedia suggests I should look into Development
> (differential geometry), Geodesics, Affine connection, and Parallel
> transport, and Retraction.

http://www-math.mit.edu/~lippert/sgmin.html

Also look at the code I posted for an example of a particular manifold.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco


More information about the Scipy-dev mailing list