The inverse problem, mathematically

Part 6, Full-Waveform Inversion

Learning objectives

  • State the L2 FWI objective function and identify its inputs
  • Derive the gradient update rule via the adjoint state method
  • Explain cycle skipping and how frequency controls the basin of attraction
  • Describe the full FWI iteration: forward, adjoint, gradient, line search, repeat

Full-waveform inversion (FWI) treats seismic imaging as a nonlinear least-squares optimisation problem. You have observed data d_mathrmobs(s,r,t)d\_{\\mathrm{obs}}(s, r, t) recorded at receivers rr from sources ss. You have a model mm (usually velocity, sometimes density or anisotropy) and a wave simulator that produces synthetic data d_mathrmsyn(m)d\_{\\mathrm{syn}}(m). Pick the mm that minimises the difference. That is FWI in one sentence. The rest of this section is what that optimisation actually costs and why it is so hard to do without getting lost in local minima.

1. The L2 objective function

J(m)=12βˆ‘s,r,t[dobs(s,r,t)βˆ’dsyn(s,r,t; m)]2J(m) = \tfrac{1}{2} \sum_{s,r,t} \bigl[d_{\mathrm{obs}}(s,r,t) - d_{\mathrm{syn}}(s,r,t;\,m)\bigr]^2

This is the ordinary squared-error misfit integrated over every source, receiver, and time sample. A small JJ means the synthetic data match the observed data; a large JJ means they do not. FWI is gradient descent on J(m)J(m) in the space of all possible velocity models. L2 is the default because it has a well-behaved gradient; more robust variants (L1, Huber, correlation-based) are used when the data has outliers or large systematic errors.

2. The gradient and the adjoint state method

To run gradient descent we need nabla_mJ\\nabla\_m J, the partial derivative of JJ with respect to every pixel of the velocity model. A naive finite-difference approach would perturb each pixel, re-run the simulator, and measure the change in JJ. That costs one forward simulation per pixel, which for a model with 10610^6 pixels is impossible. The adjoint state method gets the entire gradient with just two simulations per shot, however many model parameters there are:

  1. Forward: Run the wave equation forward from the source wavelet to get the forward wavefield U_s(x,z,t)U\_s(x, z, t) and the synthetic data d_mathrmsynd\_{\\mathrm{syn}}.
  2. Residual: Compute the trace-by-trace residual deltad(s,r,t)=d_mathrmsyn(s,r,t)βˆ’d_mathrmobs(s,r,t)\\delta d(s, r, t) = d\_{\\mathrm{syn}}(s, r, t) - d\_{\\mathrm{obs}}(s, r, t).
  3. Adjoint: Inject deltad(s,r,t)\\delta d(s, r, t) in reverse time as a source at each receiver, and propagate the wave equation backward to get the adjoint wavefield U\_r^\\dagger(x, z, t).
  4. Cross-correlate: The gradient at each pixel is
βˆ‚Jβˆ‚m(x,z)=βˆ‘s∫0Tβˆ‚2Usβˆ‚t2(x,z,t) Ur†(x,z,t) dt(m=1/v2)\frac{\partial J}{\partial m}(x,z) = \sum_s \int_0^{T} \frac{\partial^2 U_s}{\partial t^2}(x,z,t)\,U_r^\dagger(x,z,t)\,dt \quad (m = 1/v^2)

a zero-lag cross-correlation between the forward wavefield, differentiated twice in time, and the adjoint wavefield, here for the model parameter m=1/v2m = 1/v^2 (Tarantola, 1984). It has the same structure as the RTM imaging condition of Section 5.7: FWI and RTM share the machinery and differ in what they back-propagate (the data residual against the recorded data) and in how they use the result. RTM outputs an image (reflectivity); FWI outputs a velocity-model correction.

3. The cycle-skipping problem

Gradient descent converges to the nearest local minimum of J(m)J(m). If the initial model is close to the truth, that local minimum is the global minimum and the answer is right. If the initial model is far from the truth, the local minimum can be a cycle-skipped solution, a model where the synthetic data match the observed data shifted by one full period (one cycle). Gradient descent cannot see past the next peak of the misfit, so it never finds the true minimum.

The boundary is set by frequency. If the synthetic and observed traces are misaligned by more than about half a wavelet period (T/2=1/(2f)T/2 = 1/(2f)), the gradient points the wrong way, toward the cycle-skipped minimum instead of the true one. The global basin of J(m)J(m), the region from which gradient descent converges to the truth, spans time shifts ∣Deltat∣<T/2=1/(2f)|\\Delta t| < T/2 = 1/(2f) by this rule of thumb; for a Ricker wavelet of peak frequency ff the misfit actually peaks slightly inside it, near ∣Deltat∣approx0.43/f|\\Delta t| \\approx 0.43/f, and the false minimum sits about one period away.

4. The widget

One flat reflector lies 1000 m down under a layer whose true velocity is V_mathrmtrueV\_{\\mathrm{true}} = 2000 m/s, recorded at zero offset, so the observed reflection arrives at 1.00 s. Choose a trial velocity VV, the starting model: the figure moves the synthetic reflection to 2z/V2z/V, measures the misfit J(V)J(V) on the sampled traces, and runs gradient descent from your start to see where it stops. Then change the peak frequency ff and run it again.

FWI cycle-skipOBSERVEDMODELED (one cycle late)FWI matches a wrong peak to a real one - minimum found is not the true minimum

The figure opens on the failure. At 15 Hz a start of 1900 m/s is 53 ms late, 1.6 half periods, past the ridge of JJ at 0.86 half periods, and descent slides to a false minimum at 1886 m/s, 61 ms from the observed arrival and close to one period (67 ms). The basin at 15 Hz runs only from 1944 to 2059 m/s. Drop the frequency to 5 Hz and the same start converges, because the basin widens to 1841 to 2189 m/s. Raise it to 45 Hz and the basin shrinks to 1981 to 2019 m/s, about 20 m/s either side of the truth: a start at 1980 m/s is already cycle-skipped. Plate (d) draws the trade-off for every frequency, and a start converges only below the frequency where its line leaves the shaded basin, 8.2 Hz for 1900 m/s. Switch the descent to climb from 4 Hz and the same 1900 m/s start reaches 2000 m/s at 15 Hz, because each band starts inside the next band's basin. This trade-off is the single most important number in production FWI: the lowest usable frequency sets how forgiving the method is of your starting model.

5. The FWI iteration in full

  1. Initialise with a smooth velocity model from tomography (Section 5.9), well logs, or prior seismic.
  2. Filter the observed data to the lowest available frequency band.
  3. Forward the source wavelet through the current model to get synthetic data.
  4. Residual: deltad=d_mathrmsynβˆ’d_mathrmobs\\delta d = d\_{\\mathrm{syn}} - d\_{\\mathrm{obs}}.
  5. Adjoint: reverse-propagate deltad\\delta d as a receiver-side source.
  6. Gradient: zero-lag cross-correlate the forward wavefield, differentiated twice in time, with the adjoint wavefield at every pixel.
  7. Pre-condition the gradient (scale by approximate inverse Hessian, apply masks that zero out regions outside the illumination cone).
  8. Line search along the negative gradient to find the step length alpha\\alpha that minimises J(mβˆ’alphag)J(m - \\alpha g).
  9. Update: mleftarrowmβˆ’alphagm \\leftarrow m - \\alpha g.
  10. Repeat until convergence (gradient magnitude below a threshold, or JJ stops decreasing).
  11. Raise the frequency band and return to the Forward step: this is multi-scale continuation.

A production 3D FWI runs this loop for 50-200 outer iterations across 5-10 frequency bands. Each outer iteration is 2 wave simulations (forward + adjoint) per shot Γ— thousands of shots. GPU clusters run for days to weeks per frequency band. The final model is worth it: FWI resolves velocity detail down to about half the wavelength of the highest frequency inverted (Virieux and Operto, 2009), far finer than ray-based tomography can reach.

6. What can go wrong

  • Cycle skipping, the whole message of Figure 6.1. Mitigate by starting at low frequency, and by a starting model whose traveltimes are within about half a period of the data at the starting frequency.
  • Local minima from unmodelled physics. If the data contain elastic converted waves and the simulator is acoustic, the residual contains events no velocity model can fit, so FWI tries to match them by distorting the velocity and the model degrades. Elastic FWI (Section 6.4) is the answer.
  • Source-wavelet errors. A mismatched source wavelet maps to a systematic velocity bias. Solution: jointly invert for the source wavelet, or use source-independent misfits (correlation coefficient, trace-envelope matching).
  • Noise in the observations. Low-frequency swell noise, power-line interference, 50 or 60 Hz hum. FWI tries to fit all of it. Pre-filter aggressively; use robust misfits in noisy bands.
  • Computational cost. Forward + adjoint per shot per iteration per band gets expensive quickly. See Section 6.3 for source-encoded FWI, which collapses thousands of shots into a few "super-shots".
The one sentence to remember

FWI is gradient descent on 12βˆ‘(dobsβˆ’dsyn(m))2\tfrac12\sum(d_{\mathrm{obs}} - d_{\mathrm{syn}}(m))^2, with the adjoint-state method giving the gradient in two wave simulations per shot. The whole game is avoiding cycle skipping, and the answer is to start at low frequency and climb.

Where this goes next

Section 6.2 turns the cycle-skipping tradeoff into a concrete workflow: multi-scale frequency continuation, data preconditioning, envelope-FWI, time-domain-windowing strategies, and the family of tricks production FWI uses to stretch the usable frequency band downward.

References

  • Tarantola, A. (1984). Inversion of seismic reflection data in the acoustic approximation. Geophysics, 49, 1259.
  • Virieux, J., Operto, S. (2009). An overview of full-waveform inversion in exploration geophysics. Geophysics, 74, WCC1.
  • Pratt, R. G. (1999). Seismic waveform inversion in the frequency domain, Part 1. Geophysics, 64, 888.
  • Bunks, C., Saleck, F. M., Zaleski, S., Chavent, G. (1995). Multiscale seismic waveform inversion. Geophysics, 60, 1457.

This page is prerendered for SEO and accessibility. The interactive widgets above hydrate on JavaScript load.