联邦学习:密码学 + 机器学习 + 分布式
- 提出背景:数据不出本地,又能合力干大事
- 联邦学习的问题
- 分布式机器学习:解决大数据量处理的问题
- 横向联邦学习:解决跨多个数据源学习的问题
- 纵向联邦学习:解决数据分散在多个参与者但部分特征重叠的问题
- 联邦 + 迁移学习:不同任务间共享知识,让模型适应新环境
- 医疗 + 联邦学习:跨多个医疗机构共享模型学习,同时保护患者隐私
- 大模型 + 联邦学习
提出背景:数据不出本地,又能合力干大事
这联邦学习呢,就是让不同的地方一起弄一个学习的模型,但重要的是,大家的数据都是自己家的,不用给别人。
这样一来,人家的秘密就不会到处乱跑(数据不出本地),又能合力干大事。
<没有联邦学习的情况>
在没有联邦学习的情况下,医院面临的一个主要问题是数据隔离。
每个医院只能依赖自己收集的数据来训练疾病诊断(如糖尿病)模型。
这意味着模型的有效性和准确性受限于各自医院的数据量和多样性。
对于罕见病例或特殊种群,数据量可能不足以准确训练模型。
此外,由于患者隐私和数据保护的关切,医院之间共享详细的患者数据存在法律和道德障碍。
<引入联邦学习后的情况>
在这种模式下,不同医院可以合作训练一个共享的疾病诊断(如糖尿病)模型。
每个医院使用自己的患者数据本地训练模型,然后将模型的更新(而不是敏感的患者数据)分享给其他医院。
-
初始模型共享:首先,所有参与的医院都从一个初始模型开始。这个初始模型可以是一个基础的、未经过大量训练的模型。
-
本地训练:然后,每个医院使用自己的患者数据在本地独立训练这个模型。由于每个医院的患者构成可能不同,这意味着每个医院训练出的模型会稍有不同,反映了它们各自独特的患者数据特征。
-
模型更新共享:训练完成后,每个医院不是共享其患者数据,而是只共享其模型训练的更新。这些更新可以是模型权重的调整或其他形式的技术细节。
-
集成学习:最后,这些来自不同医院的模型更新被集成到初始模型中。这样,模型就能从每个医院的数据中学习,而不需要直接访问这些数据。
通过这种方式,联邦学习允许每个医院贡献它们的专业知识和数据见解,同时保护患者数据的隐私。
优势在于:
- 增强模型的准确性和泛化能力:由于模型是基于更广泛和多样化的数据集训练的,因此联邦学习模型性能比只使用本地数据训练的好,性能趋近于(低于)使用全部数据训练的模型
- 保护患者隐私:患者数据不离开原医院,降低了隐私泄露的风险。而且模型参数是加密的,无法反推其他参与方的原始数据
- 跨医院合作:即使面临法律和伦理限制,医院仍能通过共享模型更新而非数据本身来实现合作。
因此,联邦学习解决了数据孤岛问题,提高了诊断模型的准确性和可靠性,同时保障了患者数据的隐私安全。
当需要多个参与方共同完成一件事,每个参与方都有其他方不具备的数据,同时也不能共享,就能使用联邦学习。
联邦学习的问题
联邦学习的问题,源于数据的特性和分布。
一、非独立同分布(Non-IID)的数据
不同的机构或个人,持有的数据往往在统计特性上有所不同。
这意味着数据可能不是独立的(一个病人得了糖尿病,还有高血压)或者具有不同的分布(山区的医院多心脏病,而海边的医院多糖尿病)。
这种差异可能导致模型在某些数据属主上表现良好,而在其他数据属主上表现不佳。
例子:
- 假设一个联邦学习系统用于不同地区医院的病例数据分析。
- 每个医院的病例分布可能因地理位置、患者人群和医院专长等因素而有所不同。
- 某个地区可能有更高的糖尿病发病率,而另一个地区可能有更多心脏疾病案例。
- 这些差异会影响学习模型的整体性能。
二、数据不平衡
一些机构可能拥有大量的数据,而其他机构只有少量数据。
在聚合模型参数时,数据量较大的属主可能对模型的训练结果有更大的影响,这可能会导致模型偏向于这些数据多机构的特点,忽视其他数据少机构。
三、通信、计算的效率
同态加密会导致高的计算量。
混淆电路会导致高的通信量。
四、信任问题
-
信任问题:
- 在联邦学习中,不同的数据属主(例如医院)和集中式服务器之间存在信任问题。因为参与者或服务器中的任何一方都有可能不完全可靠,甚至可能有攻击者。
-
潜在的攻击者:
- 参与者或服务器中的某些人可能是恶意攻击者,他们可能试图窃取私人信息或干扰训练算法。
-
交换模型参数而非原始数据:
- 联邦学习通过交换模型参数(如局部梯度),而不是原始数据,来保护每个数据属主的隐私。这意味着参与者不会共享他们的原始数据,只分享用于模型训练的信息(如权重更新、梯度等)。
-
梯度泄露风险:
- 即使是这些模型参数,如果被恶意分析,也可能泄露原始数据的敏感信息。例如,通过对交换的梯度进行分析,攻击者可能推断出一些原始数据特征。
假设有一个联邦学习项目涉及多家医院,旨在通过共享学习提高疾病诊断的准确性。
每家医院都有自己的患者数据,但由于隐私问题,这些数据不能直接共享。因此,医院们只分享用于模型训练的梯度信息。
现在,假设其中一个医院或服务器被一个攻击者控制了。
这个攻击者可能通过分析从其他医院来的梯度信息,推断出某些患者的敏感信息,比如他们可能患有某种特定的疾病。
即使梯度本身不包含直接的患者数据,但通过复杂的分析方法,攻击者仍然可能获得关于原始数据的有价值信息。
为了防止这种隐私泄露,可以采取一些措施:
-
差分隐私:通过在数据或梯度中添加随机噪声,使得从共享的梯度中推断出任何个人数据变得非常困难。
-
安全多方计算(SMC):这是一种加密技术,允许多个方协作计算一个函数,而无需暴露各自的输入数据。
-
鲁棒的聚合机制:设计鲁棒的聚合算法,可以减少恶意参与者对模型的影响。
这些方法可以提高联邦学习系统在医学等敏感领域的安全性和隐私保护。
分布式机器学习:解决大数据量处理的问题
横向联邦学习:解决跨多个数据源学习的问题
横向联邦学习同领域,不同数据。
比如有三家医院:每家医院都有大量糖尿病视网膜病变的数据,但由于隐私法规,他们无法共享这些数据。
阳光医院的数据科学家提出使用横向联邦学习。
在这个模式下,每个医院在本地训练模型,然后只共享模型的更新,而不是患者的实际数据。
这样,三家医院共同建立了一个强大的DR预测模型,而不违反隐私法规。
通过这种合作,医院间的模型学习到了不同患者群体的特点,大大提高了诊断的准确性。
纵向联邦学习:解决数据分散在多个参与者但部分特征重叠的问题
相关,但不同的领域(跨领域关联)。
药物公司“生命源泉”持有大量关于糖尿病药物的效果数据,而保险公司“安全盾”拥有糖尿病患者的医疗历史数据。
为了更全面地研究DR,医院与这两家公司展开合作,
采用纵向联邦学习。不同于横向联邦学习,纵向联邦学习允许不同领域的机构在保持数据私有性的同时,共同改进模型。
通过这种方式,研究者能够结合药物效果和病历数据,对糖尿病视网膜病变的发展和治疗效果进行更深入的分析。
联邦 + 迁移学习:不同任务间共享知识,让模型适应新环境
这个城市的模型尝试在相邻城市应用时,研究人员发现效果并不理想。
为了解决这个问题,他们采用了联邦迁移学习。通过这种方法,他们能够调整已有模型,使其更适应新的环境和患者特征,而无需从头开始收集和训练数据。
通过联邦迁移学习,模型迅速适应了新环境。
医疗 + 联邦学习:跨多个医疗机构共享模型学习,同时保护患者隐私