先要了解联邦学习解决的问题域。从wiki(参考1)可以看到,简而言之,实现无需数据交换(只需参数交换)实现跨域数据上的机器学习联合建模, 可以被认为是保护隐私的分布式协作机器学习。
图片来自wiki(参考1)。
同时重点指出了需要保证计算过程中保护本地数据的隐私(保证原始数据不出域,符合GDPR等保护条例),以及节点之间数据的安全互访。因此你可以看到,引入密码学相关的知识是必不可少的。
同样,你看看现有很多关于联邦学习的产品,包括百度的MesaTEE(参考2)、PaddleFL以及腾讯的FedAI、蚂蚁摩斯等,都有不同的实现。
我总结联邦学习过程中主要有以下流派:
涉及到的隐私计算技术包括:
实际应用中主要在样本和特征对齐、emb以及梯度等中间结果传递涉及到数据安全保护。
以上基本上都属于或者包含比较现代的密码学应用知识。 学习他们之前,最基本的密码学知识,包括对称密码体系、公钥密码体系(RSA,ECC等),以及哈希散列、数字签名、身份认证等,推荐书籍可以参考https://www.zhihu.com/question/20398347 这个问题的高赞回答,另外b站也有不少课程可以去看。
对于TEE,参考2有比较详细的介绍。
对于MPC,建议去看MP-SPDZ(参考3)、PSI(参考5)以及相关的论文,里面也提到了对机器学习相关激活函数优化器的封装。
参考4 是WeBank的FATE相关的资料,里面介绍非常体系。
参考:
这个问题很好。很多同学和朋友不知道从何入手。我特此分享一下我的学习曲线:
我大概是2017年接触到这样一个概念,当时在公司有与外部企业联合学习的需求,比如公司有用户画像,而外部公司可能会有用户的金融特征,这时候就需要学习特征分割的机器学习如何训练,当时还不叫Vertical Federated Learning,所以我补了一些机器学习中Optimizer的论文,所以偏优化的入门角度。当时更重视分布式系统的研发,所以同时也偏向系统的入门角度,当然会考虑到加密算法。从公司离开后,现在我也开始做FL相关的科研,我觉得入门FL还是要先从机器学习算法入手,特别是几篇经典的FedAvg, FedOpt等算法,理解算法的挑战比较重要。算法之后我觉得应该多学一些模型,比如CV/NLP/DM领域的重要模型分别是CNN, Transformer, GCN,掌握这些算法和模型才有可能解决现实场景下的机器学习问题。基于这个基础再去学习分布式系统、安全/隐私角度的问题会更容易理解。我不赞成以黑盒的方式看待算法和模型,否则很难做好分布式和安全/隐私。
我这样讲可能有点不是很清晰,大家可以看看我在FedML开源框架第一期视频中分享的文章分类,可以帮助你快速定位到你想研究的问题。同时FedML也非常适合你入门,希望你可以试用并给我们反馈。
FedML联邦机器学习框架正式开源!
Federated Learning 联邦学习是机器学习领域中快速发展的研究领域。尽管已经进行了大量的研究工作,但是现有的软件框架不能充分支持多样化的算法开发(例如,多样化的拓扑和灵活的消息交换),并且实验中不一致的数据集和模型使用使公平的比较变得困难。近日,美国南加州大学USC联合MIT、Stanford、MSU、UW-Madison、UIUC以及腾讯、微众银行等众多高校与公司联合发布了FedML联邦学习开源框架。 FedML是一个开放的研究库和基准,可促进新的联合学习算法的开发和公平的性能比较。 FedML支持三种计算范例:分布式训练,移动设备训练和独立仿真,以便用户在不同的系统环境中进行实验。 FedML还通过灵活且通用的API设计和参考基准实现促进了各种算法研究。针对非I.I.D设置的精选且全面的基准数据集旨在进行公平的比较。相信FedML可以为联合学习研究社区提供开发和评估算法的有效且可重复的手段。
FedML团队欢迎研究人员或工程师使用FedML库,并随时反馈不恰当的设计。更多信息大家可以查阅以下资料:
FedML Homepage: https://fedml.ai
FedML White Paper: https://arxiv.org/abs/2007.13518
FedML GitHub: https://github.com/FedML-AI/FedML
FedML Video Tutorial: https://www.bilibili.com/video/BV1jK411N7gS/ (B站)
FedML由一群对联合学习研究充满热情的研究人员和专家工程师维护。今年,FedML的作者在机器学习顶会NeurIPS 2020上发表了7篇论文(https://github.com/FedML-AI/FedML/blob/master/publications.md) 足见其学术水准。
该项目的Technical Lead何朝阳目前在美国南加州大学攻读博士学位,主攻机器学习算法与模型方向,之前他在业界有丰富的分布式系统与移动研发研发经验,目前他的学术指导老师包括毕业于UC Bekerley现就职于USC的Salman Avestimehr教授,以及来自于香港港科大学的张潼教授。
另外,FedML团队也正在招募开源志愿者,也邀请研究人员加入该开源项目。学生或研究人员不仅可以在机器学习算法和模型的开发中获得经验,而且可以发现新的研究思路。如果您想讨论潜在的开源贡献或研究合作,请发送电子邮件至chaoyang.he@usc.edu
最后提供一个视频给你,希望对你有所帮助!