Comments (8)
@claudiofantacci @xEnVrE I am relative sure it does not apply to your case, but it may be interesting for you to know that in some context (where you have a lot of low-rank updates) the computation of the inverse matrix via repeated uses of the Sherman–Morrison–Woodbury identity is numerically noisy/unstable ( https://epubs.siam.org/doi/abs/10.1137/0907034?journalCode=sijcd4 ). For Symmetric Positive Definite matrices it is sometimes preferred to use the Cholesky Update, see for example https://www.semanticscholar.org/paper/Low-Rank-Updates-for-the-Cholesky-Decomposition-Seeger/8e22b71338d20c884bbb904155f12227781eb750 .
from bayes-filters-lib.
If you are interested in this, we can also check out Section 3.3 of http://pasa.lira.dist.unige.it/pasapdf/1228_Gijsberts+Metta2012.pdf (that is actually the reason I am aware of this stuff).
from bayes-filters-lib.
Thank you @traversaro for your point. I wasn't aware of this. If I am not wrong, Cholesky Update is also used in the square root
form of the Unscented Kalman Filter exactly for this reason.
In the end, the paper from which we are taking this kind of usage of the SMW identity, rewrites the covariance matrix using a sort of Cholesky factorization but the inner structure of the factors is exactly known. Don't know if, by using Cholesky updates, it is possible to obtain the same speedup as we are getting with SMW. I'll read the references you pointed out.
from bayes-filters-lib.
We actually still have the code from the Cholesky update in icub-main, see:
- https://github.com/robotology/icub-main/blob/4f5881acafab693f763dd277f87a8996fdea01a3/src/libraries/learningMachine/include/iCub/learningMachine/Math.h#L100
- https://github.com/robotology/icub-main/blob/4f5881acafab693f763dd277f87a8996fdea01a3/src/libraries/learningMachine/src/Math.cpp#L136
from bayes-filters-lib.
Thanks for the digression! Looking forward to it 👍
from bayes-filters-lib.
Closed after #74.
from bayes-filters-lib.
@traversaro thanks for the comment. I think we may want to consider it anyway 👍
from bayes-filters-lib.
Let's move the discussion in #76!
from bayes-filters-lib.
Related Issues (20)
- Cannot call non-cost methods from `predictedMeasure` of `MeasurementModel` class HOT 1
- Update branch protection rules and remove Ubuntu 18.04 HOT 1
- Uncoherent `skip`-related variable value in `*Prediction` classes HOT 1
- Move assignment operators do not check for self assignment
- Output GaussianMixture in sigma_point::unscented_transform does not reflect the internal composition of the measurement vector HOT 3
- Fixed-size vectorizable Eigen matrices in WhiteNoiseAcceleration HOT 13
- Move `ExogenousModel` inside `StateModel`s classes HOT 2
- Double check protected data member HOT 3
- Implement multiple-measurement facilities
- Rethink and reimplement `getOutputState`
- Update implementation of `FilteringAlgorithm` and derived classes
- Avoid (or not) default implementation of method `MeasurementModel::getNoiseCovarianceMatrix` HOT 1
- Cholesky update
- bfl::Gaussian::resize hides overloaded virtual function
- Clean CHANGELOG.md HOT 1
- Switch from current CI system to GitHub actions HOT 2
- About the const-ness of some methods of class MeasurementModel HOT 4
- Provide a mechanism for measurement / predicted measurement invalidation
- Building Library on Windows HOT 4
- Remove custom FindEigen3.cmake HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bayes-filters-lib.