-
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
methodology for line search inversion using the gradient #187
Comments
Hi @avinash07guddu, thanks for the question. Optimization and line search are handled by the For your specific question, seisflows/seisflows/plugins/line_search/bracket.py Lines 133 to 218 in 487b738
But the step length safeguard happens in the optimization module: seisflows/seisflows/optimize/gradient.py Lines 344 to 347 in 487b738
Hopefully that answers your question, or provides you with the correct files to look at! |
Hi @avinash07guddu, just wondering if the above reply answered your question and we can close this issue? |
Hello, I am trying to run the 2D example walkthrough. I am interested in learning the math/methodology behind the line search / bracket search method used in this example for the inversion step.
It seems in this step "scaling gradient to absolute model perturbations", the misfit kernel (sum of kernels for individual sources) in the
scratch/eval_grad/misfit_kernel/
directory is simply multiplied with model (Vs) to produce the gradient in thescratch/eval_grad/gradient/
directory.The misfit is the time integral of the square of the difference between observed and predicted waveforms.
The initial candidate value of the steplength
alpha
(1.51E+12
in the example) that should be multiplied with the gradient to produce the model perturbations appears to be 1/sum(G.^2) where G is the gradient (a 2D matrix).I am trying to understand how next two considered values of
alpha
(1.21E+10, 1.95E+09
) are produced.After this, it seems the
alpha
value is just multiplied by thegolden ratio
(1.62
) again and again to find a local minima in the misfit.If you can please point the subroutine that does these calculations or some documentation for these steps, it will be very helpful.
Thanks.
The text was updated successfully, but these errors were encountered: