在地震勘探研究领域,地震断层识别可以有效分析地下地质结构,为油气藏形成和运移提供解释参考。断层识别方法比较多,包括传统断层识别方法、现代的机器学习、深度学习识别等数十种方法。怎样体现识别的准确性成为了断层识别的一个关键问题,其中量化指标成为了一种解决方案。

01 定量指标算法原理介绍

对于机器学习在分类任务中的应用,最常见的评估指标包括了以下几类:错误率,准确率(accuracy),查准率(precision),查全率(recall)与 F1,我们选择最常用的四种给大家进行介绍:

对于二分类问题,可以按照样本的真实类别与模型预测的类别的组合,将样例划分成真正例(True Positive, TP)、假正例(False Positive, FP)、真反例(True Negative, TN)、假反例(False Negative, FN)四种,这四种组合组成的矩阵成为混淆矩阵(Confusion matrix),本次的断层预测混淆矩阵如图所示。

交叉深度学习常用的损失函数(深度学习断层实战)(1)

其中 TP FN FP TN 等于训练样本的总数。

查准率 P(precision)

定义是真正例除以真正例与假正例之和,查准率是针对我们预测结果而言的,它表示的是预测为正的样例中有多少是真正的正样例。

交叉深度学习常用的损失函数(深度学习断层实战)(2)

查全率 R(recall)

又称为召回率,定义是真正例除以真正例与假反例之和,它表示的是样本中的正例有多少被预测正确。

交叉深度学习常用的损失函数(深度学习断层实战)(3)

查准率与查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

为什么会有这样的情况呢?

我们可以这样理解,在一个分类器中,你想要更高的查准率,那么你的阈值要设置的更高,只有这样才能有较高的把握确定我们预测是正例是真正例。一旦我们把阈值设置高了,那我们预测出正例的样本数就少了,那真正例数就更少了,查不全所有的正样例。

P-R曲线

将样本按照预测为正例的概率值从大到小进行排序,从第一个开始,逐个将当前样本点的预测值设置为阈值,有了阈值之后,即可得出混淆矩阵各项的数值,然后计算出P和R,以R为横坐标,P为纵坐标,绘制于图中,即可得出P-R曲线,示意图如下。

交叉深度学习常用的损失函数(深度学习断层实战)(4)

当一个模型A的P-R曲线完全包住另一个模型B的P-R曲线时,即可认为A优于B。其它情况下,可以使用平衡点,也即F1值,或者曲线下的面积来评估模型的好坏。

ROC(Receiver Operating Characteristic)曲线

类似的,将样本排好序后,从第一个开始,逐渐的将其和其之前的点预测为正例,其他的预测为反例,这样就能计算出TPR和FPR,以FPR为横坐标,TPR为纵坐标,即可绘制出ROC曲线,示意图如下。

交叉深度学习常用的损失函数(深度学习断层实战)(5)

ROC曲线下面覆盖的面积称为AUC(Area Under ROC Curve)。用于评估模型的好坏,面积的计算可以通过梯形去插值计算,公式如下:

交叉深度学习常用的损失函数(深度学习断层实战)(6)

一般情况下,模型评估选择P-R或者ROC没啥区别,都是看面积越大的算法性能越好。但是当正样本的个数严重少于负样本个数时,P-R曲线相比较于ROC曲线能够更加直观的表现模型之间的差异。

F1

定义是基于查准率与查全率的调和平均。调和平均更重视较小值。在一些应用中,对查准率和查全率的重视程度有所不同。例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确实是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。F1能让我们表达出对查准率/查全率的不同偏好。

交叉深度学习常用的损失函数(深度学习断层实战)(7)

准确率 A (accuracy)

也称为精度,是预测正确的样本数与样本总数的比值,反应了分类器对整个样本的判定能力。这是最常用的指标。

交叉深度学习常用的损失函数(深度学习断层实战)(8)

02 断层识别定量分析实战讲解

为了介绍量化指标的使用方法,我们结合前面的地震断层实验案例来讲解。

1.仿真训练集数据介绍

我们使用机器自动生成的三维数据集,包括200对地震剖面样本数据和对应断层标签,形成了训练集。还有20对地震剖面数据和断层标签的样本验证集。每个样本的尺寸是128*128*128。如图所示:

交叉深度学习常用的损失函数(深度学习断层实战)(9)

我们使用Unet神经网络模型进行断层识别训练后,对验证集数据进行断层预测,并通过定量指标分析预测的精度。

2.量化评价程序介绍

我们使用sklearn自带的函数来进行量化指标计算。

交叉深度学习常用的损失函数(深度学习断层实战)(10)

因为我们的预测结果是一个概率值,所以首先需要将概率结果进行四舍五入计算。

交叉深度学习常用的损失函数(深度学习断层实战)(11)

接下来我们就可以轻松计算准确率(accuracy),查准率(precision),查全率(recall)与 F1四个参数的结果。

交叉深度学习常用的损失函数(深度学习断层实战)(12)

也可以画出P-R曲线和ROC曲线

交叉深度学习常用的损失函数(深度学习断层实战)(13)

交叉深度学习常用的损失函数(深度学习断层实战)(14)

我们可以选择对所有验证集数据进行断层预测后,计算整体的效果:

交叉深度学习常用的损失函数(深度学习断层实战)(15)

从计算结果来看,准确率较高说明模型对整个样本的判定能力较好。查全率较高说明对正确的断层预测较准确。P-R曲线面积较小,说明查准率与查全率的平衡性不够。ROC曲线面积较大,说明模型整体性能不错。

以上就是今天的课程,重点讲解了4大定量评估指标和2个定量评估曲线,如果对程序感兴趣欢迎联系我交流。再见。

,