周报(7.22-7.28)

周报(7.22-7.28)

本周工作

  1. 完成对FCNVMB的训练工作,并对比了FCNVMB和InversionNet的网络模型,发现以下特点。

    a. FCNVMB相比InversionNet,使用了跳跃连接,直接传递相关的特征给解码器,避免了编码器中特征的丢失。相关笔记在这里

    b. 使用卷积或池化有不同的优缺点,如下:

    卷积
    优势:
    1.图像具有局部特性(局部连接,局部感受野)
    2.参数共享(特征跟位置无关,一个眼睛在两边还是中间都是眼睛)
    3.训练速度快,因为很多芯片对卷积操作有优化实现
    特点:
    1.卷积核大小选择奇数,是为了保护位置信息,因为有中心点,另外padding时是对称的
    2.步长设置为大于1时为降采样,与pooling相比,好处是降低了计算量,缺点是损失了一些信息
    3.参数个数与图像尺寸无关,所以是尺度不敏感的,全连接层对尺度敏感,因为参数个数是由尺寸决定的

    池化
    优势:
    1.用于减少图像尺寸,从而减少计算量
    2.增大感受野
    3.一定程度解决平移鲁棒:解决小偏移问题,进行特征压缩,提取主要特征
    劣势:
    1.损失了空间位置精度
    特点:
    1.常使用不重叠,不补零(不padding)
    2.没有用于求导的参数
    3.池化层参数为步长和池化核大小

    同时,根据代码实践,我发现池化层的内存占用和计算量都比卷积略大,需要进一步探索。

  2. SeisInvNet的特点

    如果说InversionNet和FCNVMB模型都是黑盒模型,只需要关注输入和输出,那么SeisInvNet就是探索了输入数据的内在特征,比如震源和接收器的位置等。它的优势是相对去前两个模型,SeisInvNet对输入做了一定程度上的预处理或者特征提取工作,而劣势在于SeisInvNet本质上也没有考虑输入和输出的物理关系,全靠模型内部拟合表达物理关系。

出现问题

  1. 测试集Loss跳跃的问题

    在训练过程中,我遵循8:2原则,将8成数据作为训练集,2成数据作为验证集,分别计算mse,训练集结果如下:

    在这里插入图片描述

    图示浅色线条表示实际数据,橙色线条表示经0.6系数平滑处理后的数据。在80轮的训练后,模型已经收敛,Loss表现正常,但对于验证集,Loss就比较异常了:
    在这里插入图片描述

图示浅色线条表示实际数据,橙色线条表示经0.6系数平滑处理后的数据。可以看到经平滑后的数据仍然在剧烈波动,就不难想象未经平滑数据的表现了。验证集数据显示,模型在70轮时在验证集上表现综合最优,这一结果符合训练集的结论。我推测验证集的Mse Loss剧烈波动的原因是我对输出进行了归一化,使得训练集表现确实在不断优化的同时,验证集数据的量级本来就很小了,很微小的波动也使得Mse Loss剧烈波动,使得验证集Loss失去了它本来的作用。下周考虑将归一化的输出还原为原始值之后再重新衡量模型的表现

  1. FCNVMB运行内存大,速度慢的问题

    FCNVMB在网络结构上其实与InversionNet也较为相似,但两者的训练速度和内存占用差别较大,需要考虑代码的优化问题,检查是不是代码问题导致的。

下周任务

  1. 学习地震正演过程,完成对SEG数据的正演工作。
  2. 学习DD-Net,学习没有触及到的知识点。
  3. 继续学习地震反演原理,深度学习原理。
  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是求解多元多项式回归的 MATLAB 代码: ```matlab % 输入数据 x1 = [36.4 37.2 37.2 36.2 31.5 28.9 27.2 26.7 26.1 26.1 25.4 25.3 25.4]'; x2 = [50.0 52.0 49.0 51.0 68.0 74.0 83.0 82.0 88.0 88.0 90.0 88.0 87.0]'; x3 = [982.9 982.2 981.8 981.6 982.3 982.6 983.4 983.5 984.0 983.6 984.4 984.5 984.4]'; y = [-7.30 -7.36 -7.35 -7.33 -7.31 -7.30 -7.26 -7.22 -7.21 -7.23 -7.18 -7.17 -7.14]'; % 构建设计矩阵X X = [ones(size(x1)) x1 x2 x3 x1.^2 x1.*x2 x1.*x3 x2.^2 x2.*x3 x3.^2]; % 求解回归系数 beta = X \ y; % 构建预测模型 model = @(x1,x2,x3) beta(1) + beta(2)*x1 + beta(3)*x2 + beta(4)*x3 ... + beta(5)*x1.^2 + beta(6)*x1.*x2 + beta(7)*x1.*x3 ... + beta(8)*x2.^2 + beta(9)*x2.*x3 + beta(10)*x3.^2; % 预测并绘制拟合图 x1fit = min(x1):0.1:max(x1); x2fit = min(x2):0.1:max(x2); x3fit = min(x3):0.1:max(x3); [X1FIT,X2FIT,X3FIT] = meshgrid(x1fit,x2fit,x3fit); YFIT = model(X1FIT,X2FIT,X3FIT); figure; plot3(x1,x2,x3,'o',x1fit,x2fit,x3fit,'*'); hold on; mesh(X1FIT,X2FIT,X3FIT,YFIT); xlabel('x1'); ylabel('x2'); zlabel('x3'); title('拟合图'); % 绘制残差图 YFIT = model(x1,x2,x3); figure; plot(YFIT - y,'o'); xlabel('样本编号'); ylabel('残差'); title('残差图'); ``` 运行上述代码后,会先绘制拟合图,然后绘制残差图。拟合图中,蓝色的点表示原始数据,红色的点表示拟合值,可以看到拟合值与原始数据比较接近;残差图中,横轴表示样本编号,纵轴表示残差,残差的分布应该比较均匀,没有明显的规律。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值