seismic-inversion

Seismic inversion using a neural network regulariser implemented as an ExternalOperator in Firedrake

https://github.com/nbouziani/seismic-inversion

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary

Keywords

autograd automatic-differentiation dolfin-adjoint domain-specific-language firedrake machine-learning neural-network-based-regularizer partial-differential-equations seismic-inversion ufl
Last synced: 6 months ago · JSON representation ·

Repository

Seismic inversion using a neural network regulariser implemented as an ExternalOperator in Firedrake

Basic Info
  • Host: GitHub
  • Owner: nbouziani
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 47.9 KB
Statistics
  • Stars: 12
  • Watchers: 4
  • Forks: 4
  • Open Issues: 0
  • Releases: 1
Topics
autograd automatic-differentiation dolfin-adjoint domain-specific-language firedrake machine-learning neural-network-based-regularizer partial-differential-equations seismic-inversion ufl
Created over 4 years ago · Last pushed about 3 years ago
Metadata Files
Readme License Citation

README.md

Seismic inversion: Neural network regularisation using ExternalOperator

This repository is the official implementation of the seismic inversion example in "Escaping the abstraction: a foreign function interface for the Unified Form Language [UFL]", accepted at NeurIPS 2021 (Differentiable Programming workshop) and received the Best Paper award.

DOI

Requirements

In order to run the example, you need to have a working firedrake installation.

1) Instructions to install Firedrake can be found here.

2) To install additional requirements:

setup pip install -r requirements.txt

Seismic inversion

The seismic inversion can be run via the seismic_inversion.py file. When running the file you can specify:

  • regulariser: An integer indicating the type of regularisation to take into account: (0: No regularisation, 1: Tikhonov, 2: Neural network)
  • scale_noise: Scale factor applied on the noise to make the observed data from the exact solution.
  • alpha: Regularisation factor

Run the command:

seismic_run python seismic_inversion.py -regulariser {regulariser} -scale_noise {scale factor} -alpha {regularisation factor}

You can reproduce the figures of the article via:

seismic_run python seismic_inversion.py -regulariser 0 1 2

Here are the corresponding figures:

Velocity obtained with: Exact solution (upper left), neural network regularisation (upper right), Tikhonov regularisation (lower left), no regularisation (lower right)

Citation

If you found this work to be useful, then please cite: (arXiv paper)

bibtex @article{bouziani-ham-2021-escaping, author={Nacime Bouziani and David A. Ham}, title={Escaping the abstraction: a foreign function interface for the {Unified} {Form} {Language} [{UFL}]}, year={2021}, journal={Differentiable Programming workshop at Neural Information Processing Systems 2021} }

Owner

  • Name: Nacime Bouziani
  • Login: nbouziani
  • Kind: user
  • Location: London
  • Company: Imperial College London

President's PhD scholar at Imperial College London

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Bouziani"
  given-names: "Nacime"
  orcid: "https://orcid.org/0000-0002-1692-0173"
- family-names: "Ham"
  given-names: "David"
title: "Seismic inversion using neural network regularisation implemented as an ExternalOperator in Firedrake"
version: 1.0
doi: 10.5281/zenodo.5526273
date-released: 2021-09-24
url: "https://github.com/nbouziani/seismic-inversion"

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Dependencies

requirements.txt pypi
  • matplotlib ==3.0.3
  • numpy ==1.16.3
  • torch ==1.1.0