想重新理解联邦学习,将联邦学习的原理和技术层面的理论都详细了解一遍。
联邦学习是这几年机器学习的一个热点,实质上联邦学习实际上是一种特殊的分布式学习。
联邦学习产生的原因就是:运营商是需要用户数据去进行大数据分析等工作的,但是当用户不想自己的数据传到云端,那么运营商怎么获得用户不允许上传云端的数据呢?(在国外,针对用户隐私的法律又非常严苛),故产生了联邦学习(federate learning的英文也可以去理解联邦学习的表意)。
虽然联邦学习十四分布式的机器学习,但是相比之下,还是有差别的,不然也不会重新起一个名字。具体有以下几点差别:
- 用户对自己的设备和数据有绝对的控制权。可以决定自己的数据是否参与联邦和通信,(这就和名字里的邦对应,每个邦都有完全的自治权,不受中央的控制),这里和原有的分布式机器学习就有很大的区别,
- 联邦学习的worker节点是非常不稳定的,或许用户到了没网的地方就没有信号了,这也对分布式计算造成了困难。
- 通信代价大,传统的分布学习大都是拿网线连起来的或者有高速宽带,但是联邦学习都是手机,ipad的,设备和服务器是远程连接。带宽低,网络延迟高,因此要是想获得一个模型参数,不可能很快完成,能几秒完成就是高效的了。
- 联邦学习数据不是独立,同分布。理解:就是每个worker节点设备的的数据是很不相同的,比如女生喜欢自拍,男生不喜欢,这样会造成手机这类设备的相册数据差别很大。
因此,减少通讯次数的算法不再适用。
- Worker节点负载不平衡。理解:有的用户拍的照片多,有的用户,照片拍的少,这样数据集相差很大,如果节点数据集有的大,有的小,这样建模和计算会出问题。如果建模时给每张图片相同的权重,那么学出来的模型就取决于拍了很多张的用户,忽略了拍照少的用户。如果每个用户相同的权重,也是不合适的,有的用户用手机时间长,有的用手机时间段,这样建模也是不公平的。
因为数据大小不一样,也导致计算时间不一样,传统的分布式学习可以进行负载均衡,但是联邦学习不能负载均衡
总而言之就是:虽然联邦学习是分布式学习,但与分布式学习相比,又有很多的技术难点。
针对2,3 ,我们需要减少通讯次数,本来100次达到收敛,现在争取20次达到收敛。所以我们的研究重点就是减少通讯次数。
- federated averaging alogorithm(联邦学习的梯度下降算法)
先来回回顾一下并行梯度下降
首先server给worker发送paramenter,worker收到参数w后,用本地的数据更新一个新的参数g,把参数g发送给server。
server收到更新的参数g后,把每次收到g1,g2…gm相加,做一次梯度下降,更新模型参数w,这样反复去发送更新的w,使模型达到收敛。
然后我们介绍新的算法,federated averaging alogorithm,和并行梯度下降算法是不太相同的,用更少的通讯次数达到收敛。开始是一样的,server把参数发给worker。后面就不一样了。
worker接收到w以后,通过本地数据更新为参数g,在本地做梯度下降,重复a,b五次就好,此时w已经改变,将w变为𝑤𝑖,
发送给server。
将收到的多次多个更新参数,平均得到最终收敛后的参数w。我的理解就是:这种算法和并行梯度下降的区别就是在哪做梯度下降,还有最终参数是否做平均。
曲线可以表明:FedAvg的loss下降的更快,收敛更快,这样这个算法就有了意义,达到了我们的研究目标:减少通讯次数,快速达到收敛。
#epochs:所有的worker把本地数据扫一遍,算是一个epoch,来衡量计算量的多少。
如果以epochs为横轴,就是当用不一样的梯度下降算法做一样epochs(相同的计算量),这样FA算法loss下降的快,这样就是牺牲了计算量,减少了通信量,但是联邦学习计算代价小,通讯代价大,所以我们FA算法是实用的。
- 隐私保护
接下来我们了解以下联邦学习的隐私保护:就上一个梯度算法而言,可以在worker上进行梯度计算,达到收敛,这样数据就没有通过server,对于用户而言是安全的。但是梯度其实就是对数据进行了一个数学(函数)变换,可以由梯度反推出数据,看下面这个图的第二个公式即可。
这样来看,对用户数据没有达到隐私保护的效果,我们怎么解决这个问题呢?
隐私保护通常就会通过加噪声来保护,但是实验证明,加噪声不实际,噪声不强的话,还是没做到隐私保护,噪声过强,没法进行模型训练。目前为止,很多方法都试过,但是效果不佳。
- 算法的鲁棒性
联邦学习的鲁棒性:让联邦学习可以抵御恶意的错误和拜占庭攻击
拜占庭错误:分布式系统出现异常节点(其实就是打仗的团队有个人是奸细,干扰团队任务,这样就会团灭),就是有个节点出现错误,数据和标签出错的话,这样会把整个训练带到沟里去。
拜占庭攻击是通过干扰节点,让本地数据和标签出现错误,这样会干扰模型训练,还有就是给模型留个后门。
有了攻击就会有防御。抵御拜占庭攻击,但是目前很多方法的前提都是数据独立同分布,这对联邦学习其实作用不大。
本章大概讲了联邦学习研究过程中的技术困难,最好不降低商业需求标准的同时,保护用户的隐私,这个问题还有待研究。