This example demonstrates how to use the regularization in FWI method based on automatic differentiation.
The conventional misfit function for FWI is defined as
where
A regularization term can be added to the misfit function to stabilize the inversion process, which is defined as
where
Here we use a simple first-directional derivative operator to build the regularization term. The regularization operator is defined as
where
The first-order derivative operator can be interpreted as a smoothing operator, to keep the gradient of the inverted model in both the x and z directions close to zero, that is, to keep the model smooth.
The inverted model is shown in the following figure.
The subfigure with title no_reg is the inverted model without regularization, and the subfigure with title x_reg(z_reg) is the ones with regularization in only x(z) direction, and the subfigure with title xz_reg is the one with regularization in both x and z directions.
With regularization in both x and z directions, the inverted model is smoother than the one without regularization. Perform regularization in z direction, the inverted model is only smooth in the z direction, and vice versa.
You can reproduce the figures in the paper with the script fwi.py. A function named as regularization_model(vp, x=True, z=True) is defined in the script to perform regularization. You can change the regularization direction by setting the parameter x or z in the function. Please refer to the script for more details.
