Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add BFGS #92

Draft
wants to merge 6 commits into
base: devel
Choose a base branch
from
Draft

Add BFGS #92

wants to merge 6 commits into from

Conversation

fabinsch
Copy link
Collaborator

Start of work to add the Broyden–Fletcher–Goldfarb–Shanno algorithm. For now, it is a class that estimates an (inverse) Hessian from iterates and the corresponding gradients at these iterates. An optimizer can be built around it.

It implements the BFGS update rule (eqn 6.17 p. 140) to estimate the inverse Hessian and the DFP update rule (eqn 6.13 p.139) from Nocedal and Wright, Numerical Optimization, 2nd edition, which have a similar structure.

- a class to estimate (inverse) Hessian from iterates + grad
Copy link
Member

@jcarpent jcarpent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work in progress @fabinsch.
I made some minor comments related to the coding style ;)

Co-authored-by: Justin Carpentier <[email protected]>
- proof of concept to show that bfgs is working within the proxnlp solver to estimate hessians
- solve the ur5-ik task with BFGS (86iters) and compare against exact hessian (19iters) and identity hessian (345iters)
@fabinsch
Copy link
Collaborator Author

fabinsch commented Jun 3, 2024

For now, the BFGSStrategy works on Euclidian space. As a first step, I checked it therefore on the ur5-ik example and compared it against an identity hessian.

As a next step, BFGSStrategy should be extended to work on Riemannian manifolds. Then, other examples like camera-pose-optimization could be solved.

@ManifoldFR
Copy link
Member

ManifoldFR commented Oct 29, 2024

Let's schedule some time after Nov. 15th to work on this again @fabinsch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants