有时,根据测试集的精度衡量,模型表现得非常出色。 但是当数据分布突然改变时,模型在部署中会出现灾难性的失败。
有时模型的部署本身就是扰乱数据分布的催化剂。 举一个有点荒谬却可能真实存在的例子。 假设我们训练了一个贷款申请人违约风险模型,用来预测谁将偿还贷款或违约。 这个模型发现申请人的鞋子与违约风险相关(穿牛津鞋申请人会偿还,穿运动鞋申请人会违约)。 此后,这个模型可能倾向于向所有穿着牛津鞋的申请人发放贷款,并拒绝所有穿着运动鞋的申请人。
本章会揭露揭示一些常见的问题

1 分布偏移的类型

1.1协变量偏移

指的是训练数据和测试数据的输入分布不同,但条件分布 P(y∣x)P(y∣x)P(y∣x) 保持不变,即输入的分布可能随时间而改变, 但标签函数(即条件分布
)没有改变。

以区分猫狗为例,下面是训练集用的图像:
在这里插入图片描述
下面是测试集用的图像,即对下面的图像进行分类:
在这里插入图片描述
训练集由真实照片组成,而测试集只包含卡通图片。 假设在一个与测试集的特征有着本质不同的数据集上进行训练, 如果没有方法来适应新的领域,可能会有麻烦。

1.2 标签偏移

指的是训练数据和测试数据的标签分布不同,但条件分布 P(x∣y)P(x∣y)P(x∣y)保持不变。即标签的边际分布发生了变化,而给定标签的输入特征分布保持不变。

以开发一个疾病诊断模型为例:

  • 在 A 医院收集了很多患者的诊断数据,进行模型训练,可能因为 A 医院专长于某种疾病,该疾病的比例在数据中非常高。
  • 你在 B 医院测试模型,但是B医院的患者数据标签分布与A医院不同,可能该疾病的患者比例较低,由于训练集和测试集的标签分布不同,模型可能更倾向于预测该病

1.3 概念偏移

指的是输入数据与标签之间的关系发生了变化,即条件分布 P(y∣x)P(y∣x)P(y∣x) 发生变化。这种变化通常出现在模型部署后的实际应用中,环境、用户行为、市场趋势等随时间改变,导致原有模型不再准确。

以金融欺诈检测为例:

  • 训练阶段:模型学到了根据历史交易特征(如金额、时间、地点)来预测是否是欺诈行为。
  • 部署后:欺诈者的行为模式改变,使用新的手段进行欺诈,因此同样的交易特征可能不再代表欺诈行为。

2 分布偏移纠正

2.1 经验风险和实际风险

经验风险:指模型在给定训练数据集上所犯错误的平均值

经验风险(empirical risk)是为了近似 真实风险(true risk), 整个训练数据上的平均损失,即从其真实分布p(x,y)p(x,y)p(x,y)中抽取的所有数据的总体损失的期望值:
在这里插入图片描述

2.2 协变量偏移纠正

我们可以通过在真实风险的计算中,使用以下简单的恒等式来进行纠正:
∫∫l(f(x),y)p(y∣x)p(x)  dxdy=∫∫l(f(x),y)q(y∣x)q(x)p(x)q(x)  dxdy.\begin{aligned} \int\int l(f(\mathbf{x}), y) p(y \mid \mathbf{x})p(\mathbf{x}) \;d\mathbf{x}dy = \int\int l(f(\mathbf{x}), y) q(y \mid \mathbf{x})q(\mathbf{x})\frac{p(\mathbf{x})}{q(\mathbf{x})} \;d\mathbf{x}dy. \end{aligned}∫∫l(f(x),y)p(y∣x)p(x)dxdy=∫∫l(f(x),y)q(y∣x)q(x)q(x)p(x)​dxdy.​
即根据数据来自正确分布与来自错误分布的概率之比, 来重新衡量每个数据样本的权重:
βi=defp(xi)q(xi).\beta_i \stackrel{\mathrm{def}}{=} \frac{p(\mathbf{x}_i)}{q(\mathbf{x}_i)}.βi​=defq(xi​)p(xi​)​.

将权重βi\beta_{i}βi​代入到每个数据样本(xi,yi)(\mathbf{x}_i, y_i)(xi​,yi​)中, 我们可以使用”加权经验风险最小化“来训练模型:
minimizef1n∑i=1nβil(f(xi),yi).\mathop{\mathrm{minimize}}_f \frac{1}{n} \sum_{i=1}^n \beta_i l(f(\mathbf{x}_i), y_i).minimizef​n1​i=1∑n​βi​l(f(xi​),yi​).

由于不知道这个比率,我们需要估计它,这里使用对数几率回归(logistic regression)

现在,我们来看一下完整的协变量偏移纠正算法。 假设我们有一个训练集{(x1,y1),…,(xn,yn)}\{(\mathbf{x}_1, y_1), \ldots, (\mathbf{x}_n, y_n)\}{(x1​,y1​),…,(xn​,yn​)}和一个未标记的测试集{u1,…,um}\{\mathbf{u}_1, \ldots, \mathbf{u}_m\}{u1​,…,um​}.。对于协变量偏移,我们假设1≤i≤n1 \leq i \leq n1≤i≤n的xix_{i}xi​来自某个源分布,ui\mathbf{u}_iui​来自目标分布。 以下是纠正协变量偏移的典型算法:
在这里插入图片描述

2.3 标签偏移纠正

重要性加权是一种常用的技术,用于调整模型的训练过程,使其更好地适应测试数据的标签分布。通过为训练数据中的每个样本分配权重,使得样本的影响程度与其在测试集中的重要性相匹配。

步骤:
1、估计训练集和测试集的标签分布:

  • ​Ptrain(y)P_{train}(y)Ptrain​(y):训练集中的标签分布
  • ​Ptest(y)P_{test}(y)Ptest​(y):测试集中的标签分布

2、计算权重:
weight(y)=Ptest(y)Ptrain(y)weight(y)=\frac{P_{test}(y)}{P_{train}(y)}weight(y)=Ptrain​(y)Ptest​(y)​

3、在训练过程中,对每个样本的损失进行加权:
weightedloss=∑iweight(yi)⋅L(f(xi,θ),yi)weighted loss= \sum_{i} weight(y_{i}) ·L(f(x_{i},\theta),y_{i})weightedloss=i∑​weight(yi​)⋅L(f(xi​,θ),yi​)

通过这种方式,模型在训练时会更重视那些在测试集中频繁出现的标签。

2.4 概念偏移纠正

使用新数据更新现有的网络权重,而不是从头开始训练。

3 学习问题的分类法

有了如何处理分布变化的知识,我们现在可以考虑机器学习问题形式化的其他方面。

3.1 批量学习

在批量学习(batch learning)中,我们可以访问一组训练特征和标签 {(x1,y1),…,(xn,yn)}\{(\mathbf{x}_1, y_1), \ldots, (\mathbf{x}_n, y_n)\}{(x1​,y1​),…,(xn​,yn​)}, 我们使用这些特性和标签训练f(x)f(\mathbf{x})f(x)。 然后,我们部署此模型来对来自同一分布的新数据(x,y)(\mathbf{x}, y)(x,y)进行评分。

例如,我们可以根据猫和狗的大量图片训练猫检测器。 一旦我们训练了它,我们就把它作为智能猫门计算视觉系统的一部分,来控制只允许猫进入。 然后这个系统会被安装在客户家中,基本再也不会更新。

3.2 在线学习

在线学习是一种逐步更新模型的方法。在这种学习模式下,模型在接收到新数据后会立即进行更新,而不需要在训练结束后一次性处理所有数据。与传统的批量学习(Batch Learning)相对,后者通常在收集完所有数据后进行训练。

例如,在实时推荐系统中,在用户行为不断变化的场景中,在线学习可以根据最新的用户活动实时调整推荐算法。

3.3 老虎机

老虎机问题是在线学习中的一个经典特例,旨在解决探索与利用之间的权衡。该问题可以通过“老虎机”来形象化,想象有多个老虎机,每个老虎机都有不同的中奖概率。玩家的目标是在有限的尝试次数内最大化其总奖励。

例如,在线广告投放,即在多个广告选项中选择以最大化点击率。

3.4 控制

3.5 强化学习

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐