周报(7.1-7.7)

周报(7.1-7.7)

本周工作:

  1. 分析对比了InversionNet的优化工作
  2. 完成对InverseNet的基本训练
  3. 学习权重衰减,形成博客一篇。

代码对比

在学习师兄的InversionNet后,我发现我们的代码存在数处不同。在研究后,我记录并学习了几个主要的不同点:

激活函数不同

在论文中,我发现原作者使用了Relu作为激活函数。但师兄选择了Tanh作为激活函数,还将普通的Relu函数替换为了Leaky Relu。在原始的ReLU函数中,如果输入值小于0时输出为0,会导致在反向传播过程中权重的更新梯度值为0,从而导致无法学习,称之为“神经元死亡”现象。LeakyReLU的负数输出可以避免这种情况的出现。

而无论是Relu,亦或者是Leaky Relu,都尽可能忽略了神经元的负值输出,并且两者的输出值域也非常宽广。虽然速度图像中不含有负值,但速度图像本身数据值较大,且波动也较大,为了加快网络学习的速度,防止梯度爆炸,我们可以对速度图像数据进行归一化处理,根据归一化的方法不同,速度图像中可能出现负值,这时只能输出正值的Relu激活器就已经不再适用。而Tanh会将输入映射到[-1, 1]范围内的特性反而适合速度图像的数据特征,模型可以完整的利用Tanh的两个特性。并且,无论是Relu还是Leaky Relu,两个激活函数都比较线性,表达非线性关系的能力较弱,而Tanh的曲线图像能为模型带来更多非线性因素。

损失函数不同

在原始论文中,作者使用了L1 Loss,而在师兄的代码中使用的是MSE Loss(L2 Loss)。针对两者的范数的不同点,我形成了学习笔记记录到权重衰减的博客中。简单来说,虽然L1 Loss和MSE Loss都衡量的是预测值和真实值的差异,但L1范数损失鼓励模型产生稀疏的权重或特征选择。而MSE损失的优点是对较大的预测误差有较高的惩罚,因为差异的平方放大了较大的误差。相较而言MSE更适合地震反演的任务。

优化器不同

在原始代码中,我是用了SGD进行训练,而在师兄的代码中使用了Adam。关于两者的区别和关系可见上周形成的博客。

下一步工作:

  1. 继续学习地震反演原理,深度学习原理。
  2. 学习FCNVMB网络并复现代码
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值