-
Notifications
You must be signed in to change notification settings - Fork 124
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
Issue with LINE SEARCH FAILED. #220
Comments
I mean it's a simple elastic wave inversion. Updating vp and vs at the same time, I'm not sure if it's affected by cross-talk noise or if there's something wrong with my parameter file. I also tried increasing the step count but get 'minimum poisson's ratio is negative'. I have tested (with a matlab FD2D code) that simultaneous vp vs inversion is usually affected by cross-talk noise even in model test. I think it may be that the model update is not good enough and LINE SEARCH want to keep working, and reach the step count limit (step_count_max=5). My question is why the model is not updated when the data error drops (after reaching step_count_max)
|
update: when step_count_max=5:
when step_count_max=9:
|
updates and Suggestions: Recursive in here:bracket.py `
` However, we can't increase the step length indefinitely, because it will get wrong result and incorrect Vp/Vs ratio. So I think we should set a reasonable step limit, but when we reach the maximum step length, seisflow should update the gradient with that maximum step length, rather than get error. |
Hi @trinitite271, thanks for the detailed logging here. Yes this has now become more of a science problem than a code problem. The Line Search module is attempting to work a bracketing line search to get a handle on the misfit space, which means it needs to be able to reduce the misfit, and then increase it again, so that it can estimate the curvature of the misfit space. The fact that the line search is able to reduce the misfit but not re-increase it means that it cannot do this, suggesting the problem may be ill-posed (starting solution too far from the true solution, not enough constraint from the 'data', misfit space is not well-behaved, etc.). As you have discovered, you have a few knobs to turn to help this along I would advise against updating a model just because you hit the maximum step length, because the line search is really telling you that it does not have a good handle on the misfit space so you may be updating into a local minimum and/or your final model may be incorrect/unphysical, which is what is what it is telling you when you see a Vp/Vs ratio, poisson's ratio error, etc. Unfortunately this is just a part of solving these types of non-unique, iterative inverse problems! Even for elastic 2D problems. |
After fixing the tomo bug (#219), I tried to invert the model. However I encountered 'LINE SEARCH FAILED'. I guessed that one shot was not enough, so I inverted with 30 shots, but I still got 'LINE SEARCH FAILED', but the gradient looks good, and the step length increase and misfit is decreasing, looks good. The full result in https://github.com/trinitite271/seisflow1/tree/master
gradient:
The text was updated successfully, but these errors were encountered: