安全的分布式联邦深度学习方法
文献发布时间:2023-06-19 09:33:52
技术领域
本说明书一个或多个实施例涉及到区块链与人工智能交叉的技术领域,具体而言,涉及一种安全的分布式联邦深度学习方法。
背景技术
联邦学习是一种由多个参与方共同训练一个深度学习网络的深度学习方法,在每一轮的深度学习网络的训练中,各个参与方获得相同的初始模型并利用本地数据对模型进行训练,再将训练好的模型发送至聚合方进行聚合,聚合方又将聚合好的模型发送至参与方进行下一轮的训练。即在联邦学习的过程中,各个参与方之间不会共享训练数据。
差分隐私是密码学中的一种手段,是一种被广泛认可的严格的隐私保护模型。在深度神经网络的梯度训练结果中使用添加噪声的手段实现差分隐私,使得攻击者无法判断某个具体的训练数据是否被用来训练神经网络,从而防止攻击者从深度神经网络的梯度训练结果中恢复原始训练数据。
不加安全配置的联邦学习算法在共享梯度数据时有泄露隐私的风险,传统的技术方案中对此的处理方法为:对原始梯度数据施加差分隐私噪声,由一个半诚实的中央服务器负责模型的聚合。传统技术方案所面临的问题有:
1、实际环境中不一定存在半诚实的服务器,且半诚实的服务器也可能因为各种攻击而单点失效或进行不诚实的行为;
2、目前主流的基于深度神经网络的差分隐私噪声的实现,例如dp-sgd,都已证明,重复的对同一训练数据添加差分隐私噪声会降低差分隐私的保护程度,且降低的程度可以被估算,因此向半诚实的服务器暴露加差分噪声的梯度仍有数据泄露的风险。
现有技术方案中的联邦学习方法有实际工作环境中半诚实中央服务器不可靠和数据传递过程中存在隐私风险两个问题。
发明内容
有鉴于此,本说明书一个或多个实施例的目的在于提出一种安全的分布式联邦学习方法,用来解决现有技术方案中半诚实服务器不可靠和数据传递过程存在隐私风险两个问题。
基于上述目的,本说明书一个或多个实施例提供了一种安全的分布式联邦深度学习方法,包括:
所有参与方加入到区块链中;
选择一个所述参与方作为学习组织者,并使所述学习组织者生成初始模型和初始参数,分发给各个所述参与方;
将所述参与方依照智能合约划分为聚合节点和普通节点,使用分布式联邦深度学习方法进行所述初始模型的训练,在训练结束时得到符合要求的模型。
其中,第一轮训练中,所述普通节点对接收到的所述初始模型进行训练;后续训练中,所述普通节点对接收到的全局模型进行训练;所述全局模型为前一轮训练中,所述聚合节点根据全部所述普通节点发送的训练结果聚合后得到的。
所述普通节点对接收到的所述全局模型进行效果评估,若效果达到预期,则训练结束并得到所述符合要求的模型。
训练轮数达到设定的阈值,且当前所述普通节点接收到的所述全局模型的效果仍未达到预期时,则将所述参与方重新划分为新普通节点和新聚合节点,并将所述全局模型传送至所述新普通节点进行训练。
基于同一发明构思,本说明书一个或多个实施例还提供了一种安全的分布式联邦深度学习方法实现装置,包括:
模型初始化模块,负责生成所述初始模型和所述初始参数,将所述初始模型和所述初始参数分发;
节点划分模块,负责将所述参与方划分为所述普通节点和所述聚合节点;
模型训练模块,负责对所述初始模型进行训练直到所述全局模型效果达到预期要求,输出所述符合要求的模型。
基于同一发明构思,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的方法。
从上面所述可以看出,本说明书一个或多个实施例提供的安全的分布式联邦深度学习方法,在应用场景中的有益作用如下:
该方法在传统技术方案的基础上,采用区块链为所有参与到学习过程的参与方维护一个最终一致的、不可篡改的、可以动态加入和退出的、分布式的数据库。
使用超级账本的私有数据结构来实现数据隐私性和可存证性的平衡,并且保证网络中的大多数节点不会因为区块链的引入而产生过大的时间与空间成本。
使用智能合约来自动化的控制学习进程。
使用半同态加密对已经添加过差分隐私噪声的数据再次进行加密,提高了安全性。
相较于现有方法,本方法不假设系统中存在半诚实第三方,是一种更加安全实用的安全联邦学习系统。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书所述安全的分布式联邦深度学习方法的工作流程示意图;
图2为本说明书一个或多个实施例的模型训练流程图;
图3为本说明书一个或多个实施例中普通节点的工作流程图;
图4为本说明书一个或多个实施例中聚合节点的工作流程图;
图5为本说明书一个或多个实施例的安全的分布式联邦深度学习方法实现装置结构示意图;
图6为本说明书一个或多个实施例的电子设备结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
如背景技术部分所述,现有的联邦深度学习方法还存在问题。申请人在实现本公开的过程中发现,传统的联邦深度学习方法中采用半诚实的中央服务器进行模型的聚合,仅对原始梯度数据施加差分隐私噪声加密,但此类方案会面临如下问题:实际环境中不一定存在半诚实的服务器,且半诚实的服务器也可能因为各种攻击而单点失效或进行不诚实的行为;目前主流的基于深度神经网络的差分隐私噪声的实现,已证明,重复的对同一训练数据添加差分隐私噪声会降低差分隐私的保护程度,且降低的程度可以被估算,因此向半诚实的服务器暴露加差分噪声的梯度仍有数据泄露的风险。这代表传统技术方案对于隐私数据的保护力度不够强。
有鉴于此,本说明书一个或多个实施例提供了一种安全的分布式联邦深度学习方法,简要的步骤如图1所示。具体的,所有参与联邦深度学习的参与方加入到超级账本中,超级账本为一种应用广泛的区块链系统。然后,选择一个链上的参与方进行模型初始化,得到初始模型和初始参数,并将其分发给链上的剩余参与方。接着,依照智能合约将所有参与方划分为聚合节点和普通节点,普通节点进型初始模型和全局模型的训练并将训练结果传送给聚合节点,聚合节点负责将训练结果聚合得到全局模型并将全局模型传送给普通节点。此外,普通节点接收到全局模型后要对其效果进行验证,效果达到预设要求后即可停止训练并输出符合要求的模型作为训练结果,否则就继续训练,普通节点和聚合节点在训练进行一定轮数之后会重新划分。
可见,本说明书一个或多个实施例的安全的分布式联邦学习方法,基于区块链技术和智能合约技术,将训练结果的聚合放到的分散的聚合节点中,聚合节点并不是固定的参与方,而是随着训练的过程定期轮换,有效的避免了半诚实中央服务器的弊端,提高了隐私数据的保护力度。
本说明书一个或多个实施例所描述的安全的分布式联邦深度学习方法应用在跨域异常流量识别场景中异常流量识别模型的训练中。
在异常流量识别中,由于用于训练模型的数据集发布频率慢,且未考虑勒索软件、蠕虫、木马等常见的攻击,故使用此类数据集训练的模型很难应对真实网络环境下复杂的攻击流量。任何一个网络域的管理员都难以标注足够的高质量数据进行训练,且对于任何单一的网络域而言,其采集的流量也无法准确的发现未曾见过的攻击;并且,由于网络流量可能泄露域内的敏感信息和用户数据,因此多个网络域之间也不能汇聚其数据集。联邦学习可以在不获取原始数据的情况下,由多方共同训练模型。
以下,通过具体的实施例来详细说明本说明书一个或多个实施例的技术方案。
参考图2,本说明书一个或多个实施例的安全的分布式联邦深度学习方法,包括以下步骤:
步骤S201、参与方加入区块链。
本步骤中,参与方加入的区块链为基于联盟链技术的超级账本,该超级账本预设有准入机制,起到对想要加入联邦深度学习的新参与方进行资质审核的作用,只有通过了准入机制的参与方才能够继续在后续的步骤中发挥作用。
本实施例中,联邦深度学习的参与方为若干个独立的网络域。当有新参与方想要加入区块链时,需要由已有的参与方在线下对新参与方进行身份验证,确认其身份有效、未以其他身份参加过联邦学习系统、以及能产生可靠的标签数据以训练网络模型。系统中已有的参与方为新参与方做出安全背书,并记录背书结果至超级账本上。当系统中有超过10%的参与方做出安全背书、或认可其他参与方做出的安全背书后,由超级账本中的CA节点为其颁发证书。新参与方通过证书创建一个超级账本节点,并加入超级账本。
步骤S202、选择一个参与方作为学习组织者,学习组织者生成初始模型和初始参数,并分发给各个参与方。
本步骤中,在步骤S201中所有参与方即加入超级账本的所有网络域中选择一个作为学习组织者,该学习组织者生成一个初始模型N,并生成模型的初始参数,包括学习率l,学习率衰减l
步骤S203、将参与方依照智能合约划分为聚合节点和普通节点,开始联邦深度学习。
本步骤中,将包括学习组织者在内的所有参与方划分为聚合节点和普通节点后,普通节点在超级账本中划分出仅对所有普通节点开放读写的第一私有数据集,由普通节点协商得出同态加密公私钥,将该公私钥存入第一私有数据集,其哈希值存入公共数据集;聚合节点在超级账本中划分出仅对所有聚合节点开放读写的第二私有数据集,聚合节点上传聚合链码至第二私有数据集,并将其哈希值存入公共数据集。普通节点利用接收到的初始模型和初始参数开始进行联邦深度学习的第一轮训练。
任意普通节点均生成本轮同态加密公私钥,并写入第一私有数据集,公私钥数据的哈希值将上传到公共数据集中接受存证。
其他普通节点对密钥进行有效性确认,并执行投票,最先由超过50%的在线普通节点确认有效性的密钥,即成为本轮同态加密密钥。
步骤S204、普通节点训练初始模型或全局模型并将训练结果传送至聚合节点,聚合节点聚合接收到的训练结果得到全局模型并将全局模型传送至普通节点。
本步骤中,第一轮训练中,普通节点对初始模型利用本地数据进行训练,得到的训练结果经过添加差分隐私噪声和同态加密公钥的加密后传送至聚合节点。聚合节点接收到训练结果后将训练结果存入第二私有数据集,其哈希值存入公共数据集。聚合节点依照聚合链码对训练结果进行聚合后得到全局模型,全局模型也存放在第二私有数据集中并把哈希值存入公共数据集。最后聚合节点将全局模型通过非区块链的方法传送给普通节点。
第二私有数据集中保存的全局模型和训练结果仅保存有限轮,之后删除,但公共数据集上的存证信息一直保留,在保护了数据存证特性的同时,仅引入了很小的存储负担。
后续的训练中,普通节点对接收到的全局模型使用同态加密私钥解密后,使用解密得到的解密模型进行后续的步骤。
普通节点训练模型时使用的本地数据为该网络域的管理员在本网络域采集到的流量数据。
由同态加密的特性可得,同态加密是密码学领域的一个概念,即将某数据先进行数学运算后再同态加密得到的结果,与将某数据先同态加密再进行数学运算得到的结果相同。如果一个同态加密算法支持加减乘除运算,那么这种同态加密算法被称为全同态加密;如果一个同态加密算法仅支持部分运算,例如加和乘,那么这种同态加密算法被称为半同态加密。
一般来说,相比于半同态加密,全同态加密更耗时且加密后的数据会变得更庞大。本文中指的同态加密,是一种仅支持加和乘运算的,轻量级的半同态加密。
步骤S205、普通节点验证全局模型效果,判断是否终止学习。
本步骤中,普通节点计算接收到的全局模型的哈希值与存放在公共数据集中的哈希值对比,该操作的目的为验证接收到的全局模型的完整性。验证完毕后使用同态加密私钥对全局模型进行解密,使用本地数据验证解密得到的模型是否符合预设要求,并判断下一步骤应当如何操作。
步骤S206、结束学习并输出结果。
本步骤中,在步骤S205中普通节点通过本地数据的验证发现解密得到的模型符合预设要求,本次联邦深度学习的任务完成,可以结束训练并输出符合预设要求的模型作为联邦深度学习的成果,本次联邦深度学习的成果即为异常流量识别模型。
步骤S207、判断学习轮数是否达到阈值。
本步骤中,步骤S205中普通节点利用本地数据对解密得到的模型进行验证,其效果没有达到预设的要求。由智能合约判断学习轮数是否达到设定的阈值,达到阈值则转回步骤S203,依照智能合约重新划分普通节点和聚合节点,并继续进行模型的训练;没有达到阈值则转回步骤S204,由普通节点利用本地数据继续训练模型。
作为一个可选的实施例,参考图3,对前述实施例中的步骤S204中的普通节点,还可以遵循以下工作步骤:
S301、普通节点接收初始模型,利用本地数据训练初始模型;
S302、普通节点对训练结果添加差分隐私噪声,然后使用同态加密公钥加密,传送给聚合节点;
S303、普通节点接收由聚合节点聚合得到的全局模型;
S304、普通节点验证全局模型的完整性,然后使用同态加密私钥解密全局模型并验证得到的解密结果是否符合要求;
S305、解密结果符合要求则输出符合要求的模型,不符合要求则使用解密结果继续训练。
作为一个可选的实施例,参考图4,对前述实施例中的步骤S204中的聚合节点,还可以遵循以下工作步骤:
S401、聚合节点接收到来自所有普通节点的训练结果;
S402、聚合节点将训练结果存放至第二私有数据集,将训练结果的哈希值存放至公共数据集;
S403、聚合节点执行聚合操作,得到全局模型;
S404、聚合节点将全局模型存放至第二私有数据集,将全局模型的哈希值存放至公共数据集;
S405、聚合节点将全局模型传送至普通节点。
在整个联邦深度学习过程中,训练结果由普通节点传送至聚合节点,全局模型由聚合节点传送至普通节点均不通过区块链进行选择链上存证,链下发送的机制;避免链上发送模型时由于区块链的不可篡改性导致的区块链数据膨胀,以及区块链的公开性导致的隐私泄露。
需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,本守命书一个或多个实施例还提供了一种安全的分布式联邦深度学习方法的实现装置。参考图5,所述联邦深度学习方法的实现装置,包括:
模型初始化模块501,其功能为在参与方加入到超级帐本后选出一个参与方作为学习组织者,由学习组织者生成初始模型和初始参数,并将其分发给其余参与方;
节点划分模块502,其功能为在联邦深度学习开始前将所有参与方划分为普通节点和聚合节点,在训练的轮数达到设定的阈值后,重新划分出聚合节点和普通节点;
模型训练模块503,其功能为对初始模型进行训练,直至得出符合预设要求的模型。
作为一个可选的实施例,所述模型训练模块503,包括聚合节点和普通节点;第一轮训练时,普通节点利用本地数据训练初始模型后对训练结果添加差分隐私噪声,然后进行同态加密并将其传送至聚合节点,聚合节点将接收到的训练结果依照聚合链码聚合后得到全局模型并传送至普通节点;普通节点接收到全局模型后使用同态加密私钥解密得到解密模型,使用本地数据验证解密模型的效果,根据效果是否达到预设要求判断是否终止训练。达到要求则终止训练并将解密模型作为符合预设要求的模型输出,未达到要求则判断学习轮数是否达到预设的阈值,达到阈值则重新划分聚合节点和普通节点,由新的普通节点继续训练,未达到阈值则直接继续训练。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一实施例所述的安全的分布式联邦深度学习方法。
图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
- 安全的分布式联邦深度学习方法
- 分布式深度神经网络的分层联邦学习方法及装置