# Automated Geological Features Detection in 3D Seismic Data Using Semi-Supervised Learning
## 5 Applications
### SEAM Synthetic Seismic Example  
SEAM 3D seismic cube consists of 640 inline, 384 crossline, and 320 time-slice. Figure 8 shows the whole seismic volume. Figure 9 shows the extracted seismic attributes for enhancing the salt delineation, including curvature, azimuth, and dip. The azimuth attribute shows the delineation of salt clearly, while the curvature and dip only show the boundary of the salt region, since the values of salt and background have the same range. The basic statistics of these attributes' values are present in Table 3. \begin{table}
\begin{tabular}{c c c c c c c c} \hline
**Attribute** & **Count** & **Mean** & **Std** & **Min** & **25\%** & **50\%** & **75\%** & **Max** \\ \hline Curvature & 78,643,200 & 0.28 & 0.41 & \(-\)5.45 & 0.05 & 0.33 & 0.33 & 10.00 \\ Azimuth & 78,643,200 & 122.44 & 79.36 & 0.00 & 90.00 & 90.00 & 161.57 & 360.00 \\ Dip & 78,643,200 & 0.04 & 0.11 & 0.00 & 0.00 & 0.00 & 0.00 & 0.93 \\ \hline \end{tabular}
\end{table} 
Table 3: The basic statistic of salt delineation seismic attributes. Figure 8: SEAM 3D synthetic data. These attributes were then assigned as the input for the dimensionality reduction step. With the KernelPCA algorithm, we tried to transform these three multi-attributes into a single principal component that carried the important information. Figure 10 shows the result of KernelPCA using a linear kernel. The result shows that the KernelPCA can quantify and enhance the salt body and distinguish this geological feature from the background. Figure 9: The extracted seismic attributes for salt delineation including (**a**) curvature, (**b**) azimuth, and (**c**) dip. Finally, the output from KernelPCA we assigned as the input for the K-means clustering algorithm. K-means clustering will classify the data into two clusters or binary problems, depending on its values. In this part, we define the cluster into salt features (1) and non-salt or background features (0). The K-means clustering algorithm shows a good result classified those two geological features, but by comparing with the actual interpretation shown in Figure 2, this result is a little noisy on the background features. This occurred as a result of the effect of curvature and dip attributes that provide better differentiation just at the salt boundary, but not within the salt or non-salt region. Nevertheless, this clustering result as shown on Figure 11 will be assigned as the ground truth for the output data. Figure 11: The labeled data based on the K-means clustering result. Figure 10: The KernelPCA result of reducing the multi-attributes for salt delineation analysis. We generate 384 pairs of seismic and ground truth patch data to train the model. The location of those patches is randomized within the original seismic volume. In total, 346 data pairs are assigned as the train data and the rest as the test data. Figure 12 shows the 10 selected data pairs that will be fed into the CNN's architecture. Figure 13 shows the distribution of each label. The graphic shows that salt features dominated the dataset. This unbalanced distribution is supposed to affect the CNN model where the model tends to learn the dominant label; hence, they give a large amount of information to the model. We trained this dataset with a model based on Table 2's selected parameters. After 30 min of GPU processing time, this model achieved good accuracy for both training and validation data. The model achieved a 0.89 _IoU_ score for the training data and a 0.97 _IoU_ score for the validation data (Figure 14). Figure 14: Training and validation (**a**) loss and (**b**) accuracy. Figure 12: Example of the pairs that assigned as input (top) and output (bottom) data. Figure 13: The labels’ distribution. For the confusion matrix, the model successfully achieved a 0.98 F1 score for training data and 0.99 for validation data (Figure 15). Notice that both on the classification report for training and validation data, the salt and non-salt label have relatively the same accuracy.