在这项工作中,提出了联邦版本的自适应优化器,包括ADAGRAD、ADAM和YOGI,并分析了它们在一般非凸设置的异构数据存在时的收敛性。
经典三假设,分别是Lipschitz梯度,随机梯度方差有界,梯度值有界:
中间定义了一些符号表达,诸如权重参数x的表示,伪梯度的表示等等。然后以下就是算法:
可以看出最重要的部分就是ClientOpt和ServerOpt这两个函数,这两个函数可以替代很多的操作。这让这个FedOpt算法成为一个框架。在接下来我们可以看到,ClientOpt函数多是SGD随机梯度优化,而ServerOpt可以有很多选择。
以下为算法的伪代码:
其中控制了算法的自适应程度,越小代表自适应程度越高。
储存了本地在一个本地周期内,权重的变化量。
是各个客户变化量的平均。比较重要的是
和
的计算:
-
被定义为
的动量,由
控制动量比例。
-
则随优化方法而变化,以实现自适应的功能。