人工智能安全与隐私——联邦遗忘学习(Federated Unlearning)

前言

在联邦学习(Federated Learning, FL)中,尽管用户不需要共享数据,但全局模型本身可以隐式地记住用户的本地数据。因此,有必要将目标用户的数据从FL的全局模型中有效去除,以降低隐私泄露的风险,并满足GDPR要求的“被遗忘权”(The right to be forgotten)。

本文介绍一篇最新的AAAI-2025的文章:Federated Unlearning with Gradient Descent and Conflict Mitigation。这篇文章令人印象深刻。它所提出的方法(FedOSD)解决了传统的遗忘学习梯度上升法带来的弊端,并且不单适用于联邦学习,还适用于传统集中式的机器学习和深度学习中的unlearning,以及目前热门的大语言模型。因此具有一定的启发意义。

本文不去简单地翻译一下论文,要是简单翻译一下,就没有分享的必要了,而是围绕这个联邦遗忘学习的话题,融合自己的一些看法记录分享一下。遇到不专业的地方,欢迎大家来指正!

背景——什么时候需要“遗忘”?

随着人工智能(AI)的蓬勃发展,AI安全是一个越来越重要的话题。AI安全是一个很大的话题,本文就先往小的说,只探讨其中的一小部分:Federated Unlearning以及Machine unlearning。在集中式学习、联邦学习的模型训练过程中,可能会混杂有错误的、有害的数据,抑或是隐私数据。如果事后被发现了,再重新训练就成本很高了。所以这个时候“遗忘学习”就发挥作用了。

根据需要遗忘的内容,联邦遗忘可以划分为:sample unlearning、client unlearning。前者的目标是让FL global model把用户训练集中的某些特定sample给遗忘掉;后者的目标是遗忘掉整个目标用户的训练数据。不过,对于一些传统的FL unlearning算法,例如FedEraser, FedKdu, FedRecovery,等等,因为它们的遗忘机制是依赖于在先前的FL训练中提前把要遗忘的内容对应的梯度等信息存储起来,后续执行遗忘操作的时候,用它来进行遗忘。因此,这类的算法并不适用于sample unlearning。因为在正常的FL训练时,我们并不能提前判断哪些数据是需要后续被遗忘的。而对于其他类型的、不需要提前存储梯度信息的unlearning算法,我们可以用技术手段把sample unlearning规约为client unlearning。比如某个client需要遗忘部分数据,那么我们可以把这部分数据抽取出来,看作是一个虚拟的独立的用户来unlearn。

遗忘学习的基本步骤

综合前面几篇文章来看,联邦遗忘学习一般分为两个阶段:

  • Unlearning stage:使用遗忘算法,消除已训练好的模型对目标用户的训练数据的记忆。

  • Post-training stage:目标用户退出联邦学习,剩余用户继续训练若干轮,以恢复模型可用性(模型在剩余用户上的性能)。

post-training stage的目的是恢复被unlearning破坏的模型性能。在以往的时候一般不纳入联邦遗忘学习算法的主要设计范围内,一般是直接调用跟正常联邦学习相同的方法来进行,比如FedAvg。而这篇文章就把它考虑在整个算法设计的一环里面,下文再细说。

联邦遗忘学习的主要挑战

文章分析了联邦遗忘学习的三个关键挑战:

  • 梯度爆炸问题;

  • 更新冲突导致的模型可用性降低问题;

  • 模型“回退”问题。

下面逐个来看看这是怎么回事,以及文章的解决方法:

1. 梯度爆炸问题

梯度上升法是一种简单有效的unlearning方法,它通过反转梯度,使得训练的时候不再是追求“loss下降”,而变成了“让loss上升”,从而降低模型在需要遗忘的数据上的精度,达到遗忘的效果。

以CrossEntropy loss为例,其公式为:

 

其中C表示类别数; 是binary indicator(数值为0或1),其实就是将label转成one-hot编码后的第 个元素的值。 表示模型对应的预测概率。举个例子(稍微来回顾一下CE loss的计算):假设某个sample的label为2,那么其one-hot编码为 ,即 。假设模型的output经过softmax运算后得到的结果为 ,那么,所以求得CE loss为0.223。

然而,采用梯度上升法来unlearn的时候,会让 趋于0,因此不可避免地会出现梯度爆炸问题,如下图(a)所示。因为它没有upper bound的。前人用gradient clipping等方法解决此问题,但会引入额外的超参数。而在真实场景中无法预知最佳超参数,并且不恰当的超参数甚至会影响收敛性。

为此,文章通过对CrossEntropy loss中的概率 进行反转,解决了这一问题。如下图(b)所示。

 

上面的子图(b)是文章所提出的Unlearning Cross Entropy loss(UCE)。公式如下:

 

它为什么在 进行反转后还要除以2?这是因为对于FL而言,一般来说unlearning client并不能知道当前模型对于其他client而言的gradient的模长是多少,为了避免刚开始unlearn的时候的梯度爆炸,所以加了个除以2的操作来确保unlearning client的gradient不会爆炸。

2. 更新冲突问题

在unlearning的时候,unlearning模型所用的model update direction与不需要unlearn的用户(记为remaining clients)的梯度很容易发生冲突,即模型更新方向并不是remaining clients的梯度下降方向,会直接导致模型的在remaining clients的性能遭受破坏,甚至 导致灾难性遗忘。如下图所示,如果采用 作为更新方向,那么它就会让模型在剩余用户(用户1和用户2)上的精度变差,破坏了模型的可用性。

 

为此,文章设计了一套名为Orthogonal Steepest Descent(正交最速下降)的方法。具体地,根据梯度下降的理论,假如模型更新方向垂直于剩余用户的梯度,那么模型精度的损失就会降到最低。但存在无数条这样的正交梯度,因此,文章通过求解一个距离 最近的向量作为模型的更新方向( 表示unlearning client的梯度),从而既降低了模型可用性的损失,也加速了unlearning。其实从另一个角度来看,加速unlearning在某种意义上也能减少对模型可用性的破坏。文章通过求解下述问题来得到更新方向 。

 

最终得到 的公式如下:

 

其中 是由所有remaining clients的梯度拼成的一个矩阵; 。而 是对 SVD分解的结果。 表示 的伪逆(这个很好计算,就把 中的非0元素取倒数就OK了)。

这样计算出来的第 轮的更新方向 就会距离 最近,同时与剩余用户的梯度垂直。

3. Post-training的模型回退问题

文章开创性地指出post-training阶段会容易出现“模型回退问题”,换言之,就是说在剩余用户上继续训练的时候,模型不受控制地往回朝着unlearn之前的初始模型走,以至于恢复出部分已经unlearn掉的内容,白白做unlearning了。如下图所示:

 

这个现象有点令人震惊。这意味着很多前人的unlearning方法所展现出来的在post-training阶段模型所恢复出跟unlearning之前差不多accuracy的结果,实际上是大有问题的。文章还描绘了模型与初始模型(unlearning前的模型)的距离变化图,展现了这一“回退”现象,如下图:

 

实验中的ASR(Attack Successful Rate)用来衡量unlearning效果,它越低越好;R-Acc表示模型在remaining clients上的平均Accuracy,它用来衡量模型的可用性,数值越高越好。

从图中可见,尽管一些算法在post-training阶段里,模型的可用性恢复到了接近unlearning前的水平,但明显地模型回退到了接近unlearning前的初始模型的状态了,相当于白做unlearn了。

为此,文章提出了一种梯度投影策略,在post-trainining阶段,首先计算一个向量 ,表示当前模型到初始模型的0.5倍的L-2距离的梯度。然后,如果某个剩余用户 的梯度 与 的夹角小于90°,则将 投影到 的法平面上,从而避免了模型回退靠近初始模型,转去搜索其他的local optimum区域。

后记

总结来说,整个算法(FedOSD,Federated Unlearning with Orthogonal Steepest Descent)的流程图如下所示:

 

Federated Learning其中图(a)描绘的是unlearning之前的正常的联邦学习训练。然后某天用户 提出要遗忘、退出,则进入图(b)所示的unlearning阶段。unlearning结束后,进入图(c)的post-training阶段。

文章还做了很多其他实验,并详细分析了收敛性证明。这里就不展开叙述了。

值得一提的是,我之前确实也试过基于梯度上升的FL unlearning方法,实话实说,确实非常非常依赖调参,例如调节learning rate,以及调节gradient clipping的参数,否则没几轮,梯度就爆炸了,模型近乎变成一个随机初始化的模型,完全没法实用SOS)。另外,文章所描绘的方法,实际上也适用于machine unlearning,以及LLM的unlearning(毕竟LLM里面一般也用CrossEntropy loss了)。我后面也试图将它用在LLM上,做LLM unlearning,用来探索大模型的隐私安全问题,但那个就更复杂了,后面再慢慢探索。希望这篇文章在帮助自己记录学习点滴之余,也能帮助大家!

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

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

相关文章

Linux(Ubuntu)下ESP-IDF下载与安装完整流程(4)

接前一篇文章:Linux(Ubuntu)下ESP-IDF下载与安装完整流程(3) 本文主要看参考官网说明,如下: 快速入门 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 Linux 和 macOS 平台工具链的标准设置 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 前边几回讲解了第一步 —— …

GAN对抗生成网络(一)——基本原理及数学推导

1 背景 GAN(Generative Adversarial Networks)对抗生成网络是一个很巧妙的模型,它可以用于文字、图像或视频的生成。 例如,以下就是GAN所生成的人脸图像。 2 算法思想 假如你是《古董局中局》的文物造假者(Generator,生成器)&a…

求职:求职者在现场面试中应该注意哪些问题?

求职者在现场面试中需要注意诸多方面的问题 面试前的准备 了解公司信息: 提前通过公司官网、社交媒体账号、新闻报道等渠道,熟悉公司的发展历程、业务范围、企业文化、主要产品或服务等内容。例如,如果是应聘一家互联网科技公司&#xff0c…

数字图像总复习

目录 一、第一章 二、第三章 三、第四章 四、第五章 五、第八章 六、第十章 作业一 作业二 一、第一章 1.图像文件格式由(文件头)及(图像数据)组成 2.常见的图像文件格式:(JPEG)、&…

使用Fn Connect之后,如何访问到其他程序页面?原来一直都可以!

前言 昨天小白讲过在飞牛上登录Fn Connect,就可以实现远程访问家里的NAS。 接着就有小伙伴咨询:如何远程访问到家里其他需要使用不同端口号才能访问到的软件,比如Jellyfin、Emby等。 这个小白在写文章的时候确实没有考虑到,因为…

(二)当人工智能是一个函数,函数形式怎么选择?ChatGPT的函数又是什么?

在上一篇文章中,我们通过二次函数的例子,讲解了如何训练人工智能。今天,让我们进一步探讨:面对不同的实际问题,应该如何选择合适的函数形式? 一、广告推荐系统中的函数选择 1. 业务目标 想象一下&#x…

Redis 中 Lua 脚本的使用详解

Redis 中 Lua 脚本的使用详解 在 Redis 中,Lua 脚本是一种强大的工具,用于执行复杂的操作并减少网络延迟。Lua 脚本通过 EVAL 命令执行,能够在 Redis 服务器端运行多步操作,从而确保操作的原子性,并提升性能。 1. Lua 脚本的作用 原子性:在 Redis 中,Lua 脚本执行是原子…

利用3DGS中convert.py处理自采数据

前言 3DGS源码中convert.py提供对自采数据集的处理,需要预先安装Colmap和ImageMagick. ubuntu22.04安装colmap 点击进入NVIDIA官网,查看GPU的CMAKE_CUDA_ARCHITECTURES 1、克隆colmap源码,并进入colmap文件夹 git clone https://github.c…

硬件设计-关于ADS54J60的校准问题

目录 简介: 校准模分析: 交错的优势 交错挑战 S/2 fIN处产生杂散。失调不匹配杂散很容易识别,因为只有它位于fS/2处,并可轻松地进行补偿。增益、时序和带宽不匹配都会在输出频谱的fS/2 fIN 处产生杂散;因此,随之而来的问题是:如何确定它们各自的影响。图8以简单的…

GraphRAG: 一种结合图结构和检索增强生成的工程实现思路

引言 随着自然语言处理(NLP)技术的发展,基于预训练模型的任务如文本生成、问答系统等取得了显著的进步。然而,在处理涉及复杂关系或需要利用外部知识的任务时,现有的方法可能面临挑战。GraphRAG(Graph-bas…

数据库入门级SQL优化

1. SELECT * FROM users; 优化原因:使用SELECT *会选择所有列,可能导致不必要的数据传输。应只选择需要的列,例如: SELECT id, name FROM users;2. WHERE age > 30; 优化原因:如果age字段没有索引,查…

六十一:HTTP/2的问题及HTTP/3的意义

随着互联网的快速发展,网络协议的升级成为优化用户体验和提升网络效率的重要手段。HTTP/2 于 2015 年发布,标志着超文本传输协议的重大改进。然而,尽管 HTTP/2 带来了许多新特性,它也存在一定的问题。在此背景下,HTTP/…

什么是神经网络?神经网络的基本组成部分训练神经网络激活函数有哪些局限性和挑战

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…

C# 设计模式的六大原则(SOLID)

C# 设计模式的六大原则(SOLID) 引言 在面向对象编程中,设计模式提供了高效、可复用和可维护的代码结构。SOLID原则是软件设计中的一组重要原则,用于确保代码具有良好的可维护性、可扩展性和灵活性。SOLID是五个设计原则的首字母…

std__invoke 的使用

std__invoke 的使用 文章目录 std__invoke 的使用1. std::invoke 的功能2. 语法3. 使用场景1. 调用普通函数2. 调用成员函数3. 调用成员函数(通过指针或引用)4. 调用函数对象(仿函数)5. 调用 Lambda 表达式 4. std::invoke 的优势…

感恩相伴,蓝凌向新成长!一起拥抱数智2025

2024,数字中国,向新奔跑!千行百业拥抱数字化、人工智能,蓝凌继续践行“让组织更智慧”的使命,与客户、伙伴等共创共赢,引领中国数智化办公创新发展。感恩相伴24载,让我们一起拥抱数智2025&#…

【算法】模拟退火算法学习记录

写这篇博客的原因是博主本人在看某篇文章的时候,发现自己只是知道SGD这个东西,但是到底是个啥不清楚,所以百度了一下,然后在通过博客学习的时候看到了退火两个字,想到了本科做数模比赛的时候涉猎过,就上bil…

【0x0037】HCI_Write_Link_Supervision_Timeout命令详解

目录 一、命令概述 二、命令格式及参数说明 2.1. HCI_Write_Link_Supervision_Timeout 命令格式 2.2. Handle 2.3. Link_Supervision_Timeout 三、生成事件及参数 3.1. HCI_Command_Complete 事件 3.2. Status 3.3. Handle 四、命令执行流程 4.1. 命令准备阶段 4.…

【杂谈】-DeepSeek如何以560万美元突破成本障碍

DeepSeek如何以560万美元突破成本障碍 文章目录 DeepSeek如何以560万美元突破成本障碍1、高效人工智能的经济学2、实现不可能的工程3、人工智能生态系统的连锁反应 传统的人工智能观点认为,构建大型语言模型 (LLM)需要大量资金——通常需要数十亿美元的投资。但中国…

Android 系统 Activity 系统层深度定制的方法、常见问题以及解决办法

Android 系统 Activity 系统层深度定制的方法、常见问题以及解决办法 目录 引言Activity 系统层概述Activity 系统架构图Activity 系统层深度定制的方法 4.1 自定义 Activity 生命周期4.2 自定义 Activity 启动流程4.3 自定义 Activity 转场动画4.4 自定义 Activity 窗口管理4…