机器学习22:机器学习工程落地注意事项-II(公平-Fairness)

news2024/11/23 19:16:21

负责任地评估机器学习模型需要做的不仅仅是计算损失指标。在将模型投入实际应用之前,审核训练数据并评估偏见(Bias)对预测至关重要。本文内容着眼于解读训练数据中可能存在的不同类型的人类偏见,同时提供了识别它们并评估其影响的策略。

目录

1.偏见的类型(Types of Bias)

1.1 报告偏见

1.2 自动化偏见

1.3 选择偏见

1.4 群体归因偏见

1.5 隐性偏见

2.识别偏见(Identifying Bias)

2.1 缺少特征值

2.2 意外的特征值

2.3 数据偏见

3. 评估偏见(Evaluating for Bias)

3.1 额外的公平资源

4.参考文献


1.偏见的类型(Types of Bias)

机器学习模型本质上并不客观。工程师通过向模型提供训练示例数据集来训练模型,而人类参与这些数据的提供和管理可能会使模型的预测容易出现偏差。

构建模型时,了解数据中可能出现的常见人类偏见非常重要,这样我们就可以采取主动措施来减轻其影响。

警告:以下偏差清单仅提供了机器学习数据集中经常发现的一小部分偏差;此列表并非详尽无遗。维基百科的 认知偏见目录 列举了 100 多种可能影响我们判断的不同类型的人类偏见。在审核数据时,我们应该留意可能会影响模型预测的任何和所有潜在偏差来源。

1.1 报告偏见

当数据集中捕获的事件、属性和/或结果的频率不能准确反映其真实世界的频率时,就会出现报告偏见。之所以会出现这种偏见,是因为人们倾向于专注于记录不寻常或特别令人难忘的情况,认为普通情况可以“不言而喻”。

示例:训练情感分析模型,根据用户向热门网站提交的语料库来预测书评是正面还是负面。训练数据集中的大多数评论反映了极端的观点(喜欢或讨厌一本书的评论者),因为如果人们对一本书没有强烈的反应,他们就不太可能提交评论。因此,该模型不太能够正确预测使用更微妙的语言来描述书籍的评论的情绪。

1.2 自动化偏见

自动化偏见——是指倾向于选择自动化系统生成的结果而不是非自动化系统生成的结果,无论每个系统的错误率如何。

示例:为链轮制造商工作的软件工程师渴望部署他们训练的新的 “突破性” 模型来识别牙齿缺陷,直到工厂主管指出该模型的精确度和召回率均比人工检查员低 15%。

1.3 选择偏见

如果数据集示例的选择方式不反映其真实世界的分布,就会出现选择偏见。选择偏见可以有多种不同的形式:

  • 覆盖偏见:数据不是以代表性的方式选择的。

示例:训练一个模型,根据对购买该产品的消费者样本进行的电话调查来预测新产品的未来销售情况。由于没有调查那些购买竞争产品的消费者,因此,这类人群(可以认为是 “负向”数据)没有出现在训练数据中。

  • 无响应偏见(或参与偏见):由于数据收集过程中的参与差距,数据最终不具代表性。

示例:训练一个模型,根据对购买该产品的消费者样本和购买竞争产品的消费者样本进行的电话调查来预测新产品的未来销售情况。购买竞争产品的消费者拒绝完成调查的可能性高出 80%,而且他们的数据在样本中代表性不足。

  • 抽样偏见:数据收集过程中未使用适当的随机化。

示例:训练一个模型,根据对购买该产品的消费者样本和购买竞争产品的消费者样本进行的电话调查来预测新产品的未来销售情况。调查人员没有随机定位消费者,而是选择了前 200 名回复电子邮件的消费者,他们可能比普通购买者对产品更热情。

1.4 群体归因偏见

群体归因偏见是一种将个人的真实情况概括到他们所属的整个群体的倾向。这种偏见的两个主要表现是:

  • 群体内偏见:对你所属群体的成员或你也有共同特征的偏好。

示例:两位为软件开发人员训练简历筛选模型的工程师倾向于相信,与他们一起就读于同一所计算机科学学院的申请人更适合该职位。

  • 外群体同质性偏见:一种对你不属于的群体中的个体成员形成刻板印象的倾向,或者认为他们的特征更加统一。

示例:两名工程师为软件开发人员训练简历筛选模型,他们倾向于认为所有未上过计算机科学学院的申请人不具备足够的专业知识来胜任该职位。

1.5 隐性偏见

当基于自己的心理模型和个人经历做出假设时,隐性偏见就会出现,而这些假设不一定适用于更普遍的情况。

示例:训练手势识别模型的工程师使用 摇头 作为特征来指示一个人正在传达 “不” 这个词。然而,在世界某些地区,摇头实际上表示“是”。

隐性偏差的一种常见形式是确认偏见,模型构建者无意识地以肯定预先存在的信念和假设的方式处理数据。在某些情况下,模型构建者实际上可能会继续训练模型,直到产生与其原始假设相符的结果;这就是所谓的 实验者偏见

示例:一位工程师正在构建一个模型,根据各种特征(身高、体重、品种、环境)来预测狗的攻击性。这位工程师小时候曾与一只过度活跃的玩具贵宾犬有过一次不愉快的遭遇,从那时起,他就将该品种与攻击性联系在一起。当经过训练的模型预测大多数玩具贵宾犬相对温顺时,工程师又对模型进行了多次重新训练,直到得出的结果显示较小的贵宾犬更加暴力。

2.识别偏见(Identifying Bias)

当探我们索数据以确定如何在模型中最好地表示它时,还要注意:公平问题并主动审核潜在的偏见来源也很重要。偏见可能潜伏在哪里?以下是数据集中需要注意的三个危险信号。

2.1 缺少特征值

如果你的数据集的一个或多个特征在大量示例中缺少值,则可能表明你的数据集的某些关键特征代表性不足。

举个例子,下表显示了 加州住房数据 集中的部分要素的关键统计数据摘要,这些数据存储在 pandas 中 DataFrame 并通过生成 DataFrame.describe。从数据中可以发现——所有特征的总数都是 17000,说明所有示例都没有缺失特征。

经度纬度总房间数人口家庭收入中位数房屋价值中位数
总数(count)17000.017000.017000.017000.017000.017000.017000.0
平均值(mean)-119.635.62643.71429.6501.23.9207.3
标准(std)2.02.12179.91147.9384.51.9116.0
最小值(min)-124.332.52.03.01.00.515.0
25%-121.833.91462.0790.0282.02.6119.4
50%-118.534.22127.01167.0409.03.5180.4
75%-118.037.73151.21721.0605.24.8265.0
最大值(max)-114.342.037937.035682.06082.015.0500.0

假设三个特征(population-人口households-房间数量 和 median_income-收入中位数)的计数仅为 3000——换句话说,每个特征有 14,000 个缺失值:

经度纬度总房间数人口家庭收入中位数房屋价值中位数
总数(count)17000.017000.017000.03000.03000.03000.017000.0
平均值(mean)-119.635.62643.71429.6501.23.9207.3
标准(std)2.02.12179.91147.9384.51.9116.0
最小值(min)-124.332.52.03.01.00.515.0
25%-121.833.91462.0790.0282.02.6119.4
50%-118.534.22127.01167.0409.03.5180.4
75%-118.037.73151.21721.0605.24.8265.0
最大值(max)-114.342.037937.035682.06082.015.0500.0

由于示例数据缺失了 14,000 个特征值,在训练模型时,将难以准确地将【家庭收入中位数】与【房价中位数】关联起来。鉴于此,在利用这些数据训练模型之前,应谨慎检查这些缺失值的原因,以确保不存在导致收入和人口数据缺失的潜在偏差。

2.2 意外的特征值

在检查数据时,我们还应该寻找包含特别不典型或不寻常的特征值的示例。这些意外的特征值可能表明数据收集过程中发生的问题或可能引入偏见的其他不准确之处。例如,看一下以下来自加州住房数据集的摘录示例:

经度纬度总房间数人口家庭收入中位数房屋价值中位数
1-121.738.07105.03523.01088.05.00.2
2-122.437.82479.01816.0496.03.10.3
3-122.037.02813.01337.0477.03.70.3
4-103.543.82212.0803.0144.05.30.2
5-117.132.82963.01162.0556.03.60.2
6-118.033.73396.01542.0472.07.40.4

你能指出任何意外的特征值吗?

示例 4 中的经度和纬度坐标(分别为 -103.5 和 43.8)不属于美国加利福尼亚州。事实上,它们是 南达科他州拉什莫尔山国家纪念碑的大致坐标。这是我们插入到数据集中的一个虚假示例。

2.3 数据偏见

数据中的任何形式的偏见(例如:某些群体或特征相对于现实世界的患病率可能代表性不足或过高)都可能会给我们的模型带来偏见。

在【机器学习1~21】中的编程练习中,我们将加州住房数据集分割为【训练集】和【验证集】之前都会对其进行随机化,其目标就是减少数据偏见。图 1 可视化了从完整数据集中提取的数据子集,专门代表加利福尼亚州西北部地区。

图 1. 加利福尼亚州地图与加利福尼亚州住房数据集的数据重叠。每个点代表一个住宅区,颜色从蓝色到红色分别对应房价中值从低到高的变化。

如果使用上述不具有代表性的样本来训练模型来预测加州全州的房价,那么缺乏加州南部地区的住房数据将会出现问题。模型中编码的地理偏见可能会对无人代表的社区的购房者产生不利影响。

3. 评估偏见(Evaluating for Bias)

评估模型时,根据整个测试集或验证集计算的指标并不总是能够准确地描述模型的公平程度。举个例子,开发一个用于预测肿瘤存在的新模型,该模型根据 1,000 名患者医疗记录的验证集进行评估。500 条记录来自女性患者,500 条记录来自男性患者。以下 混淆矩阵 总结了所有 1,000 个示例的结果:

真阳性 (TP):16误报 (FP):4
漏报 (FN):6真阴性 (TN):974
\text{Precision} = \frac{TP}{TP+FP} = \frac{16}{16+4} = 0.800
\text{Recall} = \frac{TP}{TP+FN} = \frac{16}{16+6} = 0.727

这些结果看起来很有希望:精确度为 80%,召回率为 72.7%。但如果我们分别计算每组患者的结果会怎样?让我们将结果分解为两个独立的混淆矩阵:一个用于女性患者,一个用于男性患者。

女性患者结果

真阳性 (TP):10误报 (FP):1
漏报 (FN):1真阴性 (TN):488
\text{Precision} = \frac{TP}{TP+FP} = \frac{10}{10+1} = 0.909
\text{Recall} = \frac{TP}{TP+FN} = \frac{10}{10+1} = 0.909

男性患者结果

真阳性 (TP):6误报 (FP):3
漏报 (FN):5真阴性 (TN):486
\text{Precision} = \frac{TP}{TP+FP} = \frac{6}{6+3} = 0.667
\text{Recall} = \frac{TP}{TP+FN} = \frac{6}{6+5} = 0.545

当我们分别计算女性和男性患者的指标时,我们发现每组的模型性能存在明显差异。

女性患者:

  • 在 11 名实际患有肿瘤的女性患者中,模型正确预测了 10 名患者呈阳性(召回率:90.9%)。换句话说,该模型漏掉了 9.1% 的女性病例的肿瘤诊断

  • 同样,当模型在女性患者中返回肿瘤阳性时,11 例中有 10 例是正确的(精确率:90.9%);换句话说,该模型错误地预测了 9.1% 的女性病例的肿瘤

男性患者:

  • 然而,在 11 名实际患有肿瘤的男性患者中,模型仅正确预测 6 名患者呈阳性(召回率:54.5%)。这意味着该模型漏掉了 45.5% 的男性病例的肿瘤诊断

  • 当模型在男性患者中返回肿瘤阳性时,9 例中只有 6 例是正确的(精确率:66.7%);换句话说,该模型错误地预测了 33.3% 的男性病例的肿瘤

基于上面的内容,相信读者对模型预测中固有的偏见已经有了更好的理解。同时,我们应该认识到,如果存在偏见的模型被用于关键领域(如医疗),那么,产生的风险将是巨大的。

3.1 额外的公平资源

公平性是机器学习学科中一个相对较新的子领域。要详细了解致力于开发新工具和技术以识别和减轻机器学习模型中的偏见的研究和计划,可查看 资料(链接-https://ai.google/responsibility/responsible-ai-practices/ )了解更多内容。

4.参考文献

链接-https://developers.google.cn/machine-learning/crash-course/fairness/types-of-bias
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/721806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬虫与数据挖掘在外汇市场分析中的应用

外汇市场是全球最大的金融市场之一,每天的交易量可以达到几万亿美元。深入了解外汇市场的趋势和变化对于投资者来说至关重要,因为即使是微小的价格波动也可能导致巨额利润或损失。从过去的历史数据中抽取经验教训,并使用数据挖掘算法来预测未…

xDS协议

xDS xDS协议是"X Discovery Service",这里的X表示它不是指具体的某个协议,是一组基于不同数据源的服务发现协议的总称,包括CDS,LDS,EDS,RDS和SDS等。客户端可以用噶多种方式获取数据资源&#x…

【SAP UI5 控件学习】DAY01 Input组Part I

UI5常用控件 1.Input组 1.1 Feed Input控件 这个控件通常是用来显示发布评论的。它可以显示用户头像,并且在内容输入方面,可以设置PlaceHolder,自增扩展大小,限制行数,以及限制字数等诸多设置。 1.1.1 没有头像的输…

电压放大器的应用领域有哪些

电压放大器是一种电子器件,其主要作用是将输入信号的电压放大到输出端。在现代电子技术中,电压放大器被广泛应用于各种领域,包括通信、医疗、工业控制、汽车电子等。下面安泰电子就来详细了解一下电压放大器的应用领域。 通信领域&#xff1a…

软考:中级软件设计师:系统总线,系统可靠性,串联和并联可靠度

软考:中级软件设计师:系统总线, 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心…

4.39ue4:ue4表格设置、读取

1.创建表格,内容浏览器,右键,其他,数据表格,下拉选择一个数据结构类型的起始项。 2.被选择的数据结构将以表格的形式列出数据。 3.使用方式: i: 输出一行数据(text) ii&#xff…

Stable Diffusion 图片生成AI模型 Windows Mac部署指南

Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词​(英语)指导下产生图生图的翻译。 DreamStudio 现已…

一条MYSQL记录是如何储存的

主要还是看MYSQL默认的储存引擎 InnoDB 每个创建一个数据库 就会在/var/lib/mysql/ 目录里面创建一个以 database 为名的目录 目录里面包含以下三个文件 db.opt,用来存储当前数据库的默认字符集和字符校验规则。(数据库的数据)t_order.frm ,t_order 的…

html---链接跳转案例

目录 一、要求:设置一个网页如下图所示,可实现首页、列表页、详情页、登录页链接 二、实现:实现代码及截图如下 三、寄语 一、要求:设置一个网页如下图所示,可实现首页、列表页、详情页、登录页链接 二、实现&…

飞书深诺、恒生面试(部分)(未完全解析)

飞书深诺 说一下你对SaaS项目的理解?数据隔离是怎么处理的?Answer: 我们采用的是SAAS服务多租户数据隔离架构中的1.3共享数据库,通过租户ID来隔离,成本最低,隔离级别最低。Q:有没有开发隔离的中间件&#x…

shopee,lazada卖家如何提高店铺权重,带来更多销量

1、优化标题关键词 标题关键词可以在很大程度上影响产品的显示,如果商店自然流量低,必须检查标题是否选择合适的关键词,如果关键词不合适需要优化并进行更换,可以选择一些准确的长尾关键词获得准确的流量,如果收集产品…

在Linux中查找用户帐户信息和登录详细信息的11种方法

在Linux系统中,用户帐户和登录详细信息对于系统管理和安全非常重要。本文将介绍 11 种在 Linux 系统查找用户相关信息的有用方法。这里,我们会讲解在系统中获取一个用户账户详细信息、展示登录详细信息以及用户行为数据的命令。 首先,我们会…

【ARM7.5作业】

作业1 作业2 代码实现: head.h #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h"//初始化相关操作 void hal_uart4_init();//发送一个字符 void h…

Mockito的使用案例

流水线的单元测试 代码没有覆盖到,使用的是Mockito测试框架,原来是Mockito没有正确使用 package com.hmdp;import com.hmdp.controller.BlogController; import com.hmdp.entity.Blog; import com.hmdp.service.IBlogService; import com.hmdp.service.…

文心一言 VS 讯飞星火 VS chatgpt (55)-- 算法导论6.3 1题

文心一言 VS 讯飞星火 VS chatgpt (55)-- 算法导论6.3 1题 一、参照图6-3 的方法,说明 BUILD-MAX-HEAP在数组 A(5,3,17,10,84,19,6,22,9)上的操作…

C#(五十二)之线程

线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。 C#线程操作,需要使用到Thread类。 使用命名空间 using Sy…

grafana+prometheus+pushgateway+flink可视化实时监控

文章目录 一、各部分介绍二、安装配置1、安装pushgateway2、安装Prometheus3、Grafana 安装 三、测试使用 一、各部分介绍 采集层 flink APP和linux system两部分,是我们要收集指标数据的组件传输层 Pushgateway:是一个推送收集和推送数据的组件 Node_ex…

【网络安全带你练爬虫-100练】第5练:爬虫的翻页操作+错误情况过滤

目录 一、翻页分析: 二、代码逻辑 1、入口程序修改 2、page参数传入 三、完整代码 1、运行结果 2、错误分析: 3、缺陷代码: 4、完善逻辑: 5、完善代码: (说在前面,任何逻辑都有很多方…

Python软件安装后,Scripts文件夹下为空解决办法

安装Python后,需要使用pip,发现Scripts下为空,无法install pip: 解决办法: cmd进入Windows命令提示符界面,进入Python的安装目录,并使用python -m ensurepip命令执行即可:

R语言——字符串处理

paste(abc, def, gh, sep ) #粘贴字符串 substr(abcdefg, 2, 3) # 取特定字符串 gsub(abc, , c(abc, abcc, abcbc)) # 将字符串中abc替换为空 strsplit(a;b;c, ;, fixed T) # 按照;切分字符串 strsplit(a222b2.2c, 2.2, fixed F) # 按照正则表达式分隔,这里的.是…