背景
在用户异构(用户的通信、计算能力不同)的蜂窝网络中,传统的联邦学习会很低效。这是因为传统联邦学习中每轮参与模型训练的用户是随机选取的,这样如果一轮中选取的某些用户的通信、计算能力较差,那么其模型训练、上传所需的时间就更长,进而拖延本轮的模型聚合步骤,最终导致整个模型训练效率的低下。
研究内容
论文提出了FedCS协议,将传统联邦学习的随机选取参与用户改为由用户的资源情况选择尽可能多的“优质”用户来进行模型更新。图示如下:
FedCS协议的具体步骤:
1. Resource Request 让随机的C*100%个clients给服务器发送自己的资源信息(无线信道状态、计算能力、任务相关数据集的大小等)
2. Client Selection 服务器根据这些信息来评估模型分发、计算、上传步骤所需的时间,并选择参与本轮计算的用户
3. Distribution 通过多播来将当前全局模型发送给选中的用户们
4. Scheduled Update and Upload 用户们同时进行模型计算,然后依次上传updates
5. Aggregation 服务器聚合updates并测试模型。
重复以上步骤直到模型收敛或到deadline。
上述Step2中的Client Selection算法具体如下:
Client Selection的最大化问题:
设,K为所有clients组成的集合,为step1中随机选取的clients集合。S为Client Selection阶段从
中选取的clients集合。
为服务器组播给客户集S分发模型的时间;
,
分别为服务器Client Selection,Aggregation的时间;
为从分发模型直到聚合完成的一轮运算的总时间。
和
分别代表用户k的模型更新和上传时间。
对上式(2)的分析:如果前i-1个用户全部更新、上传完毕,第i个用户还没有更新完,就需要等待,而如果第i个用户在前i-1个用户更新、上传的时间内完成更新就不需要另外等待。
与S中client的顺序相关,采用背包约束的贪婪算法来解上述最大化问题。
Client Selection算法:
上述Client Selection的算法复杂度是O(|K'||S|)
分析:由于算法是贪婪的,故应当一旦if条件不满足就退出循环,这样就一共循环|S|次。而循环中运行的arg max函数,时间复杂度为O(|K'|)。故该算法总的时间复杂度为O(|K'||S|)。
论文提到上述优化问题的暴力破解算法的时间复杂度O(
),希望知道原因的小伙伴可以赐教下,不胜感激!!
实验验证
1. 环境设置
设传输的模型大小为
在设定的一系列条件下,可得客户的平均吞吐量,则由
计算Client Selection所用到的客户上传模型所需时间。
Distribution时间简化地由定义。
设服务器的计算能力无限,则
Client总数为1000,定义client的计算能力为每秒处理的图片数。
设置客户端的平均计算能力为10到100中的随机值,client数据集size为100~1000,E=5,B=50.
则每个client训练的轮次为size*E/B:10~100;训练一轮的时间为B/compution:5~0.5s
所有用户 的范围为前两个范围之乘积:5~500s
数据集:两个数据集CIFAR-10、Fasion MNIST,两种分割方式IID、Non-IID
将训练数据集分配到1000个clients的方法:
1. 为每个client从100~1000随机选择一个数作为数据集大小 2. 按IID、non-IID的方式分割数据集
IID:在整个数据集上为client随机选择已确定数量张图片
non-IID:只在随机的两个类别中,为client随机选择已确定数量张图片
由于Client Selection阶段执行算法3的需要,需要取确定的值。而在Scheduled Update and Upload阶段,考虑到实际波动,
取为在以平均值和其r%为标准差的高斯分布上的·值。来使实验更切合实际。
最终以经验设置,
2. 实验结果
与FedLim(传统的client Selection上设置,直接丢弃迟到的updates)作对比,无论是达到目标准确率所需时间还是在deadline前所达到的准确率,FedCS都优于FedLim。而不设置
的传统FL最终达到的准确率和FedCS类似。
并且实验还证实了client的吞吐量和计算能力的不确定性r%对FedCS的效果影响不大。
所设置的的值也需要多考虑。太大则每轮参与的client增多,而聚合次数减少;太小则每轮参与的client太少,准确度降低。
结论
本论文提出了FedCS模型,目的是在有着异构客户端的移动终端计算框架下高效运行联邦学习。
实验表明,即使数据集的选择、分割方法、吞吐量和计算能力发生变化,FedCS也都能通过在每轮的训练中并入更多的clients来产生更好的训练效果。
未来研究方向:
1)使用参数更多、更复杂的模型来训练
2)考虑资源动态变化的场景,每轮的更新上传时间可以动态调节。
不足之处:
可能导致部分client没有参与模型更新的机会,而造成最终得到的模型的效果较差。