联邦学习是什么?数据不出本地也能一起训练模型
联邦学习(Federated Learning)是一种在数据不离开本地的情况下协同训练模型的方法。它由谷歌的研究人员提出,核心算法发表在 2017 年的国际人工智能与统计会议(AISTATS)论文《从分散数据中高效通信地学习深度网络》中。它的基本原则是:原始训练数据始终留在用户的手机或各机构自己的服务器上,绝不上传到中央服务器;大家只上传根据本地数据算出来的模型更新,由服务器汇总成一个共享的全局模型。
它解决什么问题
训练好的模型需要大量数据,但很多数据涉及隐私,不能也不该集中到一起:用户手机上的输入习惯、聊天记录,医院里的病历,银行里的交易记录。法律法规也越来越严格地限制个人数据的收集和传输。联邦学习提供了一条路:数据不动,模型动,既能利用分散在各处的数据训练出好模型,又大幅降低了隐私泄露和安全风险。
怎么工作
论文提出的核心算法叫联邦平均(FederatedAveraging,FedAvg)。大致流程是:服务器把当前的全局模型发给一批参与的设备;每台设备用自己的本地数据训练几轮,得到更新后的模型;设备只把模型参数的更新发回服务器;服务器把各设备的更新按数据量加权平均,得到新的全局模型;如此反复。实验表明,FedAvg 能稳定地处理移动设备上常见的数据不平衡、各设备数据分布差异很大(非独立同分布)的问题,并且相比简单的方法,大幅减少了所需的通信轮数,这对网络不稳定、流量宝贵的手机尤其重要。
应用和局限
谷歌最早把它用在手机输入法的下一个词预测上。如今联邦学习被用于金融风控(多家银行联合建模而不共享客户数据)、医疗研究(多家医院联合训练诊断模型)、智能设备个性化等场景。
它也不是万能的:只上传模型更新并不等于绝对安全,研究表明有时能从更新中反推出部分原始数据,所以常和差分隐私、安全聚合等技术结合使用;各参与方数据差异大时,模型效果会受影响;通信开销和设备掉线也是工程上的挑战。