本文可能在基础上拓展了很多新的应用场景和思路,值得参考,联邦学习中可以考虑的点其实有很多。
随着移动设备等算力增强,信息传输的隐私问题日渐让人担忧。可以考虑在本地存储和使用模型但是集中训练机器学习模型的方式,比如手机用户的建模和个性化。联邦学习可以使得模型能够直接在远程设备进行训练。
例如智能手机的输入法补全功能,用户处于隐私不想公开自己的数据,联邦学习可以在不泄露用户隐私信息的情况下完成该功能的大规模学习,采用所有用户的历史文本信息训练模型。
比如医院包含很多病人的信息,能够预测健康情况,但是医院的隐私要求很严格,甚至是伦理问题,联邦学习能为这些应用解决问题,能够在保证隐私的情况下多方联合学习。
像一些无线车辆、智能家居等会有很多传感器,比如自动驾驶车辆需要更新交通数据模型,但是采用本地数据很难建模,因为没有其他设备间的联系,联邦学习可以在保证用户隐私的条件下训练模型,解决此类问题。
由于带宽、能源等问题,网络上的交互要比本地计算慢得多,因此提高交互效率很重要,需要考虑的两个方面有:减少交互轮次或者减少每轮交互信息量。
随硬件、网络和能源的不同,联邦网络的存储、计算和交互能力也不同,网络的大小或者设备系统限制导致每次只有一部分设备是激活的。或者有些设备在迭代过程中可能关机,退出激活态。因此联邦学习方法必须:考虑参与者数目较少问题、硬件不一致的容错率和对在交互网络中离线设备的鲁棒性。
网络中不断产生分布差异很大的数据,比如在输入法补全任务中手机用户有很多使用的语言。设备间的数据不同,可能有一种潜在的统计结构表示不同设备的关系和分布。所以联邦学习可能存在一些问题,学习全局模型时,需要同时通过多任务学习框架学习本地模型,可能用到元学习的方法;从多任务和元学习角度能够使本地模型更加个性化,解决数据异质的问题。
联邦学习只共享模型更新信息,比如梯度,而不是原始数据。尽管如此,还是会泄露给第三方或者中央服务器信息。即使最近用于增加隐私保护的方法,如SMC和差分隐私等,但是会降低系统效率和模型效果。需要在这些方面进行权衡。
交互是联邦网络方法进展中的一个瓶颈,接下来从三个方面介绍:本地模型更新、压缩策略和分散训练。
随机梯度下降法是分布式机器学习经常使用的方法,但是在交互上也有很多局限性,很多方法被提出增强分布式环境下的通信效率。
很多分布式本地更新的简单方法能够解决这些问题,这些方法采用对偶结构有效的将全局目标分解为子问题,每一轮并行的解决。
联邦学习最常用的方法是联邦平均(FedAvg),通过将本地SGD更新进行平均,尤其是对于非凸问题有很好的效果,但是不能在数据不一致的情况下保证收敛。
即使本地更新策略可以减少交互轮次,但是模型压缩策略如稀疏化或量化都能显著减少交互信息的长度。在联邦环境中,诸如参与设备少、本地数据分布不同和本地更新策略对这些压缩方法都有新的挑战。虽然很多工作都能够保证收敛,适用于分布式数据,但是没有考虑像设备参与度不高或者本地模型更新方法的联邦学习相关问题。
图中a是星形拓扑网络,b是分散式拓扑网络,分散式因为带宽低、延迟低比中央训练速度快,可以减少和中心服务器的高交互开销,最近一些工作介绍了一些不一致数据的本地更新策略,但是局限于线性模型或者假设所有设备均参与更新。
同步交互很简单,能够保证串行计算模型,但是由于设备不同很难实现。异步策略可以减少不一致环境的问题,尤其是公共存储系统。即使异步参数服务器在分布式数据中心和成功,但是对联邦学习来说,延迟可以长达几小时、几天甚至无限期。
有一种方法可以动态的在每轮选参与设备,用一个预定义窗口整合尽可能多的设备,选择的设备虽然少但是要有代表性,能表示统计结构。
在训练迭代完成之前可能有一些设备掉线,一个可行的策略是忽略那些掉线的设备,像FedAvg,会引入偏置,例如那些偏远地区的设备由于网络问题更容易掉线,所以模型会更倾向于那些网络条件好的设备。
代码计算是容差的另外一种方法,其引入算法冗余。例如,梯度编码可以修复真实梯度,但是也在联邦环境中有很多挑战,比如隐私政策和大规模网络下的设备间信息交换。
借鉴元学习和多任务学习的方法。
网络中的数据不是独立同分布的话,像FedAvg等方法在本地数据更新太多时会有偏差,平行SGD也一样。
像之前所说的,系统简单的丢弃那些掉线的设备会导致统计不一致性,FedProx在FedAvg上做了一个小的修改,允许在满足约束的条件下跨多个设备执行部分工作,实际上相当于在FedAvg基础上协调叫本地epoch。但是epoch数在系统限制下调节时不现实的,近似项有两个好处:使得训练较好的本地模型更新更接近原始全局模型,还能安全的联合所选的部分更新的设备模型。因此,FedProx对凸和非凸函数都能保持收敛。但是这些保障收敛的方法都不现实:他们使得带宽增加提高网络负担,将本地数据上传到服务器会有隐私问题。
差分隐私是最常见的,有很强的理论保证,一个数据的改变并不能导致输出分布的变化,所以很难看出某个样本是否在学习过程中被使用。样本级别的隐私保护可以在很多学习任务中完成,基于梯度的学习中,可以随机排列每次迭代的即时输出。
需要在模型准确率和差分隐私之间权衡的话,在结果增加噪声会减少准确率。
还有同态加密方法,但是只能局限于训练线性模型。当用户数据分布不同时,可以采用SFC或者SMC加密,即使SMC不能保证信息泄露,但是可以和其它像差分隐私结合来提高安全保证。对于大规模学习来说,它们会增加交互和计算开销。
隐私可以分为两方面:全局隐私和局部隐私,全局隐私需要在模型更新时保证第三方或者中央服务器不能获取信息,局部隐私要保证更新对服务器来说是安全的。
即使one-shot和分治交互策略在传统数据中心设定中有发掘,但是这些方法没有考虑大型统计异质的网络。
需要很好的衡量准确率和交互方法,最有效的方法是Pareto frontier的改进,准确率有所提高。
可以研究设备何时被唤醒,什么时候从中心节点获取新的任务和执行本地计算。
可能需要更细粒度的定义隐私,每个设备甚至设备的数据点都是不同的。开发一个解决混合隐私(设备级别和样本级别)的方法是今后一个研究方向。
也许在很多联邦网络中的数据都是没有标签或是弱标签的,非监督学习或者其它半监督学习也可能和尺度、异质性和隐私具有相同的挑战性。
实际环境中运行联合学习模型时还存在许多问题,如概念漂移(数据生成模型随时间变化)、日变化(设备一天或者一周不同时间出现不同行为)和冷启动问题(新设备进入网络)等。
由于联邦学习是一个新兴领域,我们必须保证其以现实世界的环境、假设和数据作为基础,利用现有工具实现是很重要的。