数据集偏移&领域偏移 Dataset Shift&Domain Shift
将数据集的gap(differences between datasets)这个问题抽象出来便是Dataset Shift问题。它描述了数据分布不一致的问题,明显是一个比网络设计/注意力机制等看起来稍偏底层的问题,因此对该问题的探究可能可以帮助我们为上层建筑方法的实践提供理论指导。
数据集偏移 Dataset Shift
根据贝叶斯公式,,其中有三个我们可以考虑的概率分布项:输入空间的边缘概率分布,输出空间的标签分布,以及表示该机器学习任务的条件概率分布。当源域和目标域的三者之一发生了变化,我们都认为发生了源域与目标域的数据集的分布发生了偏移,即 数据集偏移 dataset bias。
1) 概念偏移(Concept Shift)
Shift in the relationship between the independent and the target variable
输入边缘分布相同:,标签分布相同 ,但是条件分布(后验分布)不同:。即输入数据类型分布相同,但是学习的任务发生了变化;比如在水处理系统的传感器时间序列异常检测中,因为上游放水,一段维持较高水位,但是并不能和其余时间一样被认定为是报警事件。
2) 先验偏移(Prior Shift)
Shift in the target variable
目标偏移,类别偏移
主要表现形式为训练数据的类别不均衡,即各类别的数据量差异较大。比如正样本数与负样本数的比例为1:99等。
源域和目标域的输出标签 的先验分布不同, ,但是条件分布(后验分布)是相同的,,输入边缘概率分布也相同 。是在同一类分布数据上的同一个任务,但是标签空间各标签出现的频率不同。可以简单地用非平衡问题来理解先验偏移,比如垃圾邮件的分类,很可能在实际场景中邮件样本绝大多数都是垃圾邮件,只有少部分不是垃圾邮件,但是我们的训练集的数据类别占比是50%,50%,这就形成了先验偏移问题。
3) 协变量偏移 Covariate Shift
Shift in the target variableShift in the target variable
特征值偏移,自变量偏移,协变量偏移
指训练数据和测试数据中输入变量的分布变化,这是最常见的一种偏移,现在越来越受到关注,因为几乎每个真实世界的数据集都有这个问题。如下图所示,训练样本与测试样本在变量空间的分布差异巨大,若根据训练得到的函数进行预测,会得到错误的预测结果。
源域与目标与边缘分布不同,条件分布和标签分布均相同:。即学习任务相同,标签分布也相同,但是输入空间的数据存在一定的分布偏差。这是一个非常广泛的问题,举个《Dataset Shift in Machine Learning》书中的例子。比如我们要探究抽烟习惯 对5年内肺癌发病率 的影响,在我们做实验的过程中,政府颁布了关于公共场所禁止吸烟的法案,法案的提出对人群中吸烟习惯 的统计分布有很大的影响,虽然这并不影响条件概率,更不影响标签空间的分布,但依然需要我们的预测模型做出对应的调整。
统计学家称这种协变量变化是因为问题的根源在于特征分布的变化(统计学中的协变量即机器学习中的特征的概念)。数学上,我们可以说改变了,但保持不变。尽管它的有用性并不局限于此,当我们认为x导致y时,协变量移位通常是正确的假设。
领域偏移(Domain Shift)
那么领域偏移又是什么含义?《Dataset Shift in Machine Learning》中将domain shift描述为“一种因为对观察变量的描述方式或者观测系统上的变化而导致的输入空间的分布偏移”。有一些晦涩,具体来说,就是如果在一个问题中预测 的决定因子是隐变量 ,虽然隐变量 确乎存在,但是我们观察到的却是 的一个映射 。而这样的映射 因数据集而异,因此造成数据集之间虽然相关因子相同(casual factor),但是有着不同的混淆因子(confounding factor)从而导致了不同数据集分布之间的差异。比如在淘宝商品展示界面的图像数据集上训练的商品分类模型用于在真实场景中测试,效果就会大打折扣。
事实上,领域偏移也属于数据集偏移。而且,领域偏移是更加常见的概念,在计算机视觉和自然语言处理领域研究尤其深入。
一些常见的dataset shift的形式,每种形式都与特定形式的因果概率模型有关。给出了不同类型的偏移的示例,以及一些相应的建模方法。通过以这种方式表征dataset shift,有可能开发捕获特定类型变化的模型,组合不同的变化模式,或进行模型选择以评估在特定情况下dataset shift是否是一个值得处理的问题。作为如何开发这种模型的一个例子,提供了一种适用于高斯过程方法的方法的说明。
特定类型的dataset shift称为mixture component shift(混合组件移位)。在引入dataset shift问题之后,条件和无条件模型(conditional and unconditional models )之间的区别,这种差异在datase shift的背景下很重要,因为即将讨论数据集转换对因果条件模型有没有影响。这种形式的数据集转换称为coviriate shift(协变量偏移)。另一种简单形式的datase shift:prior probability shift(先验概率偏移)。还有sample selection bias(样本选择偏差)、 imbalanced data(不平衡数据)和domain shift(域转移)。最后,还有三种不同类型的source component shift(源组件移位)。通过修正高斯过程模型以应用于一种形式的source component shift(源组件移位)。关于确定数据集是否发生偏移的问题以及数据集偏移和迁移学习的关系的简短讨论。
(补充:这一章主要是对不同的dataset shift做总结,包括了mixture component shift,coviriate shift,prior probability shift,sample selection bias,imbalanced data,domain shift,source component shift)
一家相机公司为他们的相机开发了一些专家模式识别软件,但现在他们想将这些识别软件出售用给其他品牌的相机,他们 是否需要担心不同相机品牌和款式的差异性对识别软件的影响?Albodora这个国家(这是啥国家。。)做了一项研究,研究显示特定措施的引入有助于抑制未成年人饮酒。 Bodalecia(估计是作者杜撰的国家。。。)的政客们对结果印象深刻,并希望在自己的国家利用Albodora的方法。那么请问它会起作用吗?咨询公司提供网络入侵检测软件,该软件是使用四年前数据的机器学习技术开发的。该软件现在仍然可以像它首次发布时那样运行吗?如果答案是否定的,那么公司是否需要进行进一步的分析,或者是否可以进行一些简单的更改以使软件达到最佳状态?
在现实世界中,我们使用我们开发的系统的条件将不同于它们开发的条件。通常,环境是非平稳的,模型的开发和使用上往往存在很多坑。(补充:不同领域或多或少都存在这种问题,你花了半年时间把模型做出来,结果实际的环境发生了巨大的变化,模型是依赖于旧环境的数据而对于新环境数据的内在关系可能就不是那么准确,比如信贷领域诈骗犯使用新的手段进行诈骗可能原来的模型就识别不出来了。)
相比之下,教科书式的机器学习方法通通常忽略这些差异或者即使它们分布不同也假定不产生影响。在本书中,我们将探讨当我们允许dataset shift(数据集转换)的可能性时会发生什么。 如果我们明确承认训练集和测试集分布不同可能会改变我们建立的理想化的模型训练集合,那我们该怎么做?
更详细一些的描述,假设给定一些数据和一些建模框架,进行模型训练,该模型可用于在给定一些新x的情况下对某些目标进行预测即可以表示为。但是,如果训练集和测试集合之间存在某些变化,则应考虑是否应使用不同的预测模型。在这种变化的情况下,我们需要了解特定模型的特性。了解如何最有效地模拟潜在数据分布的变化以在训练的时候将变化考虑到建模的过程汇总,将有助于更好地表示这些变化的结果。另外,还有一个问题就是需要做些什么才能实现最终的过程。学习方法本身是否需要更改,或者只是对学习模型进行事后处理以解释变化?
dataset shift (数据集偏移)的问题与 迁移学习(transfer learning)或归纳转移(inductive transfer)等领域研究密切相关。 迁移学习是指在一个新的环境中,如何从各种不同的环境中传递信息以帮助学习、推理和预测的一般问题。 DataSet Shift更具体:它通常处理两个密切相关的环境中的关联信息的业务,以帮助在一个给定的数据中进行预测。
导致数据偏移的原因,主要是由于现实世界的变化性,比如时间、空间等,举个小例子:旅游业的淡季收入与旺季收入的差异,房价的高低随城市的变化等。机器学习算法只能从现有的数据中进行规律的归纳,并且一般会假设训练环境与应用环境的一致性,这种数据偏移会导致模型的泛化性能很差。