将公平注入AI:机器学习模型即使在不公平数据上训练也能产生公平输出

2024-04-13 18:48

本文主要是介绍将公平注入AI:机器学习模型即使在不公平数据上训练也能产生公平输出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

c7bdb4183f59927f86f6b4accf5ec58c.png

来源:ScienceAI
本文约1800字,建议阅读9分钟
如何迫使深度度量学习模型首先学习好的特征?

cf1fae2b31d6f9d5bca32058430db02f.png

如果使用不平衡的数据集训练机器学习模型,比如一个包含远多于肤色较浅的人的图像的数据集,则当模型部署在现实世界中时,该模型的预测存在严重风险。

但这只是问题的一部分。麻省理工学院的研究人员发现,在图像识别任务中流行的机器学习模型在对不平衡数据进行训练时实际上会编码偏差。即使使用最先进的公平性提升技术,甚至在使用平衡数据集重新训练模型时,模型中的这种偏差也无法在以后修复。

因此,研究人员想出了一种技术,将公平性直接引入模型的内部表示本身。这使模型即使在不公平数据上进行训练也能产生公平的输出,这一点尤其重要,因为很少有平衡良好的数据集用于机器学习。

他们开发的解决方案不仅可以使模型做出更平衡的预测,还可以提高它们在面部识别和动物物种分类等下游任务中的表现。

ff1ef8b67e38623f3920cb9ead2cff16.png

「在机器学习中,将数据归咎于模型偏差是很常见的。但我们并不总是有平衡的数据。因此,我们需要找到真正解决数据不平衡问题的方法,」主要作者、麻省理工学院计算机科学与人工智能实验室 (CSAIL) 健康 ML 小组的研究生 Natalie Dullerud 说。

定义公平

研究人员研究的机器学习技术被称为深度度量学习(deep metric learning),它是表示学习的一种广泛形式。在深度度量学习中,神经网络通过将相似的照片映射在一起并且将不同的照片映射得很远来学习对象之间的相似性。在训练期间,该神经网络将图像映射到「嵌入空间」中,其中照片之间的相似性度量对应于它们之间的距离。

例如,如果使用深度度量学习模型对鸟类进行分类,它会将金雀的照片一起映射到嵌入空间的一部分中,并将红雀的照片映射到嵌入空间的另一部分中。一旦经过训练,该模型就可以有效地测量它以前从未见过的新图像的相似性。它会学习将看不见的鸟类的图像聚集在一起,但在嵌入空间内离红雀或金雀更远。

1edbaa21e1f43d152f5a5cb03a515e94.png

这张图片显示了鸟类颜色的两个不同的 PARADE 嵌入

Dullerud 说,模型学习的相似性度量非常稳健,这就是为什么深度度量学习经常被用于面部识别的原因。但她和她的同事想知道如何确定相似性指标是否有偏差。

「我们知道数据反映了社会进程的偏见。这意味着我们必须将重点转移到设计更适合现实的方法上。」Ghassemi 说。

研究人员定义了相似性度量不公平的两种方式。以面部识别为例,如果与那些图像是肤色较浅的人相比,如果将肤色较深的人更靠近彼此嵌入,即使他们不是同一个人,该指标将是不公平的。其次,如果它学到的用于衡量相似性的特征对于多数群体来说比少数群体更好,那将是不公平的。

研究人员对具有不公平相似性指标的模型进行了许多实验,但无法克服模型在其嵌入空间中学到的偏差。

「这很可怕,因为公司发布这些嵌入模型,然后人们对它们进行微调以完成一些下游分类任务是一种非常普遍的做法。但无论你在下游做什么,你根本无法解决嵌入空间中引发的公平问题,」Dullerud 说。

她说,即使用户在下游任务的平衡数据集上重新训练模型(这是解决公平问题的最佳情况),仍然存在至少 20% 的性能差距。

解决这个问题的唯一方法是确保嵌入空间一开始是公平的。

学习单独的指标

研究人员的解决方案称为部分属性去相关 (PARADE),涉及训练模型以学习敏感属性(如肤色)的单独相似性度量,然后将肤色相似性度量与目标相似性度量去相关。如果模型正在学习不同人脸的相似度度量,它将学习使用肤色以外的特征来映射靠近在一起的相似面孔和相距很远的不同面孔。

任何数量的敏感属性都可以通过这种方式与目标相似度度量去相关。并且由于敏感属性的相似性度量是在单独的嵌入空间中学习的,所以在训练后将其丢弃,因此模型中仅保留了目标相似性度量。

他们的方法适用于许多情况,因为用户可以控制相似性度量之间的去相关量。例如,如果模型将通过乳房 X 光照片诊断乳腺癌,临床医生可能希望在最终嵌入空间中保留一些有关生物性别的信息,因为女性患乳腺癌的可能性比男性高得多,Dullerud 解释说。

他们在面部识别和鸟类分类这两项任务上测试了他们的方法,发现无论他们使用什么数据集,它都能减少嵌入空间和下游任务中由偏差引起的性能差距。

展望未来,Dullerud 感兴趣的是如何迫使深度度量学习模型首先学习好的特征。

「您如何正确审核公平性?这是一个悬而未决的问题。你怎么知道一个模型是公平的,或者它只在某些情况下是公平的,那些情况是什么?这些是我真正感兴趣的问题,」她说。

参考内容:

https://scitechdaily.com/injecting-fairness-into-ai-machine-learning-models-that-produce-fair-outputs-even-when-trained-on-unfair-data/

https://openreview.net/pdf?id=js62_xuLDDv

编辑:黄继彦

校对:林亦霖

3293202579d0055c540d5672921d591f.png

这篇关于将公平注入AI:机器学习模型即使在不公平数据上训练也能产生公平输出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Nacos日志与Raft的数据清理指南

《Nacos日志与Raft的数据清理指南》随着运行时间的增长,Nacos的日志文件(logs/)和Raft持久化数据(data/protocol/raft/)可能会占用大量磁盘空间,影响系统稳定性,本... 目录引言1. Nacos 日志文件(logs/ 目录)清理1.1 日志文件的作用1.2 是否可以删除

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

Spring Boot 整合 Redis 实现数据缓存案例详解

《SpringBoot整合Redis实现数据缓存案例详解》Springboot缓存,默认使用的是ConcurrentMap的方式来实现的,然而我们在项目中并不会这么使用,本文介绍SpringB... 目录1.添加 Maven 依赖2.配置Redis属性3.创建 redisCacheManager4.使用Sp