CN114817958B - 一种基于联邦学习的模型训练方法、装置、设备及介质 - Google Patents

一种基于联邦学习的模型训练方法、装置、设备及介质 Download PDF

Info

Publication number
CN114817958B
CN114817958B CN202210433630.2A CN202210433630A CN114817958B CN 114817958 B CN114817958 B CN 114817958B CN 202210433630 A CN202210433630 A CN 202210433630A CN 114817958 B CN114817958 B CN 114817958B
Authority
CN
China
Prior art keywords
client
data
server
training
clients
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210433630.2A
Other languages
English (en)
Other versions
CN114817958A (zh
Inventor
王小伟
张旭
吴睿振
孙华锦
王凛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202210433630.2A priority Critical patent/CN114817958B/zh
Publication of CN114817958A publication Critical patent/CN114817958A/zh
Application granted granted Critical
Publication of CN114817958B publication Critical patent/CN114817958B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Abstract

本发明涉及一种基于联邦学习的模型训练方法、装置、设备及介质。该方法包括:建立全局参数模型并将全局参数模型发送给参与模型训练的各个客户端将参与模型训练的客户端划分成多个组;在客户端进行训练并将训练时使用的数据个数发送给服务器;基于数据个数计算每个客户端的加权系数并发送给客户端;使用预设加密算法对乘以加权系数后的梯度数据进行加密;基于预设算法整合同一组内各个客户端的加密数据以生成整合结果后发送给服务器;对各个组的整合结果使用预设解密算法进行解密后再求和以得到梯度加权平均值用以更新权重参数并发送给各客户端再次进行训练直至全局参数模型收敛。本发明的方案使服务器不能获取到用户模型参数保证数据安全。

Description

一种基于联邦学习的模型训练方法、装置、设备及介质
技术领域
本发明涉及数据安全保护领域,尤其涉及一种基于联邦学习的模型训练方法、装置、设备及介质。
背景技术
随着智能终端设备的快速普及,大量的个人信息数据被各种网络平台所采集。而在现实生活中,个人信息的泄露已屡见不鲜。在近年来,不仅个人对隐私数据的保密愈发关注,政府部门也相继出台了许多网络个人隐私保护和网络安全建设方面的法律法规。传统的机器学习需要先把信息都收集到中心服务器,然后再进行模型训练,客户端的隐私数据很容易遭到泄露。联邦学习作为一种分布式的机器学习模式,它不需要让数据离开本地客户端,进而对数据隐私起到一定的保护作用。在实际操作过程中,它首先由云服务器建立全局模型,并将其发送至每个客户端。然后在客户端进行模型训练,训练完成之后,客户端把本地模型参数上传到云服务器。接着由云服务器对上传的模型参数进行聚合,并计算得到新的全局模型。最后重复以上过程,直到损失函数收敛或者迭代次数达到要求。
Phong Le Trieu等人指出,共享本地梯度或者模型数据会导致隐私的泄露。为了保护数据的隐私信息,有一些学者采用了差分隐私的方法,通过对模型参数添加噪声的方式,使攻击者不能获取隐私数据信息。但是Qiang Yang等人提到恶意的服务器依然能够获取客户端的本地梯度或者模型数据,从而得到客户端的隐私信息。
Muhammad Asad等人基于非交互零知识证明的同态加密系统对联邦学习的保密性进行增强。他们的基本思路是在本地客户端对模型参数进行加密处理,然后发送到服务端,由服务端对加密后的模型参数进行聚合,接着再对聚合后的数据解密,最后再计算得到新的全局模型。事实上,在此方案中,由于云服务器具有解密功能,如果是恶意的服务器,加密后的客户端模型参数直接发送给云服务器的方式依然存在风险,服务端是能够对客户端模型参数解密的,这会导致隐私泄露。Abbass Madi等人采取的方法是所有客户端持有公钥和私钥,服务端只持有公钥,每次随机选择一部分客户端参与训练,本地客户端将加密后的数据发送给服务端后,服务端对加密后的模型参数进行聚合,聚合后的全局私密参数直接发送到客户端,由客户端对加密的全局私密参数进行解密。在此方案中,如果客户端分布比较广泛,密钥暴露的风险比较大,一旦密钥暴露,恶意的云服务器依然能够获取用户的个人隐私。另外Muhammad Asad等人使用的同态加密算法实际上是Paillier加密算法,原始的Paillier算法只能够对正整数进行加密,他们通过给参数乘以2ε将小数转化为整数,实际上他们没有描述对负数的处理,而梯度数据中会存在负数,对于此种情形并不能对负数起到保护的作用。另外Wang Rongbing等人也进行了将Paillier算法推广到实数范围内,他们采用的方法为:在加密前乘以10k,把数据转化成整数,在解密后再除以10k还原原本的实数,事实上在此论文中同样没有描述对负数的处理。
发明内容
有鉴于此,有必要针对以上技术问题,提供一种基于联邦学习的模型训练方法、装置、设备及介质。
根据本发明的第一方面,提供了一种基于联邦学习的模型训练方法,所述方法包括:
由服务器建立全局参数模型并将所述全局参数模型发送给参与模型训练的各个客户端;
由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端;
在每个客户端分别使用客户端本地数据训练各自的全局参数模型,并将训练时使用的数据个数发送给所述服务器;
由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端;
在每个客户端使用预设加密算法对乘以加权系数后的梯度数据进行加密以得到加密数据;
在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器;
由服务器对各个组的整合结果使用预设解密算法进行解密后再求和以得到梯度加权平均值,基于所述梯度加权平均值更新权重参数并将更新后的权重参数发送给各客户端;
返回再次执行所述由服务器将参与模型训练的客户端划分成多个组的步骤直至客户端的全局参数模型收敛。
在一些实施例中,所述方法还包括:
由服务器根据数据最大比特位精度和梯度数据绝对值的上界利用下述公式一至公式六生成Paillier算法的私钥和公钥,其中,所述私钥包括λ和s,所述公钥包括n,g,s;
M=M02ε 公式二;
λ=lcm(p-1,q-1) 公式三;
s=2ε 公式四;
n=pq 公式五;
gcd(L(gλmodn2),n)=1 公式六;
其中,p,q为两个大素数,ε为数据最大比特位精度为,M0为梯度数据绝对值的上界为,lcm(a,b)表示a,b的最小公倍数,gcd(a,b)表示a,b的最大公约数,如果gcd(a,b)=1称a与b互素;表示集合{0,1,…,n-1};/>表示集合/>中与n互素元素的集合;amodc读作a模c,表示a除以c的余数,a=bmodc表示a,b除以c的余数相同;如果ab=1modc,表示b是a模c的乘法逆元,记做b=a-1modc,此时a也是b模c的乘法逆元;/>表示x向下取整,也就是小于等于x的最大整数;如果/>对于集合Sn={u|u=1modn},定义Sn上的函数L为
将所述公钥发送给参与模型训练的每个客户端用以对梯度数据进行加密,将所述私钥保存在服务器本地用对每组客户端返回的加密数据进行解密。
在一些实施例中,所述预设加密算法包括:
基于所述公钥中的n,g,s和下述公式七至公式八对明文数据进行加密;
c=gm′rnmodn2 公式八;
其中,m为任意的明文,c为加密密文,且r为随机数且r<n,
所述预设解密算法包括:
基于所述私钥中的λ、s和下述公式九至公式十对密文进行解密以得到明文:
其中,c为加密密文。
在一些实施例中,所述由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端的步骤包括:
获取每个参与模型训练的客户端的性质信息,其中所述性质信息包括网络带宽信息、客户端地域信息以及客户端之间的受信任程度信息;
基于所述性质信息将网络带宽相似,和/或地域相近,和/或相互信任的客户端划分到同一组以得到多个组。
在一些实施例中,所述由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端的步骤包括:
计算所有客户端的数据个数之和;
将每个客户端的数据个数分别与所有客户端的数据个数之和的比值作为每个客户端加权系数。
在一些实施例中,所述在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器的步骤包括:
对同一组内的多个客户端进行排序;
基于所述排序由组内的第一个客户端向第二个客户端发送加密后的数据,在第二个客户端内计算两个加密数据在模n2下对应项的乘积;
基于所述排序将乘积发送给下一个客户端继续求对应项的乘积,直到发送给组内的最后一个客户端;
在组内最后一个客户端上计算倒数第二个客户端发送的乘积与最后一个客户端加密数据在模n2下对应项的乘积作为整合结果发送至服务端。
在一些实施例中,所述方法还包括:
每个客户端在每次完成训练后计算训练后全局参数模型的损失函数值并将所述损失函数值发送给服务器;
由所述服务器基于下述公式十一至公式十二计算平均损失函数值;
其中,mi为第i客户端的数据个数,客户端的数据为 是指在参数/>下数据/>的预测值的损失,l可取交叉熵、均方误差函数,用fi(W1,…,WI)表示/>hi为每个客户端对的加权系数;N为客户端个数;
计算本次训练后得到的平均损失函数值与前一次训练后得到的平均损失函数值的差值;
将所述差值的绝对值与预设值进行比较;
响应于所述差值的绝对值小于等于预设值,则确认本次训练后各客户端的全局参数模型收敛;
响应于所述差值的绝对值大于预设值,则确认本次训练后各客户端的全局参数模型不收敛。
根据本发明的第二方面,提供了一种基于联邦学习的模型训练装置,所述装置包括:
模型建立模块,配置用于由服务器建立全局参数模型并将所述全局参数模型发送给参与模型训练的各个客户端;
分组模块,配置用于由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端;
训练模块,配置用于在每个客户端分别使用客户端本地数据训练各自的全局参数模型,并将训练时使用的数据个数发送给所述服务器;
计算模块,配置用于由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端;
加密模块,配置用于在每个客户端使用预设加密算法对乘以加权系数后的梯度数据进行加密以得到加密数据;
整合模块,配置用于在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器;
更新模块,配置用于由服务器对各个组的整合结果使用预设解密算法进行解密后再求和以得到梯度加权平均值,基于所述梯度加权平均值更新权重参数并将更新后的权重参数发送给各客户端;
返回模块,配置用于返回至所述分组模块直至客户端的全局参数模型收敛。
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的基于联邦学习的模型训练方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的基于联邦学习的模型训练方法。
上述一种基于联邦学习的模型训练方法,调整了传统联邦学习过程,在训练过程中增加了客户端分组以及在组内进行初步聚合的步骤,使服务器不能获取到用户的模型参数,起到保护用户隐私的作用。
此外,本发明还提供了一种基于联邦学习的模型训练装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为发明一个实施提供的一种基于联邦学习的模型训练方法的流程示意图;
图2为本发明另一个实施例提供的某一输入法预模型的训练过程示意图;
图3为本发明一个实施例提供的一种基于联邦学习的模型训练装置的结构示意图;
图4为本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图1所示,本发明提供了一种基于联邦学习的模型训练方法100,具体来说所述方法包括以下步骤:
步骤101,由服务器建立全局参数模型并将所述全局参数模型发送给参与模型训练的各个客户端;
步骤102,由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端;
步骤103,在每个客户端分别使用客户端本地数据训练各自的全局参数模型,并将训练时使用的数据个数发送给所述服务器;
步骤104,由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端;
步骤105,在每个客户端使用预设加密算法对乘以加权系数后的梯度数据进行加密以得到加密数据;
步骤106,在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器;
步骤107,由服务器对各个组的整合结果使用预设解密算法进行解密后再求和以得到梯度加权平均值,基于所述梯度加权平均值更新权重参数并将更新后的权重参数发送给各客户端;
步骤108,返回再次执行所述由服务器将参与模型训练的客户端划分成多个组的步骤直至客户端的全局参数模型收敛。
上述一种基于联邦学习的模型训练方法,调整了传统联邦学习过程,在训练过程中增加了客户端分组以及在组内进行初步聚合的步骤,使服务器不能获取到用户的模型参数,起到保护用户隐私的作用。
在一些实施例中:本发明方法还对Paillier算法进行了扩展,使算法不仅能对正实数加密,同时也可以对负实数加密,并且算法仍然保持加法同态性,所述方法还包括:
由服务器根据数据最大比特位精度和梯度数据绝对值的上界利用下述公式一至公式六生成Paillier算法的私钥和公钥,其中,所述私钥包括λ和s,所述公钥包括n,g,s;
M=M02ε 公式二;
λ=lcm(p-1,q-1) 公式三;
s=2ε 公式四;
n=pq 公式五;
gcd(L(gλmodn2),n)=1 公式六;
其中,p,q为两个大素数,ε为数据最大比特位精度为,M0为梯度数据绝对值的上界为,lcm(a,b)表示a,b的最小公倍数,gcd(a,b)表示a,b的最大公约数,如果gcd(a,b)=1称a与b互素;表示集合{0,1,…,n-1};/>表示集合/>中与n互素元素的集合;amodc读作a模c,表示a除以c的余数,a=bmodc表示a,b除以c的余数相同;如果ab=1modc,表示b是a模c的乘法逆元,记做b=a-1modc,此时a也是b模c的乘法逆元;/>表示x向下取整,也就是小于等于x的最大整数;如果/>对于集合Sn={u|u=1modn},定义Sn上的函数L为
将所述公钥发送给参与模型训练的每个客户端用以对梯度数据进行加密,将所述私钥保存在服务器本地用对每组客户端返回的加密数据进行解密。
在一些实施例中
所述预设加密算法包括:
基于所述公钥中的n,g,s和下述公式七至公式八对明文数据进行加密;
c=gm′rnmodn2 公式八;
其中,m为任意的明文,c为加密密文,且r为随机数且r<n,
所述预设解密算法包括:
基于所述私钥中的λ、s和下述公式九至公式十对密文进行解密以得到明文:
其中,c为加密密文。
在一些实施例中,步骤102,由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端具有包括:
获取每个参与模型训练的客户端的性质信息,其中所述性质信息包括网络带宽信息、客户端地域信息以及客户端之间的受信任程度信息;
基于所述性质信息将网络带宽相似,和/或地域相近,和/或相互信任的客户端划分到同一组以得到多个组。
在一些实施中,步骤104,由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端具体包括:
计算所有客户端的数据个数之和;
将每个客户端的数据个数分别与所有客户端的数据个数之和的比值作为每个客户端加权系数。
在一些实施例中,步骤106,在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器具体包括:
对同一组内的多个客户端进行排序;
基于所述排序由组内的第一个客户端向第二个客户端发送加密后的数据,在第二个客户端内计算两个加密数据在模n2下对应项的乘积;
基于所述排序将乘积发送给下一个客户端继续求对应项的乘积,直到发送给组内的最后一个客户端;
在组内最后一个客户端上计算倒数第二个客户端发送的乘积与最后一个客户端加密数据在模n2下对应项的乘积作为整合结果发送至服务端。
在一些实施例中,所述在前述实施例基础上所述方法还包括:
每个客户端在每次完成训练后计算训练后全局参数模型的损失函数值并将所述损失函数值发送给服务器;
由所述服务器基于下述公式十一至公式十二计算平均损失函数值;
其中,mi为第i客户端的数据个数,客户端的数据为 是指在参数/>下数据/>的预测值的损失,l可取交叉熵、均方误差函数,用fi(W1,…,WI)表示/>hi为每个客户端对的加权系数;N为客户端个数;
计算本次训练后得到的平均损失函数值与前一次训练后得到的平均损失函数值的差值;
将所述差值的绝对值与预设值进行比较;
响应于所述差值的绝对值小于等于预设值,则确认本次训练后各客户端的全局参数模型收敛;
响应于所述差值的绝对值大于预设值,则确认本次训练后各客户端的全局参数模型不收敛。
在又一个实施例中,为了便于理解本发明的方案,下面以客户端为手机、计算机为例,全局参数模型为能够对用户输入进行预测的模型,不妨假设存在100个手机用户和50个计算机用户,由云服务器建立原始模型并配合各个客户端进行模型的训练;一方面,本实施例先对Paillier算法做进一步推广得到推广的Paillier加密算法,使其能够对包括负数在内的实数型数据加密,而且该算法仍然具有加法同态性。另一方面,本实施例还对联邦学习的过程作一些调整,让恶意的服务器不能获取客户端的隐私信息。其中对联邦学习过程的大概修改内容为:首先根据客户端之间的网络带宽信息、客户端的地域、客户端之间的受信任程度等信息将客户端分成若干组,在每一轮的全局模型参数求解过程中均使用推广的Paillier加密算法对本地客户端模型参数加密,最后在每组客户端之间对加密后的参数求和,接着再把求和后的参数上发给云服务器,由云服务器整合每组的模型参数和,计算得到新一轮的全局模型。由于整个过程中,服务器不能直接获取客户端的模型参数信息,从而避免了恶意服务器对客户端隐私信息的攻击。下面将分别对推广的Paillier加密算法和改进的模型训练过程进行详细说明:
第一部分:推广的Paillier加密算法:
首先对本发明中使用的符号进行解释说明:符号表示:lcm(a,b)表示a,b的最小公倍数,gcd(a,b)表示a,b的最大公约数,如果gcd(a,b)=1称a与b互素。表示集合{0,1,…,n-1}。/>表示集合/>中与n互素元素的集合。amodc读作a模c,表示a除以c的余数,a=bmodc表示a,b除以c的余数相同。如果ab=1modc,表示b是a模c的乘法逆元,记做b=a- 1modc,此时a也是b模c的乘法逆元。/>表示x向下取整,也就是小于等于x的最大整数。如果对于集合Sn={u|u=1modn},定义Sn上的函数L为
我们首先介绍传统Paillier算法
Paillier算法的内容如下:
(1)密钥生成:选择两个大素数p,q,令n=pq,λ=lcm(p-1,q-1),它们满足gcd(λ,n)=1。选择g,使其满足
gcd(L(gλmodn2),n)=1,
我们将(n,g)作为公钥,λ作为私钥。
(2)加密:对任意的选择随机数/>密文为
c=gmrnmodn2.
(3)解密:对明文为
我们用E(m)表示对明文m的加密,用D(c)表示密文c的解密。以上算法是满足加法同态的,也就是对任意的,
D(E(w1)E(w2))=w1+w2modn
所以,如果也就有D(E(w1)E(w2))=w1+w2
我们按照如下方式将Paillier算法由对正整数的加密推广到对实数型数据的加密。
假设数据的比特位精度为ε,也就是说所有的数据乘以s=2ε都可以转化为整数。数据转化为整数后,它们绝对值的上界为M。
密钥生成:选择两个大素数令n=pq>2M,λ=lcm(p-1,q-1),它们满足gcd(λ,n)=1。选择g,使其满足
gcd(L(gλmodn2),n)=1,
我们将(n,g,s)作为公钥,λ作为私钥。
加密:对于任意的明文m满足-M<ms<M,
这样以来符合基础的Paillier算法加密的条件。然后和Paillier一样选择随机数r<n,
密文为
c=gm′rnmodn2
解密:对于密文c<n2,取
然后明文为
算法的正确性很容易验证。下面我们验证算法的同态性。
假如存在满足/>并且/> 我们可以找到/>满足
其中k1,k2的值为0或1。根据Paillier算法的同态性有
其中,
也就是说当时,(m1+m2)s满足/> 此时有k3=0。当/>时,(m1+m2)s满足此时有k3=-1。所以有
D(E(m1)E(m2))=m1+m2.
满足加法同态性。以上同态性结论很容易推广到多个数据的相加。假如存在满足/>并且有/> 可以得到
D(E(m1)…E(ml))=m1+…+ml
容易看出以上算法可以对负实数进行加密,因此我们可以利用它对联邦学习中的梯度或者权重参数加密,起到隐私保护的作用。
第二部分:改进的模型训练过程;请参照图2所示,本实施例提供了某一输入法预模型的训练过程,具体包括:
步骤1、由服务器建立全局参数模型,并将模型发送给每个客户端。
联邦学习的主要过程是直接在客户端使用本地数据对模型进行训练,由服务器对客户端的训练结果进行聚合,得到新一轮的模型参数,然后重复此过程直到模型收敛,最终求解出全局参数模型。如果模型的权重参数一共有I个,设这些模型参数为确定模型的过程也就是确定模型参数/>的过程。
我们使用损失函数来评价模型好坏的标准,损失函数值越小,说明在当前的训练数据下,预测值与真实值的误差越小。常见的损失函数有均方误差损失函数、交叉熵损失函数、softmax损失函数等。损失函数对模型参数求偏导数,得到的数据即为梯度信息。
步骤2、由云端服务器生成密钥。生成的公钥发送到要参与训练的客户端,主要用于对要上传的模型参数信息(梯度或者权重,我们这里选用梯度)加密。私钥保存在服务器,用于解密聚合后的模型参数。
设系统中允许的数据最大比特位精度为ε,令s=2ε,梯度数据绝对值的上界为M0(也就是在每个训练过程中,都有V1,…,VI<M0),令M=M02ε。根据扩展的Paillier算法生成密钥,其中选择的大素数p,q满足云服务器自己保存私钥λ和s,公钥{n,g,s}发送给参与训练的客户端。
步骤3、服务器根据客户端之间的网络带宽、客户端的地域、客户端之间的受信任程度等信息对客户端分组,分组的目的是为了后续在每个组内对加密后的梯度信息进行预处理,保证服务器不会直接接收到每个客户端的隐私数据。
另外,也可以把客户端分组变成一个随机事件,并且在每一轮训练中都进行一次。
步骤4、每个客户端使用随机梯度下降法(stochastic gradient descent,简称SGD)将本地数据代入服务器发送的全局参数模型中,计算得到本地梯度信息和本地损失函数,将客户端的数据个数和本地损失函数值发送到服务器。
假设第i客户端的数据个数为mi,此客户端的数据为本地损失函数定义为
其中是指在参数/>下数据/>的预测值的损失,l可取交叉熵、均方误差等函数。我们也用fi(W1,…,WI)表示/>
本地损失函数对模型参数求偏导数得到本地梯度数据,也就是
其中δ取一个特别小的数值。
步骤5、服务器计算每个客户端的加权系数以及平均损失函数。并根据平均损失函数的收敛性判断是否终止流程。如果平均损失函数收敛,那么终止流程,并输出当前模型,否则,服务器将加权系数发送至每个客户端,并继续后面的流程。
此加权系数有两个作用:求损失函数加权平均值和求梯度参数加权平均值。我们根据客户端数据的个数大小设置它的加权系数。也就是说客户端数据个数占数据总个数的比例越大,其对最终结果的影响也越大。设一共有N个客户端,每个客户端的数据个数分别为m1,…,mN,所有客户端的数据个数和为m0=m1+…+mN。那么第i个客户端的加权系数为hi=mi/m0
服务器接收客户端发送的本地损失函数后求出平均损失函数
假设本轮求出的平均损失函数的结果为E1,上一轮的平均损失函数为E0(如果本轮就是第一轮,可以把上一轮的平均损失函数设置为一个特别大的数字),通过判断与上一轮的平均损失函数的差别,也就是|E1-E0|是否比较小,判断平均损失函数是否收敛,如果收敛,则终止流程,输出当前模型,否则服务器将加权系数发送至每个客户端后继续走下面的流程。当然,如果迭代次数达到要求时也终止流程。
步骤6、客户端使用扩展的Paillier算法对乘以加权系数后的梯度数据加密,并且在每个组内求加密后数据在模n2下的乘积,然后将结果发送到服务器。
设某一组一共有J个客户端,组内每个客户端在第5步中求出的梯度数据分别为对其乘以加权系数然后再加密得到数据记为由组内的第一个客户端向第二个客户端发送加密后的数据,在第二个客户端内计算/>在模n2下对应项的乘积,也就是(E(h1v11)E(h2v21)modn2,…,E(h1v1I)E(h2v2I)modn2)。然后将此数据发送给下一个客户端,继续求对应项的乘积。直到发送给组内的最后一个客户端,在组内最后一个客户端处计算得到结果(E(h1v11)…E(hJvJ1)modn2,…,E(h1v1I)…E(hJvJI)modn2),最后由它将结果发送至服务端。
步骤7、服务器获取每一组客户端的计算结果,并对它们解密,然后对解密后的结果求和,得到梯度的加权平均值。
仍然以第6步中的那一组客户端进行说明。在每个客户端求出hivij,1≤i≤I,1≤j≤J,hivij的比特位精度在ε范围内,并且
|h1vi1+…+hJviJ|≤h1|vi1|+…+hJ|viJ|<(h1+…+hJ)M0≤M0,
也就是|h1vi1+…+hJviJ|s<M,符合扩展的Paillier算法加法同态性的条件,由以上说明的算法的加法同态性可以得到,对其中某一组客户端的计算结果(E(h1v11)…E(hJvJ1)modn2,…,E(h1v1I)…E(hJvJI)modn2)解密后得到的数据结果为(h1v11+…+hJvJ1,…,h1v1I+…+hJvJI),所以对所有客户端组内计算数据解密后求和得到的结果是所有客户端梯度的加权平均值。
步骤8、在服务器端,使用梯度加权平均值更新权重参数,并将更新的权重参数发送给客户端,然后重复4-8的过程,直到满足第5步中的流程的终止条件。
假设第i个权重参数Wi对应的梯度平均值为mean(Vi),设置的更新步长为ηi,更新后的权重参数为
如果要进一步增加安全性,可以要求在每轮计算过程的客户端分组不同,也就是我们重复步骤1至步骤8的过程,直到满足步骤5中的流程的终止条件。
在以上算法过程中,我们利用同态加密算法,在小组内使用密文计算了梯度数据的线性组合,使服务器不能直接获取每个客户端具体的梯度数据,因而对客户端的隐私信息起到了很好的保护作用。需要说明是:以上过程中,我们使用的聚合算法是梯度平均,作为替换在具体实施过程中还可以使用模型平均。
在又一个实施例中,请结合图3所示,本发明还提供了一种基于联邦学习的模型训练装置200,所述装置包括:
模型建立模块201,配置用于由服务器建立全局参数模型并将所述全局参数模型发送给参与模型训练的各个客户端;
分组模块201,配置用于由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端;
训练模块203,配置用于在每个客户端分别使用客户端本地数据训练各自的全局参数模型,并将训练时使用的数据个数发送给所述服务器;
计算模块204,配置用于由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端;
加密模块205,配置用于在每个客户端使用预设加密算法对乘以加权系数后的梯度数据进行加密以得到加密数据;
整合模块206,配置用于在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器;
更新模块207,配置用于由服务器对各个组的整合结果使用预设解密算法进行解密后再求和以得到梯度加权平均值,基于所述梯度加权平均值更新权重参数并将更新后的权重参数发送给各客户端;
返回模块208,配置用于返回至所述分组模块202直至客户端的全局参数模型收敛。
上述一种基于联邦学习的模型训练装置,调整了传统联邦学习过程,在训练过程中增加了客户端分组以及在组内进行初步聚合的步骤,使服务器不能获取到用户的模型参数,起到保护用户隐私的作用。
需要说明的是,关于基于联邦学习的模型训练装置的具体限定可以参见上文中对基于联邦学习的模型训练方法的限定,在此不再赘述。上述基于联邦学习的模型训练装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的基于联邦学习的模型训练方法,具体来说,所述方法包括以下步骤:
由服务器建立全局参数模型并将所述全局参数模型发送给参与模型训练的各个客户端;
由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端;
在每个客户端分别使用客户端本地数据训练各自的全局参数模型,并将训练时使用的数据个数发送给所述服务器;
由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端;
在每个客户端使用预设加密算法对乘以加权系数后的梯度数据进行加密以得到加密数据;
在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器;
由服务器对各个组的整合结果使用预设解密算法进行解密后再求和以得到梯度加权平均值,基于所述梯度加权平均值更新权重参数并将更新后的权重参数发送给各客户端;
返回再次执行所述由服务器将参与模型训练的客户端划分成多个组的步骤直至客户端的全局参数模型收敛。
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的基于联邦学习的模型训练方法,具体来说,包括执行以下步骤:
由服务器建立全局参数模型并将所述全局参数模型发送给参与模型训练的各个客户端;
由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端;
在每个客户端分别使用客户端本地数据训练各自的全局参数模型,并将训练时使用的数据个数发送给所述服务器;
由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端;
在每个客户端使用预设加密算法对乘以加权系数后的梯度数据进行加密以得到加密数据;
在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器;
由服务器对各个组的整合结果使用预设解密算法进行解密后再求和以得到梯度加权平均值,基于所述梯度加权平均值更新权重参数并将更新后的权重参数发送给各客户端;
返回再次执行所述由服务器将参与模型训练的客户端划分成多个组的步骤直至客户端的全局参数模型收敛。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于联邦学习的模型训练方法,其特征在于,所述方法包括:
由服务器建立全局参数模型并将所述全局参数模型发送给参与模型训练的各个客户端;
由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端;
在每个客户端分别使用客户端本地数据训练各自的全局参数模型,并将训练时使用的数据个数发送给所述服务器;
由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端;
在每个客户端使用预设加密算法对乘以加权系数后的梯度数据进行加密以得到加密数据;
在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器;
由服务器对各个组的整合结果使用预设解密算法进行解密后再求和以得到梯度加权平均值,基于所述梯度加权平均值更新权重参数并将更新后的权重参数发送给各客户端;
返回再次执行所述由服务器将参与模型训练的客户端划分成多个组的步骤直至客户端的全局参数模型收敛。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
由服务器根据数据最大比特位精度和梯度数据绝对值的上界利用下述公式一至公式六生成Paillier算法的私钥和公钥,其中,所述私钥包括λ和s,所述公钥包括n,g,s;
M=M02ε 公式二;
λ=lcm(p-1,q-1) 公式三;
s=2ε 公式四;
n=pq 公式五;
gcd(L(gλmodn2),n)=1 公式六;
其中,p,q为两个大素数,ε为数据最大比特位精度为,M0为梯度数据绝对值的上界为,lcm(a,b)表示a,b的最小公倍数,gcd(a,b)表示a,b的最大公约数,如果gcd(a,b)=1称a与b互素;表示集合{0,1,…,n-1};/>表示集合/>中与n互素元素的集合;amodc读作a模c,表示a除以c的余数,a=bmodc表示a,b除以c的余数相同;如果ab=1modc,表示b是a模c的乘法逆元,记做b=a-1modc,此时a也是b模c的乘法逆元;/>表示x向下取整,也就是小于等于x的最大整数;如果/>对于集合Sn={u|u=1modn},定义Sn上的函数L为/>
将所述公钥发送给参与模型训练的每个客户端用以对梯度数据进行加密,将所述私钥保存在服务器本地用对每组客户端返回的加密数据进行解密。
3.根据权利要求2所述的方法,其特征在于,
所述预设加密算法包括:
基于所述公钥中的n,g,s和下述公式七至公式八对明文数据进行加密;
c=gm′rnmodn2 公式八;
其中,m为任意的明文,c为加密密文,且r为随机数且r<n,
所述预设解密算法包括:
基于所述私钥中的λ、s和下述公式九至公式十对密文进行解密以得到明文:
其中,c为加密密文。
4.根据权利要求1或3所述的方法,其特征在于,所述由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端的步骤包括:
获取每个参与模型训练的客户端的性质信息,其中所述性质信息包括网络带宽信息、客户端地域信息以及客户端之间的受信任程度信息;
基于所述性质信息将网络带宽相似,和/或地域相近,和/或相互信任的客户端划分到同一组以得到多个组。
5.根据权利要求1或3所述的方法,其特征字在于,所述由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端的步骤包括:
计算所有客户端的数据个数之和;
将每个客户端的数据个数分别与所有客户端的数据个数之和的比值作为每个客户端加权系数。
6.根据权利要求5所述的方法,其特征在于,所述在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器的步骤包括:
对同一组内的多个客户端进行排序;
基于所述排序由组内的第一个客户端向第二个客户端发送加密后的数据,在第二个客户端内计算两个加密数据在模n2下对应项的乘积;
基于所述排序将乘积发送给下一个客户端继续求对应项的乘积,直到发送给组内的最后一个客户端;
在组内最后一个客户端上计算倒数第二个客户端发送的乘积与最后一个客户端加密数据在模n2下对应项的乘积作为整合结果发送至服务端。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
每个客户端在每次完成训练后计算训练后全局参数模型的损失函数值并将所述损失函数值发送给服务器;
由所述服务器基于下述公式十一至公式十二计算平均损失函数值;
其中,mi为第i客户端的数据个数,客户端的数据为 是指在参数/>下数据/>的预测值的损失,l可取交叉熵、均方误差函数,用fi(W1,…,WI)表示/>hi为每个客户端对的加权系数;N为客户端个数;
计算本次训练后得到的平均损失函数值与前一次训练后得到的平均损失函数值的差值;
将所述差值的绝对值与预设值进行比较;
响应于所述差值的绝对值小于等于预设值,则确认本次训练后各客户端的全局参数模型收敛;
响应于所述差值的绝对值大于预设值,则确认本次训练后各客户端的全局参数模型不收敛。
8.一种基于联邦学习的模型训练装置,其特征在于,所述装置包括:
模型建立模块,配置用于由服务器建立全局参数模型并将所述全局参数模型发送给参与模型训练的各个客户端;
分组模块,配置用于由服务器将参与模型训练的客户端划分成多个组,其中每个组均包括多个客户端;
训练模块,配置用于在每个客户端分别使用客户端本地数据训练各自的全局参数模型,并将训练时使用的数据个数发送给所述服务器;
计算模块,配置用于由所述服务器基于各个客户端的所述数据个数计算每个客户端的加权系数并发送给对应的客户端;
加密模块,配置用于在每个客户端使用预设加密算法对乘以加权系数后的梯度数据进行加密以得到加密数据;
整合模块,配置用于在客户端上基于预设算法整合同一组内各个客户端的加密数据以生成与每个组对应的整合结果后发送给服务器;
更新模块,配置用于由服务器对各个组的整合结果使用预设解密算法进行解密后再求和以得到梯度加权平均值,基于所述梯度加权平均值更新权重参数并将更新后的权重参数发送给各客户端;
返回模块,配置用于返回至所述分组模块直至客户端的全局参数模型收敛。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1-7任意一项所述的方法。
CN202210433630.2A 2022-04-24 2022-04-24 一种基于联邦学习的模型训练方法、装置、设备及介质 Active CN114817958B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210433630.2A CN114817958B (zh) 2022-04-24 2022-04-24 一种基于联邦学习的模型训练方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210433630.2A CN114817958B (zh) 2022-04-24 2022-04-24 一种基于联邦学习的模型训练方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN114817958A CN114817958A (zh) 2022-07-29
CN114817958B true CN114817958B (zh) 2024-03-29

Family

ID=82506729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210433630.2A Active CN114817958B (zh) 2022-04-24 2022-04-24 一种基于联邦学习的模型训练方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114817958B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115664632B (zh) * 2022-11-10 2023-03-21 苏州浪潮智能科技有限公司 一种基于同态加密的预测模型训练方法、系统、设备及介质
CN115878995B (zh) * 2022-11-17 2024-04-19 营口巨成教学科技开发有限公司 一种胸外按压动作规范性判别系统及方法
CN116151370B (zh) * 2023-04-24 2023-07-21 西南石油大学 一种模型参数优化选择系统
CN117811722A (zh) * 2024-03-01 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 全局参数模型构建方法、秘钥生成方法、装置及服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110572253A (zh) * 2019-09-16 2019-12-13 济南大学 一种联邦学习训练数据隐私性增强方法及系统
CN112149160A (zh) * 2020-08-28 2020-12-29 山东大学 基于同态伪随机数的联邦学习隐私保护方法及系统
WO2021120676A1 (zh) * 2020-06-30 2021-06-24 平安科技(深圳)有限公司 联邦学习网络下的模型训练方法及其相关设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110572253A (zh) * 2019-09-16 2019-12-13 济南大学 一种联邦学习训练数据隐私性增强方法及系统
WO2021120676A1 (zh) * 2020-06-30 2021-06-24 平安科技(深圳)有限公司 联邦学习网络下的模型训练方法及其相关设备
CN112149160A (zh) * 2020-08-28 2020-12-29 山东大学 基于同态伪随机数的联邦学习隐私保护方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于秘密分享和梯度选择的高效安全联邦学习;董业;侯炜;陈小军;曾帅;;计算机研究与发展;20201031(第10期);第2241-2250页 *

Also Published As

Publication number Publication date
CN114817958A (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN114817958B (zh) 一种基于联邦学习的模型训练方法、装置、设备及介质
Alexandru et al. Cloud-based quadratic optimization with partially homomorphic encryption
Wang et al. Cryptanalysis of a symmetric fully homomorphic encryption scheme
CN110999209B (zh) 一种用于通信的装置、方法和非瞬态计算机可读介质
EP3384628B1 (en) Adding privacy to standard credentials
US10911235B2 (en) Method for verifying information
EP3566389B1 (en) Distributed privacy-preserving verifiable computation
EP2965462A1 (en) Privacy-preserving ridge regression using partially homomorphic encryption and masks
CN110826089B (zh) 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
JP7147073B2 (ja) より効率的なポスト量子署名
EP3566384B1 (en) Pinocchio / trinocchio on authenticated data
Kaaniche et al. A novel zero-knowledge scheme for proof of data possession in cloud storage applications
Diffie et al. New Directions in cryptography (1976)
CN116167088A (zh) 一种两方联邦学习中进行隐私保护的方法、系统及终端
Battarbee et al. Cryptanalysis of semidirect product key exchange using matrices over non-commutative rings
CN114640436A (zh) 一种基于隐私保护的分组统计参数计算方法、装置
CN104144057B (zh) 一种生成安全解密密钥的cp‑abe方法
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
CN117134945A (zh) 数据处理方法、系统、装置、计算机设备及存储介质
CN116681141A (zh) 隐私保护的联邦学习方法、终端及存储介质
Wang et al. Dynamic threshold changeable multi‐policy secret sharing scheme
Yan et al. Identity‐based signcryption from lattices
CN115865302A (zh) 一种具有隐私保护属性的多方矩阵乘法计算方法
Zhang et al. Privacy‐friendly weighted‐reputation aggregation protocols against malicious adversaries in cloud services

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant