与数据隐私相关的 AI 关键问题

简介:   本文最初发表在 Towards Data Science 博客,经原作者 Alexandros Zenonos 授权,InfoQ 中文站翻译并分享。  隐私不仅是与人工智能有关的问题,也是任何与数据相关的领域普遍关注的问题。隐私是关于人们对其个人数据和基于这些数据所做的决定的控制。

  本文最初发表在 Towards Data Science 博客,经原作者 Alexandros Zenonos 授权,InfoQ 中文站翻译并分享。

  隐私不仅是与人工智能有关的问题,也是任何与数据相关的领域普遍关注的问题。隐私是关于人们对其个人数据和基于这些数据所做的决定的控制。

  在欧洲,2018 年生效的《通用数据保护条例》(General Data Protection Regulation,GDPR)对个人数据的收集和使用进行了规范。数据保护条例并没有明确提及人工智能或机器学习,但对个人数据的大规模自动处理和自动决策非常重视。这意味着,凡是人工智能使用个人数据的地方,都属于该条例的范围,皆适用 GDPR 原则。这可以通过使用个人数据来训练、测试或部署人工智能系统。如果不遵守 GDPR,可能会导致相关公司受到巨额处罚。

  个人数据的一些例子包括出生日期、邮政编码、性别、甚至用户的 IP 地址。

  具体来说,GDPR 赋予个人不受制于完全自动化决定的权利。那么,人工智能专家的关键问题就是:当你作出关于个人的人工智能辅助决定时,如何证明你以透明的方式公平地对待个人,或者给他们机会对这种决定提出异议?

  尽管 GDPR 与欧洲和英国的关系最为密切,但其主要原则和理念在全球范围内应该适用。

  尽管模型的公平性和可解释性是人工智能中的主要研究课题,但在数据隐私方面,至少有五个考虑因素你已经可以考虑了。

  当你的训练标签不成比例地偏向某一特定类时,就会发生类不平衡。换句话说,在二进制分类问题中,对于输出为 0 的情况,你有很多样本;但当输出为 1 时,你就只有少数样本了,反之亦然。这可能是由于数据收集过程中存在偏差,例如,只从本地分支机构收集数据;或者是领域的固有属性,例如,识别制造过程中的异常数据点。

  类不平衡性是造成模型偏差的最常见原因之一,但它经常被数据科学家所忽视。这是因为,通常情况下,轻微的不平衡并不会带来巨大的风险,因为模型可以同样好地学习所有类的特征。然而,当出现严重的类不平衡时,事情就会变得棘手了。具体来说,少数的类更难预测,因此你的模型将会偏向于多数类。

  例如,当你训练人工智能系统来识别图像时,你可能会面临许多潜在的问题,类不平衡性可能就是其中之一。想象一下,有一组 100000 张照片,其中只有 100 张是毕业证的图片,99900 张是狗子的图片,会怎么样呢?你训练的人工智能系统更有可能预测狗子,因为它被训练得更频繁;它没有足够的负类案例来准确区分这两类图像。

  这个潜在的问题并不像错误地将猫狗分类那么单纯。试想一下,你正在训练一个接受或拒绝个人贷款的模型,而大多数历史性的贷款(出于某种原因)都被拒绝了。你猜怎么着?你的模型可能会拒绝大部分或所有未来的贷款申请,因为它更容易接触到这类信息,并且可能没有学会区分这两种情况。从数据隐私的角度来看,这就是一个问题,因为该模型不能产生公平的结果。

  首先,尽早确定这是否会成为一个问题很重要。你可以通过了解属于你每个类的数据点的数量来检查:

  df[‘your_label’].value_counts()

  如果你确实注意到了存在类不平衡性的现象,但仍然在数据上运行了一个简单的模型,那么就正确率而言,你可能还是会得到很好的结果。你的测试数据可能遵循与你的训练数据相同的分布,因此,如果大多数实例主要来自一个类,那么只要总是预测这个类就会得到很好的正确率得分。

  但不要被这些所迷惑。通常情况下,混淆矩阵会让你更好地了解你的模型实际在做什么。缓解相关问题的主要和最简单的策略之一是随机重采样。你可以减少你的多数类以匹配少数类(欠采样),或者对少数类进行过采样。

  在实践中,

  count_0, count_1=df.target.value_counts()

  df_class_0=df[df[‘your_label’]==0].sample(count_1)#under sample

  或

  df_class_1=df_class_1.sample(count_0, replace=True)#over sample

  你同样也可以使用 NumPy 或其他库来对数据进行采样,比如 Imblearn。此外,还有许多其他方法可以解决这个问题比如 SMOTE 和 Tomek 链接。

  对人工智能系统的对抗性攻击可以使系统完全混乱。例如,图像识别系统被证明有弱点或易受到对抗性攻击。研究人员已经证明,即使人工智能系统对数以千计的图像进行了训练,图像中一个精心放置的像素也能从根本上改变人工智能系统对它的感知,从而导致错误的预测。这可能会对涉及个人身份识别的实际应用产生严重影响。想象一下一个安全摄像机镜头的场景,由于这种攻击,人工智能系统误认了罪犯。

  我们需要使我们的深度学习模型更加健壮。但不幸的是,这个问题也很棘手。目前,世界顶级大学都在进行研究层面的调查。然而,从理论上讲,你应该不仅能够在一个看不见的测试数据集上测试你的模型,而且还可以模拟这些类型的对抗性攻击来评估其健壮性。深度学习模型中的神经元如果被错误激活,可能会被丢弃,以提高健壮性。 2019 年的这篇论文讨论了这些方法。

  人工智能中的一个常见问题是,如果要复制我们获得的结果,或者我们生成的模型,到底有多容易。许多算法在训练模型时都存在随机因素。因此,不同的训练运行会产生不同的模型(假设存在不同的随机种子),不同的模型可能会产生不同的预测结果。我们该如何确保一个关系到个人的预测不会被下一个基于相同数据的模型所推翻呢?

  另外,如果一个系统在我们的本地机器上,使用我们的数据表现良好,那么在现场测试的话,却有可能表现不佳。我们该如何确保最初的性能传播到已部署的应用程序呢?我们又该如何确保系统的性能不会随着时间的推移而恶化,从而影响对个人的决策呢?

  这些是多个相关问题,需要采取多种方法。为了确保结果的一致性,你通常应该使用交叉验证技术,以确保你的结果不是基于对训练集和测试集的幸运分割。要获得实际指导,请参阅这篇帖子:《使用 Python 交叉验证的完整指南与示例》( Complete guide to Python’s cross-validation with examples)。

  此外,对于预测模型,你可以做一个反向测试,并评估如果在过去的某个时间点部署模型时,只给出到那个点为止的训练数据,看看性能将会如何。

  另外,在一个完全不同的数据集上评估你的模型,用类似的输入来检查它在给定的数据集之外的通用性,也是一个好主意。但重要的是,当你在现实世界中部署一个模型时,数据应该遵循与你的训练数据相同的分布。在任何其他情况下,性能都会出现不可预知的下降。

  最后,监视已部署的模型并评估其在新数据上的性能,总是一种很好的实践做法。如果性能突然下降或漂移,这可能是模型需要重新训练的迹象。当然,这也取决于具体的应用。根据应用程序的不同,你可能有重新训练的策略,以便每天、每周、每季度、每年都会有新的模型。

  构建人工智能系统时,关键问题应该是“我们如何评估系统?”。最常见的度量指标之一是正确率。换句话说,无论你的模型在它测试的总样本上预测正确与否。但正确率是一个很好的度量标准吗?让我们试想这样一个问题,你有 100 个女人,其中有 10 个怀孕了。假设你有一些关于这些女人的信息,你试图建立一个模型来预测谁怀孕了,谁没怀孕。你要是这样做的话,你的模型的正确率将只有 85%。这是不是意味着你有一个好的模型呢?另一方面,让我们假设你没有模型,而你宁愿做的是预测所有的女人都没有怀孕。令人惊讶的是,它的正确率居然是 90%,因为你将会在 100 次预测中有 90 次是正确的。这比你上面创建的实际模型更好吗?那么,我们该使用什么度量标准,以及如何评估模型的性能呢?你会仅仅依靠正确率来作出影响个人的决定吗?

  答案显然是否定的。事实上,通常情况下,最好的方法是比较多个度量指标,理想情况下,仔细检查混淆矩阵,以了解模型的优缺点。

  因此,对于上面那个正确率为 90% 的天真方法,F1-Score 实际上是 0,因为没有真正类(只有真负类)。相反,你那个正确率只有 85% 的模型,事实上,F1-Score 可能有 67%,这在特定的应用中可能是可接受的,也可能是不可接受的。其他需要寻找的度量指标是接收者操作特征(Receiver Operating Characteristic,ROC)的曲线下面积(area under the curve,AUC)、精确性、召回率和特异性,仅举几例。

  依靠历史数据来预测未来并不总是有效的。一个很好的例子就是预测股市。这在本质上是很困难的,原因有很多。使用长期以来具有某种结果的数据,会创建在其历史边界内工作的模型。这意味着,如果你在一个没有市场崩盘的时期训练一个模型,那么这个模型就不可能永远预测到市场崩盘。即使你在市场崩盘期间进行了训练,但由于事件的罕见性以及缺乏指向该方向的明确信号,模型仍然不太可能知道什么时候会发生崩盘。现在,让我们设想在全球大流行时期作出影响个人的决策的模型。由于所有的模型在过去都没有看到过类似的数据,所以不可能会像大流行之前那样准确地对个人作出决定。

  在这种情况下,模型可能需要用从新情况中获取的数据进行重新训练,以便在新的现实中运行。这可能会暂时起作用,直到行为再次转向旧的标准。如果再训练是不可能的,那么就不应该自动作出决定,因为它们很可能是错误的。不过,这需要经过测试和验证。

  总而言之,在我们的模型目前运作的假设下,要预测黑天鹅事件是不可能的。在你知道你所预测的数据与你所训练的数据并不遵循相同的分布的情况下,对个人进行预测并作出决定是不负责任的做法。这并不是说模型不能作为一种有用的咨询工具。此外,George Box 曾说过:“所有的模型都是错误的,只有一些模型是有用的。”

  Alexandros Zenonos,博士,对人工智能、数据科学和个人理财感兴趣。

目录
相关文章
|
2月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
2月前
|
人工智能 关系型数据库 分布式数据库
拥抱Data+AI|“全球第一”雅迪如何实现智能营销?DMS+PolarDB注入数据新活力
针对雅迪“云销通App”的需求与痛点,本文将介绍阿里云瑶池数据库DMS+PolarDB for AI提供的一站式Data+AI解决方案,助力销售人员高效用数,全面提升销售管理效率。
|
2月前
|
机器学习/深度学习 人工智能 算法
整合海量公共数据,谷歌开源AI统计学专家DataGemma
【10月更文挑战第28天】谷歌近期开源了DataGemma,一款AI统计学专家工具,旨在帮助用户轻松整合和利用海量公共数据。DataGemma不仅提供便捷的数据访问和处理功能,还具备强大的数据分析能力,支持描述性统计、回归分析和聚类分析等。其开源性质和广泛的数据来源使其成为AI研究和应用的重要工具,有助于加速研究进展和推动数据共享。
87 6
|
26天前
|
人工智能 安全 DataX
【瓴羊数据荟】 Data x AI :大模型时代的数据治理创新实践 | 瓴羊数据Meet Up城市行第三期
第三期瓴羊数据Meetup 将于2025年1月3日在线上与大家见面,共同探讨AI时代的数据治理实践。
94 10
【瓴羊数据荟】 Data x  AI :大模型时代的数据治理创新实践 | 瓴羊数据Meet Up城市行第三期
|
7天前
|
传感器 机器学习/深度学习 人工智能
智能电网巡检与传感器数据AI自动分析
智能电网设备巡检与传感器数据分析利用AI技术实现自动化分析和预警。通过信息抽取、OCR技术和机器学习,系统可高效处理巡检报告和实时数据,生成精准报告并提供故障预判和早期识别。AI系统24小时监控设备状态,实时发出异常警报,确保设备正常运行,提升运维效率和可靠性。
|
26天前
|
存储 人工智能 人机交互
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
142 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
12天前
|
传感器 机器学习/深度学习 人工智能
技术分享:智能电网巡检与传感器数据自动分析——AI助力设备状态实时监控与故障预警
这篇文章介绍了AI在智能电网巡检与传感器数据分析中的应用,通过信息抽取、OCR识别和机器学习等技术,实现设备状态监控和故障预警的自动化。AI系统能够高效处理巡检报告和传感器数据,精准识别设备故障并实时预警,显著提升了电网运营的安全性和可靠性。随着AI技术的发展,其在智能电网管理中的作用将日益重要。
|
1月前
|
存储 机器学习/深度学习 人工智能
【AI系统】完全分片数据并行 FSDP
本文深入探讨了AI框架中针对权重数据、优化器数据和梯度数据的分布式并行实现,特别是在PyTorch框架下的具体方案。文章首先回顾了通用数据并行和分布式数据并行的概念,重点讨论了同步与异步数据并行的差异。接着,文章详细介绍了如何在PyTorch中实现弹性数据并行,特别是完全分片数据并行(FSDP)的机制,包括其如何通过分片模型状态和剩余状态来减少内存消耗,提高训练效率。此外,文章还探讨了混合精度训练、损失缩放和内存消耗估算等关键技术,为理解和实施高效的分布式训练提供了全面的指导。
72 9
【AI系统】完全分片数据并行 FSDP
|
19天前
|
存储 数据采集 算法
构建AI数据管道:从数据到洞察的高效之旅最佳实践
本文探讨了大模型从数据处理、模型训练到推理的全流程解决方案,特别强调数据、算法和算力三大要素。在数据处理方面,介绍了多模态数据的高效清洗与存储优化;模型训练中,重点解决了大规模数据集和CheckPoint的高效管理;推理部分则通过P2P分布式加载等技术提升效率。案例展示了如何在云平台上实现高性能、低成本的数据处理与模型训练,确保业务场景下的最优表现。
|
1月前
|
机器学习/深度学习 人工智能 PyTorch
【AI系统】数据并行
数据并行是一种在分布式AI系统中广泛应用的技术,通过将数据集划分成多个子集并在不同计算节点上并行处理,以提高计算效率和速度。在大规模机器学习和深度学习训练中,数据并行可以显著加快模型训练速度,减少训练时间,提升模型性能。每个计算节点接收完整的模型副本,但处理不同的数据子集,从而分摊计算任务,提高处理速度和效率。数据并行按同步方式可分为同步数据并行和异步数据并行,按实现方式包括数据并行、分布式数据并行、完全分片的数据并行等。其中,分布式数据并行(DDP)是当前应用最广泛的并行算法之一,通过高效的梯度聚合和参数同步机制,确保模型一致性,适用于大型NPU集群和AI系统。
117 7
【AI系统】数据并行

热门文章

最新文章