Skip to content

L1 (absolute-difference) misfit

Definition

\[ \mathcal{J}_{L_1}(m) \;=\; \sum_{s,t,r,c} \bigl| d_{\mathrm{syn}}[s,t,r,c] - d_{\mathrm{obs}}[s,t,r,c]\bigr|. \]

The "influence function" — the gradient of \(|r|\) with respect to the residual \(r\) — is \(\operatorname{sign}(r)\), a bounded function. This makes L1 much more robust to outliers than L2: a single huge residual contributes only \(\pm 1\) to the gradient.

When to use

  • Noisy field data where bad traces or large coherent outliers (spikes, ground-roll bursts) dominate the L2 norm.
  • As a "stable" complement to L2 in hybrid schemes (see hybrid_l1l2).

The function is non-differentiable at \(r=0\); PyTorch returns 0 there as a sub-gradient.

API

from sweep_loss import L1Loss, l1_loss
loss = L1Loss(reduction="mean")(syn, obs)

Tests

tests/test_l1.py checks:

  • L(d,d)=0,
  • numerical agreement with F.l1_loss for both reductions,
  • analytic gradient dJ/dsyn = sign(syn - obs) on hand-picked samples,
  • outlier-robustness vs. L2 on a single \(10^3\) spike.

References

  • Crase, E., Pica, A., Noble, M., McDonald, J. & Tarantola, A. (1990). Robust elastic nonlinear waveform inversion: application to real data. Geophysics 55 (5), 527-538. doi:10.1190/1.1442864
  • Brossier, R., Operto, S. & Virieux, J. (2010). Which data residual norm for robust elastic frequency-domain full waveform inversion? Geophysics 75 (3), R37-R46. doi:10.1190/1.3379323