OpendTect dGB Plugins User Documentation version 3.2
PrevChapter 4. Neural NetworksNext

4.6. New from Well Data

With this module, it is possible to relate any well log to seismic data. Select an input variable (from cubes and attributes) and, an output log variable (e.g. porosity or Vshale). The neural network will try to look for a relation between the two sets. Provided a working relationship is established, the user can then apply the trained neural network to a larger volume.

Please be aware that neural networks are good interpolators, but not good in extrapolating. If you train a neural network on a certain formation or interval, it is not recommended to apply it outside that formation or interval.

Since log data is being related directly to seismic data, it is essential that the well logs have a very good tie and are well aligned with the seismic data in the interval of interest. If this is not the case, results may easily become disappointing.

Input training data set: The training data set is the collection of input and target values that the neural network is trained on. Usually, the user will leave this option at Extract now. In case you stored an input training data set before, tick then Retrieve stored and select the input training data set with a standard file browser.

Select input/target attributes: The input attributes from the active attribute set or any of the stored cubes can be selected in the left screen. The stored cubes appear in square brackets [] at the bottom of the list. On the right, select the output log variable. All available logs from all wells are shown here. If the log of interest has different names for different wells, rename first these logs so that they all have exactly the same name. The log(s) can be renamed in File - Manage - Wells.

Target contains: Specify if the target contains ordinary well logs value or a lithology log is available and can be used.

Wells to use: Select the wells on the right. From these wells, the selected target log is retrieved, if available.

Extract between: Select the markers to specify the interval the neural network should be trained on. Just as with the target logs, all available markers from the available wells are displayed. You can use the same marker twice, in combination with non-zero distance above/below. It is up to the user to make sure a marker with exactly the same name actually exists in the selected wells. To edit the markers and their names, see File - Manage - Wells.

Distance above/below: Indicate the extra distance above and below the start and stop marker respectively that should be taken into account in the training. Negative values are possible; negative above the top marker means start below the top marker. Negative below the bottom marker means stop before the bottom marker.

Radius around wells: Indicates the radius around wells where the selected input attributes are calculated for each depth of extraction. All traces within the radius are selected. For example for nearest trace leave blank or put zero.

Vertical sampling method: Well data have a much higher (vertical) resolution than seismic cubes. This means several log values correspond to a single seismic sample. Averaging can prevent aliasing problems, although this is not necessarily a problem. Therefore, one can use the median or average of the well log values corresponding to the seismic sample location. When predicting a binary variable (like sand/shale), or a lithology code, the most frequent filter will be necessary. Nearest sample selects only the nearest log value. This will be the best option in pre-filtered curves.

On pressing OK, the software starts collecting all necessary data. When all data is collected, the training starts and this can be monitored in the NN training window.


4.6.1. Balance Data

Balancing is a mandatory pre-processing step for neural network training. The distribution of input vectors is modified in order to get a flat distribution for the output quantity (target log), in the training data set. Balancing is done automatically when training from picksets or on a target log that is containing lithology codes. In both cases, the output values are discrete (integers), thus Balancing can be automated safely. An ordinary log will show continuous values between a minimum and maximum. Based on the histogram display the user may:

- Adjust the output level for the flat distribution using the Data points per class parameter.
- Train for a range of values smaller than the extracted minimum and maximum values by specifying another Data range to use.

The over-represented classes will be decimated to the data point per class parameter.
The under-represented classes will be duplicated to the data point per class parameter, with a small change of the target value for each duplicated vector. This change is controlled by the parameter Percentage noise when adding, but the default value will be appropriate for most situations.

The binning is automatically performed to compute the number of classes based on minimum, maximum and number of points. At least 10 classes will be used, with a maximum of 100 classes. 20 and 50 classes may be used to reach an optimal of 25 vectors per class. This optimal is considered as the best compromise between statistical representation and training speed.

4.6.2. NN Lithology codes

The neural network may be used to train for lithologies. For such a prediction the target log must contain lithology codes in form of integers. Multiple outputs will be available, on the contrary to training from ordinary log values:

- A classification output providing the integer corresponding to the most likely lithology at each sample.
- For each lithology code, the probability for a sample to belong to this lithology.
- A confidence output that is the difference between the probability of the most likely lithology and the probability of the second most likely probability.

A maximum of 20 lithologies may be present in the input lithology logs. The upscaling (vertical sampling) method will be set to Most Frequent when using this option "Target contains: Lithology codes" such that the integers will remain integers after the up scaling. If non integer values are found in the input logs, they will be round-up to the nearest integer.

All lithology codes present in the logs may not be used for training. For instance the input log may contain four lithology codes for respectively sand, cemented sand, shale and salt. The first step is to assign a name to each code:



The second step may be to group (Merge into) several similar lithologies and/or to discard lithologies that will not be used to training (Drop):



Training begins when pressing "OK" on this window. The training window is similar to the training window for pattern recognition (Picksets)

PrevHomeNext
New from PickSetsUpNN training window