2024年3月30日~2024年4月7日周报

文章目录

  • 一、前言
  • 二、创意收集
    • 2.1 多任务学习
    • 2.1.1 多任务学习的定义与优势
      • 2.1.2 多任务学习的分类
    • 2.2 边缘检测
      • 2.2.1 基础理论
      • 2.2.2 sobel代码介绍
      • 2.2.3 canny代码介绍
  • 三、《地震速度模型超分辨率的多任务学习》
    • 3.1 M-RUDSR架构
    • 3.2 详细介绍
    • 3.3 实验设置
  • 四、实验
  • 五、小结
    • 5.1 存在的疑问
    • 5.2 下周安排

一、前言

  上周对网络进行了修改,并跑了实验。

  本周阅读论文《地震速度模型超分辨率的多任务学习》,继续完成实验,并学习了一些新的概念,如多任务学习、sobel算子。

二、创意收集

2.1 多任务学习

  2017年介绍多任务学习概述的论文:《An Overview of Multi-Task Learning in Deep Neural Networks》,链接为:https://arxiv.org/pdf/1706.05098.pdf。

2.1.1 多任务学习的定义与优势

  多任务学习(Multi-task learning,简称MTL)是一个在机器学习领域中备受关注的领域,它通过使用包含在相关任务的监督信号中的领域知识来改善泛化性能。多任务学习可以被视为一种归纳迁移机制,是迁移学习的一种,主要目标是利用隐含在多个相关任务的训练信号中的特定领域信息来提高泛化能力。它通过共享相关任务之间的表征,使模型能够更好地概括原始任务。多任务学习作为迁移学习的一个分支有着其自己独特的学习背景和应用。在给定几个相关联任务的输入数据和输出数据的情况下,多任务学习能够发挥任务之问的关系,同时学习多个模型。这种方法在图像识别、语音识别、自然语言处理等领域都有广泛的应用。

  传统的机器学习方法主要是基于单任务的学习(Single-task Learning)模式进行学习,对于复杂的学习任务也可将其分解为多个独立的单任务进行学习,然后对学习得到的结果进行组合,得到最终的结果。

  多任务学习的关键在于寻找任务之间的关系,若任务之间的关系衡量恰当,那不同任务之间能相互提供额外的有用信息,利用这些额外信息,可以训练出表现更好、更鲁棒的模型。反之,如果关系衡量不恰当,不仅不会引入额外的信息,反而会给任务本身引来噪声,模型学习效果不升反降。当单个任务的训练数据集不充分的时候,此时多任务学习的效果能够有比较明显的提升,这主要是因为单个任务无法通过自身的训练数据集得到关于数据分布的足够信息。如果有多个任务联合学习,那么这些任务将能从相关联的任务中得到额外的信息,因此学习效果将有显著的提升。

  与单任务学习相比,主要有以下几个方面的优势:

  • A.多任务学习通过挖掘任务之间的关系,能够得到额外的有用信息,大部分情况下都要比单任务学习的效果要好。在有标签样本比较少的情况下,单任务学习模型往往不能够学习得到足够的信息,表现较差,多任务学习能克服当前任务样本较少的缺点,从其他任务里获取有用信息,学习得到效果更好、更鲁棒的机器学习模型。
  • B.多任务学习有更好的模型泛化能力,通过同时学习多个相关的任务,得到的共享模型能够直接应用到将来的某个相关联的任务上。

2.1.2 多任务学习的分类

  深度学习中的两种MTL方法:

  • (1). 基于硬约束的多任务学习方法,如下图所示:表示的是不同任务通过分享一些底部的层学习一些共有的低层次的特征,为了保证任务的独特性,每个任务在顶部拥有自己独特的层学习高层次的特征。这种方法底层共享的参数是完全相同的。
    在这里插入图片描述
  • (2). 基于软约束的多任务学习方法,如下图所示:该方法不要求底部的参数完全一样,而是对不同任务底部的参数进行正则化。相对于硬参数约束的多任务深度学习模型,软约束的多任务学习模型的约束更加宽松,当任务关系不是特别紧密的时候,有可能学习得到更好的结果。多任务深度学习模型需要同时学习一个适合多个任务的网络构架,一般来说模型具有更好的鲁棒性,不容易过拟合。软约束的多任务学习方法是隐藏层参数软共享,不同的任务使用不同的网络,但是不同任务的网络参数,采用正则化作为约束,与硬约束的多任务学习不同的是,底层的参数不一定完全一致,而是鼓励参数相似化。
    在这里插入图片描述

  为什么多任务学习有效:假定有两个相关的任务A和B,它们依赖共享隐藏层。

  • (1).隐式数据扩充(Implicit data augmentation):MTL有效地增加了用于训练模型的样本量。由于所有任务或多或少存在一些噪音,因此在针对某个任务A训练模型时,我们的目标是得到任务A的一个好的表示,忽略与数据相关的噪声。由于不同的任务具有不同的噪声模式,因此同时学习两个任务的模型可以得到一个更为泛化的表示。如果仅学习任务A要承担对任务A过拟合的风险,然而同时学习任务A和任务B则可以对噪声模式进行平均,可以使模型获得更好的表示。

  • (2).注意力机制(Attention focusing):如果一个任务非常嘈杂或数据量有限且维数很高,则模型很难区分相关和不相关特征。MTL可以帮助模型将注意力集中在重要的特征上,因为其他任务将为这些特征的相关性或不相关性提供更多证据。

  • (3).窃听(Eavesdropping):一些特征G很容易被任务B学习,但是对于其他任务A则很难学习。这可能是因为A以更复杂的方式与特征进行交互,或者是因为其他特征阻碍了模型学习G的能力。通过MTL,我们可以允许模型进行”窃听”,即通过任务B学习G。最简单的方法是通过”提示”,即直接训练模型来预测最重要的特征。

  • (4).表征偏置(Representation bias):MTL biases the model to prefer representations that other tasks also prefer。这也将有助于该模型将来泛化到新任务,因为在足够多的训练任务上表现良好的假设空间,只要它们来自相同环境,对于学习新任务也将表现良好。

  • (5).正则化(Regularization):MTL通过引入归纳偏置(inductive bias)作为正则化项。因此,它降低了过拟合的风险以及模型的Rademacher复杂度,即拟合随机噪声的能力。

2.2 边缘检测

2.2.1 基础理论

  边缘检测大幅度减少了数据量,且剔除了不相关的信息,保留了图像重要的结构属性。边缘检测是图像处理和计算机视觉中的基本问题,目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。

  从边缘检测的实现方式来看,可以分为基于搜索基于零穿越的两大类。这两类边缘检测方法都是基于导数的,基于搜索的方法利用灰度的一阶或二阶导数来寻找边缘,而基于零穿越的方法则是在基于搜索的基础上,进一步求二阶导数来确定边缘的位置。

  • 基于搜索的边缘检测方法:通过寻找图像一阶导数中的最大值和最小值来检测边界。这个过程通常是将边界定位在梯度最大的方向。具体来说,它首先计算边缘强度,通常使用一阶导数来表示,例如梯度模。然后,计算估计边缘的局部方向,通常使用梯度的方向。最后,利用此方向找到梯度模的最大值,从而确定边缘的位置。在实际应用中,代表算法如Sobel算子和Scharr算子,它们结合了高斯平滑和微分操作,因此在抗噪声能力方面表现优秀。尤其是当对效率要求较高,而对细纹理不太关注时,这类方法非常适用。(原理:边缘附近的像素值会有明显突变,即变化最大,也就是一阶导数最大。那么找到最大的一阶导数也就找到了像素变化最大的点,即边缘点。)

  • 基于零穿越的边缘检测方法:通过寻找图像二阶导数的零穿越点来定位边缘。这通常涉及到Laplacian过零点或者非线性差分表示的过零点。这种方法利用二阶导数信息,可以更精确地定位边缘位置。该方法中,Laplacian算子是一个典型的代表。它通过计算图像的二阶导数,并找到其过零点来确定边缘的位置。这种方法对噪声较为敏感,在应用时通常需要结合其他技术来提高鲁棒性。(原理:在一阶导数的基础上再求一次导,那么此时零点就是变化最大的点,即边缘点。)

  一些边缘检测算子优缺点概括如下:

算子优点缺点
Sobel算子对灰度渐变和噪声较多的图像处理效果较好,边缘定位效果不错对噪声敏感,边缘可能不连续且较粗糙,可能会忽略一些细微的边缘
Roberts算子对具有陡峭的低噪声的图像处理效果较好可能在处理复杂图像或噪声较多的图像时表现不佳
Prewitt算子实现简单,对噪声具有一定的抑制作用,能够准确地检测图像中的边缘对边缘定位精度要求较高,如果图像中的边缘较为模糊或复杂,其检测结果可能会存在误差
Laplacian算子对孤立点及线端的检测效果好边缘方向信息丢失,对噪声敏感,易造成不连续的检测边缘
LOG算子(Laplacian of a Gaussian)结合了高斯平滑和拉普拉斯锐化,能在平滑噪声的同时检测边缘对噪声敏感,很少用于检测边缘,用于判断边缘像素位于图像的明区或暗区
Canny算子高准确性、抑制噪声、边缘连接、基于边缘梯度方向的非极大值抑制高低阈值需要手动设定,可能将噪点误判为边界,在处理大规模图像时,可能需要更多的计算资源

2.2.2 sobel代码介绍

  

import cv2  
import numpy as np  img = cv2.imread('test.png', cv2.IMREAD_GRAYSCALE)  # 定义 Sobel 滤波器卷积核  
sobel_x = np.array([[-1, 0, 1],  [-2, 0, 2],  [-1, 0, 1]], dtype=np.float32)  
sobel_y = np.array([[-1, -2, -1],  [0, 0, 0],  [1, 2, 1]], dtype=np.float32)  # 对图像应用 Sobel 滤波器  
edge_x = cv2.filter2D(img, cv2.CV_32F, sobel_x)  
edge_y = cv2.filter2D(img, cv2.CV_32F, sobel_y)  # 计算边缘强度  
edge_strength = cv2.magnitude(edge_x, edge_y)  # 归一化到0-255范围  
# 使用cv2.NORM_MINMAX归一化类型,将最小值映射到0,最大值映射到255  
normalized_strength = cv2.normalize(edge_strength, None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)  # 显示结果  
cv2.imshow('Original Image', img)  
cv2.imshow('Edge Strength', normalized_strength)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

  图片展示:

在这里插入图片描述

2.2.3 canny代码介绍

import cv2
import numpy as npimage = cv2.imread('test2.png', cv2.IMREAD_GRAYSCALE)# 应用Canny边缘检测
low_threshold = 9
high_threshold = 15
edges = cv2.Canny(image, low_threshold, high_threshold)# 显示结果
cv2.imshow('Original Image', image)
cv2.imshow('Edge', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

  使用canny边缘检测算子与sobel算子对图片进行了测试,结果显示确实canny效果好很多。
在这里插入图片描述

三、《地震速度模型超分辨率的多任务学习》

标题:Multitask Learning for Super-Resolution of Seismic Velocity Model—地震速度模型超分辨率的多任务学习

作者:Yinshuo Li , Jianyong Song , Wenkai Lu , Member, IEEE, Patrice Monkam ,and Yile Ao

期刊:IEEE地球科学与遥感学报,第59卷,第9期,2021年9月

简介:本文提出了一种基于深度学习的超分辨率(SR)方法,用于提高地震速度模型的分辨率。此外,地震速度模型的边缘图像在地震物理学中也有广泛的应用,因此采用具有硬参数共享的多任务学习(MTL)网络,以实现地震速度模型及其边缘图像的超分辨率。提出的多任务学习(MTL)模型被称为M-RUDSR,包括一个全局残差跳跃连接、一个Unet的编码器-解码器结构和一个密集的跳跃连接结构(其中“M”代表多任务,“R”代表残差,“U”代表U-Net,“D”代表密集)。此外,本文还提供了两个用于比较的网络,即RUDSR和M-RUDSR。RUDSR是M-RUDSR的单任务版本,在输入和输出层方面不同,而M-RUSR是M-RUDSR的简化版本,没有密集跳跃结构。与RUDSR和M-RUSR相比,M-RUDSR在各种模糊程度下都产生了最好的结果,并获得了更好的视觉细节。本文提出,FWI后跟随超分辨率可以帮助减少FWI在频谱的高频部分的计算成本,并实现更好的高频细节恢复。实验结果表明,M-RUDSR是一种实用的地震速度模型超分辨率恢复方法,可以有效地应用于真实的数据集。

Index terms-关键词:深度学习-Deep learning、边缘图像-edge image、多任务学习(MTL)-multitask learning、地震速度模型-seismic velocity model、超分辨率(SR)-super-resolution

创新点

  • A. 速度模型及其边缘图像的同步超分辨率:本文提出的M-RUDSR将边缘图像的SR视为地震速度模型SR的辅助任务。值得注意的是,由于地震速度模型和其边缘图像之间的高相关性,M-RUDSR模型采用了硬参数共享。M-RUDSR在每个任务中的性能均优于具有相同结构的单任务网络。
  • B. 带跳跃连接的多类型结构:提出的 M-RUDSR 包括全局残差跳跃连接、编码器-解码器结构和 U-Net 的局部残差跳跃连接,以及密集跳跃连接结构。在这些结构的组合下,M-RUDSR 可以避免梯度消失问题,并快速获得真实的 SR 结果。
  • C. 混合损失函数:M-RUDSR的损失函数由均方误差(MSE; L2-loss)和总变差(TV)组成。M-RUDSR的输入是由地震速度模型及其垂直和水平边缘组成的三通道数据。由于每个通道的输入单位不同,因此在均方误差中添加了能量参数。此外,TV范数函数可以防止噪声和波动的引入。
  • D.提高FWI的效率和精度:提出的SR方法称为M-RUDSR,可以改善FWI后地震速度模型的分辨率,有助于减少FWI的计算成本。具体来说,结果表明,FWI后跟随SR不仅可以帮助减少高频部分FWI的计算成本,还可以实现更好的高频细节恢复。

3.1 M-RUDSR架构

  M-RUDSR的架构如图1所示,其中多任务学习通过硬参数共享实现。网络完全由卷积层组成,使用“SAME”卷积方法,在普通卷积层之后,特征图的大小没有改变。此外,通过“stride”参数,下采样和上采样层调整输出特征图的大小。下采样层由一个卷积层实现,其“stride”参数为2。因此,经过这一层处理的特征图大小从 h × w × c i n h × w × c _{in} h×w×cin变为 h / 2 × w / 2 × c o u t h/2 × w/2 × c_{out} h/2×w/2×cout,其中h和w分别是高度和宽度, c i n c_{in} cin c o u t c_{out} cout是通道数。同样地,上采样层由“stride”参数为2的转置卷积层实现,因此特征图的大小从 h × w × c i n h × w × c _{in} h×w×cin变为 h / 2 × w / 2 × c o u t h/2 × w/2 × c_{out} h/2×w/2×cout。由于降采样和上采样层是对称的,输入图像的大小可以是任意的。此外,网络的输入和输出是尺寸相同的图像 h × w × c h × w × c h×w×c,其中 h h h w w w c c c分别是高度、宽度和通道数。

在这里插入图片描述

图1. (a) M-RUDSR的架构。所有卷积层均以“SAME”模式工作,而密集结构外部的层使用3×3卷积核。Leaky-ReLU广泛应用于每个隐藏层,但密集跳跃连接结构除外。所有隐藏层的参数在任务之间共享,这意味着所有隐藏层都是共享层,而输出层是特定于任务的层。 (b) 密集跳跃连接结构。 (c) 密集块的结构。
  • (1) MTL与硬参数共享:MTL是机器学习中一个有前景的领域,它共享多个学习任务中包含的有用信息,以帮助更准确地预测每个任务的结果。完整的边界信息存储在边缘图像可以辅助原始图像的超分辨率任务。由于地震速度模型及其边缘图像高度相关,因此硬参数共享更有效。边缘图像是原始图像通过Sobel算子进行卷积的结果,因此将共享层的比例扩展到极致,即所有隐藏层都是共享层,而输出层是特定于任务的层。如图1(a)所示,M-RUDSR的输入是一个具有三个通道的特征,包括垂直(y)和水平(x)方向上的初始背景速度模型及其边缘图像。 所有卷积层都以“SAME”模式工作,而稠密结构之外的层使用3×3卷积核。在每个隐藏层中都使用Leaky-ReLU,除了密集部分。由于高度相关,初始背景速度模型及其边缘图像在所有隐藏层中共享参数。因此,输出层是任务特定。
  • (2) 全局残差跳跃结构:残差学习可以通过跳跃连接来实现,该连接将某一层的输入特征绕过到另一层。在SISR-图像超分辨率重建问题中,目标高分辨率(HR)图像和输入低分辨率(LR)图像携带大量相似信息。因此,可以使用全局残差学习来让网络学习HR图像和LR图像之间的差异。
  • (3) 编码-解码和局部残差跳跃连接:编码-解码结构受到一种流行的分割网络U-Net 的启发,它包含两个部分:特征提取和上采样。特征提取是一个降尺度的过程,其中特征的长度和宽度减半,通道的数量通常翻倍。上采样操作与降尺度对称,其中特征图的长度和宽度加倍,通道的数量通常减半。每个上采样操作后都跟随着局部残差跳跃连接。在局部残差跳跃连接中,特征图不是直接相加,而是进行连接(concatenated),以实现特征图的丰富组合。这样的结构使得反向传播信号能够直接传递到底层,可以缓解梯度消失的问题。此外,这种直接连接结构有助于产生清晰的图像。
  • (4) 密集跳跃连接:DenseNet 首次提出了密集跳跃连接,其中特征图被串联起来。密集跳跃连接基于块单元。图1(c)展示了块的结构。每个块包含三个部分,即用于参数减少的1×1卷积层(瓶颈层),用于非线性变换的ReLU激活函数,以及用于特征提取的3×3卷积层。这一部分的所有块都由密集跳跃连接覆盖,如图1(b)所示。

3.2 详细介绍

  • (1) 流程:框架的流程如图2所示。训练过程从给定的高分辨率(HR)地震速度模型开始。利用HR地震速度模型,通过Sobel算子在垂直(y)和水平(x)方向上生成边缘图像。然后,将HR地震速度模型及其边缘图像组合成三个通道的HR数据。低分辨率(LR)地震速度模型是从相应的HR地震速度模型中利用平滑生成的。同样地,将LR地震速度模型及其边缘图像组合成三个通道的LR数据。然后,将LR数据切割成补丁以形成所提出网络的输入,得到的结果是恢复的SR补丁。HR数据也被切割成代表所提出网络目标的补丁。在输出SR补丁和目标HR补丁之间应用均方误差(MSE)以及TV正则化,然后使用Adam优化器。对于测试过程,操作从LR地震速度模型开始,而SR地震速度模型及其边缘图像是通过补丁融合和通道分离获得的。

在这里插入图片描述

图2. 提出框架的流程图。通过Sobel算子生成地震速度模型(图像)在垂直(y)和水平(x)方向上的边缘图像。然后,将地震速度模型(图像)及其边缘图像组合成三个通道的数据。利用平滑从相应的高分辨率(HR)地震速度模型生成低分辨率(LR)地震速度模型。
  • (2) 损失函数与优化器:本文提出的多任务深度网络的损失函数由均方误差(mse)(L2损失)和TV组成,它们的表达式如下:
    l o s s ( Φ ) = m s e ( Φ ) + T V ( Φ ) m s e ( Φ ) = 1 N M ∑ k = 1 3 α k ∑ i = 1 N ∑ j = 1 M ( f ( I L , Φ ) i , j , k − I H i , j , k ) 2 T V ( Φ ) = β 1 1 K 1 ∑ i = 1 N ∑ j = 2 M ∣ f ( I L , Φ ) i , j , 1 − f ( I L , Φ ) i , j − 1 , 1 ∣ + β 2 1 K 2 ∑ i = 2 N ∑ j = 1 M ∣ f ( I L , Φ ) i , j , 1 − f ( I L , Φ ) i − 1 , j , 1 ∣ w h e r e K 1 = N ( M − 1 ) , K 2 = ( N − 1 ) M (1) \begin{aligned} \mathbf{loss}(\Phi) &= \mathbf{mse}(\Phi) + \mathbf{TV}(\Phi) \\ \mathbf{mse}(\Phi) &= \frac{1}{NM} \sum^{3}_{k=1} \alpha_{k} \sum^{N}_{i=1} \sum^{M}_{j=1}\big(f(I_{L},\Phi)^{i,j,k} - I_{H}^{i,j,k}\big)^2 \\ \mathbf{TV}(\Phi) &= \beta_{1} \frac{1}{K_{1}} \sum^{N}_{i=1} \sum^{M}_{j=2} \vert f(I_{L}, \Phi)^{i,j,1} - f(I_{L}, \Phi)^{i,j-1,1} \vert + \beta_{2} \frac{1}{K_{2}} \sum^{N}_{i=2} \sum^{M}_{j=1} \vert f(I_{L}, \Phi)^{i,j,1} - f(I_{L}, \Phi)^{i-1,j,1} \vert \\ where K_1 &= N(M-1), K_2 = (N-1)M \tag{1} \end{aligned} loss(Φ)mse(Φ)TV(Φ)whereK1=mse(Φ)+TV(Φ)=NM1k=13αki=1Nj=1M(f(IL,Φ)i,j,kIHi,j,k)2=β1K11i=1Nj=2Mf(IL,Φ)i,j,1f(IL,Φ)i,j1,1+β2K21i=2Nj=1Mf(IL,Φ)i,j,1f(IL,Φ)i1,j,1=N(M1),K2=(N1)M(1)

  其中, f ( I L , Φ ) f(I_L,\Phi) f(IL,Φ)表示具有参数的模型输出 S R SR SR图像, I H I_H IH表示目标HR图像, i i i j j j是垂直和水平方向采样点的位置, β 1 β_1 β1 β 2 β_2 β2 α k α_k αk是系数。使用 L 2 L_2 L2损失函数,可以在很大程度上规避过拟合,而TV范数函数可以帮助防止噪声和波动的引入。

  值得一提的是,(1)中的αk是能量系数,它们用于在损失函数的层面上协调多任务深度学习过程,满足以下关系:

∑ k = 1 3 α k = 1 α k l 1 ( I H − I L ) ∣ c = k ≡ C , k = 1 , 2 , 3 (2) \begin{aligned} \sum^{3}_{k=1} \alpha_{k} &=1 \\ \alpha_{k}l_{1}(I_H - I_L) \vert_{c=k} & \equiv C ,k=1,2,3 \tag{2} \end{aligned} k=13αkαkl1(IHIL)c=k=1C,k=1,2,3(2)

  其中,1代表L1范数函数,表示图像的能量。

  随后,根据(1)中所示的损失函数的偏导数,采用Adam来更新权重。在训练过程中,采用了学习率衰减方法,其表达式为初始学习率(η0)、衰减周期(T)和衰减率(α)。训练过程中的实际学习率表达为:

η i = α i η 0 (3) \eta_{i} = \alpha^{i} \eta_{0} \tag{3} ηi=αiη0(3)

  其中,i代表学习率的衰减次数。

3.3 实验设置

  本文从他们的研究组织(Easy-Signal Laboratory)的私人数据库中收集了120个尺寸为1000×1000的合成地震速度模型。如图3所示,这些随机生成的合成数据充满了倾斜折叠地层和断层信息,可以帮助深度学习模型适应各种复杂的真实数据。这些数据被随机划分为一个容量为100的训练集和一个容量为20的测试集。然后,根据图2所示的流程进行训练实验。在裁剪过程中,补丁的大小为256×256,而步幅为128,选择峰值信噪比(PSNR)和结构相似性(SSIM)来评估处理结果。
在这里插入图片描述

图3. Easy-Signal实验室生成的合成数据示例。随机生成的合成数据充满了倾伏褶皱地层和断层信息,可以帮助深度学习模型适应各种复杂的真实的数据。

  在训练过程中,通过读取所有训练数据,并将每个LR图像在每个模糊级别下与HR图像绑定,形成一个训练样本。由于在多个尺度上训练的模型在所训练的尺度上表现良好,因此同时训练模型时使用多个模糊级别的数据。根据公式(2),计算了训练数据的l1范数,并将 α 1 ∼ 3 α_{1∼3} α13分别设为0.31、0.21和0.48。此外,将β1和β2设为0.1,并使用衰减学习率,初始学习率为0.0002,衰减周期为0.5个训练周期,衰减率为0.985。损失和学习率曲线如图4所示。在多任务网络中采用混合损失函数,与通常网络中的损失函数不同。因此,在图4(a)中仅比较了M-RUDSR和M-RUSR在相同衰减学习率下的损失曲线,如图4(b)所示。由于每个样本的损失不同,损失曲线每个周期更新一次以获得平滑曲线,而学习率每个周期衰减大约两次。衰减的学习率使得损失曲线迅速下降并最终稳定。M-RUDSR的损失曲线在前20个周期中波动,而M-RUSR始终平滑,表明密集的跳跃连接会增加训练的难度。此外,M-RUDSR的最终训练效果优于M-RUSR,证明了密集的跳跃连接可以帮助提高网络性能。
在这里插入图片描述

图4. M-RUDSR和M-RUSR的损失和学习率曲线。由于每个样本的损失是不同的,因此损失曲线在每个时期更新以获得平滑曲线,而学习率在每个时期衰减大约两次。衰减的学习率迅速减少损失,并最终稳定下来。在相同的训练策略下,M-RUDSR的最终训练效果优于M-RUSR。(a)损失(b)学习率。

  分别使用了平均滤波器大小为17、25、33和41来测试M-RUDSR。如图5所示,M-RUDSR在所有种类的模糊水平下恢复了地震速度模型的断层信息和纹理细节。多任务学习模型可以从不明显的边缘图像中提取清晰的边缘纹理,如图6所示。在相同的颜色范围内,具有高模糊级别的LR边缘图像几乎是不可见的。然而,提出的M-RUDSR可以高效地从这些不可见的图像中恢复完整的边缘信息。

在这里插入图片描述

图5. 平均滤波器大小为17、25、33和41的地震速度模型的SR结果。M-RUDSR恢复了各种模糊程度下的断层信息和地震速度模型的纹理细节。

在这里插入图片描述

图 6. 边缘图像的SR结果,平均滤波器大小为17和41。(a) 垂直方向的边缘图像的SR结果。(b) 水平方向的边缘图像的SR结果。在相同的颜色范围内,具有高模糊级别的LR边缘图像几乎是不可见的。然而,提出的M-RUDSR可以高效地从这些不可见的图像中恢复完整的边缘信息。多任务学习模型可以从不明显的边缘图像中提取清晰的边缘纹理。

  与采样相比,时间滤波是从地震速度模型中获取初始背景速度模型的更合适的方法。因此,在本文中,我们利用时间域中的平均滤波来获得初始背景速度模型。VDSR 是一种经典的采样SR方法,它基于预上采样。由于其输入和输出大小相同,VDSR被用作基准模型。

  表I显示了在模糊级别从17×17到41×41的范围内的平均PSNR/SSIM。这些PSNR/SSIM值的比较表明,M-RUDSR在地震速度模型及其边缘图像(地质模型)的SR中产生了最佳结果。此外,M-RUSR是M-RUDSR的简化版本,没有密集的跳跃连接结构,具有最低的时间成本。因此,密集的跳跃连接结构和多任务学习都可以改善SR的结果,尽管密集的跳跃连接结构会增加时间成本。此外,值得注意的是,M-RUDSR、M-RUSR和RUDSR(M-RUDSR的单任务版本)的计算成本明显低于VDSR。在滤波器大小为41×41时的不同方法性能分析(见图7)表明,M-RUDSR在速度和地质模型中实现了最准确的结果。图8中显示的图像重建误差图表明,M-RUDSR的恢复结果最接近HR。此外,值得注意的是,VDSR和RUDSR是分别针对地震速度模型和边缘图像进行训练的。

表格 I 恢复性能评估。表格中的数字表示在模糊级别从 17 × 17 到 41 × 41 时的 PSNR/SSIM 或时间成本的平均值。 RUDSR 是 M-RUDSR 的单任务版本,而 M-RUSR 是 M-RUDSR 的简化版本,没有密集的跳跃连接结构。最佳结果用红色突出显示。

在这里插入图片描述
在这里插入图片描述

图7. 在41 × 41的过滤器尺寸下进行定性比较。(从左至右)滤器尺寸41 × 41的HR、LR、VDSR [26]、RUDSR、M-RUSR和M-RUDSR。VDSR和RUDSR分别用地震速度模型和垂直边缘图像训练,而M-RUSR和M-RUDSR用合成数据训练一次。M-RUDSR在速度和地质模型方面给出了最准确的结果。

在这里插入图片描述

图 8. 图像重建的误差图。(从左到右)LR 和 HR 之间的差异以及基于 VDSR [26]、RUDSR、M-RUSR 和 M-RUDSR 的图像重建的误差图。 图像重建的误差图证明了 M-RUDSR 的恢复结果最接近 HR。

  另外,提出的 M-RUDSR 在 Marmousi 合成数据集、中国石油西南油气田四川盆地的一条二维地震测线的真实初始速度模型上进行了评估。

四、实验

  本周对上周的一些想法进行了验证,实验基本设置为:data_set = CurveVel A ,train_size = 5000,val_size = 500,test_size = 1000,epoch = 200,batch_size = 20,learning_rate = 0.01。

在这里插入图片描述

  • 存在的问题:
    • 边缘结构不够清晰;
    • 随着地下深度加深,反演效果较差(这一部分数据较少,网络学习不够);

在这里插入图片描述
在这里插入图片描述

  实验结果如下表:

ModelNameMSEMAEUQILPIPS
ABA-FWI0.0060150.0366510.8506460.045692
UNet-200epoch0.0048310.0315350.8650280.029023
UNet-150epoch0.0053440.0342020.8622080.03136
UNet-120epoch0.0048690.0319620.8638480.031504

五、小结

5.1 存在的疑问

    1. 从实验的结果来看,速度图像的边缘信息不够明显,计划选择一种合适的方式更加关注边缘。
    1. loss下降不是特别平滑,有一些波动。看了一些贴子,有些回答使用Adam这个震荡是正常的,后续可以尝试降低学习率(衰减学习率)。
    1. 关于网络的设计:跳跃连接、可变形卷积、UNet架构(是否要降低到1024通道)。

5.2 下周安排

    1. 看一篇论文;
    1. 整理代码文件;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/801189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode题解】2009. 使数组连续的最少操作数

文章目录 [2009. 使数组连续的最少操作数](https://leetcode.cn/problems/minimum-number-of-operations-to-make-array-continuous/)思路:一、排序去重滑动窗口代码: 2009. 使数组连续的最少操作数 思路:一、排序去重滑动窗口 1.对数组进行…

nandgame中的asm编程 Escape Labyrinth(逃离迷宫)

先翻译题目: 逃离迷宫计算机被困在火星上的迷宫中。编写一个程序,让它逃离迷宫。计算机配备了连接的轮子和前方障碍物探测器。与轮子和探测器的输入/输出是内存映射在地址7FFF上:对外设的输出信号: 位 设置为1代表: 2…

UE4_动画基础_ 使用分层动画(Using Layered Animations)

完成在移动过程中武器发射的角色制作! 动画混合仅仅意味着在一个角色或骨架网格体上的两个或多个动画之间进行平滑过渡。在虚幻引擎4中,有多种方法可以应用这种混合,要么通过混合空间,或通过实际组合两个基于加权偏差或alpha值的…

Java数组详解

​TOC 第一章、数组的概念介绍 1.1)数组的概念 ①数组就是用来储存数据的容器,可以存储同一种类型的数据,是同一种数据类型的集合。实现对这些数据的统一管理。如果数组中存储的是基本类型数据,我就不能往里面存引用类型数据。数组中存储的…

CLIPSeg如果报“目标计算机积极拒绝,无法连接。”怎么办?

CLIPSeg这个插件在使用的时候,偶尔会遇到以下报错: Error occurred when executing CLIPSeg: (MaxRetryError("HTTPSConnectionPool(hosthuggingface.co, port443): Max retries exceeded with url: /CIDAS/clipseg-rd64-refined/resolve/main/toke…

14届蓝桥杯 C/C++ B组 T5 接龙排序 (最长上升子序列DP+优化)

不难发现这是一个LIS问题&#xff0c;但是如果直接套用LIS的模版&#xff0c;在数据范围到达 1 e 5 1e5 1e5 的情况下&#xff0c;就只能够得到一半的分数&#xff0c;所以我们需要对其进行优化。 首先给出暴力的代码&#xff1a; #include<iostream> using namespace…

知识管理系统|基于Springboot和vue的知识管理系统设计与实现(源码+数据库+文档)

知识管理 目录 基于Springboot和vue的知识管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台&#xff1a; 5.2.2 文章信息 5.3.1 论坛交流 2、后台 用户管理 5.1.2 文章分类 5.2.1 资料分类 四、数据库设计 五、核心代码 六、论文参考 七、最…

2024年上半年WSK-PETS5报名及考试时间公布

4月1日&#xff0c;中国教育考试网发布了2024年上半年全国外语水平考试WSK&#xff08;PETS5&#xff09;的报名及考试通知&#xff0c;为方便关注者&#xff0c;知识人网小编特做全文转载。 国家公派留学人员全国外语水平考试&#xff08;WSK-PETS5&#xff09;成绩作为国家留…

Python零基础从小白打怪升级中~~~~~~~流程控制语句

第三节&#xff1a;Python的流程控制语法 一、Python条件语句的语法 if 条件1:条件1成立执⾏的代码一条件1成⽴执⾏的代码二...... elif 条件2&#xff1a;条件2成立执⾏的代码三条件2成立执⾏的代码四...... ...... else:以上条件都不成⽴&#xff0c;执行的代码五以上条件都…

axios是什么?axios使用axios和ajax

Axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;用于浏览器和 Node.js 环境。它是由 GitHub 用户 mzabriskie 开发的&#xff0c;并且得到了广泛的社区支持。Axios 的设计目标是提供一种简洁、易用且功能强大的 HTTP 请求方式&#xff0c;以替代传统的 Ajax&#xff08;A…

【深入理解Java IO流0x03】解读Java最基本的IO流之字节流InputStream、OutputStream

在开始前&#xff0c;我们再来回顾一下这张图&#xff1a; 本篇博客主要为大家讲解字节流。 我们都知道&#xff0c;一切文件&#xff08;文本、视频、图片&#xff09;的数据都是以二进制的形式存储的&#xff0c;传输时也是。所以&#xff0c;字节流可以传输任意类型的文件数…

2.动态库与静态库

1.库的制作 库文件是计算机上的一类文件&#xff0c;可以将库文件看做是一种代码仓库。它提供给使用者一些可以直接拿来用的变量&#xff0c;函数或类。库是一种特殊的程序&#xff0c;但是库是不能单独运行的。 库文件有两种&#xff1a;静态库和动态库 静态库: GCC进行链接…

Jackson 各种注解使用示例

参考资料 Jackson使い方メモ 目录 一. JsonIgnore二. JsonIgnoreProperties三. JsonProperty3.1 作用于entity属性上&#xff0c;指定json对象属性名3.2 作用于entity方法上&#xff0c;指定json对象属性名 四. JsonFormat4.1 日期格式化4.2 数字格式化4.3 枚举类返回code 五.…

Open CASCADE学习|平面上的PCurve

曲面上的曲线PCurve&#xff0c;字面上理解即为参数曲线(Parametric Curve)。在几何建模中&#xff0c;PCurve通常被描述为附加在参数曲面之间公共边上的数据结构。从更具体的定义来看&#xff0c;当给定一个曲面方程&#xff0c;并且其参数u和v是另一个参数t的函数时&#xff…

Redis数据库的简介、部署及常用命令

关系数据库与非关系型数据 关系型数据库 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上&#xff0c;一般面向于记录。sQL语句&#xff08;标准数据查询语言&#xff09;就是一种基于关系型数据库的语言&#xff0c…

HarmonyOS NEXT应用开发之Environment:设备环境查询

开发者如果需要应用程序运行的设备的环境参数&#xff0c;以此来作出不同的场景判断&#xff0c;比如多语言&#xff0c;暗黑模式等&#xff0c;需要用到Environment设备环境查询。 Environment是ArkUI框架在应用程序启动时创建的单例对象。它为AppStorage提供了一系列描述应用…

wireshark抓包新手使用教程

Wireshark是非常流行的网络封包分析软件&#xff0c;可以截取各种网络数据包&#xff0c;并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括&#xff1a; 1、Wireshark软件下载和安装以及Wireshark主界面介绍。 2、WireShark简单抓包示例。通过该例子学…

20万就想买智能驾驶汽车?!我给你找到了三款车

文 | AUTO芯球 作者 | 雷歌 我都不敢相信&#xff0c;智能驾驶的车型已经这么便宜啦&#xff01; 一年多前&#xff0c;我一个前同事大冤种&#xff0c;还另掏3万多买某个造车新势力品牌的智驾包呢。 现在动不动就全给你标配了。 近的就说刚刚发布的小米SU7标准版&#xf…

962: 括号匹配问题

【学习版】 【C语言】 【C】 #include<iostream>class MyStack { public:struct Node {char val;Node* prev;Node* next;Node(char x) :val(x), prev(NULL),next(NULL) {};};MyStack() {base new Node(0);top base;}bool empty() {return top base;}void push(int …

Mysql底层原理五:如何设计、用好索引

1.索引的代价 空间上的代价 时间上的代价 每次对表中的数据进⾏增、删、改操作时&#xff0c;都需要去修改各个B树索引。⽽且我们讲过&#xff0c;B树每层节点都是按照索引列的值从⼩到⼤的顺序排序⽽组成了双 向链表。不论是叶⼦节点中的记录&#xff0c;还是内节点中的记录&a…