电子说
在前面的部分中,我们完成了机器学习的一些实践应用,将模型拟合到各种数据集。然而,我们从未停下来思考数据最初来自何处,或者我们最终计划如何处理模型的输出。很多时候,拥有数据的机器学习开发人员急于开发模型而没有停下来考虑这些基本问题。
许多失败的机器学习部署都可以追溯到这种模式。有时,根据测试集的准确性衡量,模型似乎表现出色,但当数据分布突然发生变化时,部署就会出现灾难性的失败。更阴险的是,有时模型的部署本身就是扰乱数据分布的催化剂。举例来说,我们训练了一个模型来预测谁将偿还贷款与违约贷款,发现申请人选择的鞋类与违约风险相关(牛津鞋表示还款,运动鞋表示违约)。此后,我们可能倾向于向所有穿着牛津鞋的申请人提供贷款,而拒绝所有穿着运动鞋的申请人。
在这种情况下,我们从模式识别到决策制定的考虑不周的飞跃以及我们未能批判性地考虑环境可能会产生灾难性的后果。首先,一旦我们开始根据鞋类做出决定,客户就会了解并改变他们的行为。不久之后,所有的申请者都会穿着牛津鞋,而信用度却没有任何同步提高。花一点时间来消化一下,因为类似的问题在机器学习的许多应用中比比皆是:通过将我们基于模型的决策引入环境,我们可能会破坏模型。
虽然我们不可能在一个部分中对这些主题进行完整的处理,但我们的目的是在此揭露一些常见的问题,并激发早期发现这些情况、减轻损害和负责任地使用机器学习所需的批判性思维。有些解决方案很简单(要求“正确的”数据),有些在技术上很困难(实施强化学习系统),而另一些则需要我们完全走出统计预测的领域,解决有关伦理的哲学难题算法的应用。
4.7.1. 分配转移的类型
首先,考虑到数据分布可能发生变化的各种方式以及可以采取哪些措施来挽救模型性能,我们坚持使用被动预测设置。在一个经典设置中,我们假设我们的训练数据是从某个分布中采样的 pS(x,y)但是我们的测试数据将由来自不同分布的未标记示例组成 pT(x,y). 我们已经必须面对一个发人深省的现实。没有关于如何做的任何假设pS和pT相互关联,学习一个鲁棒的分类器是不可能的。
考虑一个二元分类问题,我们希望区分狗和猫。如果分布可以以任意方式移动,那么我们的设置允许输入分布保持不变的病态情况:pS(x)=pT(x),但标签都被翻转了: pS(y∣x)=1−pT(y∣x). 换句话说,如果上帝可以突然决定未来所有的“猫”现在都是狗,而我们以前所说的“狗”现在是猫——投入的分配没有任何变化p(x),那么我们就不可能将这种设置与分布根本没有改变的设置区分开来。
幸运的是,在对我们的数据未来可能发生变化的方式的一些限制性假设下,有原则的算法可以检测到变化,有时甚至可以即时适应,从而提高原始分类器的准确性。
4.7.1.1. 协变量偏移
在分布偏移的类别中,协变量偏移可能是研究最广泛的。在这里,我们假设虽然输入的分布可能会随时间变化,但标签函数,即条件分布P(y∣x)没有改变。统计学家将此称为协变量偏移,因为问题是由于协变量(特征)分布的偏移而产生的。虽然我们有时可以在不调用因果关系的情况下推理分布偏移,但我们注意到协变量偏移是在我们认为的设置中调用的自然假设x原因y.
考虑区分猫和狗的挑战。我们的训练数据可能包含图 4.7.1中的那种图像 。
在测试时,我们被要求对图 4.7.2中的图像进行分类 。
训练集包含照片,而测试集仅包含卡通。如果没有关于如何适应新领域的连贯计划,在与测试集具有显着不同特征的数据集上进行训练可能会带来麻烦。
4.7.1.2. 标签转移
标签移位描述了相反的问题。在这里,我们假设标签边缘P(y)可以改变但类条件分布P(x∣y)跨域保持固定。当我们相信 y原因x. 例如,我们可能希望根据症状(或其他表现)来预测诊断,即使诊断的相对流行率随时间而变化。标签转移在这里是合适的假设,因为疾病会引起症状。在一些退化的情况下,标签偏移和协变量偏移假设可以同时成立。例如,当标签是确定性的时,协变量偏移假设将得到满足,即使y原因 x. 有趣的是,在这些情况下,使用源自标签转移假设的方法通常是有利的。这是因为这些方法往往涉及操纵看起来像标签(通常是低维)的对象,而不是看起来像输入的对象,后者在深度学习中往往是高维的。
4.7.1.3. 概念转变
我们可能还会遇到概念转换的相关问题,当标签的定义可能发生变化时就会出现这种情况。这听起来很奇怪——猫就是猫,不是吗?但是,随着时间的推移,其他类别的使用情况可能会发生变化。精神疾病的诊断标准、流行的标准和工作头衔,都受到相当大的概念转变的影响。事实证明,如果我们环游美国,按地域转移数据源,我们会发现关于软饮料名称分布的相当大的概念转变, 如图4.7.3所示。
如果我们要构建一个机器翻译系统,分发 P(y∣x)根据我们的位置可能会有所不同。这个问题可能很难发现。我们可能希望利用这样的知识,即转移只会在时间或地理意义上逐渐发生。
4.7.2. 分配转移的例子
在深入研究形式主义和算法之前,我们可以讨论一些协变量或概念转移可能不明显的具体情况。
4.7.2.1. 医疗诊断
想象一下,您想设计一种算法来检测癌症。你从健康人和病人那里收集数据,然后训练你的算法。它运行良好,为您提供高精度,您得出结论,您已准备好在医疗诊断领域取得成功。没那么快。
产生训练数据的分布与您将在野外遇到的分布可能有很大差异。这发生在我们中的一些人(作者)多年前合作过的一家不幸的初创公司身上。他们正在开发一种主要影响老年男性的疾病的血液测试,并希望使用他们从患者身上收集的血液样本来研究它。然而,从健康男性身上获取血液样本比系统中已经存在的病人要困难得多。作为补偿,这家初创公司向大学校园的学生征集献血,作为开发测试的健康对照。然后他们问我们是否可以帮助他们建立一个分类器来检测这种疾病。
正如我们向他们解释的那样,以近乎完美的准确度区分健康人群和患病人群确实很容易。然而,这是因为测试对象在年龄、激素水平、体力活动、饮食、饮酒量以及许多与疾病无关的因素方面存在差异。真实患者不太可能出现这种情况。由于他们的抽样程序,我们可能会遇到极端的协变量偏移。此外,这种情况不太可能通过传统方法纠正。简而言之,他们浪费了一大笔钱。
4.7.2.2. 自动驾驶汽车
假设一家公司想要利用机器学习来开发自动驾驶汽车。这里的一个关键组件是路边检测器。由于获得真正的带注释数据的成本很高,因此他们有一个(聪明但值得怀疑的)想法,即使用来自游戏渲染引擎的合成数据作为额外的训练数据。这对从渲染引擎中提取的“测试数据”非常有效。唉,在一辆真正的汽车里,这是一场灾难。事实证明,路边的纹理非常简单。更重要的是,所有的路边都被渲染成 相同的纹理,路边检测器很快就了解了这个“特征”。
当美军第一次尝试在森林中探测坦克时,类似的事情也发生了。他们航拍了没有坦克的森林,然后把坦克开进森林里,又拍了一组照片。分类器似乎工作得很好。不幸的是,它只是学会了如何区分有阴影的树和没有阴影的树——第一组照片是清晨拍摄的,第二组是中午拍摄的。
4.7.2.3. 非平稳分布
当分布变化缓慢(也称为非平稳分布)并且模型未充分更新时,会出现更微妙的情况。以下是一些典型案例。
我们训练了一个计算广告模型,然后未能经常更新它(例如,我们忘记将刚刚推出的一款不起眼的新设备 iPad 纳入其中)。
我们建立了一个垃圾邮件过滤器。它可以很好地检测我们目前看到的所有垃圾邮件。但随后垃圾邮件发送者变得聪明起来,制作了看起来与我们以前见过的任何东西都不一样的新消息。
我们建立了一个产品推荐系统。它在整个冬天都有效,但在圣诞节后很长一段时间内继续推荐圣诞老人的帽子。
4.7.2.4. 更多轶事
我们构建了一个人脸检测器。它适用于所有基准测试。不幸的是,它在测试数据上失败了——令人反感的例子是脸部填满整个图像的特写镜头(训练集中没有这样的数据)。
我们为美国市场构建了一个网络搜索引擎,并希望将其部署在英国。
我们通过编译一个大型数据集来训练图像分类器,其中大量类别中的每个类别在数据集中均等表示,例如 1000 个类别,每个类别由 1000 张图像表示。然后我们将系统部署到现实世界中,照片的实际标签分布显然是不均匀的。
4.7.3. 分布偏移的校正
正如我们所讨论的,在许多情况下,训练和测试分布P(x,y)是不同的。在某些情况下,我们很幸运,尽管存在协变量、标签或概念转变,但模型仍然有效。在其他情况下,我们可以通过采用有原则的策略来应对这种转变来做得更好。本节的其余部分变得更加技术化。不耐烦的读者可以继续阅读下一节,因为该材料不是后续概念的先决条件。
4.7.3.1. 经验风险和风险
让我们首先反思模型训练期间到底发生了什么:我们迭代训练数据的特征和相关标签{(x1,y1),…,(xn,yn)}并更新模型的参数f在每个小批量之后。为简单起见,我们不考虑正则化,因此我们在很大程度上减少了训练的损失:
(4.7.1)minimizef1n∑i=1nl(f(xi),yi),
在哪里l是衡量预测“有多糟糕”的损失函数 f(xi)被赋予相关标签yi. 统计学家将(4.7.1) 中的术语称为经验风险。经验风险是训练数据的平均损失,以近似于风险,这是对从真实分布中提取的整个数据群的损失的期望。p(x,y):
(4.7.2)Ep(x,y)[l(f(x),y)]=∫∫l(f(x),y)p(x,y)dxdy.
然而,在实践中,我们通常无法获得全部数据。因此,经验风险最小化,即最小化(4.7.1)中的经验风险,是机器学习的一种实用策略,希望能够近似地最小化风险。
4.7.3.2. 协变量偏移校正
假设我们要估计一些依赖 P(y∣x)我们为其标记了数据 (xi,yi). 不幸的是,观察 xi是从一些源分布中提取的 q(x)而不是目标分布 p(x). 幸运的是,依赖假设意味着条件分布不会改变: p(y∣x)=q(y∣x). 如果源分发q(x)是“错误的”,我们可以通过在风险中使用以下简单标识来纠正它:
(4.7.3)∫∫l(f(x),y)p(y∣x)p(x)dxdy=∫∫l(f(x),y)q(y∣x)q(x)p(x)q(x)dxdy.
换句话说,我们需要根据从正确分布中提取数据的概率与从错误分布中提取数据的概率之比来重新权衡每个数据示例:
(4.7.4)βi=defp(xi)q(xi).
插入重量βi对于每个数据示例 (xi,yi)我们可以使用加权经验风险最小化来训练我们的模型:
(4.7.5)minimizef1n∑i=1nβil(f(xi),yi).
唉,我们不知道那个比率,所以在我们做任何有用的事情之前,我们需要估计它。许多方法都可用,包括一些奇特的算子理论方法,这些方法试图直接使用最小范数或最大熵原理重新校准期望算子。请注意,对于任何此类方法,我们都需要从两个分布中抽取样本——“真实”p,例如,通过访问测试数据,以及用于生成训练集的数据q(后者很容易获得)。但是请注意,我们只需要功能 x∼p(x); 我们不需要访问标签 y∼p(y).
在这种情况下,存在一种非常有效的方法,其结果几乎与原始方法一样好:逻辑回归,它是用于二元分类的 softmax 回归(参见第 4.1 节)的特例。这就是计算估计概率比所需的全部内容。我们学习了一个分类器来区分从中提取的数据p(x)和从中提取的数据 q(x). 如果无法区分这两个分布,则意味着相关实例同样可能来自这两个分布中的任何一个。另一方面,任何可以被很好区分的实例都应该相应地被显着地高估或低估。
为了简单起见,假设我们有来自两个分布的相同数量的实例p(x)和q(x), 分别。现在表示为z标签是1对于从中提取的数据p和−1对于从中提取的数据q. 那么混合数据集中的概率由下式给出
(4.7.6)P(z=1∣x)=p(x)p(x)+q(x) and hence P(z=1∣x)P(z=−1∣x)=p(x)q(x).
因此,如果我们使用逻辑回归方法,其中 P(z=1∣x)=11+exp(−h(x)) (h是参数化函数),因此
(4.7.7)βi=1/(1+exp(−h(xi)))exp(−h(xi))/(1+exp(−h(xi)))=exp(h(xi)).
因此,我们需要解决两个问题:第一个是区分从两个分布中提取的数据,然后是 ( 4.7.5)中的加权经验风险最小化问题,我们通过 βi.
现在我们准备好描述一个校正算法。假设我们有一个训练集 {(x1,y1),…,(xn,yn)}和未标记的测试集{u1,…,um}. 对于协变量偏移,我们假设xi对全部 1≤i≤n是从一些源分布中提取的,并且 ui对全部1≤i≤m从目标分布中提取。这是校正协变量偏移的原型算法:
生成二元分类训练集: {(x1,−1),…,(xn,−1),(u1,1),…,(um,1)}.
使用逻辑回归训练二元分类器以获得函数 h.
使用权衡训练数据βi=exp(h(xi))或更好βi=min(exp(h(xi)),c)对于一些常数c.
使用权重βi用于培训 {(x1,y1),…,(xn,yn)}在 (4.7.5)中。
请注意,上述算法依赖于一个关键假设。为了使该方案起作用,我们需要目标(例如,测试时间)分布中的每个数据示例在训练时出现的概率非零。如果我们找到一个点p(x)>0但 q(x)=0,那么对应的重要性权重应该是无穷大。
4.7.3.3. 标签偏移校正
假设我们正在处理分类任务k 类别。在第 4.7.3.2 节中使用相同的符号 ,q和p 分别是源分布(例如,训练时间)和目标分布(例如,测试时间)。假设标签的分布随时间变化:q(y)≠p(y),但类条件分布保持不变: q(x∣y)=p(x∣y). 如果源分发q(y)是“错误的”,我们可以根据 (4.7.2)中定义的风险中的以下恒等式进行更正:
(4.7.8)∫∫l(f(x),y)p(x∣y)p(y)dxdy=∫∫l(f(x),y)q(x∣y)q(y)p(y)q(y)dxdy.
在这里,我们的重要性权重将对应于标签似然比
(4.7.9)βi=defp(yi)q(yi).
标签偏移的一个好处是,如果我们在源分布上有一个相当好的模型,那么我们就可以得到这些权重的一致估计,而无需处理环境维度。在深度学习中,输入往往是图像等高维对象,而标签通常是类别等更简单的对象。
为了估计目标标签分布,我们首先使用我们相当好的现成分类器(通常在训练数据上训练)并使用验证集(也来自训练分布)计算其混淆矩阵。混淆矩阵,C, 只是一个k×k矩阵,其中每一列对应于标签类别(基本事实),每一行对应于我们模型的预测类别。每个单元格的值cij是真实标签在验证集上的总预测的分数 j我们的模型预测i.
现在,我们无法直接计算目标数据的混淆矩阵,因为我们看不到我们在野外看到的示例的标签,除非我们投资复杂的实时注释管道。然而,我们可以做的是在测试时对我们所有的模型预测进行平均,从而产生平均模型输出 μ(y^)∈Rk,谁的 ith元素μ(y^i)是我们的模型预测的测试集上总预测的分数i.
事实证明,在一些温和的条件下——如果我们的分类器一开始就相当准确,如果目标数据只包含我们之前见过的类别,如果标签转移假设首先成立(这里最强的假设), 然后我们可以通过求解一个简单的线性系统来估计测试集标签分布
(4.7.10)Cp(y)=μ(y^),
因为作为估计 ∑j=1kcijp(yj)=μ(y^i)对所有人都成立 1≤i≤k, 在哪里p(yj)是个 jth的元素k维标签分布向量p(y). 如果我们的分类器一开始就足够准确,那么混淆矩阵 C将是可逆的,我们得到一个解决方案 p(y)=C−1μ(y^).
因为我们观察源数据上的标签,所以很容易估计分布q(y). 然后对于任何训练示例i 带标签yi,我们可以采用我们估计的比率 p(yi)/q(yi)计算重量βi,并将其代入 (4.7.5)中的加权经验风险最小化。
4.7.3.4. 概念转变修正
概念转变很难以有原则的方式解决。例如,在问题突然从区分猫和狗变成区分白色和黑色动物的情况下,假设我们可以做得比仅仅收集新标签和从头开始训练好得多是不合理的。幸运的是,在实践中,这种极端的转变很少见。相反,通常发生的是任务不断缓慢变化。为了使事情更具体,这里有一些例子:
在计算广告中,推出新产品,旧产品变得不那么受欢迎。这意味着广告的分布及其受欢迎程度逐渐变化,任何点击率预测指标都需要随之逐渐变化。
交通摄像机镜头由于环境磨损而逐渐退化,逐渐影响图像质量。
新闻内容逐渐变化(即大部分新闻保持不变,但出现新故事)。
在这种情况下,我们可以使用与训练网络相同的方法来使它们适应数据的变化。换句话说,我们使用现有的网络权重并简单地使用新数据执行一些更新步骤,而不是从头开始训练。
4.7.4. 学习问题的分类
有了关于如何处理分布变化的知识,我们现在可以考虑机器学习问题公式化的其他方面。
4.7.4.1. 批量学习
在批量学习中,我们可以访问训练特征和标签 {(x1,y1),…,(xn,yn)},我们用它来训练模型f(x). 稍后,我们部署此模型来对新数据进行评分(x,y)从同一个分布中抽取。这是我们在此讨论的任何问题的默认假设。例如,我们可能会根据大量猫狗图片来训练猫检测器。一旦我们对其进行了训练,我们就会将其作为智能猫门计算机视觉系统的一部分进行运送,该系统只允许猫进入。然后将其安装在客户家中并且永远不会再次更新(除非出现极端情况)。
4.7.4.2. 在线学习
现在假设数据(xi,yi)一次到达一个样品。更具体地说,假设我们首先观察 xi, 然后我们需要估计 f(xi)只有当我们这样做了,我们才会观察到 yi有了它,我们会根据自己的决定获得奖励或蒙受损失。许多实际问题都属于这一类。例如,我们需要预测明天的股票价格,这允许我们根据该估计进行交易,并在一天结束时发现我们的估计是否允许我们获利。换句话说,在在线学习中,我们有以下循环,我们根据新观察不断改进我们的模型:
(4.7.11)model ft⟶data xt⟶estimate ft(xt)⟶observation yt⟶loss l(yt,ft(xt))⟶model ft+1
4.7.4.3. 土匪
Bandits是上述问题的特例。虽然在大多数学习问题中我们有一个连续参数化的函数f 在我们想要学习它的参数(例如,深度网络)的地方,在 老虎机问题中,我们只有有限数量的手臂可以拉动,即我们可以采取的有限数量的行动。对于这个更简单的问题,可以在最优性方面获得更强的理论保证,这并不奇怪。我们列出它主要是因为这个问题经常(令人困惑地)被视为一个独特的学习环境。
4.7.4.4。控制
在许多情况下,环境会记住我们的所作所为。不一定以敌对的方式,但它只会记住并且响应将取决于之前发生的事情。例如,咖啡锅炉控制器将根据之前是否加热锅炉来观察不同的温度。PID(比例-积分-微分)控制器算法在那里是一种流行的选择。同样,用户在新闻站点上的行为将取决于我们之前向他展示的内容(例如,他只会阅读大部分新闻一次)。许多这样的算法形成了它们所处环境的模型,从而使它们的决策看起来不那么随机。最近,控制理论(例如,PID 变体)也被用于自动调整超参数以实现更好的解缠结和重建质量, ( Shao et al. , 2020 )。
4.7.4.5。强化学习
在具有记忆的环境的更一般情况下,我们可能会遇到环境试图与我们合作的情况(合作游戏,特别是非零和游戏),或者环境试图取胜的其他情况。国际象棋、围棋、西洋双陆棋或星际争霸是强化学习中的一些案例。同样,我们可能想为自动驾驶汽车构建一个好的控制器。其他汽车可能会以非平凡的方式对自动驾驶汽车的驾驶方式做出反应,例如,试图避开它、试图造成事故以及试图与其合作。
4.7.4.6. 考虑环境
上述不同情况之间的一个关键区别是,在静止环境中可能始终有效的相同策略,在环境可以适应时可能无法始终有效。例如,交易者发现的套利机会一旦开始利用就很可能消失。环境变化的速度和方式在很大程度上决定了我们可以采用的算法类型。例如,如果我们知道事情可能只会缓慢变化,我们就可以强制任何估计也只能缓慢变化。如果我们知道环境可能会瞬间发生变化,但发生的频率非常低,那么我们就可以考虑到这一点。这些类型的知识对于有抱负的数据科学家处理概念转变至关重要,即
4.7.5. 机器学习中的公平性、问责制和透明度
最后,重要的是要记住,当您部署机器学习系统时,您不仅仅是在优化一个预测模型——您通常是在提供一个将用于(部分或全部)自动化决策的工具。这些技术系统可能会影响受最终决策影响的个人的生活。从考虑预测到决策的飞跃不仅提出了新的技术问题,而且还提出了一系列必须仔细考虑的伦理问题。如果我们要部署医疗诊断系统,我们需要知道它可能适用于哪些人群,哪些可能无效。忽视亚人群福利的可预见风险可能导致我们提供低劣的护理。此外,一旦我们考虑决策系统,我们就必须退后一步,重新考虑我们如何评估我们的技术。准确性很少是正确的衡量标准。例如,在将预测转化为行动时,我们通常会考虑以各种方式犯错的潜在成本敏感性。如果将图像错误分类的一种方法可以被视为种族花招,而将错误分类到不同类别是无害的,那么我们可能希望相应地调整我们的阈值,在设计决策协议时考虑到社会价值观。我们还希望注意预测系统如何导致反馈循环。例如,考虑预测性警务系统,它将巡逻人员分配到预测犯罪率高的地区。很容易看出令人担忧的模式是如何出现的:
犯罪率较高的社区需要更多的巡逻。
因此,在这些街区发现了更多的犯罪活动,输入了可用于未来迭代的训练数据。
暴露于更多的积极因素,该模型预测这些街区的犯罪率更高。
在下一次迭代中,更新后的模型更严重地针对同一社区,导致发现更多的犯罪活动,等等。
通常,模型的预测与其训练数据耦合的各种机制在建模过程中未被考虑在内。这会导致研究人员称之为失控的反馈回路。此外,我们要注意我们是否首先解决了正确的问题。预测算法现在在调节信息传播方面发挥着巨大作用。个人遇到的新闻是否应该由他们点赞的Facebook 页面集决定?这些只是您在机器学习职业中可能遇到的许多紧迫的道德困境中的一小部分。
4.7.6. 概括
在许多情况下,训练集和测试集并不来自同一个分布。这称为分配转移。风险是对从真实分布中提取的整个数据群的损失的预期。然而,这整个人口通常是不可用的。经验风险是训练数据的平均损失以近似风险。在实践中,我们执行经验风险最小化。
在相应的假设下,可以在测试时检测和校正协变量和标签偏移。如果不考虑这种偏差,在测试时可能会出现问题。在某些情况下,环境可能会记住自动操作并以令人惊讶的方式做出响应。我们必须在构建模型时考虑到这种可能性,并继续监控实时系统,对我们的模型和环境以意想不到的方式纠缠在一起的可能性持开放态度。
4.7.7. 练习
当我们改变搜索引擎的行为时会发生什么?用户可能会做什么?广告商呢?
实施协变量移位检测器。提示:建立一个分类器。
实施协变量偏移校正器。
除了分布转移,还有什么会影响经验风险如何近似风险?
Discussions
全部0条评论
快来发表一下你的评论吧 !