联邦学习后门攻击总结(2019-2022)

Posted w18727139695

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了联邦学习后门攻击总结(2019-2022)相关的知识,希望对你有一定的参考价值。

联邦学习后门攻击总结(2019-2022)

联邦学习安全性问题框架概览

下表和下图为联邦学习中常见的安全性问题,本文重点关注模型鲁棒性问题中的后门攻击问题。

攻击手段安全性问题攻击方与被攻击方攻击点攻击目的
拜占庭攻击模型鲁棒性恶意客户端攻击服务器针对训练数据或针对局部模型投毒无目标攻击,影响全局模型性能
后门攻击模型鲁棒性恶意客户端攻击服务器针对训练数据或针对局部模型投毒影响目标子任务的性能
推理攻击隐私保护恶意服务器或恶意客户端攻击客户端针对客户端参数或全局模型参数推理获取客户端信息

从上图中可以看出后门攻击问题在联邦学习安全性问题中所处的位置。

后门攻击的防御手段概述

本文首先根据应用场景将对后门攻击的防御分为了横向联邦学习纵向联邦学习场景中对后门的防御。

注:如果不特殊说明,本文中的后门攻击均指的是横向联邦学习中的后门攻击。在文章的靠后部分,也用了少量篇幅对纵向联邦学习中的后门攻击进行了介绍。

然后,本文根据防御手段实施的时间点,将防御方法细分为了客户端训练时聚合前聚合中和聚合后4个部分。

其中客户端训练时的防御手段即指攻击者采用的是黑盒攻击,各客户端在提交更新至服务器之前所采用的防御。防御手段主要是检查训练数据或修改训练过程。而其他和聚合过程相关的防御手段则假设攻击者采用的是白盒攻击,防御手段主是检查或修改客户端提交的模型结果。

聚合后的防御手段即指服务器已经完成了对当前一轮全局模型的聚合操作,然后再采用防御措施消除恶意更新的贡献,从而去除其中的后门。

聚合前聚合中的防御手段都是指服务器在得到客户端提交的更新之后所采用的防御手段,这两者并不是有很明显的划分界限。本文的划分方法是,如果防御措施仅仅是在原本的模型聚合之前多进行了一些操作,比如添加噪声或剔除恶意客户端,而并没有对原本的聚合算法本身进行修改,则将其归类为聚合前。如果防御措施是对聚合算法本身进行了修改,比如在聚合时对不同局部更新的权重进行了重新加权或调整了不同局部更新的学习速率等超参数,则将其归类为聚合中

对更下级更细的分类标准,将在后面具体讲解防御方法时进行说明。

后门攻击的攻击手段概述

本文根据攻击手段实施的对象,将其细分为了针对训练数据和针对局部模型的后门攻击。

其中针对训练数据的攻击手段即假设攻击者能力是黑盒攻击,只能改变恶意客户端的局部训练数据,而无法对其训练流程和训练出来的模型进行修改。

针对局部模型的攻击手段即假设攻击者能力是白盒攻击,能完全控制恶意客户端的局部训练数据和训练流程,并可以直接对训练出来的模型进行修改。

当然,在后门攻击中,针对训练数据投毒和针对局部模型投毒的手段并不能完全分离,一般需要同时将两种方法结合使用。

因为后门攻击不像符号翻转等无目标攻击手段,仅需直接修改本地模型的符号,而不需要对数据进行任何操作就可以到达攻击的效果。因为不对数据进行修改尤其是不对标签进行修改就意味着无法植入后门。

同时,后门攻击也不像集中式学习中的标签翻转等攻击手段,仅需修改训练数据的标签,而不需要对训练出来的局部模型进行任何操作就可以到达攻击的效果。因为由于联邦学习的客户端有很多,所以聚合时会稀释后门模型的贡献,因此往往需要对训练出来的恶意模型的参数进行放大等修改操作。

虽然这两类手段在具体攻击中一般会同时使用,但是本文仍然以这两类手段为标准进行划分。根据攻击是更侧重于针对训练数据投毒,还是更侧重于针对局部模型投毒,将其分为对应的类。

注:上图中针对训练数据的攻击中有一类手段是基于标签翻转的攻击。需要说明区别的是,无目标的攻击中也有标签翻转攻击,但其是将任意类的标签进行翻转。而在后门攻击中,标签翻转是仅对某一类标签进行翻转,仅在目标类上降低模型精度。

对更下级更细的分类标准,将在后面具体讲解攻击方法时进行说明。

如上图所示,除了依据投毒对象进行分类之外,根据恶意客户端的行为,后门攻击还有其他分类方式。

但往往同一种攻击手段经过一定的调整是可以多种场景下进行的,比如,基于标签翻转的后门攻击既可以通过放大模型参数进行单轮的集中式后门攻击,而放大因子也可以由多个恶意客户端在多轮中进行分担,进行多轮的分布式后门攻击。

一般来说,针对模型投毒的效果优于针对数据投毒的效果,分布式后门攻击的效果优于集中式后门攻击的效果,分工协作的后门攻击的效果优于无分工协作的后门攻击的效果,多轮攻击的效果优于单轮攻击的效果,自适应攻击的效果优于非自适应攻击的效果。


本文的剩余部分主要分为4个部分,依次介绍了后门攻击问题定义后门攻击的防御方法后门攻击的攻击方法以及纵向联邦学习中的后门攻击

后门攻击问题定义

攻击方

攻击者情况

  • 攻击者能够控制一个或多个参与者(恶意客户端)。
  • 在第 t t t轮中有一个或多个恶意客户端被选中。
  • 一般假设攻击者控制的客户端数量小于50%(否则攻击者将很容易操纵全局模型)。

一般仅假设攻击者是客户端,而非服务器,否则将很容易植入后门。在实际场景中,也只有受信任的服务器才能进行联邦聚合。

攻击者能力(白盒攻击)

  • 攻击者能够完全控制一个或多个参与者,这些参与者要么是联邦学习系统本身的恶意客户端,要么是训练过程被攻击者破坏的良性客户端转变成的恶意客户端,这些恶意客户端可以合谋。
  • 攻击者完全控制恶意客户端的局部训练数据和训练流程,可以控制设备上的代码、本地训练数据集、超参数和本地模型。
  • 攻击者可以任意操作发送到主设备的本地模型,比如在将本地模型提交给服务器之前修改其参数。
  • 对手可以在整个训练过程中自适应地改变局部训练方法和配置。
  • 但是,攻击者不具备改变聚合规则等影响服务器的能力,也不具备篡改其他良性客户端的训练过程和模型更新的能力。

攻击者能力(黑盒攻击)

  • 攻击者能够控制一个或多个参与者的训练数据,这些参与者是训练数据被攻击者破坏的良性客户端。
  • 攻击者只能改变客户端的局部训练数据,而无法对其训练流程和训练出来的模型进行修改。
  • 攻击者不具备改变聚合规则等影响服务器的能力,也不具备篡改其他良性客户端的训练过程和模型更新的能力。

如果不特殊说明,本文中所有防御措施所考虑的攻击者能力都是更加强大的白盒攻击。本文假设攻击者是黑盒攻击的场景,仅存在于在客户端训练时进行防御的防御方法。

攻击者攻击目标

  • 主任务的正确率:为了通过服务器上验证数据的正确率检测,需要保持模型在主任务(干净数据)上的良好性能。
  • 后门任务的成功率:降低全局模型在目标任务上的性能,确保预定义的输入都有很高的概率被预测为目标类别。
  • 隐蔽性:恶意攻击者需要确保其模型参数不会与良性模型偏离太多,以绕过基于检测并剔除恶意更新的防御措施。
目标损失函数

L c l a s s = L t r a i n + L t a r g e t L_class=L_train+L_target Lclass=Ltrain+Ltarget

其中 L t r a i n L_train Ltrain干净训练数据的经验损失项, L t r a i n L_train Ltrain后门训练数据的经验损失项。

达到隐蔽性的目标损失函数

为了达到隐蔽性,需要使中毒模型尽可能与良性模型难以区分。比如,可以使中毒模型与良性模型之间的距离(如欧几里德距离)小于服务器异常检测区分能力的阈值 η \\eta η,攻击者可以通过将本地恶意模型与全局模型或基于良性数据训练的本地模型进行比较来估计此距离。

L a t t a c k e r = α L c l a s s + ( 1 − α ) L a n o L_attacker=\\alphaL_class+(1-\\alpha)L_ano Lattacker=αLclass+(1α)Lano

其中, L c l a s s L_class Lclass为上文提到的简单的目标损失函数, L a n o L_ano Lano为本地恶意模型与良性模型的偏差,超参数 α \\alpha α控制攻击隐蔽性和攻击有效性之间的权衡。

防御方

防御方能力

  • 服务器无法访问每个本地代理的训练数据和训练过程。
  • 服务器可能无法直接访问客户端的本地模型参数或更新(比如在安全聚合中数据是加密的)。
  • 良性客户端可以控制其本地训练数据和训练过程。

一般假设仅防御方是服务器,部分情况下也将良性客户端当作防御方,尤其是当攻击者的能力是黑盒攻击的时候。

防御方目标

  • 有效性:必须消除后门模型的影响,从而全局模型不会显示后门行为。
  • 良好性能:消除后门影响后,全局模型依然具有良好的性能。
  • 独立于攻击策略和数据分布:防御方法必须适用于一般攻击模型,即不要求事先了解后门攻击方法,或对本地客户端的数据分布做出假设。

后门攻击的防御手段横向对比

防御方法概述

下表是将防御方法用到的10种思想进行了简要对比,包括基于过滤投毒数据的防御、基于增强模型稳定性的防御、基于差分隐私的防御、基于特征提取与特征选择(基于降维)的防御、基于修改协议过程的防御、基于综合运用多种技术的防御、基于相似性的防御、基于统计的防御、基于联邦遗忘的防御和基于全局模型性能的防御。

防御思想防御时间攻击者模型原理与安全聚合是否兼容代价主要局限性
基于过滤投毒数据客户端黑盒模型训练无后门的局部模型兼容需要提前训练大量过滤器需要假设攻击者仅能操控训练数据
基于增强模型稳定性客户端黑盒模型训练无后门的局部模型兼容也降低了模型的良性性能需要假设攻击者仅能操控训练数据
基于差分隐私聚合前白盒模型削弱恶意更新的影响不兼容也降低了模型的良性性能无法防御不改变模型权重大小的无目标攻击
基于降维聚合前白盒模型检测并剔除恶意更新不兼容也剔除了具有较大偏差的良性客户端模型更新的最优潜在表示还没有得到很好的研究
基于修改协议过程聚合前白盒模型检测并剔除恶意更新兼容需要对现有的联邦学习系统进行较大修改与已有的联邦学习系统的兼容性问题
基于相似性聚合中白盒模型削弱恶意更新的影响不兼容也削弱了具有较大偏差的良性客户端的影响很容易被高级攻击手段绕过
基于统计聚合中白盒模型检测并剔除恶意更新不兼容一部分良性客户端的更新被忽略对非IID分布的数据效果有限
基于联邦遗忘聚合后白盒模型消除恶意更新的贡献不兼容需要额外的存储开销或通信开销必须要基于知道恶意客户端是哪一个
基于全局模型性能聚合后白盒模型验证全局模型是否存在后门兼容需要额外的通信开销只能放弃中毒的模型而不能消除恶意客户端影响

本大节的剩余部分将对每一类思想进行介绍,以及依据近年的文献介绍更加具体的实现方法。

基于差分隐私的防御方法

概述

防御后门攻击的一种数学方法是训练具有差分隐私的模型,具体的可以通过裁减更新、添加高斯噪声来实现。

由于针对模型投毒的后门攻击可能会产生具有较大范数的更新,因此可以让服务器忽略范数超过某个阈值 M M M的更新或将其剪裁到阈值 M M M的范围之内。这样可确保每个模型更新的范数较小,从而缓解恶意更新对服务器的影响。

添加高斯噪声可以在不太影响模型整体性能的情况下,减轻恶意更新的影响。

不足&局限性
  • 基于添加噪声的防御虽然无需对攻击者行为和数据分布进行具体假设,但是会恶化聚合模型的良性性能。且由于通常假设服务器不能访问训练数据,尤其是有毒的数据集,因此服务器通常只能根据经验使用的足够数量的噪声。
  • 而为了清除恶意更新的影响,通常也会用较小的剪裁因子,这也会影响良性的模型更新。而如果使用较大的剪裁因子,攻击者可以按比例增大恶意模型的参数,直至达到剪裁因子,从而达到最大程度影响全局模型。
  • 这种方法可以在一定程度上减轻恶意攻击的影响,但不能完全消除它们。
  • 这种防御方法无法防御不改变模型权重大小的非目标攻击,例如符号翻转攻击。

基于剪裁和添加噪声的防御方法

由于针对局部模型进行投毒的后门攻击的更新往往范数较大,因此可以让服务器将范数超过阈值 M M M的更新剪裁到阈值 M M M的范围之内。这样可确保每个模型更新的范数较小,减轻恶意更新对服务器的影响。

步骤
  1. 服务器获取 n n n个用户的模型。
  2. 剪裁每个模型更新至阈值 M M M之内,并进行求和得到全局模型更新 Δ w t + 1 = ∑ k Δ w t + 1 k m a x ( 1 , ∥ Δ w t + 1 k ∥ 2 / M ) \\Deltaw_t+1=\\sum_k\\frac\\Deltaw_t+1^kmax(1,\\left\\|\\Deltaw_t+1^k\\right\\|_2/M) Δwt+1=kmax(1,Δwt+1k2/M)Δwt+1k。然后更新全局模型。
  3. 对剪裁后得到的全局模型添加高斯噪声。
优点&效果
  • 可以防御朴素的基于标签翻转的后门攻击
  • 可以防御基于放大模型参数的模型替换攻击。
不足&局限性
  • 当攻击者已知服务器的剪裁阈值时,可以直接构建最大限度满足范数约束的模型更新,使得剪裁的防御措施没有效果,尤其是当攻击者可以进行多轮攻击时。
  • 这种防御方法无法防御不改变模型权重大小的非目标攻击,例如符号翻转攻击。
  • 这种方法没有规定和说明剪裁阈值和噪声量如何确定。
  • 可能无法防御基于植入触发器的后门攻击
来源

【2019 NeurIPS】Can You Really Backdoor Federated Learning

基于特征提取与特征选择(基于降维)的防御方法

概述

在低维的潜在特征空间,来自恶意客户端的异常模型更新可以很容易被区分。因此通过提取高维模型的特征,在低维特征空间中进行判别,可以防御后门攻击。

不足&局限性
  • 这类方法也剔除了具有较大偏差的良性客户端的更新,导致聚合后的全局模型对此类客户端的性能较差。
  • 这类方法要求恶意客户端数量至少小于 50 % 50\\% 50%
  • 模型更新的最优潜在表示还没有得到很好的研究。

基于变分自编码器的特征提取

利用模型更新在低维潜在空间中的表示来检测异常模型更新。因为低维嵌入空间在保留了数据本质特征同时,去除了噪声和不相关的特征,使得恶意模型更新的特征与正常模型更新的特征差异更大。

基于这种思想,考虑用一个变分自编码器来模拟模型更新的低维嵌入。同时收集在集中训练中获得的无偏模型更新,对这些更新的坐标进行随机采样,用于训练变分自编码器。由于良性客户端的更新和无偏模型的更新的差异比恶意客户端的更新和无偏模型的更新的差异要小得多,所以可以通过这种自编码器检测出恶意模型更新。

步骤
  1. 训练一个编码器-解码器模型来近似低维嵌入。将公共数据集集中训练过程中得到的无偏更新作为编码器的输入并输出低维嵌入,然后将低维嵌入作为解码器的输入并输出原始更新的重构,同时得到重构误差。
  2. 训练至收敛。通过将重构误差最小化,来优化编码器-解码器模型的参数,直到其收敛。
  3. 获得局部模型。服务器获取 n n n个用户的更新。
  4. 检测并剔除恶意更新。在每一轮通信中,将检测阈值设置为所有局部更新重构误差的均值,从而得到一个动态的阈值设置策略。重构误差高于阈值的更新将被视为恶意更新,并被排除在聚合步骤之外。然后进行聚合并开始下一轮更新。
优点&效果
  • 检测阈值是在接收到客户端的模型更新后动态更新的
  • 这种方法是有目标的防御,即可以检测出恶意客户端
不足&局限性
  • 需要额外的公共数据集和集中的训练过程来提供无偏见的模型更新,从而训练变分自编码器,而这在现实世界的联邦学习中是比较难实现的。
  • 牺牲了一定的隐私,与安全聚合不兼容。在安全聚合协议中,服务器无法知道用户局部更新的明文,服务器不能检测参与者对全局模型的异常贡献,这种方法无法使用。
来源

【2020 arXiv】Learning to Detect Malicious Clients for Robust Federated Learning

基于PCA的特征提取

在参数空间的一个子集中,恶意客户端提交的参数更新与良性客户端的参数更新相比,具有更加独特的特征。对上传的模型进行PCA降维分解,然后进行聚类,将最大的类对应的更新视为正常更新,其他类对应的更新视为恶意更新。

步骤
  1. 服务器获取 n n n个用户的模型 θ i \\\\theta_i\\ θi
  2. 对局部模型进行聚合得到全局模型 θ \\theta θ
  3. 计算 n n n个用户的局部模型相对于全局模型的增量 θ Δ , i = θ i − θ \\theta_\\Delta,i=\\theta_i-\\theta θΔ,i=θiθ(相当于对更新进行了零中心化预处理)。
  4. 定义类别 c s r c c_src csrc是怀疑被攻击者在标签翻转攻击中进行投毒的源标签,又由于某一类的概率仅由DNN结构最后一层的特定节点算得到,故仅提取 θ Δ , i \\theta_\\Delta,i θΔ,i中与 n c s r c n_c_src ncsrc节点有关的子集 θ Δ , i s r c \\theta_\\Delta,i^src θΔ,isrc,并将其放入列表 U U U中。
  5. 在经过对列表 U U U的多轮构建之后,对其进行标准化,然后对标准化之后的列表进行PCA降维,并得到可视化结果。
  6. 然后对结果进行聚类,将最大的类视为良性更新,而恶意参与者的更新属于其他明显不同的聚类。
  7. 识别出恶意参与者后,聚合器可以将其列入黑名单,或在未来几轮中忽略其更新。
  8. 在早期回合中消除恶意客户端后,最终可以得到具有可用性的聚合模型。
优点&效果
  • 可以防御基于标签翻转的后门攻击
不足&局限性
  • 牺牲了一定的隐私,与安全聚合不兼容。在安全聚合协议中,服务器无法知道用户局部模型参数的明文,服务器不能检测参与者对全局模型的异常贡献,这种方法无法使用。
  • 可能无法防御基于植入触发器的后门攻击
来源

【2020 ESORICS】Data Poisoning Attacks Against Federated Learning Systems

基于修改协议过程的防御方法

基于分组聚合的防御方法

由于联邦学习中数据分布是非IID的,所以不同客户端提交的模型更新会出现较大差异,这增加了服务器检测恶意更新的难度,同时安全聚合也不允许服务器检查模型更新。而一组良性客户端模型更新的平均值则相对分布得比较集中,于是考虑先对客户端分组进行聚合,对分组聚合的结果进行检测后,再进行最终的聚合。

步骤
  1. 在每一轮训练中,服务器随机选择 π \\pi π个队列,每个队列包含 c c c

    阅读笔记联邦学习实战——联邦学习医疗健康应用案例

    联邦学习实战——联邦学习医疗健康应用案例

    前言

    FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,在github上拥有近4000stars,可谓是相当有名气的,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学者提供了很好的环境,否则利用python从零开发,那将会是一件非常痛苦的事情。本篇博客内容涉及《联邦学习实战》第十二章内容,使用的fate版本为1.6.0,fate的安装已经在这篇博客中介绍,有需要的朋友可以点击查阅。本章内容主要探讨联邦学习在医疗健康领域的应用。随着AI+医疗的深入,AI辅助技术可以为疾病提供更快速更准确的诊断和治疗。但是医疗领域也面临着数据隐私的困扰,联邦学习可以打破困境,提供一条解决方案。


    1. 医疗健康数据概述

    医疗健康数据一般是指收集分析得到的消费者的身体和临床数据。包括患者的电子病例、基因序列、医疗保险等数据,这些数据通常过于复杂(高度非结构化、异构、稀疏等特点),以至于使用传统的数据处理方法效果不佳。虽然医学影像研究人员已经通过收集生成了大型高质量数据集(UK Biobank),但是也仅有1400万个对象。
    从数据安全角度出发,医疗数据有如下特点:

    • 隐私性。
    • 稀有性。
    • 安全性。
    • 复杂。
    • 不平衡。

    综上,医疗领域的数据孤岛问题是一个很棘手但极具价值的问题。联邦学习可以很好解决上述问题,对于医院自身数据不足的情况,应用横向联邦学习,当没家医院有相同患者的不同检测数据时,适用纵向联邦学习。

    2. 联邦医疗大数据与脑卒中预测

    脑卒与很多因素有关,包括性别、年龄、种族、不良的生活习惯,本节介绍如何联合多家医院对用户的诊断数据信息,在不泄露用户隐私的前提下,提升脑卒发病预测模型的效果,做到早识别、早预防。

    2.1 联邦数据预处理

    与集中式训练不同,在联邦学习的场景下,如果没有统一的数据处理标准,将导致各自构建的特征数据无法使用。因此,联邦学习规定各医院的特征输入一致,构建同一套数据标准形成的疾病标签集与特征集,在此特征标准上构建同一套模型。该技术可以不泄露数据的情况下整合多家医院的数据联合进行训练,可应用到重大慢性病的发病预测中。
    经过数据预处理和标准化处理的样本数据如图所示,包括对结构化、半结构化和非结构化数据的处理。

    2.2 联邦学习脑卒中预测系统

    整个系统主要由三大部件构成,分别是联邦服务端、联邦客户端、检测和可视化系统。

    • 客户端:客户端数据分别存储于各个医院私有的云服务器中,并进行本地训练。
    • 服务端:收集来自客户端的数据流,包括客户端ID,训练轮数,模型参数,本地性能等,服务端主要工作是管理数据,模型聚合,性能评估。
    • 检测与可视化系统:包括监测客户端状态,收集客户端信息,记录客户端性能以及服务器汇总性能。

    由于医疗数据的隐私性,故书中无法提供真实数据,只有部分代码讲解,这里博主也只对代码设计流程进行简单介绍。

    • 客户端:每个参与方(即医院)利用自然语言处理,图像特征提取等人工智能技术清洗从医院收集得到的患者数据,并归一化形成结构化的医疗数据。这些数据均存储于每家医院的私有云中。将脑卒中问题转换为一个二分类问题,利用之前处理好的数据,预测患者患病概率。这里采用一个多层感知机作为预测模型。
    class Net(nn.Module):
    	def __init__(input_size, output_size):
    		super(Net,self).__init__()
    		self.fc1 = nn.Linear(input_size, 50)
    		self.fc2 = nn.Linear(50, 10)
    		self.fc3 = nn.Linear(10, output_size)
    		nn.init.normal_(self.fc3.weight, mean=0, std=1)
    	def forward(self, x):
    		x = F.elu(self.fc1(x))
    		x = F.elu(self.fc2(x))
    		return F.log_softmax(self.fc3(x), dim=-1)
    
    
    • 服务端:服务端主要负责设备管理、模型聚合和性能评估等,服务端会先挑选客户端,并分别下发模型到各个模型进行本地训练。接着接收每个客户端上传模型进行聚合和模型评估,以确认进行迭代还是终止。
    • 检测与可视化系统:可视化小程序方便医生实时查看训练结果,包括患者性别比例、正负样本数量,还有一些患者的统计数据直方图。

    3. 联邦学习在医疗影像中的应用

    在医疗AI中,能给模型带来最有价值信息的通常是医学影像图片。目前,应用于临床的医学影像手段主要包括超声,X光,计算机断层扫描,核磁共振等。当前的医疗图像数据集通常只包括几百张相关数据,这些数据虽然可以通过数据增广等手段训练深度学习模型,但当其被用作真实医疗诊断时,可能会面临覆盖面不足等情况。

    3.1 肺结节案例描述

    肺结节是指肺内执行小于或者等于3cm的雷元星或者不规则形病灶,影像学表现为密度增高的阴影。不同密度肺结节,恶性概率不同,根据结节密度将肺结节分为三类:实性结节、部分实性结节和磨玻璃密度结节。
    肺结节的发病原因也受到多种因素影响,有良性和恶性之分,恶性早期隐匿,如果不早期干预,其病程迅速、恶性度强、预后差,正确判断良恶性,有助于正确的治疗手段。

    3.2 数据概述

    本案例的目标是,通过给定用户的肺部CT数据集,识别用户患有恶性肺结节的概率。模型分为两个部分,分贝是肺结节检测模型和分类模型。

    • 肺结节检测模型:针对3D医疗图片的识别问题,设计了一个三维的卷积神经网络用于检测肺结节的位置。整个网络结构主要由卷积层、残差结构体和反卷积层组成,模型将输出候选肺结节区域图片。残差模块是由三个残差单元组成的堆叠结构,如下图所示:

    • 分类模型:获取到候选的肺结节区域后,下一步判断当前用户得肺结节是良性还是恶性。为此,先将每个用户的CT图片得到的排名最高的5个候选结节区域图片分别重新带入肺结节检测模型中,取最后一个卷积层的输出作为每个候选区域的特征表示,将其带入全连接层中,得到恶性肺结节的概率,如图所示:图中,第i个候选区对应的恶性肺结节概率为 p i p_i pi,患有恶性肺结节的概率为:
      P = 1 − ( 1 − P d ) ∗ ∏ i = 1 5 ( 1 − P i ) P=1-(1-P_d)*\\prod_i=1^5(1-P_i) P=1(1Pd)i=15(1Pi)
      这里引入的参数 P d P_d Pd称为假结节,目的是防止目标检测网络没能发现某些恶性结节而导致将一些良性特征归类为恶性肺结节的特征。

    3.3 联邦学习的效果

    由图看出,联邦学习的性能无论是损失曲线还是准确率,都远胜与任何一家医院数据单独做到的水平,相对于集中式的机器学习训练,联邦学习还是稍显不稳定,但最终仍能收敛得到非常接近的损失及准确率。

    阅读总结

    通过本章内容的学习,较为深入了解了联邦学习在医学领域的应用,虽然总体实现的过程和普通的横向联邦学习过程无意,但是对于医疗数据的预处理,尤其是半结构化和非结构化数据的处理,给了我很深刻的印象。虽然本章内容涉及隐私,代码和数据无法公开,但是为日后医学领域数据的脱敏联邦应用,还是提供了很好的范本。

    以上是关于联邦学习后门攻击总结(2019-2022)的主要内容,如果未能解决你的问题,请参考以下文章

    迁移学习中的后门攻击

    “黑”掉神经网络:腾讯披露新型AI攻击手法,主流机器学习框架受影响

    初识联邦学习

    Fate1.6 支持的机器学习算法

    联邦学习系列---读书个人总结

    联邦学习系列---读书个人总结