Blind Deconvolution by Vanilla Recurrent Neural Network


November 24th, 2019

by Shihang Feng

PIC

Figure 1: (a) Input seismogram, (b) true and predict reflectivity by VRNN.

1 Objective

In this lab, we will go through vanilla recurrent neural network (VRNN) to blind deconvolution.

2 Prerequisties

3 How to use the RNN lab

Download the codes ./RNN_lab.zip and unzip it. Change your Matlab working directory under this file so you may able to use all necessary sub-functions. The main function is function RNN_deconv.m, open it in the matlab script and run.

RNN_deconv

4 Procedure of RNN

  1. Build training sets. Build a 1D reflectivity model and convolve a ricker wavelet with it to simulate a seismogram.
  2. Use the seismogram as input and reflectivity model as output. Use RNN algorithms to estimate a optimal set of weights and bias.
  3. Use another simulated seismogram to test the performance of the RNN network.

5 Recurrent Neural Network

PIC

Figure 2: The structure of the recurrent neural network.

6 Questions

  1. Use the reflectvity as the input data and the seismogram as the output, which means using RNN to mimic convolution. How does the result looks like? Why is that?
  2. Modify the structure and the parameters of RNN. See how the RNN parameter will change the result.
  3. This lab uses the conventional RNN without gate. If you are interested in LSTM, a binary caculator trained by LSIM is in ./RNN_binary_lstm.m

7 PS

If there are any errors in this lab, please contact: shihang.feng@kaust.edu.sa