-
Notifications
You must be signed in to change notification settings - Fork 21
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
Difficulty with 4 doors example, expecting roughly equal modes #1765
Comments
Hi @itsDionix , apologies for the late reply. This example is in the CI tests. There are two ways to induce the multidoor example, either through a mixture prior (as you have) or via the
The initialization step is akin to the prediction step used by filtering techniques which will produce all modes quite easily. The solve is supposed to retain those modes in roughly equal modes, but prune out less likely ones. The purpose of parameter Since you are getting less than ideal results it is probably a good idea on our end to review and improve the mixture belief performance. I'll add this into the roadmap, but is will only happen after two other known issues are resolved. The best way for us to confirm is to make this test more stringent (the multihypo method):
Not in the next few weeks, however, we have been reworking a lot of fundamental in the solver code over the past months to improve other issues. These upgrades are about halfway and may improve the performance as they get merged in. In the mean time, here are a few suggestions of this to check and try for your example:
I'd like to keep this issue open until this is better resolved, please do post any additional findings which might help find a bug. I'll also add that the code related to multihypo has been greatly refactored in the past months and we are relying on CI testing to catch bugs, but some bugs have slipped through in the past. Overall though the code quality and maintainability has been getting much better, but we have more work to do. |
Maybe similar in issue name, but that problem was resolved during some of the earlier work. I'd recommend the focus of this issue thread look into "expecting near equal modes". |
Thank you for the help! My experiments with the suggested settings did not result in an improvement. In case it helps, I will leave documented that: With default parameters and N=300, most times the left mode in solved x3 is the biggest of the two - this was the case in 10 out of 10 runs. With default parameters, N=300 and gibbsIters = 1, the asymmetry in the modes of solved x3 is reduced, but the solved x1 has 3 modes. I also tried defining the mixture with doorMix = Distributions.MixtureModel(components, [1 / 3; 1 / 3; 1 / 3])
doorPrior = Prior(doorMix) This did not result in a noticeable difference, though. |
Thanks for the feedback.
This is definitely a bug then. The results should have been better (and did not have this behavior in the past).
This might be due to a parasitic effect and was previously resolved with more iterations. This is moot until the bug above of "biased to one side" is resolved.
More confirmation that the issue is in the inference somewhere. Not directly relevant but worth noting for general, |
I am struggling to reproduce the results of the 4 doors example from "Multi-modal and Inertial Sensor Solutions for Navigation-type Factor Graphs", Fourie 2017. This might be related to #1570.
Included is an adapted Minimal Working Example (MWE) and two example figures of the output of the MWE with N=5000 and N=1000. The example is simplified to only 3 doors.
Specifically, I am trying to reproduce the two roughly equal modes in Figure 6-16 from Fourie's 2017 thesis, cited above. The belief for x3 I am getting from the automatic initialization in the MWE (orange dotted line in the attached figures) presents two modes that are similar, which is good. However, the issue is that proceeding to solve the graph makes the result worse, most of the time. The solved belief (solid orange line in the attached figures) places almost all probability on the left mode, when both should be equal.
At the moment, is there a way to get better performance (where both modes are roughly equal) when solving the full graph?
I am seeking to report the results in my Master's thesis, so I want to make sure that I am getting representative results.
Thank you for the time and any help you can give.
I used Julia 1.9 and IncrementalInference 0.34.0.
Next follow example results and the MWE code.
Example output with N=5000:
Example output with N=1000:
MWE:
The text was updated successfully, but these errors were encountered: