An acausal modeling framework for automatically parallelized scientific machine learning (SciML) in Julia. A computer algebra system for integrated symbolics for physics-informed machine learning and automated transformations of differential equations
I've started a deep dive into MTK with the idea of applying it to a model problem I have in my mind which is basically a variation on SLAM. The SLAM problem ultimately finds its representation as large-scale nonlinear least squares (LS) minimization. Unlike generic optimization techniques, which work with a scalar objective function, LS methods (e.g., Gauss-Newton, etc.) work with the residual vector and its Jacobian.
However, I can't really see a good way to build up the residual function with the existing infrastructure. OptimizationSystem looks as though it is intended to wrap scalar objectives only, and has no definition for calculate_jacobian.
I thought about using NonlinearSystem to build up residual factors, but it seems a bit awkward, if not inappropriate, to represent residual components as Equations, and not just expressions.
Maybe I can just make due, meanwhile, by using NonlinearSystem and prepending 0 ~ to all residual components?
Anyway, any guidance for both near-term and longer-term solutions would be much appreciated. I'll be happy to contribute my own efforts into making it a reality to the extent of my capability.
Thanks for the reply. I'll close this issue for now. Especially because your comments would suggest that solver work is needed to motivate changes here.
I've started a deep dive into MTK with the idea of applying it to a model problem I have in my mind which is basically a variation on SLAM. The SLAM problem ultimately finds its representation as large-scale nonlinear least squares (LS) minimization. Unlike generic optimization techniques, which work with a scalar objective function, LS methods (e.g., Gauss-Newton, etc.) work with the residual vector and its Jacobian.
However, I can't really see a good way to build up the residual function with the existing infrastructure.
OptimizationSystem
looks as though it is intended to wrap scalar objectives only, and has no definition forcalculate_jacobian
.I thought about using
NonlinearSystem
to build up residual factors, but it seems a bit awkward, if not inappropriate, to represent residual components asEquation
s, and not just expressions.Maybe I can just make due, meanwhile, by using
NonlinearSystem
and prepending0 ~
to all residual components?Anyway, any guidance for both near-term and longer-term solutions would be much appreciated. I'll be happy to contribute my own efforts into making it a reality to the extent of my capability.
I also posted to discourse.