环境和分布偏移
许多失败的机器学习部署(即实际应用)都可以追究到这种方式。 有时,根据测试集的精度衡量,模型表现得非常出色。 但是当数据分布突然改变时,模型在部署中会出现灾难性的失败。 更隐蔽的是,有时模型的部署本身就是扰乱数据分布的催化剂。 举一个有点荒谬却可能真实存在的例子。 假设我们训练了一个贷款申请人违约风险模型,用来预测谁将偿还贷款或违约。 这个模型发现申请人的鞋子与违约风险相关(穿牛津鞋申请人会偿还,穿运动鞋申请人会违约)。 此后,这个模型可能倾向于向所有穿着牛津鞋的申请人发放贷款,并拒绝所有穿着运动鞋的申请人。
这种情况可能会带来灾难性的后果。 首先,一旦模型开始根据鞋类做出决定,顾客就会理解并改变他们的行为。 不久,所有的申请者都会穿牛津鞋,而信用度却没有相应的提高。
总而言之,机器学习的许多应用中都存在类似的问题: 通过将基于模型的决策引入环境,我们可能会破坏模型。
分布偏移的类型
首先,我们考虑数据分布可能发生变化的各种方式,以及为挽救模型性能可能采取的措施。 在一个经典的情景中,假设训练数据是从某个分布𝑝𝑆(𝐱,𝑦)中采样的, 但是测试数据将包含从不同分布𝑝𝑇(𝐱,𝑦)中抽取的未标记样本。 一个清醒的现实是:如果没有任何关于𝑝𝑆和𝑝𝑇之间相互关系的假设, 学习到一个分类器是不可能的。
考虑一个二元分类问题:区分狗和猫。 如果分布可以以任意方式偏移,那么我们的情景允许病态的情况, 即输入的分布保持不变:𝑝𝑆(𝐱)=𝑝𝑇(𝐱), 但标签全部翻转:𝑝𝑆(𝑦|𝐱)=1−𝑝𝑇(𝑦|𝐱)。 换言之,如果将来所有的“猫”现在都是狗,而我们以前所说的“狗”现在是猫。
而此时输入𝑝(𝐱)的分布没有任何改变, 那么我们就不可能将这种情景与分布完全没有变化的情景区分开。
幸运的是,在对未来我们的数据可能发生变化的一些限制性假设下, 有些算法可以检测这种偏移,甚至可以动态调整,提高原始分类器的精度。
协变量偏移
在不同分布偏移中,协变量偏移可能是最为广泛研究的。
这里我们假设:虽然输入的分布可能随时间而改变, 但标签函数(即条件分布𝑃(𝑦∣𝐱))没有改变。
统计学家称之为协变量偏移(covariate shift), 因为这个问题是由于协变量(特征)分布的变化而产生的。
虽然有时我们可以在不引用因果关系的情况下对分布偏移进行推断, 但在我们认为𝐱导致𝑦的情况下,协变量偏移是一种自然假设。
考虑一下区分猫和狗的问题:
在测试时,对图像进行分类
训练集由真实照片组成,而测试集只包含卡通图片。 假设在一个与测试集的特征有着本质不同的数据集上进行训练, 如果没有方法来适应新的领域,可能会有麻烦。
标签偏移
**标签偏移(label shift)**描述了与协变量偏移相反的问题。
这里我们假设标签边缘概率𝑃(𝑦)可以改变, 但是类别条件分布𝑃(𝐱∣𝑦)在不同的领域之间保持不变。
当我们认为𝑦导致𝐱时,标签偏移是一个合理的假设。
例如,预测患者的疾病,我们可能根据症状来判断, 即使疾病的相对流行率随着时间的推移而变化。
标签偏移在这里是恰当的假设,因为疾病会引起症状。
在另一些情况下,标签偏移和协变量偏移假设可以同时成立。
例如,当标签是确定的,即使𝑦导致𝐱,协变量偏移假设也会得到满足。
有趣的是,在这些情况下,使用基于标签偏移假设的方法通常是有利的。 这是因为这些方法倾向于包含看起来像标签(通常是低维)的对象, 而不是像输入(通常是高维的)对象。
概念偏移
可能会遇到概念偏移(concept shift): 当标签的定义发生变化时,就会出现这种问题。
这听起来很奇怪——一只猫就是一只猫,不是吗? 然而,其他类别会随着不同时间的用法而发生变化。
精神疾病的诊断标准、所谓的时髦、以及工作头衔等等,都是概念偏移的日常映射。
事实证明,假如我们环游美国,根据所在的地理位置改变我们的数据来源, 我们会发现关于“软饮”名称的分布发生了相当大的概念偏移,
如果我们要建