ZhiqiangZhangCUGB / machine-learning-and-geophysical-inversion

:earth_asia: The purpose of this repo is to reconstruct paper about machine learning and inversion. Tech stack: Jupyter Notebook, Google Colab, Python & TeX.

Home Page:https://ezygeo.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HitCount GitHub contributors GitHub last commit GitHub top language GitHub language count GitHub repo size GitHub code size in bytes LinkedIn

Machine Learning and Geophysical Inversion

The purpose of this repository is to reconstruct paper from Y. Kim and N. Nakata (The Leading Edge, Volume 37, Issue 12, Dec 2018) about Geophysical inversion versus machine learning in inverse problems and B. Russel (The Leading Edge, Volume 38, Issue 7, Jul 2019) about Machine learning and geophysical inversion — A numerical study. We construct this paper using Python and PyCharm IDE.

Before I will do it, I just try to compare Machine Learning (Multilayer Perceptron Neural Networks (MLPNN)) and Geophysical Inversion (traditional Damped Least Squares (Levenberg–Marquardt) inversion technique (DLS)) using paper from Ilknur Kaftan (Pure Appl. Geophys., Vol. 171, Issue 8, pp 1939–1949, 2014) about Inversion of Self Potential Anomalies with Multilayer Perceptron Neural Networks.

Machine Learning and Geophysical Inversion: Self-Potential Case

Reference: Inversion of Self Potential Anomalies with Multilayer Perceptron Neural Networks Ilknur Kaftan et. al, 2014, Pure Appl. Geophys Syntethic data was created from sphere model (using fwd_sp.py) with parameters K = 94,686, h = 41.81 m, alpha = 309.37, dan x0 = 77.07 m. This result can be downloaded here and seen below with noise distribution.

Geophysical Inversion: Damped Least Squares (Levenberg–Marquardt) inversion (DLS)

I use DLS algorithm from Kode Praktikum GP2103 Metode Komputasi versi Python tutorial: Modul 6 - Metode Komputasi 2018 - GP UP.pdf, page 34 and pm6f.py code. This result was showed using sp_dls_inversion.py below.

Initial Model x0: 20 | alpha: 100 (deg) | h: 40 | K: 94500

Real Model x0: 77.070000 | alpha: 5.399525 (rad) | h: 41.810000 | K: 94686.000000

Inversion Model x0: 76.243426 | alpha: 5.415794 (rad) | h: 42.776603 | K: 99102.106072

Error: 0.029529 %

with research paper reference W. Srigutomo, et al, 2016 that is modified sp_dls_inversion_scratch.py below. Jacobian matrix was calculated using derrivatives_in_python.py.

Machine Learning: Multilayer Perceptron Neural Networks (MLPNN)

Self-Potential Dataset that was generated with 5,000 different spherical models (using sp_make_dataset.py) with differing electrical dipole moment, polarization angle, origin and depth to the centre of sphere here and seen below (using sp_show_dataset.py). This dataset contains training (80%) dan validation (20%) dataset.

This MLPNN used two (2) hidden layers, input layer used 101 point of data (neurons), first layer used 2 neurons and second layer used five (5) neurons. Then, learning rate = 0.1, activation function = hyperbolic tangent sigmoid function. The final MSE = 0.00306092 from 150 epochs.

About

:earth_asia: The purpose of this repo is to reconstruct paper about machine learning and inversion. Tech stack: Jupyter Notebook, Google Colab, Python & TeX.

https://ezygeo.com

License:MIT License


Languages

Language:Jupyter Notebook 75.8%Language:Python 24.2%