不举不知物重,不试不知水深
某天一位老师提出,地震剖面就是由N条地震道曲线构成。只要把每个地震道的噪声去掉,是不是效果同样好呢?这个问题实际上就是一维地震信号去噪。
其实前面研究了很多二维深度学习降噪,效果都非常不错。下面先来看看二维深度学习降噪的效果。
01 二维深度学习降噪的效果有多好?
使用自编码做有监督学习降噪,使用卷积神经网络,最好效果的PSNR达到22.94。
原图,加噪声图片和去噪图片的效果是这样的:
从上面图片来看,去噪后的效果图与原图的差距非常小,而且还提升了层位的分辨率。
02 一维全连接神经网络去噪
现在来谈谈一维深度学习去噪怎么做。
既然是一维信号,并没有那么多复杂的特征信息,我想全连接网络足够学习了吧。
设计的网络结构是这样的:
就是使用了6个全连接网络进行深度自编码学习,前面3层是编码压缩信号,后3层是解码还原信号。
训练数据还是前文的数据集:见《自编码降噪效果到底怎么样?我用对比实验告诉你》。不同的是要将28*28的二维数据,转换为784*1的一维数据。
怎样把二维数据转换为一维数据?
比如有个数据noisy_imgs为(441,28,28),即是441个28*28的图块。那使用这个代码
noisy_imgs = noisy_imgs.reshape((len(noisy_imgs), np.prod(noisy_imgs.shape[1:])))
这样二维信号就变为了(441,784),成了441个781*1的一维信号。
经过100次迭代学习,选取其中效果最好的网络进行去噪的实验。
最好的PSNR是17.47。
看来这个效果与二维深度学习的差距还是比较大的。
当然,有一个优势就是训练时间相对比较短。一维全连接迭代100个周期的时间是29.71分钟,二维卷积神经网络迭代50个周期的时间是66.67分钟。
03 一维卷积神经网络去噪
全连接学习信号的特征的能力差于卷积神经网络。如果我改成一维卷积神经网络来去噪,效果又如何呢?
设计网络是这样的:
基本上就是把二维的深度自编码改为一维的深度自编码。其它的算法和一维全连接神经网络学习差不多。
最后的效果如何呢?
比如使用卷积核为32,训练50个迭代,花了58.62分钟和二维卷积神经网络差不了多少。最好PSNR为18.65
虽然比全连接的分辨率高了些,但是效果也不怎么样。
04 小结
从上面的实验来看,针对地震剖面信号的降噪,一维深度学习的效果确实没有二维好。这里的原因主要是什么呢?
有研究者提到过这个问题,主要原因包括:一是全连通自编码神经网络以矢量形式输入,忽略了剖面的二维结构信息;二是全连接的下层神经元与所有上层神经元相连,迫使网络学习全局结构并引入参数冗余。说简单点就是很难学到更多的有效特征。
如果喜欢请点赞,或关注我交流。