本技术涉及人工神经网络,特别涉及一种基于前向梯度的联邦学习方法、系统及装置。
背景技术:
1、联邦学习方法是在保证个人数据隐私的前提下,解决大规模跨越的分布式训练神经网络模型的一个通用范式。目前,联邦学习方法涉及的边缘设备,在训练神经网络模型的过程中,通过反向传播算法计算神经网络模型的梯度,基于梯度更新神经网络模型的模型参数,比如权重后,再进行更新后的神经网络模型的后续训练轮训练,直到神经网络模型收敛为止。其中,反向传播算法是一种用于训练神经网络模型的常用方法,用于计算神经网络模型中的损失函数相对于其中每个权重的梯度,这些梯度可以用于在训练神经网络模型的期间更新权重,以最小化神经网络模型中的损失函数。
2、实施反向传播算法的过程为:首先,将数据输入到神经网络模型中运行,输出实际结果;其次,计算实际结果与预期结果之间的误差值;再次,将误差值采用链式求导的方法,反向传播到该神经网络模型中运行,以计算该神经网络模型的每个权重的梯度;最后,基于每个权重的梯度值更新权重,在下一训练轮训练更新后的神经网络模型,以逐步地最小化神经网络的损失函数。
3、联邦学习涉及的客户端通常是网络终端侧的大量计算能力弱及内存受限的边缘设备,在这些边缘设备上执行神经网络模型的反向传播算法,会导致极大的计算和存储开销。因此,导致了反向传播算法的可扩展性差,即使增加参与每训练轮训练的边缘设备数量,也不会对神经网络模型的收敛有任何积极的影响,因此,联邦学习涉及的每训练轮训练只有少量边缘设备参与,大量可用的边缘设备闲置。
4、因此,如何在保证神经网络模型训练精度的前提下,大幅度减轻联邦学习涉及的边缘设备的计算和存储开销,加快神经网络模型的收敛速度,提高联邦学习的可扩展性,是一个亟待解决的问题。
技术实现思路
1、有鉴于此,本技术实施例提供一种基于前向梯度的联邦学习方法,该方法能够在保证神经网络模型训练精度的前提下,提高联邦学习的可扩展性。
2、本技术实施例还提供一种基于前向梯度的联邦学习系统,该系统能够在保证神经网络模型训练精度的前提下,提高联邦学习的可扩展性。
3、本技术实施例还提供一种基于前向梯度的联邦学习装置,该装置能够在保证神经网络模型训练精度的前提下,提高联邦学习的可扩展性。
4、本技术实施例的一个实施例中,提供一种基于前向梯度的联邦学习方法,包括:
5、在神经网络模型的当前训练轮,选择多个边缘设备;
6、向选择的所述边缘设备发送所述神经网络模型的模型参数,向不同所述边缘设备发送不同的随机种子,以使所述边缘设备基于接收的所述随机种子生成随机方向向量,基于本地数据计算所述神经网络模型中的目标函数在所述随机方向向量方向上的导数后,发送;
7、针对每一所述边缘设备,根据接收的所述神经网络模型中的目标函数在所述随机方向向量方向上的导数,以及发送给所述边缘设备的随机种子,进行计算,计算得到所述神经网络模型在所述边缘设备的前向梯度;
8、基于计算得到的所有所述边缘设备的前向梯度,计算得到所述神经网络模型的梯度,以调整下一训练轮的所述神经网络模型的模型参数。
9、在上述方法中,所述计算得到所述神经网络模型在所述边缘设备的前向梯度包括:
10、gf=(g*v)*v,
11、其中,gf表示所述神经网络模型在所述边缘设备的前向梯度,g是所述神经网络模型在所述边缘设备的真实前向梯度,v是随机方向向量,与所述神经网络模型的模型参数维度相同,v中的每个取值范围服从标准正太分布范围;
12、(g*v)表示所述神经网络模型中的目标函数在所述随机方向向量方向上的导数。
13、在上述方法中,所述神经网络模型中的目标函数在所述随机方向向量方向上的导数的计算包括:
14、
15、其中,f(x)为目标函数值,f(x+h·v)为所述神经网络模型参数在随机方向向量v的方向上进行扰动后的目标函数值,h取值为0.01,表示所述神经网络模型参数在随机方向向量v的方向上进行扰动的取值。
16、在上述方法中,所述计算得到所述神经网络的梯度包括:
17、将所有所述边缘设备的前向梯度进行加权平均后,得到所述神经网络模型当前训练轮的梯度。
18、本技术的另一实施例中,提供一种基于前向梯度的联邦学习系统,所述系统包括位于网络云端的一服务器及位于网络终端侧的多个边缘设备,其中,
19、所述服务器,用于在神经网络模型的当前训练轮,选择多个边缘设备;向选择的所述边缘设备发送所述神经网络模型的模型参数,向不同所述边缘设备发送不同的随机种子;针对每一所述边缘设备,根据接收的所述神经网络模型中的目标函数在所述随机方向向量方向上的导数,以及发送给所述边缘设备的随机种子,进行计算,计算得到所述神经网络模型在所述边缘设备的前向梯度;基于计算得到的所有所述边缘设备的前向梯度,计算得到所述神经网络模型的梯度,以调整下一训练轮的所述神经网络模型的模型参数;
20、所述边缘设备,用于基于接收的所述随机种子生成随机方向向量,基于本地数据计算所述神经网络模型中的目标函数在所述随机方向向量方向上的导数后,发送给所述服务器。
21、本技术的再一实施例中,提供一种基于前向梯度的联邦学习装置,所述装置为位于网络云端的服务器,包括:选择单元、发放单元及第一计算单元,其中,
22、所述选择单元,用于在神经网络模型的当前训练轮,选择多个边缘设备;
23、所述发放单元,用于向选择的所述边缘设备发送所述神经网络模型的模型参数,向不同所述边缘设备发送不同的随机种子;
24、所述第一计算单元,用于针对每一所述边缘设备,根据接收的所述神经网络模型中的目标函数在所述随机方向向量方向上的导数,以及发送给所述边缘设备的随机种子,进行计算,计算得到所述神经网络模型在所述边缘设备的前向梯度;基于计算得到的所有所述边缘设备的前向梯度,计算得到所述神经网络模型的梯度,以调整下一训练轮的所述神经网络模型的模型参数。
25、本技术的再一实施例中,提供一种基于前向梯度的联邦学习装置,所述装置为位于网络终端侧的边缘设备,所述边缘设备为网络云端选定的边缘设备,包括:接收单元、第二计算单元及发送单元,其中,
26、所述接收单元,用于接收所述服务器发送的所述随机种子生成随机方向向量;
27、所述第二计算单元,用于基于接收的所述随机种子生成随机方向向量,基于本地数据计算所述神经网络模型中的目标函数在所述随机方向向量方向上的导数;
28、所述发送单元,用于将所述神经网络模型中的目标函数在所述随机方向向量方向上的导数发送给所述服务器。
29、本技术的再一实施例中,提供一种电子设备,包括:
30、处理器;
31、存储器,存储有程序,所述程序配置为在被所述处理器执行时实现上述任一项的一种基于前向梯度的联邦学习方法。
32、本技术的再一实施例中,提供一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上述任一项的一种基于前向梯度的联邦学习方法。
33、本技术的再一实施例中,提供一种计算机程序产品,包括计算机程序或指令,其特征在于,该计算机程序或指令被处理器执行时实现上述任一项的一种基于前向梯度的联邦学习方法的步骤。
34、如上所见,本技术实施例在基于联邦学习训练神经网络模型的过程中,在边缘设备上采用前向传播算法实现,即在神经网络模型的每一训练轮,服务器选定多个边缘设备,向选定的边缘设备发送所述神经网络模型的模型参数,及向不同选定的边缘设备发送不同的随机种子;选定的边缘设备采用接收的所述随机种子生成随机方向向量后,基于本地数据计算所述神经网络模型中的目标函数在所述随机方向向量方向上的导数,发送给所述服务器;所述服务器根据接收到所述神经网络模型中的目标函数在随机方向向量上的方向导数,及对应的随机种子进行计算,计算得到所述神经网络模型在所述边缘设备的前向梯度;基于所有所述边缘设备的前向梯度,计算得到所述神经网络模型在本训练轮的梯度,以进行所述神经网络模型的模型参数的优化。这样,本技术实施例采用了大量的边缘设备,并行使用不同的随机种子实施所述神经网络模型的前向传播算法,在保证神经网络模型训练精度的前提下,提高联邦学习的可扩展性,且可以大幅度减轻联邦学习涉及的边缘设备的计算和存储开销。