justin solomon david bommes · 2015-07-06 · direct (explicit matrix) dense: gaussian...

74
Justin Solomon Princeton University David Bommes RWTH Aachen University

Upload: others

Post on 08-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Justin SolomonPrinceton University

David BommesRWTH Aachen University

Page 2: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Optimization.

Synonym(-ish): Variational methods.

Page 3: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Optimization.

Synonym(-ish): Variational methods.

Caveat: Slightly different connotation in ML

Page 4: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply
Page 5: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

ClientWhich optimization tool is relevant?

DesignerCan I design an algorithm for this problem?

Page 6: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Optimization is a huge field.

Patterns, algorithms, & examples common in geometry processing.

Page 7: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Vocabulary

Simple examples

Unconstrained optimization

Equality-constrained optimization

Part I (Justin)

Page 8: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Inequality constraints

Advanced algorithms

Discrete problems

Conclusion

Part II (David)

Page 9: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Vocabulary

Simple examples

Unconstrained optimization

Equality-constrained optimization

Part I (Justin)

Page 10: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Objective (“Energy Function”)

Page 11: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Equality Constraints

Page 12: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Inequality Constraints

Page 13: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Gradienthttps://en.wikipedia.org/?title=Gradient

Page 14: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Hessianhttp://math.etsu.edu/multicalc/prealpha/Chap2/Chap2-5/10-3a-t3.gif

Page 15: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Jacobianhttps://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant

Page 16: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Critical point

(unconstrained)

Saddle point

Local min

Local max

Page 17: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Critical points

may not be minima.

Page 18: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply
Page 19: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Numerical Algorithms, Solomon

More later

Page 20: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Vocabulary

Simple examples

Unconstrained optimization

Equality-constrained optimization

Part I (Justin)

Page 21: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply
Page 22: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

How effective are generic

optimization tools?

Page 23: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Try the

simplest solver first.

Page 24: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

(assume A is symmetric and positive definite)

Page 25: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Normal equations(better solvers for this case!)

Page 26: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

G. Peyré, mesh processing course slides

Page 27: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

𝒘𝒊𝒋 ≡ 𝟏: Tutte embedding

𝒘𝒊𝒋 from mesh: Harmonic embedding

Assumption: 𝒘 symmetric.

Page 28: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Laplacian matrix!

Page 29: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

K. Crane, brickisland.net

Leads to famous cotangent weights!Useful for interpolation.

Page 30: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Never construct 𝑨−𝟏 explicitly(if you can avoid it)

Added structure helpsSparsity, symmetry, positive definite

Page 31: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Direct (explicit matrix)

Dense: Gaussian elimination/LU, QR for least-squares

Sparse: Reordering (SuiteSparse, Eigen)

Iterative (apply matrix repeatedly)

Positive definite: Conjugate gradients

Symmetric: MINRES, GMRES

Generic: LSQR

Page 32: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Induced by the connectivity of the triangle mesh.

Iteration of CG has local effect⇒ Precondition!

Page 33: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

What if 𝑽𝟎 = {}?

Page 34: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Prevents trivial solution 𝒙 ≡ 𝟎.

Extract the smallest eigenvalue.

Page 35: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Prevents trivial solution 𝒙 ≡ 𝟎.N contains basis for null space of A.

Extract the smallest nonzero eigenvalue.

Page 36: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Mullen et al. “Spectral Conformal Parameterization.” SGP 2008.

Page 37: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

2 3 4 5 6 7 8 9 10

“Laplace-Beltrami Eigenfunctions”

Page 38: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply
Page 39: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Roughly:

1.Extract Laplace-Beltrami eigenfunctions:

2.Find mapping matrix (linear solve!):

Ovsjanikov et al. “Functional Maps.” SIGGRAPH 2012.

Page 40: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Vocabulary

Simple examples

Unconstrained optimization

Equality-constrained optimization

Part I (Justin)

Page 41: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply
Page 42: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Unstructured.

Page 43: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Gradient descent

Page 44: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Gradient descent

Line search

Page 45: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Gradient descent

Multiple optima!

Page 46: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Accelerated gradient descent

Quadratic convergence on convex problems!(Nesterov 1983)

Page 47: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Newton’s Method

1

2

3

Line search for stability

Page 48: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Quasi-Newton: BFGS and friends

Hessian approximation

(Often sparse) approximation from previous samples and gradients

Inverse in closed form!

Page 49: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Often continuous gradient descent

M. Kazhdan

Page 50: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Fröhlich and Botsch. “Example-Driven Deformations Based on Discrete Shells.” CGF 2011.

Page 51: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Roughly:

1. Linearly interpolate edge lengths and dihedral angles.

2. Nonlinear optimization for vertex positions.

Sum of squares: Gauss-Newton

Page 52: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Matlab: fminunc or minfunc C++: libLBFGS, dlib, others

Typically provide functions for function and gradient (and optionally, Hessian).

Try several!

Page 53: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Vocabulary

Simple examples

Unconstrained optimization

Equality-constrained optimization

Part I (Justin)

Page 54: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply
Page 55: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

- Decrease f: −𝛁𝒇- Violate constraint: ±𝛁𝒈

Page 56: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Want:

Page 57: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply
Page 58: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Turns constrained optimization into

unconstrained root-finding.

Page 59: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

ReparameterizationEliminate constraints to reduce to unconstrained case

Newton’s methodApproximation: quadratic function with linear constraint

Penalty methodAugment objective with barrier term, e.g. 𝒇 𝒙 + 𝝆|𝒈 𝒙 |

Page 60: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

(assume A is symmetric and positive definite)

Page 61: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

No longer positive definite!

Page 62: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Example: Levenberg-Marquardt

Fix (or adjust) damping parameter

𝝀 > 𝟎.

Page 63: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Huang et al. “L1-Based Construction of Polycube Maps from Complex Shapes.” TOG 2014.

Page 64: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Align with coordinate axes

Preserve area

Note: Final method includes several more terms!

Page 65: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply
Page 66: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Try lightweight options

versus

Page 67: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Try lightweight options

versus

Page 68: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Repeatedly solve linear systems

“Geometric median”

Page 69: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

d can be aBregman divergence

Page 70: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Decompose as sum of hard part f and easy part g.

https://blogs.princeton.edu/imabandit/2013/04/11/orf523-ista-and-fista/

Page 71: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Add constraint to objective

Does nothing when constraint is satisfied

Page 72: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

https://web.stanford.edu/~boyd/papers/pdf/admm_slides.pdf

Page 73: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

Want two easy subproblems

Augmented part

Solomon et al. “Earth Mover’s Distances on Discrete Surfaces.” SIGGRAPH 2014.

Page 74: Justin Solomon David Bommes · 2015-07-06 · Direct (explicit matrix) Dense: Gaussian elimination/LU, QR for least-squares Sparse: Reordering (SuiteSparse, Eigen) Iterative (apply

https://en.wikipedia.org/wiki/Frank%E2%80%93Wolfe_algorithm

Linearize objective, not constraints