【五一培训】Day 4
Topic 1:问题定义
从输入到输出是否可以建立可靠的映射?
(理解:机器学习中间部分是具有随机性和的,明确输入和输出的映射关系能够有效保证可解释性)
把问题抓住了,才知道如何去更好的解决
input和output排列组合,就是新的研究方向
Input
- 不同的结构:平层,断层,曲面,盐体
- 不同的维度:
(1)一维:单个检波器
(2)二维:共炮点道集(多检波器),共接收点道集(多炮,单检波器),共中心点道集(炮点与检波器成对,且共用中点)
(3)三维:多炮,多检波器
(4)四维:三维地下,各炮点组成时序
- 不同区域:陆地,海上,深层(3.5km),浅层
- 主动震源/被动震源
Output
- 地质参数:速度模型,密度,Q,反射系数,波阻抗等
- 地质构造:盐体,圈闭,油层,气层
这些相关定义在之前的学习中已有解释:
【学习笔记】Day 11-CSDN博客
Optimization objective 优化目标
最小化目标函数:衡量预测结果与实际标签之间的差异。如 $\ell_1$,$\ell_2$
如何做:加正则项
这一部分实际上就是Day 2提及过的 Lossfuction 和 优化器:【五一培训】Day 2-CSDN博客
拟合能力 vs. 预测能力:引入其他相关变量。比如衡量一个人是否肥胖,单看体重意义不大,需要结合身高,体脂率等。导致拟合能力差的原因就是,没有建立良好的输入-输出映射关系
所以在描述问题时,需要去着重打磨
Constraint 约束条件
- 输入、输出数值的范围(最大值,非负等)
- 层内速度的一致性(同一层内速度保持一致)
- 界面连续性(横向连续)
- 如果能给出新的,且合理的约束,对任务是有事半功倍的效果的
具体的问题/任务
1D CMP based inversion
优势:网络结构更加简单(每次只有一道);标签完全真实(符合探测)
劣势:横向速度不连续(挂面条)
no solve, only handle(这是很重要的一个常识)
只有数学才能solve一个问题,得到一个解析解
Challenges
有困难要上;没有困难,创造困难也要上!
- 困难带来的同时,促进了更多的方便
- 创造该创造的困难
DL-FWI 的核心问题
地震数据处理有三大类方案。
1) 常规处理流程多,自动化程度低,需要专家大量参与,因此耗时耗力。
2) NS-FWI 有病态、周期跳跃、计算成本高三大核心问题,这个已有定论。
3) DL-FWI 采用数据驱动的方式,也具有自己的一些核心科学问题。
1.泛化能力弱。
泛化能力是机器学习的核心问题。在训练数据上效果好的学习器,在测试数据上效果不一定好。导致泛化能力弱的原因包括:
- 训练数据过少。对于 DL-FW| 这类复杂的问题,需要一个比较深的网络进行特征提取、重构。而越复杂的网络,需要的训练数据就越多,否则很快收敛,而且过拟合现象严重。
- 训练数据缺乏多样性。这与训练数据过少有一些内在联系,总体上说,就是机器学习的优势在于见多识广,对于自己没见过的情况就很难应对。
2.缺乏可解释性。
可解释性是深度学习的核心问题。
这里有两个术语:explanability 是指结果是否可以被解释清楚,interpretability 是指模型本身的设计理念、每个模块的作用是否清楚,一般来说我们更重视后者。
很多时候,我们把用于图像处理的网络作为 DL-FW! 网络。这具有可行性,因为很多深度模型架构具有通用性,用什么数据就训练出什么样的网络。回想线性回归,我们也只有一个模型f= ax+b,至于系数训练成多少,就是数据来说话。甚至我们还将图片数据集预训练获得的 deep prior 直接用于地震数据处理,也能获得很好的效果。其原因在于世界的万物之间存在本质的联系,图像、地震数据都有纹理等特征。
但是,没有足够的可解释性,一方面不容易获得领域专家的肯定,另一方面也阻碍我们设计效果更好的 DL-FWI 网络架构,而陷入不成章法的尝试(网络调参师)。
3.缺乏物理规律约束。
对于深度网络来说,随便给一个符合要求的数据(二维矩阵)就可以获得相应的结果,而不用讲道理。为此,有学者将自然图像(如一匹马的照片)反演成速度模型。这反映我们的网络并没有质疑的能力,也没有办法约束输入与输出。为此,需要在设计模型的过程中,引入地球物理的领域知识,用约束机制来实现。
后记
五一培训的主旋律是DL-FWI基础,重新沉下心来再回顾一遍,收获颇多。
在重新回顾基础的过程中,借此发现在之前的学习中,作者是存在很多取巧行为的(如调包,一些基础概念的确缺失)。而这种不坚固的地基实际上给作者的学习过程带来了诸多困难,最明显的表现就是在处理一些实验任务时,周期过长。
因此,暂且放下过于功利的视角,扎实过一遍 “日撸java300行”,以提升自己的代码能力,是百利无一害的(唯一的害可能就是时间压力,但无论怎么说,只要愿意开始,就从来不会晚),而这一部分,请参考 Java 相关的专栏,后续会持续更新。