3.1 Introduction and Terminology
Machine Learning (ML) is a field of computer science that uses statistical techniques to give computer systems the ability to "learn" (i.e. progressively improve performance on a specific task) with data, without being explicitly programmed. ML is subfield of Artificial Intelligence (AI) which is defined as a branch of computer science dealing with the simulation of intelligent behavior in computers.
The Machine learning plugin links the OpendTect Pro environment to the Keras (TensorFlow) and Scikit Learn platforms. With the Machine learning plugin, OpendTect users can do Clustering, Classification and Regression of the following objects:
Wells only e.g. for predicting missing logs, markers, stratigraphic trends, litho-facies, clustering logs etc.
Seismic only e.g. for clustering 3D seismic, imaging faults, chimneys, salt bodies, to predict missing traces, picking velocities, picking mutes, increasing spatial and temporal sampling rates, transforming seismic data to broadband etc.
Seismic & wells e.g. for predicting reservoir properties, explaining patterns, tying wells, etc.
Neural Network e.g. for predicting pattern and properties using the conventional Neural Network.
The Machine Learning plugin can be accessed as pointed in the image below:
The Machine Learning Control Center is developed with the same look-and-feel as other control center plugins of OpendTect.
First we select the type of data we are working with: Wells, Seismic, Seismic + Wells, or Neural Networks. The latter refers to the pre-existing Neural Networks plugin that is now started from inside the ML control center.
Next we select the workflow we want the execute from the available options (see images below). The UI then guides us through the selected workflow.
Typically, each workflow consists of three steps, which are captured in three tabs: Select input data -> Train Model -> Apply Trained Model.
ML workflows for: Wells, Seismic, Seismic+Wells and the predecessor Neural Networks plugin:
Terminology
In this Chapter we will use the following terms:
- Accuracy and Overfitting
- A Model is accurate if it can be said to predict as well in the validation data as it did in the training data.
- An overly complex Model may be trained such that it is very accurate for predictions on the Training Set but does not generalize well.
- Overfitting results when the Model no longer describes the relationship between Features and Target, but instead is trained to output only the Training data.
- Algorithm
- A process, set of rules or mathematical relationships used to calculate a solution (or solve) a problem.
- Typical Machine Learning Algorithms are Regression, Random Forest, Boosting, Neural Networks, Self-Organizing Maps (SOMs).
- Classification
- A prediction method that assigns a data point (with some feature coordinates) to a predefined category or bin.
- Classification is strictly speaking a Supervised learning approach (target labels are assigned by experts).
- Classification is nowadays also used in the context of Unsupervised learning approaches (target labels are generated by the model).
- In this document we use Classification for both Supervised and Unsupervised learning approaches.
- Clustering
- An Unsupervised learning approach aimed at Organizing data in groups with similar structure.
- Convolutional Neural Network (CNN)
- A specific type of neural network in which a (1D, 2D, 3D) image is convolved with a set of filters and the filtered output is passed on to the next layer in the network.
- The filter coefficients are found in a supervised learning run.
- The LeNet and Unet models implemented in OpendTect Machine Learning plugin are CNNs.
- Webinar: Machine Learning Part 2.
- Feature
- An independent variable such an observable quantity that has been previously recorded.
- Features can also be engineered by combining multiple features or applying transformations.
- Features are the inputs of Models.
- LeNet Model
- Convolutional Neural Network introduced by Yann LeCunn
- Used in OpendTect for Seismic Bodies detection workflows (e.g. creating a Chimney Cube with a deep learning model instead of with a shallow MLP type of neural network).
- Webinar: Machine Learning Part 2; Publications: http://yann.lecun.com/exdb/lenet/
- Model
- A mathematical representation of some real-world process.
- A predictive model attempts to produce an outcome based on past experience.
- Multi-Layer-Perceptron (MLP)
- A fully-connected neural network with an input layer, one or more hidden layers and an output layer.
- The non-linear transformation happens in the hidden layer(s) when the sum of the weights multiplied by the input features passes through a sigmoidal shape function.
- MLP networks are supervised networks for classification and regression problems.
- MLPs are nowadays referred to as “shallow” networks as a distinction between conventional neural networks and newer deep learning models.
- In OpendTect MLPs are implemented in the pre-existing Neural Networks plugin and in various workflows with Scikit Learn models.
- Webinar: Machine Learning Part 1.
- Segmentation
- Strictly speaking Segmentation is the same as Clustering, i.e. an Unsupervised learning approach.
- Segmentation is nowadays also used for Supervised learning methods.
- We primarily use Segmentation in the context of image-to-image predictions whereby the Target is an image with labeled information (aka mask).
- Target
- Defined in Statistics as the dependent variable.
- It is the output (or prediction) of the Model or variable.
- Test Set
- A data set that is (automatically) split off by random selection from the Training Set. The Test Set is used during training to check for signs of Overfitting.
- Examples from the Test Set are passed through the Model to compute the error. In contrast to examples from the training set the errors of the Test Set are not used to update the weight function (gradients) during training.
- Training should ideally be stopped when the error on the Test Set has reached its minimum. Prolonged training may further decrease the error on the Training Set while the error on the test set increases (overfitting).
- The Test Set differs from the Validation set in that the Validation set is not used during training whereas the Test Set is.
- TensorBoard does not make a distinction between Test Set and Validation.
- Training (“Learning”)
- The process of creating a Model from the Training data using some algorithm.
- The data is fed into the algorithm, which learns a representation of the relationship between Feature(s) and Target(s).
- Supervised Learning is an approach to learning under supervision from an intelligent source. For example, learn by advice, or learn by example.
- Unsupervised Learning is a competitive learning approach aimed at finding structure in the data, thereby extracting relevant properties or features.
- Training Set
- A (cleaned up, pre-processed) data set that is used by the learning algorithm to find potentially predictive relationships.
- Typically, the Training data set is a subset of the entire dataset, with some portion being held aside for Validation.
- For seismic applications a Training Set can also be synthesized. This is especially useful in cases where we do not have sufficient reliable examples to train on. In OpendTect we synthesize data (1D, 2D and 3D) in SynthRock. Also, the Unet Fault predictor was trained on synthetic data.
- The key to successful machine learning applications is creating a training set that is truly representative of the problem we try to solve.
- Unet Model
- An auto-encoder - decoder type of Convolutional Neural Network used in Segmentation and Regression problems.
- Webinar: Machine Learning Part 2; Publications: https://link.springer.com/chapter/10.1007/978-3-319-24574-4_28
- Unsupervised Vector Quantizer (UVQ)
- Network for segmenting (clustering) data into a user-defined number of segments (UVQ is similar to K-means clustering).
- Cluster centers are found by unsupervised learning; Random prototype vectors are updated until they fall in cluster centers; Post-training cluster centers are sorted to ensure that similar clusters are displayed with neighboring colors in the segmentation map (UVQ + sorting approximates a Kohonen map, which sorts during training as it updates not only the winner but also the nearest neighbor).
- In the application phase the trained UVQ network compares input vectors to ‘cluster center’ vectors; Output is the index of ‘winning’ cluster and ‘match’ (confidence measure between 1 and 0).
- UVQ is used in seismic facies interpretation workflows. Typically, it is used to cluster seismic waveforms around mapped horizons but it can also be used to cluster 3D bodies.
- Quick UVQ is a workflow for waveform segmentation, i.e. clustering trace segments extracted around a mapped horizon.
- In OpendTect UVQ is implemented in the pre-existing Neural Networks plugin.
- Webinar: Machine Learning Part 1.
- Validation Set
- A data set separate from the Training Set, yet having the same predictive features and targets as the training data set, e.g. a well with existing logs that is set aside as blind test well. Please note that TensorBoard does not make a distinction between Test Set (see above) and Validation Set.
- Comparison of the predictions versus known results in the training and validation data speak to the accuracy and generality of the model.
You can find the complete dGB Machine Learning Webinar series here:
- Machine Learning Webinars: Part 1: Theory: Introduction
- Machine Learning Webinars: Part 2: Theory: Deep Neural Networks and Other New Algorithms
- Machine Learning Webinars: Part 3: Applications: Seismic, Logs, and, Seismic-to-log
- Machine Learning Webinars: Part 4: Synthesizing Training Data with SynthRock
- Machine Learning Webinars: Part 5: Creating and Adding New Modelsvideos.opendtect.org
Other dGB resources include:
And a selection of relevant dGB Machine Learning workflows (in .pdf):
- Machine Learning Workflow: Wells Log-Log Prediction (Density)
- Machine Learning Workflow: Wells Log-Log Prediction (Porosity)
- Machine Learning Workflow: Wells Lithology Classification
- Machine Learning Workflow: Seismic bodies (Supervised 3D)
- Machine Learning Workflow: Seismic Unet 3D Fault Predictor
- Machine Learning Workflow: 3D Seismic + Wells Rock Property Prediction
- Machine Learning Workflow: Seismic Image to Image Faults Prediction
For a general (non dGB) beginner's tutorial course in TensorFlow 2.0, please watch this YouTube video.