If the problem is poorly conditioned, it basically means that different variables require vastly varying magnitudes of change to decrease the objective function value.
If you start with the linear system itself, and you are using a direct solver + exact arithmetic, then preconditioning has no effect on the solution. In floating point + direct solver it will improve the accuracy of the solution, in floating point + iterative solver, it will be the difference between getting a usable solution in a reasonable amount of time or not.
Regards
Simeon
Reading Nocedal and Wright's book Numerical Optimization, and your discussion in topic "Initialization of Levenberg-Marquardt", I was wondering how ceres-solver handels scaling issues.
In the documentation I found the option Solver::Options::jacobi_scaling which is enabled by default.
In the book I read about scaling fit parameters so that they are expected to have the same order magnitude (diagonal sacling chapter 2.1).
And about using elliptical trust regions (chapter 4.5).
I use Levenberg Marquardt to solve curve fitting problems and I am wondering if I should scale my fit parameters. Is it not needed when Solver::Options::jacobi_scaling is enabled?
Maybe I am mixing things up, and the jacobi_scaling only refers to a numerical issue.
The sensitivity of some of the fit parameters depends on the values of other fitparameters. (e.g. you have two fitparameters a and b. When a is small, changes in b will highly afffect the total cost, but when a is big, changes in b will have only very small effect on the cost.)
Reading the documentation about Preconditioner, chapter 5.1 in the textbook and Sameer Agarwal's comments:If the problem is poorly conditioned, it basically means that different variables require vastly varying magnitudes of change to decrease the objective function value.If you start with the linear system itself, and you are using a direct solver + exact arithmetic, then preconditioning has no effect on the solution. In floating point + direct solver it will improve the accuracy of the solution, in floating point + iterative solver, it will be the difference between getting a usable solution in a reasonable amount of time or not.
The default preondictioner is JACOBI. As a linear solver I use DENSE_QR.
Summing up my questions:
- Should I scale my fitparameters (diagonal sacling)?
- Does scaling (diagonal sacling or jacobi_scaling) influences the condition of my problem?
- How does ceres-solver handels scaling (can it use elliptical trust regions)?
- How does scaling and preconditioning are related?
- How do I find out if my problem is ill conditioned?
--Regards
Simeon
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/bbf76b2b-f3a1-46b8-9422-fa0a729fa729%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/93849d36-a3bd-4ed5-b84b-2590fee4d3d5%40googlegroups.com.