The first example is a 3D synthetic example, as shown in Figure 1. Figure 1a is the clean data and Figure 1d is the noisy data. Figures 1b and 1c show the denoised results using K-SVD and SGK, respectively. Figures 1e and 1f show the removed noise cubes of two approaches. It seems that the denoised results using both methods are very successful while the denoised result using SGK algorithm shows a little bit more residual noise, which is however negligible. The size of this example is . I use a 3D patch of size and the overlap between neighbor patches is 3 points in all time, inline, xline directions. In this example, the sample signals is of size . The K-SVD takes 192.60s while SGK takes only 9.27s. The SNRs of noisy data, K-SVD result and SGK result are 0.68 dB, 9.61dB and 9.32dB respectively. While the SNRs using the K-SVD and SGK are very similar, the SGK method obtains about 5 times acceleration. To further demonstrate the denoising performance and compare the two methods regarding the tiny differences, I plot the local similarity between denoised data and removed noise in Figure 2. Figures 2a and 2b show the local similarity cubes without amplification that correspond to K-SVD and SGK methods, respectively. It can be seen that both methods cause negligible local similarity, or correlation, between denoised data and removed noise, confirming the extremely successful performance of the two methods. Figures 2c and 2d show the amplified local similarity cubes (similarity 2) corresponding to K-SVD and SGK methods, respectively. It can be observed that there are some non-zero amplified similarity values around the events, indicating these tiny damages to the signal caused by both methods. It can also be observed that the amplified local similarity of SGK method is slightly higher than K-SVD method. Considering the slightly low SNR using SGK method, I conclude that SGK method might cause slightly worse performance than the K-SVD method while obtaining a huge improvement on computational efficiency. I also show some learned atoms of this example in Figure 3. Figures 3a, 3b, and 3c show the atoms from initial dictionary, K-SVD learned dictionary, and SGK learned dictionary, respectively. I set up the initial dictionary using the discrete cosine transform. It can be seen from Figure 3a that the shapes of the atoms in the initial dictionary are rigid, which are not optimal to represent the highly-nonstationary seismic data. After dictionary learning, the updated dictionaries as shown in Figures 3b and 3c contain atoms with much varied shapes. These various atoms are more likely to capture the non-stationary features in the seismic data and thus can potentially improve the sparse representation of the observed noisy seismic data. Please note that each atom has been reshaped into a 3D cube and only 16 atoms are shown here.

In order to test the denoising performances of the two methods in different noise levels, I calculate the SNRs of two methods in four different cases with increasing noise levels (or decreasing input SNRs). The denoising performances of different input SNRs are compared in table 1. The SNR of input noisy data drops from 3.18 dB to -5.33 dB. Correspondingly, the SNRs of the best results using two methods drop from above 10 dB to around 1 dB. Besides, the K-SVD method consistently obtains a slightly higher SNR than SGK method.

In this paper, I compare the speed of SGK with the classic version of K-SVD algorithm (exact SVD calculation). Recently, there are a lot of new algorithms proposed to approximate SVD instead of exactly computing it, e.g., Rubinstein et al. (2008), Foster et al. (2012), and Menon and Elkan (2011). These methods can hopefully improve the efficiency of K-SVD algorithm, but at the expense of slightly degrading the performance. Both K-SVD and SGK use the fast OMP algorithm for sparse coding in the whole dictionary learning process. In order to compare the computing time fairly, I repeat the same calculation three times for each model size and calculate the average time as the final measured computing time.

Input SNR (dB) | K-SVD (dB) | SGK (dB) |

3.18 | 10.60 | 10.60 |

0.68 | 9.61 | 9.32 |

-2.84 | 2.17 | 2.08 |

-5.33 | 1.27 | 1.11 |

syn3d,syn3d-ksvd,syn3d-sgk,syn3d-n,syn3d-ksvd-n,syn3d-sgk-n
3D synthetic example. (a) Clean data. (b) Denoised data using K-SVD. (c) Denoised data using SGK. (d) Noisy data. (e) Noise using K-SVD. (f) Noise using SGK.
Figure 1. |
---|

syn3d-simi1,syn3d-simi2,syn3d-simi3,syn3d-simi4
(a) & (b) Local similarity between denoised data and removed noise using K-SVD and SGK. (c) & (d) Amplified local similarity (2) between denoised data and removed noise using K-SVD and SGK.
Figure 2. |
---|

dic0,dicksvd,dicsgk
(a) Initial overcomplete DCT dictionary. (b) Learned dictionary using K-SVD. (c) Learned dictionary using SGK. Only the first 16 atoms in the dictionary are displayed and each dictionary has been reshaped into a 3D cube. It can see from (a) that the shapes of the atoms in the initial dictionary (discrete cosine transform) are rigid, which are not optimal to represent the highly-nonstationary seismic data. After dictionary learning, the updated dictionaries as shown in (b) and (c) contain atoms with much varied shapes. These various atoms are more likely to capture the non-stationary features hidden in the seismic data.
Figure 3. |
---|

2020-04-03