并行计算与机器学习(3)

并行计算与机器学习(3)

如何通过移动端的数据来训练模型

通过集中式学习,需要统一集中收集大量用户信息并训练模型,很多用户并不愿意上传个人的隐私数据;
有时多个机构希望共同训练出更优秀的模型,但不能直接共享用户数据;
为了避免违反法律泄露用户隐私,数据没有办法被放在一起。

分布式学习VS联邦学习

1.分布式学习

分布式学习每迭代一次都要重复这几个操作:
①worker向server请求模型参数(通信复杂度=参数个数);
②worker计算本地的梯度gradient(计算量大);
③worke把梯度发给server(通信复杂度=参数个数);
④server用梯度更新模型参数(计算量小)。
把每个用户的手机当作一个worker节点,让它们计算出本地梯度并发送给server,server就能训练出模型了,同时数据没有离开用户手机,不会违反隐私限制。

2.联邦学习

联邦学习实际上就是一种分布式学习,没有本质区别。它的目标是让多个用户协同训练出一个模型,但用户间不共享数据,用户数据不能离开本地。
相比分布式学习,联邦学习的不同与难点
①用户对自己设备上的数据有绝对控制权,随时可以停止本地数据参与计算和通信;
②worker节点不稳定(关机、断网、不同型号设备计算速度不同);
通信代价远大于计算代价(设备远程连接、带宽低延迟高);
④数据并非独立同分布(用户使用习惯不同导致统计性质不同);
⑤节点负载不平衡(有的用户几天产生不了一条数据,有的用户一天几十条,数据集有的大有的小,不好分配权重,计算时间也不一样)

降低通信次数(解决难点)

1.多计算少通信(talk less,do more)

让移动端设备在空闲或充电时进行计算,本地的计算量增加了很多的同时不会影响用户体验。

2.联邦平均算法(federated averaging)

不同于并行梯度下降,它的目的是用更少的通信次数来达到收敛(把参数w在本地做很大的改进),它比并行梯度下降算法下降得更快。
①worker向server请求模型参数;
②重复如下操作(多个epochs):
a)使用w和本地数据计算梯度g;
b)在本地做梯度下降w=w-α*g.
③每个worker将最新的参数w发送给server。
④server对全部m个worker最新的w做平均或加权平均,得到的平均数作为新的参数w,下一轮迭代再把这个w发送给所有的worker。
在这里插入图片描述
在这里插入图片描述
epochs可以用于衡量计算量大小(把数据全部扫一遍是一个epoch)
federated averaging减少了通信量,但同时也增加了worker的计算量。这就是牺牲计算量换取减少通信量,但是联邦学习中的计算代价小,通信代价大,所以federated averaging很适用。

3.重要结论

federated averaging不需要假设独立同分布就能够收敛(用户使用习惯不同导致统计性质不同)。

隐私保护问题

被传送的只有梯度,但是用户数据被间接泄露出去了,因为计算本地梯度时仅仅是用一个函数把用户数据做了函数变换如下图,数据映射成了梯度梯度几乎携带了数据所有的信息,借助梯度能反推出数据
在这里插入图片描述
机器学习得到的模型参数必须带有训练数据的信息,才能认为是有用的这个模型;
因此有方法能只看到最后训练出的模型参数就能反推出训练数据的一些信息,虽不能精确获得用户数据,但足以获得用户隐私的一些特征(model inversion attacks);
而federated averaging每迭代一次就会传给server一个w,无论server还是worker都能重复的看到每轮迭代后的w,那么federated averaging泄露的信息会更多。
在这里插入图片描述

联邦学习的鲁棒性

1.拜占庭错误

在这里插入图片描述
如果一个节点故障了但是没有挂掉(把自己的数据和标签做修改),该节点就会向其他节点发送错误的信息,传给server的梯度就是有害的,可能让整个模型出错。

攻击与防御

data poisoning attack:通过精心设计扰动把部分作为训练集的图片做小幅修改,该模型样本就成了毒药,会使模型犯特定的错误或留后门。
model poisoning attack:针对分布式学习,把本地数据的标签换成错的,用正确的图片和错误的标签计算梯度方向并发送回server。(不太行)

server检验worker传回梯度的测试准确率:server拿某个worker传回的梯度更新参数,并且计算新参数在测试集上的准确率,传回恶意梯度会导致测试准确率下降。(不太行)
server检验worker传回的梯度值:如果某个worker传回的梯度和其他梯度差距很大,就可以认为相应的梯度是异常的。(不太行,数据不是独立同分布的)
server用更稳定的方法而不是加权平均来整合梯度:把平均换成中位数等。
总言之,攻击较容易,防御难。
(上述攻击和防御方法都是假设数据是独立同分布的,所以都没太大的实用性)

联邦学习中有待解决的问题

通信效率的问题
隐私保护的问题
对拜占庭错误的算法鲁棒性

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值