在使用模型进行预测时,了解模型的工作原理至关重要。这将使您能够正确解释预测并评估其可靠性。
了解模型的工作原理
有许多不同的机器学习模型,每种模型都有自己独特的工作原理。了解您使用的模型的具体工作原理非常重要。这将使您能够:
- 正确解释预测
- 评估预测的可靠性
- 识别潜在的偏差或错误
如何了解模型的工作原理
了解模型的工作原理有几种方法:
-
阅读文档:大多数模型都附有文档,其中解释了其工作原理。可靠性
评估预测的可靠性时,请务必考虑以下因素:
- 模型的准确性:如上所述,模型的准确性是指模型对新数据的预测准确性的程度。准确性越高的模型越值得信赖。
- 模型的偏差:如上所述,模型的偏差是指模型倾向于对某些类型的数据进行过度预测或欠预测的程度。偏差会导致不准确的预测。
- 预测的不确定性:如上所述,预测的不确定性是指模型对其预测有多自信的程度。不确定性较高的模型不太可靠。
- 领域知识:您对正在预测的领域的知识可以帮助您评估预测的可靠性。您应该考虑预测是否与您对领域的了解一致。
识别潜在的偏差或错误
在使用模型时,识别潜在的偏差或错误非常重要。偏差或错误会导致不准确的预测。以下是一些识别潜在偏差或错误的方法:
- 查看数据:查看您正在使用的数据以识别任何潜在的偏差或错误。例如,您应该确保数据没有缺失值或异常值。
- 查看模型:查看您正在使用的模型以识别任何潜在的偏差或错误。例如,您应该确保模型没有过度拟合数据。
- 评估预测:评估您正在使用的模型的预测以识别任何潜在的偏差或错误。例如,您应该确保预测与您对领域的了解一致。
结论
了解模型的工作原理对于正确解释预测和评估其可靠性至关重要。通过了解模型的工作原理,您可以识别潜在的偏差或错误,并做出更明智的决策。
对模型进行评估的方式有什么评估和什么评估
对模型进行评估的方式主要有两种:内部评估和外部评估。
1.内部评估:内部评估是指使用模型训练数据集中的一部分数据作为测试数据集,通过比较模型在训练集和测试集上的表现来评估模型的性能。 内部评估可以帮助我们了解模型的过拟合情况,即模型是否过于适应了训练数据集,而无法泛化到新的数据集上。
2.外部评估:外部评估是指使用另外一个独立的数据集来评估模型的性能。 这个数据集通常与训练集和测试集不同,可以更好地反映模型在实际应用中的性能。 外部评估可以帮助我们确定模型是否具有良好的泛化能力,即能否适应新的数据集。
在进行模型评估时,通常会使用一些指标来衡量模型的性能,如准确率、召回率、F1值、AUC等。 这些指标可以帮助我们评估模型的分类性能、回归性能、聚类性能等。
除了内部评估和外部评估,还可以使用交叉验证、模型可解释性分析等方法来评估模型的性能。 交叉验证可以帮助我们更充分地利用数据集来评估模型的性能,而模型可解释性分析可以帮助我们了解模型的决策过程,从而更好地理解模型的性能和局限性。
使用不可靠伪标签的半监督语义分割
CVPR2022Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels 半监督语义分割的关键是为未标记图像的像素分配足够的伪标签。 一种常见的做法是选择高置信度的预测作为伪真值,但这会导致一个问题,即大多数像素可能由于不可靠而未被使用。 我们认为,每个像素对模型训练都很重要,即使它的预测是模糊的。 直觉上,不可靠的预测可能会在顶级类别(即概率最高的类别)中混淆,但是,它应该对不属于其余类别的像素有信心。 因此,对于那些最不可能的类别,这样一个像素可以令人信服地视为负样本。 基于这一认识,我们开发了一个有效的管道,以充分利用未标记的数据。 具体地说,我们通过预测熵来分离可靠和不可靠像素,将每个不可靠像素推送到由负样本组成的类别队列中,并设法用所有候选像素来训练模型。 考虑到训练进化,预测变得越来越准确,我们自适应地调整可靠-不可靠划分的阈值。 在各种基准和训练环境下的实验结果表明,我们的方法优于最先进的替代方法。 1.导言 语义分割是计算机视觉领域的一项基本任务,随着深度神经网络的兴起,语义分割得到了极大的发展[5,29,35,46]。 现有的有监督方法依赖于大规模带注释的数据,在实践中获取这些数据的成本太高。 为了缓解这个问题,人们进行了许多尝试[1,4,9,15,21,33,43,48]来实现半监督语义分割,即学习只有少量标记样本和大量未标记样本的模型。 在这种情况下,如何充分利用未标记的数据变得至关重要。 典型的解决方案是为没有注释的像素分配伪标签。 具体地说,给定一个未标记的图像,现有技术[27,41]从基于标记数据训练的模型中借用预测,并使用像素预测作为“基本事实”,从而增强监督模型。 为了缓解确认偏差的问题[2],模型可能会受到错误的伪标签的影响,现有方法建议使用置信度分数过滤预测[42,43,50,51]。 换句话说,只有高置信度的预测被用作伪标签,而模糊的预测被丢弃。 然而,仅使用可靠的预测所导致的一个潜在问题是,在整个训练过程中可能永远无法学习某些像素。 例如,如果模型不能令人满意地预测某个特定类别(例如,图1中的椅子),则很难为关于该类别的像素分配准确的伪标签,这可能导致训练不足且绝对不平衡。 从这个角度出发,我们认为,为了充分利用未标记的数据,每个像素都应该得到适当的利用。 如上所述,直接使用不可靠的预测作为伪标签将导致性能下降[2]。 在本文中,我们提出了一种使用不可靠伪标签的替代方法。 我们称我们的框架为U2PL。 首先,我们观察到,一个不可靠的预测通常只会在少数几个类中混淆,而不是在所有类中混淆。 以图2为例,带有白色十字的像素在等级摩托车和人身上接收到相似的概率,但模型非常确定该像素不属于等级汽车和火车。 基于这一观察,我们重新考虑那些令人困惑的像素,将其作为那些不太可能的类别的负样本。 具体来说,在从未标记图像获得预测后,我们使用每像素熵作为度量(参见图2a),将所有像素分为两组,即可靠和不可靠。 所有可靠的预测都被用来导出正的伪标签,而预测不可靠的像素被推入充满负样本的内存库。 为了避免所有负面伪标签只来自类别的子集,我们为每个类别使用了一个队列。 这样的设计确保了每个类的负样本数量是平衡的。 同时,考虑到伪标签的质量随着模型的精确性越来越高,我们提出了一种自适应调整阈值的策略来划分可靠像素和不可靠像素。 我们在广泛的训练环境下,在PASCAL VOC 2012[14]和Cityscapes[10]上评估了提议的U2PL,我们的方法超过了最先进的竞争对手。 此外,通过可视化分割结果,我们发现,由于充分使用了不可靠的伪标签,我们的方法在那些模糊区域(例如,不同对象之间的边界)上取得了更好的性能。 2.相关工作 半监督学习有两种典型范例: 一致性正则化[3,15,33,36,42]和熵最小化[4,16]。 最近,一个更直观但有效的框架:自训练[27]已成为主流。 有几种方法[15,43,44]利用了强大的数据增强功能,例如基于自训练的CutOut[13]、CutMix[45]和ClassMix[31]。 然而,这些方法并没有太多关注语义分割的特点,而我们的方法主要关注那些不可靠的像素,这些像素将被大多数基于自训练的方法过滤掉[34,43,44]。 当从教师网络生成输入图像的预测时,伪标签用于防止过度拟合到正确的伪标签[2,27]。 FixMatch[37]利用置信阈值来选择可靠的伪标签。 UPS[34]是一种基于FixMatch[37]的方法,它考虑了模型不确定性和数据不确定性。 然而,在半监督语义分割中,我们的实验表明,在训练中加入不可靠的像素可以提高性能。 计算机视觉中的模型不确定性主要通过贝叶斯深度学习方法进行测量[12,23,30]。 在我们的环境中,我们不关注如何测量不确定性。 我们简单地使用像素概率分布的熵作为度量。 对比学习被许多成功的研究成果应用于自监督学习[7,8,17]。 在语义切分中,对比学习已经成为一种很有前途的新范式[1,28,40,47,49]。 然而,这些方法忽略了半监督分割中常见的假负样本,不可靠的像素可能会在对比丢失中被错误地推开。 区分不太可能的不可靠像素类别可以解决这个问题。 负面学习旨在通过降低负面样本的概率来降低错误信息的风险[24,25,34,39],但这些负面样本的选择具有较高的可信度。 换言之,这些方法仍然使用可靠的预测。 相比之下,我们建议充分利用这些不可靠的预测进行学习,而不是将其过滤掉。 3.方法 在这一节中,我们从数学上建立了我们的问题,并在第二节中概述了我们提出的方法。 3.1首先。 我们过滤可靠伪标签的策略将在第二节中介绍。 3.2. 最后,我们描述了如何在Sec中使用不可靠的伪标签。 3.3. 3.1. 概述 给定一个标记集Dl=(x l i,y l i)Nl i=1和一个更大的未标记集Du={x u i}Nu i=1,我们的目标是通过利用大量未标记数据和较小的标记数据集来训练语义分割模型。 图3给出了U2PL的概述,它遵循典型的自训练框架,具有相同架构的两个模型,分别命名为教师和学生。 这两个模型只有在更新权重时才有所不同。 学生模型的权重θs更新与常规做法一致,而教师模型的权重θt是由学生模型的权重更新的指数移动平均(EMA)。 每个模型由一个基于CNN的编码器h、一个带有分割头f的解码器和一个表示头g组成。 在每个训练步骤中,我们对B标记图像Bl和B未标记图像Bu进行同等采样。 对于每个标记的图像,我们的目标是最小化等式(2)中的标准交叉熵损失。 对于每个未标记的图像,我们首先将其放入教师模型中并进行预测。 然后,基于像素级熵,我们在计算等式(3)中的无监督损失时忽略了不可靠的像素级伪标签。 这一部分将在第二节中介绍。 3.2详细说明。 最后,我们使用对比损失来充分利用非监督损失中排除的不可靠像素,这将在第二节中介绍。 3.3. 我们的优化目标是最大限度地减少总体损失,具体如下: 其中Ls和Lu分别表示标记图像和未标记图像上的监督损失和非监督损失,Lc表示充分利用不可靠伪标签的对比损失。 λu和λc分别是无监督损失和对比损失的权重。 Ls和Lu都是交叉熵(CE)损失: 其中,y l i表示第i个标记图像的手注释遮罩标签,yˆu i是第i个未标记图像的伪标签。 F◦ h是h和f的合成函数,这意味着图像首先被送入h,然后被送入f以得到分割结果。 Lc是像素级信息[32]损耗,定义为: 其中M是锚像素的总数,zci表示类c的第i个锚的表示。 每个锚像素后面有一个正样本和N个负样本,其表示为z+ci和z− 分别是cij。 注意z=g◦ h(x)是表示头的输出。 h·,·i是来自两个不同像素的特征之间的余弦相似性,其范围限制在−1到1,因此需要温度τ。 在[28]之后,我们设定M=50,N=256,τ=0.5。 3.2. 伪标记 为了避免过度拟合错误的伪标签,我们利用每个像素概率分布的熵来过滤高质量的伪标签,以便进一步监督。 具体来说,我们表示pij∈ R C为教师模型的分割头在像素j处为第i个未标记图像生成的softmax概率,其中C为班级数量。 其熵由以下公式计算: 其中,pij(c)是第c维的pij值。 然后,我们将熵在αt上的像素定义为不可靠的伪标签,这种不可靠的伪标签不适合监督。 因此,我们将像素j处第i个未标记图像的伪标签定义为: 式中,γt表示第t个训练步骤的熵阈值。 我们将γt设为对应于αt的分位数,即γt=np。 百分位((),100*(1-αt)),其中H是每像素熵图。 为了提高性能,我们在伪标记过程中采用了以下调整策略。 动态分区调整。 在训练过程中,伪标签逐渐趋于可靠。 基于这种直觉,我们在每个历元用线性策略调整不可靠像素的比例αt: 其中α0为初始比例,设置为20%,t为当前训练时间。 自适应体重调整。 在获得可靠的伪标签后,我们将其纳入等式(3)中的无监督损失中。 该损失的权重λu定义为当前小批量中熵小于阈值γt的像素百分比乘以基本权重η的倒数: 其中1(·)为指示器功能,η设为1。 3.3. 使用不可靠的伪标签 在半监督学习任务中,丢弃不可靠的伪标签或降低其权重被广泛用于防止模型性能下降[37,41,43,50]。 我们遵循这一直觉,根据公式(6)过滤掉不可靠的伪标签。 然而,这种对不可靠伪标签的蔑视可能会导致信息丢失。 显然,不可靠的伪标签可以提供更好的识别信息。 例如,图2中的白色十字是典型的不可靠像素。 它的分布显示了模型的不确定性,以区分阶级的人和阶级的摩托车。 然而,这种分布也证明了模型的确定性,即不会将该像素区分为普通汽车、普通火车、普通自行车等。 这种特性为我们提出使用不可靠的伪标签进行半监督语义分割提供了主要依据。 U2PL的目标是利用不可靠的伪标签信息进行更好的区分,这与最近流行的对比学习范式在区分表征方面是一致的。 但由于在半监督语义分割任务中缺少标记图像,我们的U2PL基于更复杂的策略。 U2PL有三个组件,分别命名为锚像素、正候选和负候选。 这些分量是以抽样的方式从某些集合中获得的,以减少巨大的计算成本。 接下来,我们将介绍如何选择:(a)锚定像素(查询);(b) 每个锚的正样本;(c) 每个锚的负样本。 锚定像素。 在训练期间,我们为当前小批量中出现的每个类采样锚像素(查询)。 我们将c类的所有标记候选锚像素的特征集表示为Al c, 其中,yij是标记图像i的第j个像素的基本真值,δp表示特定类别的正阈值,并在[28]之后设置为0.3。 zij的意思是 标记图像i的第j个像素的表示。 对于未标记数据,对应的Au c可计算为: 它与Al c类似,唯一的区别是我们使用基于等式(6)的伪标签yˆij,而不是手工标注的标签,这意味着合格的锚像素是可靠的,即H(pij)≤ γt。 因此,对于c级,所有合格的锚定装置 正样本。 同一类别的所有锚的正样本相同。 它是所有可能锚定的中心: 负样本。 我们定义了一个二进制变量nij(c)来识别图像i的第j个像素是否符合c类负样本的条件。 其中,nlij(c)和nuij(c)是标记图像i和未标记图像i的第j个像素是否分别合格为c类负样本的指示符。 对于第i个标记图像,c类合格负样本应为:(a)不属于c类;(b) 很难区分c类和它的基本事实类别。 因此,我们引入像素级别的类别顺序Oij=argsort(pij)。 显然,我们有Oij(arg max pij)=0和Oij(arg min pij)=C− 1. 其中rl是低秩阈值,设置为3。 这两个指标分别反映了特征(a)和(b)。 对于c类样品:(i)对于a类样品,不可靠;(b) 可能不属于c类;(c) 不属于最不可能的类别。 类似地,我们也使用Oij来定义nuij(c):其中rh是高阶阈值,设置为20。 最后,c类的负样本集是 分类记忆库。 由于数据集的长尾现象,某些特定类别的负面候选数据在小批量中非常有限。 为了保持负样本的稳定数量 我们使用分类记忆库Qc(FIFO队列)存储c类的负样本。 最后,算法1展示了使用不可靠伪标签的整个过程。 锚的所有特征都与梯度有关,因此来自学生,而正样本和负样本的特征则来自教师。 4.实验 4.1. 安装程序 数据集。 PASCAL VOC 2012[14]数据集是一个标准的语义分割基准,包含20个对象语义类和1个背景语义类。 训练集和验证集分别包括1464和1449张图像。 在[9,21,43]之后,我们使用SBD[18]作为增广集,增加了9118张额外的训练图像。 由于SBD[18]数据集是粗略注释的,PseudoSeg[50]只将标准1464幅图像作为整个标记集,而其他方法[9,21]将所有幅图像作为候选标记数据。 因此,我们在经典集(1464张候选标记图像)和混合集(张候选标记图像)上评估了我们的方法。 Cityscapes[10]是一个为城市场景理解而设计的数据集,由2975张带有精细注释的面具的训练图像和500张验证图像组成。 对于每个数据集,我们将U2PL与1/2、1/4、1/8和1/16分区协议下的其他方法进行比较。 网络结构。 我们使用在ImageNet[11]上预先训练过的ResNet-101[19]作为主干,使用DeepLabv3+[6]作为解码器。 分割头和表示头都由两个Conv BN ReLU块组成,其中两个块都保持特征图分辨率,第一个块将通道数减半。 分割头可以看作是一个像素级分类器,将ASPP模块输出的512维特征映射到C类中。 表示头将相同的特征映射到256维的表示空间。 评价 按照之前的方法[15,21,33,48],图像被中心裁剪成PASCAL VOC 2012的固定分辨率。 对于城市景观,以前的方法适用于幻灯片窗口评估,我们也是。 然后,我们采用联合上的相交平均值(mIoU)作为度量来评估这些裁剪图像。 所有结果均在城市景观[10]和PASCAL VOC 2012[14]上的val集上测量。 在1/4和1/8分区方案下,对搅拌器PASCAL VOC 2012[14]val进行了烧蚀研究。 实施细节。 对于搅拌机和经典PASCAL VOC 2012数据集的训练,我们使用了随机梯度下降(SGD)优化器,初始学习率为0.001,重量衰减为0.0001,作物大小为513×513,批量大小为16,训练时间为80。 对于城市景观数据集上的训练,我们还使用了随机梯度下降(SGD)优化器,初始学习率为0.01,权重衰减为0.0005,作物大小为769×769,批量大小为16,训练时间为200。 在所有实验中,解码器的学习速度是主干网的十倍。 在训练过程中,我们使用poly调度来衰减学习率:lr=lrbase· 4.2. 与现有备选方案的比较 我们将我们的方法与以下最新的半监督语义切分方法进行了比较:均值教师(MT)[38]、CCT[33]、GCT[22]、伪SEG[50]、CutMix[15]、CPS[9]、PC2Seg[48]、AEL[21]。 我们重新实现了MT[38],CutMix[45],以进行公平比较。 对于城市景观[10],我们还复制了CPS[9]和AEL[21]。 所有结果都配备了相同的网络架构(DeepLabv3+作为解码器,ResNet-101作为编码器)。 需要注意的是,经典PASCAL VOC 2012数据集和blender PASCAL VOC 2012数据集仅在训练集上有所不同。 他们的验证集是相同的,共有1449张图像。 经典PASCAL VOC 2012数据集的结果。 标签。 我们的经典VOC-2012数据集与其他最先进的方法PASCAL-1进行了比较。 在1/16、1/8、1/4和1/2分区协议下,U2PL的性能分别比监督基线高出+22.21%、+14.23%、+7.78%和+4.47%。 为了公平比较,我们只列出在经典PASCAL VOC 2012上测试的方法。 在1/16、1/8、1/4和1/2分区协议下,我们的方法U2PL在所有分区协议下的性能分别比PC2Seg高出+10.98%、+2.87%、+3.88%和+3.11%。 即使在完全监督下,我们的方法也比PC2Seg高出+5.34%。 blender PASCAL VOC 2012数据集的结果。 标签。 2显示了blender PASCAL VOC 2012数据集上的比较结果。 在大多数分区协议下,我们的方法U2PL优于所有其他方法。 与基线模型(仅使用监督数据进行训练)相比,U2PL在1/16、1/8、1/4和1/2分区协议下分别实现了+9.34%、+7.46%、+3.50%和+3.37%的所有改进。 与现有的最先进的方法相比,U2PL在所有分区协议下都优于它们。 特别是在1/8协议和1/4协议下,U2PL的性能优于AEL,分别为+1.44%和+1.24%。 城市景观数据集上的结果。 标签。 CitySVal 3演示了在Capes集合上的比较结果。 在1/16、1/8、1/4和1/2分区协议下,U2PL的性能比仅受监督的基线提高了+9.16%、+3.95%、+4.08%和+1.29%。 U2PL的性能显著优于现有的最先进方法。 特别是,在1/16、1/8、1/4和1/2分区协议下,U2PL的性能优于AEL,分别为+0.45%、+0.93%、+1.03%和+0.11%。 请注意,当标记数据非常有限时,例如,当我们只有92个标记数据时,我们的U2PL比以前的方法有很大的优势(对于经典的PASCAL VOC 2012,在1/16分割下(+10.98%),证明了使用不可靠伪标签的效率。 4.3. 消融研究 使用不可靠伪标签的有效性。 为了证明我们的核心观点,即使用不可靠的伪标签促进半监督语义分割,我们进行了关于选择可靠性不同的否定候选词(第3.3节)的实验。 标签。 4演示了PASCAL VOC 2012 val集合上的mIoU结果。 “不可靠”优于其他选项,证明使用不可靠的伪标签确实有帮助。 附录B显示了在城市景观上使用不可靠伪标签的有效性。 概率等级阈值的有效性。 秒。 3.3建议使用概率等级阈值来平衡不可靠像素造成的信息量和混乱。 标签。 5验证了这种平衡能促进绩效。 rl=3和rh=20的表现大大优于其他选项。 当rl=1时,假负候选不会被过滤掉,从而导致像素的类内特征被Lc错误区分。 当rl=10时,否定候选词倾向于在语义上与相应的锚像素无关,这使得这种区分的信息量较小。 附录D.2研究了城市景观的PRT和α0。 组件的有效性。 我们在Tab中进行实验。 6.逐步烧蚀U2PL的每个组件。 为了公平比较,在blender PASCAL VOC 2012数据集上,所有烧蚀都在1/4分区协议下。 最重要的是,我们使用无Lc训练模型作为基线,实现了73.02%的mIoU(表2中的MT)。 只需在不使用DPA策略的情况下添加Lc即可将基线提高+4.06%。 分类存储库Qc,加上PRT和高熵过滤,比基线提高了+5.47%。 动态分区调整(DPA)与高熵过滤相结合,比基线提高了+6.05%。 请注意,DPA是一种无需调谐的线性调整(参考等式(7)),它简单而有效。 对于概率秩阈值(PRT)分量,我们根据制表符设置相应的参数。 5.在没有高熵过滤的情况下,改善率在+4.55%时显著降低。 最后,当将所有贡献相加时,我们的方法在1/4分区协议下达到了最新的结果,mIoU为79.30%。 根据这个结果,我们在Tab上的所有实验中应用这些组件和相应的参数。 2和标签。 1. 超消融参数研究。 我们烧蚀了U2PL的以下重要参数。 标签。 7研究了不同初始可靠不可靠分区的影响。 该参数α0对性能有一定影响。 我们发现α0=20%达到最佳性能。 小的α0会引入不正确的伪标签进行监督,大的α0会使一些高置信度样本的信息未被充分利用。 附录D.1研究了其他超参数。 4.4. 定性结果 图4显示了PASCAL VOC 2012 val集合上不同方法的结果。 得益于使用不可靠的伪标签,U2PL优于其他方法。 请注意,在不过滤那些不可靠像素的情况下使用对比学习,有时会对模型造成损害(参见图4中的第2行和第4行),导致比仅使用标记数据训练模型时更糟糕的结果。 此外,通过对分割结果的可视化,我们发现我们的方法获得了更好的分割效果 这些模糊区域(例如,不同对象之间的边界)上的性能。 这种视觉差异证明,我们的方法最终增强了不可靠预测标签的可靠性。 5.结论 我们提出了一个半监督语义切分框架U2PL,该框架将不可靠的伪标签加入到训练中,其性能优于许多现有的最先进的方法,这表明我们的框架为半监督学习研究提供了一个新的有希望的范例。 我们的烧蚀实验证明了这项工作的洞察力是非常可靠的。 定性结果为其有效性提供了直观的证明,尤其是在语义对象或其他模糊区域之间的边界上表现更好。 与完全监督的方法相比,我们的方法的训练非常耗时[5,6,29,35,46],这是半监督学习任务的一个常见缺点[9,20,21,33,43,48]。 由于标签的极度缺乏,半监督学习框架通常需要为更高的准确性及时付出代价。 未来可以对他们的训练优化进行更深入的探索。
机器学习模型可解释的重要及必要性
机器学习模型可解释的重要及必要性不管你是管理自己的资金还是客户资金,只要你在做资产管理,每一步的投资决策都意义重大,做技术分析或基本面分析的朋友很清楚地知道每一个决策的细节,但是通过机器学习、深度学习建模的朋友可能就会很苦恼,因为直接产出决策信号的模型可能是个黑盒子,很难明白为什么模型会产出某一个信号,甚至很多保守的私募基金把模型的可解释性放入了事前风控。 其实,模型的可解释性是很容易做到的,难点在于研究员是否对模型有深入的思考和理解。 介绍机器学习领域在过去十年中发生了显著的变化。 从一个纯粹的学术和研究领域方向开始,我们已经看到了机器学习在各个领域都有着广泛的应用,如零售,技术,医疗保健,科学等等。 在21世纪,数据科学和机器学习的重要目标已经转变为解决现实问题,自动完成复杂任务,让我们的生活变得更加轻松,而不仅仅是在实验室做实验发表论文。 机器学习,统计学或深度学习模型工具已基本成型。 像Capsule Networks这样的新模型在不断地被提出,但这些新模型被工业采用却需要几年时间。 因此,在工业界中,数据科学或机器学习的主要焦点更多在于应用,而不是理论。 这些模型可以在正确数据上有效应用来解决现实问题是至关重要的。 机器学习模型本质上就是一种算法,该算法试图从数据中学习潜在模式和关系,而不是通过代码构建一成不变的规则。 所以,解释一个模型是如何在商业中起作用总会遇到一系列挑战。 在某些领域,特别是在金融领域,比如保险、银行等,数据科学家们通常最终不得不使用更传统更简单的机器学习模型(线性模型或决策树)。 原因是模型的可解释性对于企业解释模型的每一个决策至关重要。 然而,这常常导致在性能上有所牺牲。 复杂模型像如集成学习和神经网络通常表现出更好更精准的性能(因为真实的关系在本质上很少可以通过线性划分的),然而,我们最终无法对模型决策做出合适的解释。 为了解决和探讨这些差距,本文中,我会重点解释模型可解释性的重要及必要性。 动机作为一名在企业工作的数据科学家并时常指导他人,我发现数据科学仍然常常被视为一个黑盒,它能用“魔法”或“炼金术”提供人们想要的东西。 然而,严酷的现实是,如果不对模型进行合理足够的解释,现实世界的项目很少成功。 如今,数据科学家通过构建模型并为业务提供解决方案。 企业可能不知道模型实现的复杂细节,却要依靠这些模型做出决策,他们确实有权提出这样的问题:“我怎样才能相信你的模型?”或“你的模型是如何决策的”?”回答这些问题是数据科学实践者和研究人员数年来一直在尝试的事情。 数据科学家知道,模型解释性与模型性能之前有一个权衡。 在这里,模型性能不是运行时间或执行性能,而是模型在做出预测时的准确度。 有几种模型(包括简单的线性模型甚至基于树的模型),他们的预测的原理很好直观理解,但是需要牺牲模型性能,因为它们的产生的结果偏差或者方差很高(欠拟合:线性模型),或者容易过拟合(基于树的模型)。 更复杂的模型,如集成模型和近期快速发展的深度学习通常会产生更好的预测性能,但被视为黑盒模型,因为要解释这些模型是如何真正做出决策是一件非常困难的事情。 虽然有些人说,知道模型性能好就行了,为什么还要知道它背后的原理呢? 然而,作为人类,大多数决策基于逻辑和推理。 因此,人工智能(AI)作出决策的模式无疑会受到怀疑。 在很多现实情况下,有偏差的模型可能会产生真正的负面影响。 这包括预测潜在的犯罪、司法量刑、信用评分、欺诈发现、健康评估、贷款借款、自动驾驶等,其中模型的理解和解释是最重要的。 数据科学家、作家Cathy O’ Neil在她的著名著作《Weapons of Math Destruction》中也强调了这一点。 著名学者和作家凯特克劳福德在NIPS 2017主题演讲《The Trouble with Bias》中谈到了偏差在机器学习中的影响以及它对社会的影响。 有兴趣的读者也可以看看她在纽约时报的著名文章《 Artificial Intelligence’s White Guy Problem》,向我们展示了机器学习应用的案例,包括图像分类、犯罪风险预测、交付服务可用性等等,这些应用对黑人极不亲善。 如果我们想利用机器学习来解决这些问题,所有这些真实世界的场景都在告诉我们模型解释是多么的重要。 在过去的一年里,我在解决行业问题的同时也看到了对模型解释的需求,同时我也在写我的新书《Practical Machine Learning with Python2》。 在这段时间里,我有机会与的优秀员工进行互动,他们非常清楚在机器学习模型中人类可解释性的必要性和重要性。 他们也一直在积极研究解决方案,并开发了流行的python框架Skater。 后续我们将深入研究Skater,并在本系列文章中做一些实际的模型解释。 理解模型解释机器学习(尤其是深度学习)仅在最近几年才得到广泛的行业采用。 因此,模型解释作为一个概念仍然主要是理论和主观的。 任何机器学习模型都有一个响应函数,试图映射和解释自(输入)变量和因(目标或响应)变量之间的关系和模式。 模型解释试图理解和解释响应函数做出的这些决定。 模型解释的关键在于透明度以及人们理解模型决策的容易程度。 模型解释的三个最重要的方面解释如下。 什么主导了模型预测?我们应该找出特征的相互作用,以了解在模型的决策策略中哪些特征可能是重要的。 这确保了模型的公平性。 为什么模型做出某个特定决策?我们还应该能够验证为什么某些关键特征在预测期间推动某个模型所做出的某些决定。 这确保了模型的可靠性。 我们如何相信模型预测?我们应该能够评估和验证任何数据点以及模型如何作出决策。 对于模型按预期运行的直接利益相关者来说,这应该是可证明的,并且易于理解。 这确保了模型的透明度。 可解释性是指人(包括机器学习中的非专家)能够理解模型在其决策过程中所做出的选择(怎么决策,为什么决策和决策了什么)。 在模型比较时,除了模型的性能,如果一个模型的决策比另一个模型的决策更容易被人类理解,则说该模型比另一个模型具有更好的可解释性。 模型解释的重要性在解决机器学习问题时,数据科学家通常倾向于注意模型性能指标,如准确性、精确度和召回率等(毫无疑问,这很重要!)。 但是,度量标准只能说明模型预测性决策的一部分内容。 随着时间的推移,由于环境中各种因素造成的模型概念漂移,性能可能会发生变化。 因此,了解什么促使模型作出某些决定是极为重要的。 我们中的一些人可能会认为模型已经工作得很好了,为什么还要深入挖掘呢?一定要记住,当解决现实世界中的数据科学问题时,为了让企业相信你的模型预测和决策,他们会不断提问“我为什么要信任你的模型?”,这非常合理。 如果一个人患有癌症或糖尿病,如果一个人可能对社会构成风险,或者即使客户流失,您是否会满意于只是预测和做出决定(如何)的模型?也许另外一种会更好,如果我们可以更多地了解模型的决策过程(为什么以及如何),我们可能更喜欢它。 这为我们提供了更多的透明度,说明为什么模型会做出某些决定,在某些情况下可能会出错,并且随着时间的推移它可以帮助我们在这些机器学习模型上建立一定的信任度。 这一部分关键的一点是,现在是时候停止将机器学习模型视为黑盒子,不仅尝试和分析数据,而且还要分析模型如何做出决策。 实际上,走向这条道路的一些关键步骤是由著名论文《Why Should I Trust You?》(解释了任意分类器的预测)”开始的,由MT Ribeiro,S. Singh和C. Guestrin在SIGKDD 2016上介绍了LIME(Local Interpretable Model-Agnostic Explanations)(局部可解释模型 - 不可知论解释)的概念。 他们在论文中提到了一些值得记住的关键点。 然而,理解预测背后的原因在评估信任方面非常重要,如果计划基于预测采取行动,或者选择是否部署新模型,则对模型的信任是至关重要的。 无论人类是直接使用机器学习分类器作为工具还是在其他产品中部署模型,仍然存在一个至关重要的问题:如果用户不信任模型或预测,他们将不会使用它。 这是我们在本文中多次讨论的内容,也是决定数据科学项目在业界成功与否的关键因素之一。 这就推动了模型解释的必要性和重要性。 模型解释方法的标准对于模型解释方法的分类有特定的标准。 在Christoph Molnar的“Interpretable Machine Learning,Making Guide for Making Black Box Models Explainable”中提到了一个很好的指导标准:内在或事后?内在解释性是关于利用机器学习模型的,它本质上是解释性的(像线性模型、参数模型或基于树的模型)。 事后解释性意味着选择和训练一个黑盒模型(集成方法或神经网络)并在训练后应用可解释性方法(特征重要性,部分依赖关系图)。 我们将在我们的系列文章中更多地关注事后模型可解释的方法。 是针对某个模型的还是通用的?特定于模型的解释工具对固有模型解释方法非常具体,这些解释方法完全取决于每个模型的能力和特征。 这可以是系数,p值,与回归模型相关的AIC分数,决策树的规则等等。 通用的模型解释方法还是依赖于事后对模型的分析,可用于任何机器学习模型。 通常通过分析特征输入和输出对来运行。 根据定义,这些方法无法访问任何模型内部,如权重,约束或假设。 本地还是全局?这种解释的分类会谈到解释方法是解释单个预测还是整个模型行为?或者如果范围介于两者之间?我们将尽快讨论更多关于局部和全局的解释。 这并不是对可解释方法进行分类的一套完整的标准,因为这仍然是一个新兴的领域,但这可以是一个很好的标准,可以在多种方法之间进行比较和对比。 模型解释的范围我们如何界定解释的范围和界限?一些有用的方面可以是模型的透明度,公平性和可靠性。 本地还是全局模型解释是定义模型解释范围的明确方法。 全局解释性这就是要试图理解“模型如何做出预测?”和“模型的子集如何影响模型决策?”。 为了一次理解和解释整个模型,我们需要全局解释。 全局可解释性是指能够基于完整数据集上的依赖(响应)变量和独立(预测)特征之间的条件相互作用来解释和理解模型决策。 试图理解特征的相互作用和重要性,往往是理解全局解释的好的一步。 当然,在尝试分析交互时,在超过两个或三个维度后对特征进行可视化变得非常困难。 因此,经常查看可能会影响全局知识模型预测的模块化部分和特征子集,对全局解释是有所帮助的。 完整的模型结构知识,假设和约束是全局解释所必需的。 局部解释性这就是要了解“为什么模型会为单个实例做出特定决策?”以及“为什么模型会为一组实例做出特定决策?”。 对于局部的可解释性,我们不关心模型的内在结构或假设,我们把它当作一个黑箱子。 为了理解单个数据点的预测决策,我们专门关注该数据点,并在该点附近的特征空间中查看局部子区域,并尝试根据此局部区域了解该点的模型决策。 局部数据分布和特征空间可能表现完全不同,并提供更准确的解释而不是全局解释。 局部可解释模型 - 不可知论解释(LIME)框架是一种很好的方法,可用于模型不可知的局部解释。 我们可以结合使用全局解释和局部解释来解释一组实例的模型决策。 模型透明度这就是要了解“从算法和特征中创建模型的过程如何?”。 我们知道,典型的机器学习模型都是关于利用一个算法在数据特征之上构建一个表示,将输入映射到潜在的输出(响应)。 模型的透明性可以尝试理解模型如何构建的更多技术细节,以及影响其决策的因素。 这可以是神经网络的权值,CNN滤波器的权值,线性模型系数,节点和决策树的分割。 然而,由于企业对这些技术细节可能并不十分熟悉,试图用不可知的局部和全局解释方法来解释模型决策有助于展示模型的透明度。 结论模型可解释是一个对现实世界机器学习项目非常重要的一件事情。 让我们试着去研究人类可解释的机器学习,让每个人都打开机器学习模型的黑箱,并帮助人们增加对模型决策的信任。 写在最后:模型解释性很重要,这能够加深我们对模型的信心,尤其是在金融市场中,当模型持续回撤时,信心比黄金还重要。 之前有一个私募团队使用了StockRanker策略,但是迟迟不肯上实盘,后来在弄清楚模型的理论原理和每一步细节、处理流程后,终于有信心上实盘,实盘前期遇到回撤也能明白是正常情况,并非模型预测失效,扛住前期的回撤后策略净值开始上升。 因此,机器学习模型可解释很重要,模型也是可以解释的,只是需要研究员付出更多的心血
标签: 这将使您能够正确解释预测并评估其可靠性 了解您使用的模型的工作原理非常重要 对模型的理解