【论文阅读:Data Shapley: Equitable Valuation of Data for Machine Learning】

news2024/11/15 10:18:35

1.基于蒙特卡罗方法和截断的方法计算(TMC—Shapley)

在这里插入图片描述

  • 输入
    • 训练数据集D
    • 学习算法A
    • 表现分V
  • 输出
    • 各方数据的贡献 ϕ i \phi_i ϕi
  • 初始化
    • 初始化各方的贡献 ϕ i = 0 \phi_i=0 ϕi=0,并设置当前迭代轮次为0
  • 过程
      1. 算法进入一个循环迭代,直到满足收敛条件为止
      1. 在每次迭代中,算法生成一个随机的训练数据点排列 π t π^t πt
      1. 算法初始化一个性能值 v 0 t v^t_0 v0t,表示空集的性能
      1. 对于每个j
      1. 1 V(D)代表利用所有训练集训练出来的模型表现
      1. 2 如果利用当前随机排列的前j个数据集进行训练后的模型表现与V(D)的值小于预先定义的性能容差(Performance Tolerance),则表示后续数据集的增加不会产生新的边际贡献。
      1. 3 否则,则需根据前j个数据集重新训练模型,得到一个新的模型表现
      1. 4 更新贡献度,利用前一轮贡献和这一轮的表现更新得到这一轮结束后的贡献

缺点
上述算法存在一个比较严重的问题,就上每次都要重新训练模型。这在联邦学习场景下几乎是不能被接受的。

2. 基于梯度的Shapley值的计算(G-Shapley)

在这里插入图片描述

  • 输入
    • 训练数据集 D = { 1 , . . . , n } D=\{1,...,n\} D={1,...,n}
    • 参数化和可微的损失函数 L ( . ; θ ) L(.;\theta) L(.;θ)
    • 表现评分函数 V ( θ ) V(\theta) V(θ)
  • 输出
    • 各方数据的贡献 ϕ i \phi_i ϕi
  • 初始化
    • 初始化各方的贡献 ϕ i = 0 \phi_i=0 ϕi=0,并设置当前迭代轮次为0
  • 过程
      1. 算法进入一个循环迭代,直到满足收敛条件为止(迭代t+1)
      1. 在每次迭代中,算法生成一个随机的训练数据点排列 π t π^t πt
      1. 初始化一个随机的模型参数 θ 0 t \theta^t_0 θ0t
      1. 根据评分函数评价模型的性能表现 v 0 t v^t_0 v0t
      1. 对于每个j
      1. 1 利用随机序列中的前j个数据集训练1epoch来更新模型
      1. 2 重新评估模型的性能
      1. 3 更新贡献度,利用前一轮贡献和这一轮的表现更新得到这一轮结束后的贡献

缺点
该算法避免了模型的全部重训练,但只使用一轮的epoch来代表各方的贡献似乎存在一定的问题。

3.实验

  • LOO(留一法)
  • TMC-Shapley
  • G-Shapley
  • Random

3.1 实验1

经过我们的设计后,我们可以得到各方数据的贡献度。
在这里插入图片描述

疾病预测 对于乳腺癌和皮肤癌预测任务,我们使用TMC-Shapley、G-Shapley和留一法(LOO)计算训练集中每个点的价值。

  • (a) 我们根据三种方法以及均匀抽样的排名,从训练集中删除最有价值的数据。Shapley方法识别了重要的数据点,而删除最有价值的TMC-Shapley或G-Shapley数据点会导致性能比随机删除数据更差。但这对于LOO并不成立。
  • (b) 从训练集中删除低TMC-Shapley或G-Shapley值的数据可以改善预测性能。
  • © 我们获取了与训练数据中高TMC-Shapley或G-Shapley值患者相似的新患者。与添加随机患者相比,这导致了更大的性能增益。
  • (d) 获取与低TMC-Shapley或G-Shapley值患者相似的新患者并不会帮助。

3.2 标签错误

使用众包对数据集进行标记容易出错(Frénay & Verleysen, 2014),并且误标记数据可以被用作简单的数据污染方法(Steinhardt et al., 2017)。在这个实验中,给定一个带有噪声标签的训练数据,我们检查并纠正错误标记的示例,通过检查从最不有价值到最有价值的数据点,因为我们期望错误标记的示例在最不有价值的点中(有些有负的Shapley值)。
在这里插入图片描述
从价值最低的训练数据点到最有价值的数据点检查并修复错误标记的示例。正如所示,Shapley值方法导致最早检测到错误标记的示例。虽然留一法在逻辑回归模型上表现得相当不错,但在另外两个模型上的表现与随机检查相似。

通过检查这些价值低的,我们能够发现更多的标签错误,从而修复,提高模型的准确率。

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

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

相关文章

Vue 之 在当前页面的实现分页效果

目录 场景实现 场景 假设,我们现在有这么一个需求: 上述图片的空白内容是活动的,由下面的两个按钮控制上一页、下一页;我们应该可以怎么去实现? 实现 思路: 其实这个问题,我们仿照其他的UI框…

ctf web-部分

** web基础知识 ** *一.反序列化 在PHP中,反序列化通常是指将序列化后的字节转换回原始的PHP对象或数据结构的过程。PHP中的序列化和反序列化通过serialize()和unserialize()函数实现。 1.序列化serialize() 序列化说通俗点就是把一个对象变成可以传输的字符串…

2024年五一数学建模C题完整解题思路代码

2024年第二十一届五一数学建模竞赛题目 C题 煤矿深部开采冲击地压危险预测 煤炭是中国的主要能源和重要的工业原料。然而,随着开采深度的增加,地应力增大,井下煤岩动力灾害风险越来越大,严重影响着煤矿的安全高效开采。在各类深…

如何快速搭建nginx服务

华子目录 nginx简介概念特点nginx框架nginx关键工作机制 nginx正向代理功能nginx反向代理功能nginx反向代理的工作流程代理本质 nginx负载均衡部署nginx常用命令systemctl系列nginx自带命令 nginx配置文件主配置文件/etc/nginx/nginx.conf内容结构模块分析配置分析注意示例 ngi…

常见公式的几何解释

本文旨在深入探讨常见数学公式的几何意义,通过直观的图形和解释,帮助读者更好地理解并掌握这些公式的本质。文章首先概述了公式与几何图形之间的紧密联系,然后选取了几个典型的数学公式,进行详细解析。每个公式都将配以相应的几何…

Zynq 7000 系列之启动模式—JTAG启动

JTAG Boot(JTAG启动)是一种使用JTAG接口来启动设备的方法。JTAG(Joint Test Action Group)是一种国际标准测试协议,最初用于对芯片进行测试,现在已广泛应用于各种设备的调试和启动过程。在JTAG Boot过程中&…

是机遇?是未来?拥抱 AI Agent ,拥抱 AI 2.0时代~

✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝…

社交媒体数据恢复:飞机 X

飞机 X数据恢复方法 在本文中,我们将探讨如何在不使用特定数据恢复软件的情况下尝试恢复飞机 X聊天记录和文件。请注意,这些方法并不保证100%的成功率,但它们可以在一定程度上帮助您恢复丢失的数据。 1. 检查最近的备份 如果您启用了飞机 …

【17-模型选择与调优:交叉验证和网格搜索在Scikit-learn中的实践】

文章目录 前言交叉验证:保证模型的稳健性理论基础Scikit-learn中的实现网格搜索:寻找最佳参数理论基础Scikit-learn中的实现应用示例结论前言 模型选择和调优是机器学习项目成功的关键步骤。在Scikit-learn中,交叉验证和网格搜索是两个强大的工具,用于选择最佳模型和调整参…

Qt Creator导入第三方so库和jar包——Qt For Android

前言 之前了解了在Android Studio下导入so库和jar包,现在实现如何在Qt上导入so库和jar包。 实现 下面是我安卓开发(需调用安卓接口的代码)的目录(图1),此目录结构和原生态环境(Android Studi…

如何反向查看某个命令所属的rpm包的2个方法?(rpm -qf `which xxx`和yum provides和 rpm -ql xxx.rpm)

文章目录 快速回忆方法1: rpm -qf方法2:yum provides 其他rpm如何查看某个rpm包里面包含哪些命令: rpm -ql主推方法1: rpm -ql方法2:yum info 其他查看rdma-core中包含哪些cmd:一些其他命令所在包探索 快速回忆 rpm -…

使用Gitbook生成电子书

背景 《Google工程实践文档》相对原文Google’s Engineering Practices documentation ,部分内容过时了。需要更新中文版,并使用Gitbook把Markdown文件转换成对应的PDF电子书。   上一次生成PDF电子书是5年前,当时生成电子书的环境早已不在…

在做题中学习(48):朴素的二分查找

. - 力扣(LeetCode) 解法一: 暴力求解 for循环中,从nums[0]枚举到nums[n-1],依次判断,返回 target的值。 时间复杂度 : O(N) :因为要遍历一遍数组 解法二:二分查找 因为此数组为有序的…

【QT学习】14.线程学习

一。线程了解 线程是计算机科学中的一个重要概念,它是操作系统能够进行运算调度的最小单位。线程是进程中的一个执行流,一个进程可以包含多个线程。与进程相比,线程更轻量级,可以更高效地利用计算机资源。 线程有以下几个特点&…

小酒馆点餐系统实现-C++项目详细过程

目录 项目介绍1、项目描述2、市场调研3、技术调研 项目设计1、概要设计2、详细设计① 数据管理模块:② 业务控制模块:③ 前端界面模块: 3、代码实现实现数据管理模块实现业务控制模块实现前端界面模块 项目介绍 1、项目描述 使用户可以通过…

外包干了3天,技术就明显退步了。。。。。

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

UE5 蓝图入门

基础节点创建: 常量: 按住 1 ,点击鼠标左键,创建常量 二维向量: 按住 2 ,点击鼠标左键,创建二维向量 三维向量: 按住 3 ,点击鼠标左键 按 c 键打出一个注释框 参考视…

[数据结构]———交换排序

目录 ​编辑 ​编辑 1.交换排序 第一个定义了一个名为Swap的函数 第二个三数取中 2.冒泡排序 代码解析 冒泡排序的特性总结: 3.快速排序 1. hoare版本 2. 挖坑法 代码解析 3. 前后指针版本 代码解析 1.交换排序 基本思想:所谓交换&#xff0…

maven插件:dockerfile-maven-plugin和docker-maven-plugin

Maven插件dockerfile-maven-plugin和docker-maven-plugin都是为Java开发人员提供了一种便捷的方式,通过Maven构建流程来自动化创建、管理和推送Docker镜像。虽然它们有着相似的目标,即集成Docker与Maven项目,但这两个插件在实现细节、功能侧重…

windows驱动开发-WDF对象

WDF封装了大量的WDF对象,不过,和应用层不一样,不用去尝试从WDF框架对象类上派生和改写原有的WDF类,本意WDF就是希望我们使用这些对象和类,而不是创造新的奇怪的类。 每个WDF对象都代表着对一项驱动需要使用的子功能的…