联邦模型的生成方法、装置、电子设备和存储介质
技术领域
本公开涉及人工智能领域,尤其涉及具体涉及深度学习技术,具体涉及一种联邦模型的生成方法、装置、电子设备和存储介质。
背景技术
联邦学习(Federated Learning)是一种打破数据孤岛和释放人工智能应用潜能的分布式机器学习技术,能够让联邦学习各参与方在不披露底层数据和底层数据加密(混淆)形态的前提下,通过交换加密的机器学习中间结果实现联合建模。
其中,联邦学习的每轮迭代中,中央服务器将当前联合模型分发给随机选择的客户端,客户端根据其本地数据独立地计算模型的梯度并传递至中央服务器,聚合以计算新的全局模型。
发明内容
本公开提供了一种联邦模型的生成方法、装置、电子设备和存储介质。
根据本公开的一方面,提供了一种联邦模型的生成方法,应用于客户端中,包括:
获取服务器发送的待训练数据,并基于所述待训练数据确定当前本地模型;
将训练样本集输入至所述当前本地模型中,对所述当前本地模型进行训练;其中,所述当前本地模型中各网络层的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件;
将当前训练的当前本地模型的更新数据发送至所述服务器,以使所述服务器聚合更新所述待训练数据,并下发更新后的待训练数据继续训练,直至满足联合训练结束条件,根据当前的待训练数据确定目标联邦模型。
根据本公开的一方面,提供了一种联邦模型的生成方法,应用于服务器端中,包括:
获取客户端集合针对当前联邦模型发送的更新数据,所述客户端集合包括客户端,所述客户端基于如本公开实施例任一项所述的联邦模型的生成方法训练当前本地模型,确定所述更新数据;
根据所述更新数据更新所述当前联邦模型;
向所述客户端集合下发更新后的当前联邦模型中待训练数据,以使所述客户端集合对所述更新后的待训练数据继续训练,直至所述当前联邦模型满足联合训练结束条件,根据当前训练的当前联邦模型确定目标联邦模型。
根据本公开的另一方面,提供了一种联邦模型的生成装置,配置于客户端中,包括:
当前本地模型确定模块,用于获取服务器发送的待训练数据,并基于所述待训练数据确定当前本地模型;
当前本地模型训练模块,用于将训练样本集输入至所述当前本地模型中,对所述当前本地模型进行训练;其中,所述当前本地模型中各网络层的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件;
更新数据上传模块,用于将当前训练的当前本地模型的更新数据发送至所述服务器,以使所述服务器聚合更新所述待训练数据,并下发更新后的待训练数据继续训练,直至满足联合训练结束条件,根据当前的待训练数据确定目标联邦模型。
根据本公开的另一方面,提供了一种联邦模型的生成装置,配置于服务器端中,包括:
更新数据获取模块,用于获取客户端集合针对当前联邦模型发送的更新数据,所述客户端集合包括客户端,所述客户端基于如本公开实施例任一项所述的联邦模型的生成方法训练当前本地模型,确定所述更新数据;
当前联邦模型更新模块,用于根据所述更新数据更新所述当前联邦模型;
待训练数据下发模块,用于向所述客户端集合下发更新后的当前联邦模型中待训练数据,以使所述客户端集合对所述更新后的待训练数据继续训练,直至所述当前联邦模型满足联合训练结束条件,根据当前训练的当前联邦模型确定目标联邦模型。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述的联邦模型的生成方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开任一实施例所述的联邦模型的生成方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开任一实施例所述的联邦模型的生成方法。
本公开实施例可以提高联邦学习过程中数据的隐私安全性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的一种联邦模型的生成方法的示意图;
图2是根据本公开实施例的一种联邦模型的生成方法的示意图;
图3是根据本公开实施例的一种联邦模型的生成方法的示意图;
图4是可以实现本公开实施例的联邦模型的生成方法的场景图
图5是可以实现本公开实施例的集中式深度学习方法的场景图
图6是可以实现本公开实施例的联邦模型的生成方法的场景图
图7是根据本公开实施例的一种联邦模型的生成装置的示意图;
图8是根据本公开实施例的一种联邦模型的生成装置的示意图;
图9是用来实现本公开实施例的联邦模型的生成方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例公开的一种联邦模型的生成方法的流程图,本实施例可以适用于客户端训练本地模型,并上传到服务器中,以使服务器训练联邦模型的情况。本实施例方法可以由联邦模型的生成装置来执行,该装置可采用软件和/或硬件的方式实现,并具体配置于具有一定数据运算能力的电子设备中,该电子设备可以是客户端,其中,客户端可以是手机、平板电脑、车载终端和台式电脑等。
S101,获取服务器发送的待训练数据,并基于所述待训练数据确定当前本地模型。
服务器为联邦学习中用于聚合多个客户端训练的模型数据的设备。服务器与客户端通信。待训练数据用于客户端以本地样本数据进行训练,形成更新数据,并传回服务器以和其他客户端的更新数据聚合,形成新的模型。待训练数据可以是指分发至各客户端进行训练的模型的数据。当前本地模型可以是指当前迭代轮次客户端需要进行训练的模型。当前本地模型用于客户端训练,并提取更新数据提供给服务器聚合形成新的模型,以达到联邦学习的效果。当前本地模型为机器学习模型,示例性的,当前本地模型可以是神经网络模型,如全连接层神经网络模型。通常在基于联邦学习的联邦模型的训练过程中,需要进行多轮训练,每迭代轮次客户端会接收到服务器下发的待训练数据,确定一个本地模型。
联邦学习的过程具体可以是:客户端通过对全局模型以本地样本数据进行模型训练,计算梯度,更新模型参数,并将更新的数据发送服务器。服务器将各客户端发送的更新数据进行聚合,形成新的模型,并继续下发各客户端继续训练,直至服务器中聚合的模型满足训练条件,得到联邦模型。
S102,将训练样本集输入至所述当前本地模型中,对所述当前本地模型进行训练;其中,所述当前本地模型中各网络层的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件。
训练样本可以是根据训练内容确定的样本数据。训练样本用于对当前本地模型进行训练。训练样本的类型可以包括下述至少一项:图像处理类型、自然语言处理类型和音频处理类型等。示例性的,联邦模型用于图像分割,训练样本可以是标注有分割目标物的图像;联邦模型用于文本翻译,训练样本可以包括原始文本和翻译文本;联邦模型用于语音识别,训练样本可以包括语音和对应的文本。训练样本的内容和数量可以根据需要进行设定。示例性的,可以从全部数据集中,根据预设的迭代次数,划分为子数据集,将一个子数据集包括的训练样本输入至当前本地模型中,对当前本地模型进行训练。
当前本地模型中各网络层的权重矩阵范数和梯度范数的乘积满足利普希茨(Lipschitz)常量约束条件,用于将各网络层的权重矩阵范数和梯度范数的乘积约束为利普希茨常量,例如,利普希茨常量可以为1。当前本地模型中各网络层的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件,表明,当前本地模型满足Lipschitz约束条件。当前本地模型中各网络层的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件,相当于是通过在每一层施加Lipschitz约束来限制输入扰动在当前本地模型中沿着网络扩散,从而整个网络的Lipschitz约束是每一层上的Lipschitz约束的乘积,使网络输出变化与输入变化成比例,从而提高当前本地模型的鲁棒性,以抵御恶意攻击。例如,在当前本地模型为多图机器学习模型的情况下,小的输入扰动可以在图内和图间传播,从而极大地放大了输出空间中的扰动,因此Lipschitz约束对于此类模型攻击具有显著的防御效果,提高模型的处理准确性和安全性。
S103,将当前训练的当前本地模型的更新数据发送至所述服务器,以使所述服务器聚合更新所述待训练数据,并下发更新后的待训练数据继续训练,直至满足联合训练结束条件,根据当前的待训练数据确定目标联邦模型。
更新数据用于服务器结合其他客户端的更新数据进行聚合,形成新的待训练数据,也即形成新的联邦模型。其中,更新数据的聚合,例如,采用联邦平均方法(FederatedAverage,FedAvg)将各客户端提供的更新数据进行加权平均,将计算结果,更新待训练数据。服务器将更新后的待训练数据继续下发至历史下发的客户端(包括实现本公开实施例提供的联邦模型的生成方法的客户端)中继续训练。服务器在确定更新后的待训练数据满足联合训练结束条件的情况下,根据当前的待训练数据,也即更新后的待训练数据,确定目标联邦模型。
联合训练结束条件用于检测联邦模型是否训练完成,示例性的,联合训练结束条件是训练次数大于等于设定次数阈值;或者联合训练结束条件是激活函数的值小于等于设定函数阈值等。当前的待训练数据,是指根据当前的待训练数据确定的模型满足联合训练结束条件,从而,根据当前的待训练数据确定的模型,确定为训练完成的联邦模型。
绝大多数联邦学习应用场景中均对于数据隐私安全有着较高的要求,而为了在保障本地数据隐私安全的同时保证联合模型的性能,就要求联邦学习系统具备一定的抗风险能力。实际上,联邦学习中的隐私保护不足以保护底层训练数据免受隐私泄漏的攻击,在训练过程中传递的模型梯度可能会暴露敏感信息,甚至发生严重的信息泄漏。此外,联邦学习过程中还会遭受中毒攻击。中毒攻击有两种方式:数据中毒攻击和模型中毒攻击。中毒攻击的目的是在模型聚合过程中,在一个或多个分布式计算资源中使用人工设计的数据(即数据中毒)或模型(即模型中毒)来降低联合模型的准确性。数据中毒攻击通过修改输入数据的特征或标签来实现。恶意用户可以将某一类的数据点修改为其他类的数据点,并利用修改后的数据点参与分布式训练。模型中毒攻击是指更新后的中间数据(如梯度或模型)在发送到中央服务器之前中毒,以降低聚合模型准确性的攻击。
本公开的技术方案,通过对每个网络层施加Lipschitz约束条件,可以有效限制脏数据的扩散,以抵御数据中毒攻击
根据本公开的技术方案,通过在联邦学习的当前本地模型的训练过程中,在当前本地模型每一网络层施加Lipschitz约束,限制输入扰动在当前本地模型中沿着网络扩散,以使整个网络的Lipschitz约束是每一网络层上的Lipschitz约束的乘积,使网络输出变化与输入变化成比例,可以提高当前本地模型的鲁棒性,以抵御恶意攻击,兼顾提高模型的处理准确性和安全性,提高联邦学习系统的抗风险能力。
图2是根据本公开实施例公开的另一种联邦模型的生成方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。所述当前本地模型的激活函数包括模拟随时间单调变化或不变的函数。
S201,获取服务器发送的待训练数据,并基于所述待训练数据确定当前本地模型,所述当前本地模型的激活函数包括模拟随时间单调变化或不变的函数。
激活函数为用于模拟随时间变化单调递增、单调递减或不变的函数。激活函数可以模拟多种不同形状的函数,提高激活函数的表达能力。
示例性的,激活函数为Weibull函数。实际上,传统神经网络中激活函数,如ReLU、sigmoid和tanh等,是将非线性函数转化为梯度范数保存,导致表达能力的降低。在统计学上,Weibull函数配置有位置参数、形状参数和尺寸参数等超参,可以模拟任意随时间变化单调递增、单调递减或不变的函数,适用于可靠性分析和失效分析,从而可以提高激活函数的表达能力,进而充分逼近复杂的非线性关系,提高模型的学习能力和性能,性能例如检测准确率或识别准确率等。在一个具体的例子中,Weibull激活函数如下所示:
其中,为第t个拥有唯一参数λt、αt和μt的Weibull函数,λt是指第t个尺寸参数,αt是指第t个形状参数,μt是指第t个位置参数。z是激活前矢量的一个元素。T是指参数的组数,λt、αt和μt是第t组参数,t最大取值为T。T可以根据需要配置。为了实现更快的收敛,将T个不同参数的Weibull激活函数复合使的上界增加至T,也即配置T组参数,并聚合得到可以加快收敛速度,提高模型训练效率。激活前矢量是激活函数的自变量。激活前矢量包括至少一个元素。
Weibull激活函数的导数如下所示:
实际上,基于前述传统激活函数的模型只能逼近表达能力较弱的线性函数,例如,单调激活函数梯度范数保持为1。而根据韦伯激活函数的导数,确定梯度范数突破了1,理论上,基于韦伯激活函数的模型可以逼近任何函数,极大的提高了模型的表达能力,并且,有效地模拟扰动扩散与攻击失败之间的关系,从而降低扰动扩散,抵御攻击,提高数据安全。
通过将激活函数配置为Weibull函数,可以模拟单调递增、单调递减或不变的函数,提高网络表达能力,从而提高当前本地模型的性能,提高联邦模型的性能。
S202,将训练样本集输入至所述当前本地模型中,对所述当前本地模型进行训练;其中,所述当前本地模型中各网络层的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件。
可选的,所述对所述当前本地模型进行训练,包括:获取训练得到的各所述网络层权重矩阵;基于如下公式更新各所述权重矩阵:
其中,为所述当前本地模型中第p网络层的权重矩阵,Kp为所述当前本地模型中第p网络层的利普希茨常量约束系数,Kp根据权重矩阵范数约束系数和梯度范数约束系数确定,更新后的权重矩阵所确定的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件。
训练得到的各网络层权重矩阵,是指采用训练样本对当前本地模型进行训练,训练之后的当前本地模型的各网络层权重矩阵,相当于当前本地模型训练得到的模型参数,也即当前本地模型的训练目标。第p网络层的权重矩阵为实际是第p-1网络层中各神经元相对于第p网络层中各神经元的权重,形成的矩阵。基于公式,采用替代相当于训练得到的第p网络层权重矩阵由更新为
Kp根据权重矩阵范数约束系数和梯度范数约束系数确定,表明Kp用于约束权重矩阵范数和梯度范数。具体的,更新后的权重矩阵,计算得到的权重矩阵范数,以及将更新后的权重矩阵带入激活函数,计算得到的梯度范数之间的乘积满足利普希茨常量约束条件。示例性的,Kp大于1小于等于1.5。
通过利普希茨常量约束系数与训练得到的权重矩阵相乘,更新训练得到的权重矩阵,可以使训练得到权重矩阵所确定的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件,精准实现网络输出变化与输入变化之间的线性相关,提高当前本地模型的抗干扰能力,抵御恶意攻击,兼顾提高模型的处理性能和安全性。
可选的,联邦模型的生成方法还包括:基于如下公式确定所述利普希茨常量约束系数:
其中,为权重矩阵范数约束系数,和为梯度范数约束系数,为所述当前本地模型中第p网络层的矢量,为所述当前本地模型中第p-1网络层的矢量,所述当前本地模型的激活函数为韦伯分布函数,标准全连接神经网络模型的激活函数f为标准激活函数,ε为误差阈值,Wp为全连接神经网络模型中第p网络层的权重矩阵。
其中,当前本地模型中网络层的矢量基于如下公式计算:
其中,为当前本地模型中第p网络层的矢量,为当前本地模型中第p-1网络层的矢量,为当前本地模型中和第p网络层的权重矩阵;为当前本地模型中第p网络层的偏差。Ni表示节点数,R表示矩阵。当前本地模型为基于利普希茨常量约束条件的全连接神经网络模型。标准全连接神经网络模型为不存在利普希茨常量约束条件的全连接神经网络模型。
标准全连接神经网络模型中网络层的矢量基于如下公式计算:
zp=Wp×f(zp-1)+bp
zp为当前本地模型中第p网络层的矢量,zp-1为当前本地模型中第p-1网络层的矢量,Wp为当前本地模型中和第p网络层的权重矩阵;bp为当前本地模型中第p网络层的偏差。Ni表示节点数,R表示矩阵。
可以通过同时训练当前本地模型和标准全连接神经网络模型,计算Wp×f(zp-1)。或者可以将Wp配置为近似等于f(zp-1)可以将zp-1作为自变量输入到标准激活函数中得到的函数值。标准激活函数可以是包括ReLU、Leaky ReLU、PReLU、Sigmoid、tanh或Softplus等函数。标准激活函数是历史常用的激活函数。
误差阈值表示,在结构相同的当前本地模型中某个网络层与标准全连接神经网络模型中对应网络层的之间的输入差值足够小的情况下,当前本地模型中该网络层与标准全连接神经网络模型中对应网络层的之间的函数值差值同样足够小。也即误差阈值还需要满足不等式实际上,在当前本地模型未采用标准激活函数以及利普希茨常量约束的情况下,依然可以表达与标准全连接神经网络模型相似的内容,从而,两个模型的输入差值小,对应函数值差值同样小。
实际上,Kp的取值范围如下所示:
通常取该范围内的最大值作为Kp。
实际上,在Lipschitz约束条件下(单调激活函数的梯度范数保持为1),激活函数是线性函数,表明基于该激活函数的神经网络只能逼近表达能力较弱的线性函数。配置Kp大于1,表明基于该激活函数的神经网络可以逼近任意形状的函数,从而大大提高了网络表达能力。而标准激活函数中:ReLU、Leaky ReLU和PReLU的梯度范数为1,Sigmoid的梯度范数为0.25,tanh和Softplus的梯度范数为1。而韦伯分布函数的梯度范数大于1。也即针对基于Lipschitz约束条件的神经网络模型,大部分常用的激活函数的梯度范数无法满足利普希茨常量约束条件的可行值,即无法大于1,导致标准激活函数的表达能力低于韦伯分布函数。同时,经实验,基于韦伯分布函数,且Lipschitz约束的模型表达能力好于GroupSort模型(分组排列)。
基于如下公式约束网络层的权重矩阵范数和梯度范数:
相应的,每网络层的权重矩阵范数和梯度范数的乘积为1,即满足利普希茨常量约束条件。其中,利用最近矩阵正交化和极分解技术,权重范数为的权重矩阵近似于全连接神经网络的权重矩阵Wp。
而为权重矩阵范数约束系数,可以基于如下公式推导得到:
‖z‖=max|z|
将权重矩阵范数约束带入,得到:
从而,
为梯度范数约束系数,可以基于如下公式推导得到:
将梯度范数约束带入,得到:
通过根据满足利普希茨常量约束条件,且约束网络层的权重矩阵范数和梯度范数的公式,确定利普希茨常量约束系数,可以准确确定满足利普希茨常量约束条件的利普希茨常量约束系数,并据此更新权重矩阵,确保当前本地模型满足利普希茨常量约束条件,同时基于韦伯分布函数作为激活函数,突破了利普希茨常量约束系数为1的限制,极大的提高了模型的表达能力,并且,有效地模拟扰动扩散与攻击失败之间的关系,从而降低扰动扩散,抵御攻击,提高数据安全。
可选的,联邦模型的生成方法还包括:基于如下公式计算所述利普希茨常量C:
其中,M为所述当前本地模型包括的网络层的层数,是所述当前本地模型的激活函数,是梯度,‖·‖是指范数,
其中当p>1时以及在利普希茨常量被约束为1的同时,当前本地模型仍受到权重矩阵和梯度的约束,保持了当前本地模型的表达能力。
通过将每网络层的权重范数约束和梯度范数约束为利普希茨常量,实现在每一层限制权重范数约束和梯度范数约束,可以从每一层有效限制脏数据的本地扩散和联合扩散,以抵御数据中毒攻击,降低脏数据和中毒攻击的干扰,提高联邦学习的稳定性和容错性,提高当前本地模型的数据安全和模型安全,限制恶意更新在联合模型中的扩散,以提高联邦学习系统的鲁棒性。
S203,将当前训练的当前本地模型的更新数据发送至所述服务器,以使所述服务器聚合更新所述待训练数据,并下发更新后的待训练数据继续训练,直至满足联合训练结束条件,根据当前的待训练数据确定目标联邦模型。
可以将各网络层的权重矩阵作为更新数据发送至服务器,和/或可以将各网络层的梯度作为更新数据发送至服务器。其中,梯度向前向后传播。
此外,还可以基于如下公式更新各网络层的偏差:
偏差也可以作为当前本地模型的训练目标,和更新数据提供给服务器。
根据本公开的技术方案,通过将激活函数确定为可模拟随时间单调变化或不变的函数,提高网络表达能力,从而提高当前本地模型的性能,提高联邦模型的性能。
图3是是根据本公开实施例公开的一种联邦模型的生成方法的流程图,本实施例可以适用于服务器根据各客户端训练的本地模型,进行聚合训练联邦模型的情况。本实施例方法可以由联邦模型的生成装置来执行,该装置可采用软件和/或硬件的方式实现,并具体配置于具有一定数据运算能力的电子设备中,该电子设备可以是服务器端。
S301,获取客户端集合针对当前联邦模型发送的更新数据,所述客户端集合包括客户端,所述客户端基于如本公开任一实施例所述的联邦模型的生成方法训练当前本地模型,确定所述更新数据。
当前联邦模型为基于利普希茨约束条件的神经网络模型。基于当前联邦模型中各网络层的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件。
可选的,所述客户端集合还包括基于标准全连接神经网络模型训练得到所述更新数据的客户端。
该客户端用于训练不基于利普希茨常量约束条件的神经网络模型,得到更新数据,标准全连接神经网络模型的结构与当前本地模型的结构相同。标准全连接神经网络模型的激活函数可以是标准激活函数。
通过配置客户端集合还包括训练不限制利普希茨常量约束的标准全连接神经网络模型的客户端,在兼顾联邦模型的安全性的同时,增加联邦学习系统中客户端的类型,增加联邦学习的应用场景,满足多样性的联邦学习的需求,增加联邦学习的灵活性。
S302,根据所述更新数据更新所述当前联邦模型。
可以采用FedAvg算法或投票算法,根据更新数据,确定当前联邦模型。
可选的,所述根据所述更新数据更新所述当前联邦模型,包括:根据所述更新数据,构建教师网络模型;根据教师网络模型,训练学生网络模型,确定为当前联邦模型。
其中,教师-学生网络的方法,属于迁移学习的一种。迁移学习也就是将一个模型的性能迁移到另一个模型上,而对于教师-学生网络,教师网络往往是一个更加复杂的网络,具有非常好的性能和泛化能力,可以用这个网络来指导另外一个更加简单的学生网络来学习,使得更加简单、参数运算量更少的学生模型也能够具有和教师网络相近的性能,也算是一种模型压缩的方式。实际上较大和较复杂的网络虽然通常具有很好的性能,但是也存在很多的冗余信息,因此运算量以及资源的消耗都非常多。可以将复杂网络中的有用信息提取出来迁移到一个更小的网络上,这样学习来的小网络可以具备和大的复杂网络想接近的性能效果,并且也大大的节省了计算资源。这个复杂的网络可以看成一个教师,而小的网络则可以看成是一个学生。可以根据FedAvg算法或投票算法构建教师网络模型,采用知识蒸馏(Knowledge Distillation)方法,基于教师网络模型训练学生网络模型。
通过根据更新数据构建教师网络模型,并训练学生网络模型作为当前联邦模型,在兼顾模型性能和泛化能力的同时,减少模型的冗余信息,节省计算资源,提高模型的计算效率。
可选的,所述根据所述更新数据,构建教师网络模型,包括:根据所述更新数据,构建多教师网络模型。
多教师网络模型可以通过投票算法构建,具体是:通过计算更新数据对应的当前本地模型集预测测试数据的正确率,选取每个分类下预测正确率最高的模型构建多教师网络模型,该模型在每个分类下均能实现当前本地模型集的最优预测。投票算法可以过滤攻击者的恶意更新,以抵御模型中毒攻击。每个更新数据可以确定一个客户端对应的当前本地模型,将多个当前本地模型形成当前本地模型集。在一个具体的例子中,计算当前本地模型集在测试数据上对每个分类的预测准确率;
其中,表示第i个当前本地模型预测第q个分类的正确率,表示第i个当前本地模型预测第q个分类且正确的次数,第i个本地模型预测第q个分类的总次数,Q为分类个数,i最大值为当前本地模型的数量。选取每个分类下正确率最高的模型作为当前分类的预测模型[model0,model1……modelQ-1];所有选出的模型分别预测测试数据,并对每条数据的预测结果做softmax变换;
其中,表示modeli预测数据块中第g条数据为第q个分类的概率,G为数据块中数据条数。
选取的第i列构建多教师网络的预测矩阵
通过构建多教师网络,可以保留当前本地模型集的最优性能,并且可以过滤掉性能差、受到干扰和受到攻击的模型,从而实现过滤攻击者的恶意更新,抵御模型中毒攻击,提高联邦模型的安全性和抗干扰性。
在一个具体的例子中,采用知识蒸馏方法,根据多教师网络模型,训练学生网络模型。其中,知识蒸馏指的是将多个模型的知识提炼给单个模型,这些模型可以是同构的,也可以是异构的。联邦学习经典算法FedAvg在全局模型聚合过程中使用简单的加权平均更新模型,这要求本地模型与联合模型需要保持同构,但在实际应用中,本地模型结构复杂多样且更新迅速,无法实现加权平均以更新联合模型。并且简单的加权平均无法防范攻击者提交的恶意更新,特别是在多攻击者联合攻击的场景下,可能导致模型的崩溃。针对多教师网络模型,每个模型结构可以不同。知识蒸馏的方法从当前本地模型集中训练全局模型,通过投票算法构建多教师网络模型,使用该教师网络模型的输出和数据的真实标签去训练学生网络模型,即全局模型,实现当前本地模型集最优性能的近似保留。知识蒸馏联合模型聚合算法可以在保证收敛速度的同时,提供了异构当前本地模型的聚合方案。具体的:如前述,利用投票算法从当前本地模型集中构建多教师网络模型;计算多教师网络模型和学生网络模型针对训练数据的预测输出;计算学生网络损失,如下:
其中,LKD反向传递,为KD损失,对应于软目标即教师网络模型预测软化后的概率分布交叉熵;(1-α)·CrossEntropy(Qs,ytrue)为CE损失,对应于硬目标即样本的真实标注交叉熵。其中,T为温度参数,T越小,则越容易放大错误分类的概率,引入不必要的噪声;α为软目标交叉熵加权系数,α越大表示学生网络模型训练诱导越依赖于教师网络模型的贡献;Qs和Qt表示对学生网络模型和教师网络模型的softmax变换。
通过采用知识蒸馏可以支持异构的多教师网络模型,增加基于异构模型聚合训练学生网络模型的应用场景,丰富联邦学习的应用场景。
可选的,所述根据教师网络模型,训练学生网络,包括:在各所述更新数据对应的当前本地模型的结构相同的情况下,采用联合加权平均算法确定备选教师网络模型;对所述多教师网络模型的预测准确率和备选教师网络模型的预测准确率进行比较;选择最高预测准确率的网络模型,作为目标教师网络模型;根据所述目标教师网络模型,训练学生网络。
更新数据对应的当前本地模型的结构相同,表示根据同构的模型构建教师网络模型。备选教师网络模型为基于同构的当前本地模型构建的教师网络模型,示例性的,可以FedAvg算法根据同构的多个当前本地模型构建备选教师网络模型,通常备选教师网络模型的数量为1个。而多教师网络模型的数量为多个。获取测试数据,并分别采用多教师网络模型和备选教师网络模型对预测数据进行预测,计算预测准确率并比较。目标教师网络模型是指预测准确率较高,也即性能较好的教师网络模型。将最高预测准确率的网络模型作为性能较好的目标教师网络模型。需要说明的是,在更新数据对应的当前本地模型的结构不同的情况下,FedAvg算法不适用于确定备选教师网络模型,此时,认为多教师网络模型即为性能最好的目标教师网络模型。
通过在当前本地模型均同构的情况下,比较投票算法构建的多教师网络与FedAvg加权平均得到的教师网络之间的性能,选取其中性能较好的模型作为目标教师网络模型,并训练学生网络模型,可以筛选出性能最好的教师网络模型训练学生网络模型,可以提高学生网络模型的性能,提高联邦模型的性能。
S303,向所述客户端集合下发更新后的当前联邦模型中待训练数据,以使所述客户端集合对所述更新后的待训练数据继续训练,直至所述当前联邦模型满足联合训练结束条件,根据当前训练的当前联邦模型确定目标联邦模型。
更新后的当前联邦模型中待训练数据用于提供给客户端,确定本地模型,并继续训练,得到更新数据,提供给服务器,以聚合形成新的当前联邦模型。待训练数据可以包括下述至少一项:更新后的当前联邦模型的权重矩阵、梯度和偏差等。示例性的,待训练数据为更新后的当前联邦模型的权重矩阵。联合训练结束条件可以是对当前联邦模型进行多轮迭代训练,在迭代轮次大于等于设定阈值的情况下,选择激活函数的最小函数值,并将此时激活函数的参数作为最优解,即作为权重矩阵,从而确定当前联邦模型。其中,每轮训练包括多次迭代,将训练样本随机分成预设数量的组,每次迭代选取一组进行训练。
根据本公开的技术方案,通过获取客户端集合针对当前联邦模型发送的更新数据,其中,更新数据是通过联邦模型的生成方法训练当前本地模型确定,对多个更新数据进行聚合,并更新当前联邦模型,可以在客户端训练本地模型时有效限制脏数据扩散,抵御中毒攻击,提高更新数据的安全性,过滤攻击者的恶意攻击,从而提高联邦模型的抗干扰性和安全性,提高联邦模型的性能。
图4是根据本公开实施例公开的一种联邦模型的生成方法的场景图,本公开实施例中的联邦模型的生成方法可以应用于横向联邦学习的应用场景中。
其中,横向联邦学习是一种分布式深度学习方法,与如图5所示的集中式深度学习方法对应。示例性的,在集中式深度学习过程中,基于m个训练样本,每个训练样本提取n个特征,对神经网络模型进行训练。在横向联邦学习过程中,p个客户端或用户从服务器中下载全局模型。每个客户端或用户基于一定数量的训练样本,对下载的全局模型进行训练,得到当前本地模型,并将当前本地模型上传给服务器,服务器进行聚合更新,确定新的全局模型,并下发。其中,每个客户端都可以基于m个训练样本对全局模型进行训练,或者可以基于m个训练样本中的部分训练样本对全局模型进行训练。
在一个具体的示例中,如图6所示,联邦学习系统包括n个客户端和服务器。在每轮训练中,n个客户端中,每个客户端基于本公开任一项实施例所述的联邦模型的生成方法,在本地训练当前本地模型,当前本地模型中每个神经网络层满足利普希茨常量约束系数Kp。服务器获取n个客户端上传的当前本地模型,具体可以是当前本地模型的权重矩阵或梯度等。服务器采用投票算法,根据n个当前本地模型构建多教师网络模型。采用知识蒸馏方法基于多教师网络模型,训练学生网络模型,具体是:将训练样本输入到多教师网络模型中,得到多教师网络模型的预测输出,作为学生网络模型的软目标;并将样本数据中人工或者其他方式确定的样本数据的真实标签,作为学生网络模型的硬目标;将训练样本输入至学生网络模型中,直至基于软目标和硬目标确定的损失函数最小,将当前训练的学生网络模型,确定为当前联邦模型。其中,当前联邦模型中每个神经网络层满足利普希茨常量约束系数Kp。在经过指定轮数的训练的情况下,查询激活函数的最小函数值所在的轮数,将该轮数对应的当前联邦模型确定为最终的目标联邦模型。
根据本公开的技术方案,将基于Lipschitz约束的网络模型应用于本地模型,可以在客户端本地有效限制脏数据的扩散,在本地抵御数据中毒攻击;将基于Lipschitz约束的网络模型应用于联邦模型,可以在服务器有效限制攻击者的恶意更新的扩散,在服务器以抵御模型中毒攻击;并且通过投票算法构建多网络和知识蒸馏算法从多网络提炼出单个网络,提供了异构网络聚合方案,在保证收敛速度可以提升联邦学习系统抗攻击的能力,从本地和服务器均可以实现过滤攻击者的恶意更新,提高联邦学习系统的抗干扰性和安全性,兼顾联邦模型的性能。
根据本公开的实施例,图7是本公开实施例中的联邦模型的生成装置的结构图,本公开实施例适用于客户端训练本地模型,并上传到服务器中,以使服务器训练联邦模型的情况。该装置采用软件和/或硬件实现,并具体配置于具备一定数据运算能力的电子设备中,如客户端。
如图7所示的一种联邦模型的生成装置400,包括:图像特征检测模块401、标准特征检测模块402和遮挡识别模块403;其中,
当前本地模型确定模块401,用于获取服务器发送的待训练数据,并基于所述待训练数据确定当前本地模型;
当前本地模型训练模块402,用于将训练样本集输入至所述当前本地模型中,对所述当前本地模型进行训练;其中,所述当前本地模型中各网络层的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件;
更新数据上传模块403,用于将当前训练的当前本地模型的更新数据发送至所述服务器,以使所述服务器聚合更新所述待训练数据,并下发更新后的待训练数据继续训练,直至满足联合训练结束条件,根据当前的待训练数据确定目标联邦模型。
根据本公开的技术方案,通过在联邦学习的当前本地模型的训练过程中,在当前本地模型每一网络层施加Lipschitz约束,限制输入扰动在当前本地模型中沿着网络扩散,以使整个网络的Lipschitz约束是每一网络层上的Lipschitz约束的乘积,使网络输出变化与输入变化成比例,可以提高当前本地模型的鲁棒性,以抵御恶意攻击,兼顾提高模型的处理准确性和安全性,提高联邦学习系统的抗风险能力。
进一步的,所述当前本地模型的激活函数包括模拟随时间单调变化或不变的函数。
进一步的,当前本地模型训练模块402,包括:权重矩阵获取单元,用于获取训练得到的各所述网络层权重矩阵;权重矩阵更新单元,用于基于如下公式更新各所述权重矩阵;
其中,为所述当前本地模型中第p网络层的权重矩阵,Kp为所述当前本地模型中第p网络层的利普希茨常量约束系数,Kp根据权重矩阵范数约束系数和梯度范数约束系数确定,更新后的权重矩阵所确定的权重矩阵范数和梯度范数的乘积满足利普希茨常量约束条件。
进一步的,联邦模型的生成装置还包括:所述利普希茨常量约束系数确定模块,用于基于如下公式确定所述利普希茨常量约束系数:
其中,为权重矩阵范数约束系数,和为梯度范数约束系数,为所述当前本地模型中第p网络层的矢量,为所述当前本地模型中第p-1网络层的矢量,所述当前本地模型的激活函数为韦伯分布函数,标准全连接神经网络模型的激活函数f为标准激活函数,ε为误差阈值,Wp为全连接神经网络模型中第p网络层的权重矩阵。
进一步的,联邦模型的生成装置还包括:利普希茨常量确定模块,用于基于如下公式计算所述利普希茨常量C:
其中,M为所述当前本地模型包括的网络层的层数,是所述当前本地模型的激活函数,是梯度,‖·‖是指范数,
上述联邦模型的生成装置可执行本公开任意实施例所提供的联邦模型的生成方法,具备执行联邦模型的生成方法相应的功能模块和有益效果。
根据本公开的实施例,图8是本公开实施例中的联邦模型的生成装置的结构图,本公开实施例适用于服务器根据各客户端训练的本地模型,进行聚合训练联邦模型的情况。该装置采用软件和/或硬件实现,并具体配置于具备一定数据运算能力的电子设备中,如服务器端。
如图8所示的一种联邦模型的生成装置500,包括:更新数据获取模块501、当前联邦模型更新模块502和待训练数据下发模块503;其中,
更新数据获取模块501,用于获取客户端集合针对当前联邦模型发送的更新数据,所述客户端集合包括客户端,所述客户端基于如本公开实施例任一项所述的联邦模型的生成方法训练当前本地模型,确定所述更新数据;
当前联邦模型更新模块502,用于根据所述更新数据更新所述当前联邦模型;
待训练数据下发模块503,用于向所述客户端集合下发更新后的当前联邦模型中待训练数据,以使所述客户端集合对所述更新后的待训练数据继续训练,直至所述当前联邦模型满足联合训练结束条件,根据当前训练的当前联邦模型确定目标联邦模型。
根据本公开的技术方案,通过获取待检测车牌图像的图像特征以及未遮挡车牌图像的第一标准特征和遮挡车牌图像的第二标准特征,并将第一标准特征和第二标准特征与图像特征进行比较,确定图像特征的类型,以检测待检测车牌图像的遮挡识别结果,可以避免增加新样本重新训练神经网络模型以实现对新样式的遮挡车牌进行识别,可以减少对标注遮挡车牌图像的依赖,降低车牌遮挡样本的获取难度,减少遮挡样本数据的标注成本,从而降低联邦模型的生成的成本,简化车牌遮挡的识别操作,提高车牌遮挡的识别效率,并且,减少对训练数据的依赖,可以提高对新遮挡形式的车牌图像的识别准确率,从而兼顾识别遮挡车牌的实现成本和遮挡车牌的识别准确率。
进一步的,所述当前联邦模型更新模块502,包括:教师网络模型构建单元,用于根据所述更新数据,构建教师网络模型;学生网络训练单元,用于根据教师网络模型,训练学生网络模型,确定为当前联邦模型。
进一步的,所述教师网络模型构建单元,包括:多教师网络模型构建子单元,用于根据所述更新数据,构建多教师网络模型。
进一步的,所述学生网络训练单元,包括:备选教师网络模型确定子单元,用于在各所述更新数据对应的当前本地模型的结构相同的情况下,采用联合加权平均算法确定备选教师网络模型;预测准确率比较子单元,用于对所述多教师网络模型的预测准确率和备选教师网络模型的预测准确率进行比较;目标教师网络模型筛选子单元,用于选择最高预测准确率的网络模型,作为目标教师网络模型;学生网络训练子单元,用于根据所述目标教师网络模型,训练学生网络。
上述联邦模型的生成装置可执行本公开任意实施例所提供的联邦模型的生成方法,具备执行联邦模型的生成方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。电子设备可以是客户端或服务器端。
如图9所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如联邦模型的生成方法。例如,在一些实施例中,联邦模型的生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的联邦模型的生成方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行联邦模型的生成方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。