模型偏差学习

模型偏差是机器学习和数据科学基础的核心概念之一。 人工智能开发人员以及任何使用 ML 技术的组织面临的最具挑战性的问题之一是机器学习偏差。 在将模型投入生产之前,测试偏差至关重要。 即使您的 机器学习模型在给定的数据集上达到 100% 的准确率,这并不一定意味模型是稳定的并且可以很好的应用于生产环境。

偏差是机器学习算法建模中错误假设的系统误差。 模型偏差可能导致算法忽略或错误的判定数据输入(特征)和目标输出(预测)之间的相关关系。 本质上,当算法没有足够的能力从数据集中学习适当的信号时,就会出现偏差。 几十年来,机器学习中的偏见一直被认为是一个潜在的问题,但在将模型部署到生产中时,对于机器学习研究人员和工程师来说,这仍然是一个复杂且具有挑战性的问题。一个典型的例子是COMPAS(替代制裁的惩教罪犯管理分析)算法。该算法在美国法院系统中用于估计被告再次犯罪的可能性,算法预测黑人罪犯 (45%) 的再犯误报率是白人罪犯 (23%) 的两倍。

一个机器学习算法模型的建立通常经历以下流程:数据收集,数据清洗,特征工程,训练和测试数据划分,模型训练,模型评估。在这个流程中,每个环节都可能引入偏差,所以模型的偏差根据在不同流程引入划分,可以用下图表示:

数据收集偏差

数据收集偏差可能源于有偏见的假设, 或者从各种来源获取信息时数据源的偏差。 以下两种情况常常导致收集数据的偏差:1)当我们从数据源收集数据时没有在特定用例的正确上下文中收集特征时; 2)当专注于从符合特定趋势或属于特定群体的全体人口中收集数据点时。在实际进行数据收集之前,应该对数据要求有充分的了解以避免偏差。 从数据集中提取的数据特征应该是有针对性的、明确的和项目特定的,因为这将帮助您确定您将利用定量数据还是定性数据。 检查数据源、检查数据集、监控数据收集的时间范围以及将与数据集相关的任何潜在偏见确认为错误观念是减少偏见的一些方法。 这遵循“垃圾输入,垃圾输出”原则——如果你向模型推送不正确的输入,你将收到不正确的输出。

亚马逊的招聘工具是数据收集偏见的典型例子。 当亚马逊几年前推出其基于人工智能的招聘工具时,该公司打算自动寻找最适合其可用职位空缺的顶尖人才。 当他们在生产中实施该工具时,他们发现与女性求职者的简历相比,它更喜欢男性求职者的技术软件开发职位简历。 当他们的团队研究招聘系统的行为时,他们发现由于男性在亚马逊技术部门的代表比例高得不成比例,该模型反映了训练数据集中隐含的性别偏见。 一旦他们能够查明问题的根源,他们的机器学习团队就能够根据女性候选人的简历重新训练他们的模型,以降低性别偏见的发生率。

收集数据时,关键是要有领域专业知识,以便在可行的情况下收集有意义的信息变量。 在为典型的机器学习项目获取数据时,让机器学习团队的专家协助他们收集关键数据及其特征至关重要。

数据预处理偏差

数据预处理是探索、检查、揭示和清理数据以删除任何缺失、不准确、错误或异常值,并为训练模型准备数据的行为。 真实世界的数据在特定行为或模式中经常不充分、不一致和/或缺失。 预处理数据是克服此类问题的可靠可靠方法。什么是数据预处理偏差?当我们对从数据源收集的原始数据缺乏深入了解并且在解释特定变量方面缺乏足够的领域专业知识时,就会发生数据预处理偏差。 这一步经常会出现偏差,而个人往往意识不到,不可避免地导致模型在生产中出现偏差:例如不合理的对缺失值进行填充。

缺失数据可能会导致模型参数估计出现偏差。 缺乏实际数据会降低统计功效,即检验在原假设为假时拒绝原假设的可能性。 这些不准确会危及试验的准确性并导致错误的结果。 为了最大限度地减少这一步的偏差,我们应该选择一种合适的数据插补技术,用新的插补值替换缺失值,然后检查整个数据集和插补值,以确定插补值是否反映了真实的观察值。 

数据插补方法包括均值插补、回归插补和随机回归插补。 数据集的性质及其值会影响适当数据插补方法的选择标准。但是不合适的数据插补会带来预处理偏差。考虑以下场景:我们需要根据员工的年龄、工作年限和领域来估算员工的薪水。假设在工作年限列部分数据缺失,因为“工作年限”是一个数值特征,我们利用最基本的插补技术——平均值填充缺失值,并使用这些插补数据训练我们的模型。 然而,在模型验证阶段,当我们监控真实数据的模型预测时,我们发现模型行为不一致。 为什么? 因为选择的插补技术计算列的单变量平均值受数据异常值的影响(在这种情况下,具有 25 年经验的人),导致不一致偏差。 在这种情况下使用均值插补来替换缺失值并不是一个好主意。为了消除模型预测中的偏差,我们必须尝试另一种插补方法,比如使用中位数。 但无论采用何种方法,使用离线训练/测试数据集验证模型都无法充分捕捉在线生产环境的真实情况。 因此,我们必须在整个模型生命周期中持续监控模型性能,以比较跨环境的性能,并在出现回归或漂移时发现它们。

另一种缺失数据处理的方式是,对模型做无异常值处理——过滤异常数据。当我们努力使我们的模型无噪声或无异常值进行训练时,我们会无意中删除指示某个群体的数据。 当这些模型投入生产时,某些异常值可能会重新出现,而我们的模型将无法预测此类记录,因为我们在训练步骤中删除了它们! 这就是为什么我们必须在丢弃异常值之前使用可观察性工具进行更深入的反省。 可帮助您对模型预测的特定队列进行分组和分析的可观察性平台可以更好地洞察这些异常值的性质以及它们与模型目的的相关性。

特征工程偏差

机器学习流水线将来自数据清理步骤的输入数据进行整合,然后将数据转换为模型特征的过程称为特征工程。 此阶段准备数据集,以便可以训练模型如何响应不同的特征和值。当一个特征或一组特征(例如性别、种族类别或社会地位)对机器学习模型的整体学习产生不利影响,从而产生不理想的模型结果或预测时,就会出现特征工程偏差。比如我们在统计用户的在线时间、产品花费作为特征,原始的时长数据相对于花费可能是一个绝对数值大,分布广的特征,对于一般的线性回归模型,容易出现时长数据决定结果的学习偏差。

如何避免特征工程偏差?为了最小化特征偏差,我们需要做的最重要的事情是使用特征缩放来标准化自变量或特征的取值范围。 它用于对具有不同尺度的数据进行归一化,以衡量同一类型的数据特征,以减少偏差和不一致性。 真实世界的数据集通常包含具有不同大小、范围和单位的特征。 因此,需要进行特征缩放,以便机器学习模型在相同的尺度上理解这些特征。例如,如果我们需要预测车辆故障的时间窗口,我们将有一个车辆行驶距离(以公里为单位)、车辆寿命(以年为单位)和其他数值特征的特征集。 这里最值得注意的缩放元素是“距离”和“车辆寿命”,它们必须在一个尺度上标准化。 因为车辆行驶的距离在 1-6 位数范围内,而车辆寿命在 1-2 位数范围内,所以当我们在这个数据集上训练模型时,输出将因距离的测量值而发生偏差 记录。 这会影响整个模型学习,结果将是不正确的。

此外,为了减少特征偏差,需要考虑对模型结果有很大影响的因素,这些因素在部署到整个人群时会极度倾斜——例如性别、社会经济地位、种族特征和区域偏好。 例如,上文亚马逊的招聘工具的例子中性别这个特征对模型的影响。因此,分析特征集值并了解模型预测中的特征重要性至关重要。 我们必须仔细考虑每个特征的包含和删除的影响,不仅是在总体水平上,而且还要针对特定的预测队列(即按性别、种族、地理等分类的准确性)。

数据选择偏差

当训练中使用的数据不够大或不够具有代表性时,就会出现数据选择偏差,从而导致对真实人口的误报。 当我们将数据集拆分为训练数据和测试数据时,大部分输入到训练数据集中的数据特征属于一种数据分布,而另一种数据分布则缺失。 由于数据排除,一些特征行将从训练数据集中丢失。 因此,创建了一个偏差模型,该模型仅预测数据集中存在的特征行。

如何避免数据拆分/选择偏差?为了尽量减少这种偏差,我们必须确保在进行数据选择或数据抽样时,我们使用随机抽样。 执行多次随机抽样,以便可以根据训练数据集中存在的各种数据分布对模型进行训练,例如 K-Folds 交叉验证或分层交叉验证。

简单随机抽样,其中仅随机抽取样本,是研究人员用来最大程度地减少抽样偏差的最成功和最直接的策略之一。 这确保了人口中的每个人都有平等的机会被选为训练数据集的参与者。 例如,假设人口中有 500 人有资格胜任他们想要的工作。 我们需要选择其中的 20 个作为研究样本进行研究,然后使用随机抽样的方式从整个人群中选择任意 n=20 个个体。 K 折交叉验证是将相同的随机过程重复 k(任意整数)次的过程。

分层随机抽样也常被研究人员使用,因为它允许他们获得最能代表所研究总体人口的样本人口,同时还确保代表每个感兴趣的子群体。 在构建机器学习管道时,我们必须保证每个类/标签在训练和测试数据集中均等分布(分层交叉验证),以避免最终模型出现偏差。假设人口中有 100 多人能够胜任这份工作。 我们需要选择其中的 20 个作为研究样本进行研究,然后使用分层随机抽样的方式从整个人群中选择任意 n=20 个个体,确保每个人群子集的男女比例相等(10 男 10 女) ). 以这种方式,模型可以稳健地学习并为所有类型的数据分布提供准确的预测。 确保选择的子组具有与整个总体相同的关键特征。

模型训练偏差

模型训练是机器学习管道的重要组成部分。 此时,我们将训练数据集输入机器学习模型,以使其为生产做好准备。 在训练模型时,每个算法都有其必须根据数据进行调整的结构和原则。训练模型产生的结果与实际结果之间的差异称为模型训练偏差。 一些模型,如神经网络,非常适合大型数据集,因为它们在数百万个数据点上运行并提供合理的准确性。 它记忆了一个小数据集,并在训练数据上为模型提供了高精度,但未能在测试数据上提供出色的结果。 例如,对于小型数据集,回归和基于树的模型是合适的。又比如在推荐系统中,流行物品往往占据了主要的用户交互行为,在这种情况下,基于交互行为构建的协同过滤模型往往偏向于推荐热门物品。

如何避免模型训练偏差?为了防止算法偏差,在选择正确的模型时,我们必须考虑重要的方面,例如问题陈述和期望的结果、数据的类型和数量、可用的计算时间、数据中的特征和观察的数量等等。在选择模型时,我们需要了解我们要达到的实际目标是什么。 如果输出的解释是目标,则受限模型更可取,因为它们更容易理解。 这意味着您可以轻松了解任何单个预测变量如何与响应相关联。 受限模型的示例包括线性回归、逻辑回归、决策树和朴素贝叶斯。 如果模型的高精度是一个主要要求,那么灵活的模型是更可取的。 例如人工神经网络和深度学习算法。作为机器学习从业者,你必须意识到,在构建模型的同时,我们必须选择与我们的数据集最匹配的机器学习方法。 模型选择可以在此阶段完成,方法是筛选三到四个模型,然后进行交叉验证以确定最适合该工作的模型。 一旦我们选择了模型并微调了参数,我们就应该在整个数据集上训练最终模型。在模型完成之后,有时为了消除偏差,我们可能还需要采取一些后处理的手段来消除偏差。 


模型评估偏差

模型验证是使用模型训练之前建立的性能指标评估模型在测试或未见数据上的性能的过程。当我们在训练数据上训练我们的模型时,我们无法仅通过评估模型在训练数据上的表现来预测模型的质量。 由于训练数据的敏感性分析通常是有偏差的——模型学会了如何响应特定数据集——我们需要检查模型在测试数据上的表现。

如何避免模型评估偏差?我们需要评估我们的模型在测试数据上的表现,以确保它在训练环境之外没有偏差。 在进行评估时,我们必须考虑先前根据用例建立的性能指标。 在某些情况下,模型的敏感性比模型的整体准确性更重要。 当需要二进制分类时,我们使用混淆矩阵值作为我们的度量; 在回归模型中,我们使用距离公式,例如欧氏距离和均方根误差 (RMSE)。 因此,我们需要微调性能指标以提供公平的模型评估。因此,对于不同的场景,选取合适的评估数据集和评价指标至关重要。例如,如果我们正在研究银行业的欺诈检测问题,大多数交易实例不包含欺诈行为,因此数据集将严重偏向一类不涉及欺诈活动的交易。当您在训练数据集上训练模型时,它会有相对较少的数据点指示欺诈行为。 因此,该模型可能提供 90% 的准确度,但在测试数据集上仅提供 50% 的灵敏度或召回率。 在解释研究结果时,大多数人认为如果整体准确率高,模型是稳定的并且产生可靠的结果,然而,这是一个极其错误的假设。 您可能正面临训练产品偏差,并且您可能想要重新考虑您的数据采样技术以管理更具代表性的数据集。

线上的环境千变万化,永远可能出现你意想不到的数据情况。如何应对这样的评估偏差,一种有效的防范措施,就是对模型进行有效的监控。这种方法会迫使您处于防御地位,在您的业务已经使用模型预测后对性能回归、数据质量问题和漂移做出反应。 这就是全栈可观察性平台的用武之地,这些平台使您能够执行预生产模型验证,以便您了解模型在部署前的执行情况。


总结

在机器学习应用中,减少数据偏差是一项有意义且持续的努力。 尽管检测数据或模型是否存在偏差有时可能具有挑战性,但从以上几个方面来检视您的应用并采取措施,可以帮助减轻或检测偏差。

【1】https://arize.com/blog/understanding-bias-in-ml-models/

【2】https://www.51cto.com/article/585214.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容