[SciPy-dev] Abstract vectors in optimization
Thu Jan 8 14:39:28 CST 2009
On Thu, Jan 8, 2009 at 09:59, Ben FrantzDale <email@example.com> wrote:
> On Tue, Jan 6, 2009 at 10:56 PM, Robert Kern <firstname.lastname@example.org> 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.
> 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.
Also look at the code I posted for an example of a particular manifold.
"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