一种基于区块链和可信执行环境的联邦学习方法及系统转让专利

申请号 : CN202111416453.9

文献号 : CN113837761B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐蕾陆鑫肖尧张子剑祝烈煌

申请人 : 北京理工大学

摘要 :

本发明涉及一种基于区块链和可信执行环境的联邦学习方法及系统,属于人工智能机器学习技术领域。本发明结合区块链和可信执行环境技术,在任务征集阶段,任务所有者在区块链网络广播发起众包模型训练任务。收到任务后,满足要求的节点申请加入参与者合约,任务发布者从所有申请者中随机选择满足训练要求数目的参与者并下发任务。被选中的参与者在本地对模型进行训练,同时,在自己的TEE环境中,通过对比模型更新的哈希值是否一致生成模型训练的正确性证明。当完成所有模型训练更新后,参与者将更新的模型和证明发送至聚合合约进行模型聚合和验证,验证通过后向参与节点发放相应奖励。本发明实现了高置信度验证,解决了对训练参与者的不可信问题。

权利要求 :

1.一种基于区块链和可信执行环境的联邦学习方法,其特征在于,包括以下步骤:步骤1:征集任务;

在任务开始前,任务发布节点首先拟定任务征集合约,并设置对合格参与者的具体要求;之后,任务发布节点发布合约征集参与者;

步骤2:参与节点申请加入;

步骤3:任务发布节点选择参与者;

步骤4:训练本地模型,生成模型更新,方法如下;

参与节点 下载获取最新的全局模型 ,在当前模型上采用深度神经网络模型和训练数据data,在本地执行局部训练;通过迭代运算和模型更新,最终完成模型训练,生成模型更新 ,t表示学习的轮数;

步骤5:参与节点调用可信执行环境TEE内的程序,生成证明,方法如下:参与节点 在本地TEE环境中运行算法 ,为参与节点完成模型更新后通过调用TEE生成的证明;算法随机选择训练轮次,验证这些轮次的模型更新训练执行正确性;其中, 表示 TEE的私钥;

参与者在每轮训练结束时,对所有模型参数 进行哈希运算得到消息 ,并在所有训练轮结束时向TEE提交消息 ;

当TEE随机请求检查一轮训练结果时,首先输入模型参数、哈希值和训练数据;然后TEE检查这些参数是否与承诺一致,并使用相应数据和输入参数执行训练,将其输出模型参数的哈希值与传入的哈希值 进行比较;

如果 ,则验证通过,TEE给出正确性证明;如果所有随机选择的训练轮次均验证成功,则认为参与者诚实地执行了所有训练轮次,否则判定训练参与者未诚实进行训练,生成模型不可信,不能用于模型聚合;

最后,参与节点进行最后一轮模型参数验证,检查承诺消息,计算模型更新,即,最后一个输出模型和全局模型之间所有参数变化的向量;

在生成证明过程中,TEE生成随机函数集 以生成检查点,以 代表要检查的训练轮次, 为本地训练数据, 为训练模型, ,表示模型训练输入函数, 表示前一轮训练的结果,哈希函数 ;

当获得 轮次的 、 和  后,TEE环境用训练数据 对模型进行训练,得到模型更新 ;

之后,判断  是否成立, 表示在TEE中进行学习时的模型输入;若成立,则验证成功,否则验证失败;

最后,TEE验证最后的模型更新 ,其中 表示最后一轮的模型更新、 表示开始学习时的输入模型,并对验证信息进行签名步骤6:提交训练结果;

任务发布节点通过部署模型聚合合约,收集参与者在本地训练完成更新的模型参数;

参与者将训练得到的模型和TEE环境给出的证明一起发送至合约,执行合约内容将模型和正确性证明σ存储在合约中;

步骤7:聚合模型验证;

当聚合合 约完成模型 参数和可 信证明模型 更新时 ,合 约执行函 数,其中, 表示TEE对承诺进行的签名,以确认参与者是否诚实地进行了预期的训练;如果函数 返回1,则聚合合约将汇总这些更新聚合成为新的全局模型,否则表示TEE验证承诺和参与者发送的聚合模型不符,验证失败,认为参与者存在不诚实行为,模型更新将不再作为正确结果被聚合;

若验证通过,则认为所有参与节点都诚实地进行了模型训练并得到了正确的模型参数;之后,聚合合约对所有参与者提交的局部模型进行聚合,收敛生成最终的训练模型;为获得收敛的全局模型,要进行反复迭代训练,最终的全局模型 表示为 ,其中, 表示参与人 第t+1轮模型更新, 表示参与人 第t+1轮模型更新;

对于所有收到的更新,合约通过执行加权平均,得到新的全局模型 :其中, 是全局学习率,表示模型的更新轮数;n是训练总数据的大小,用表示, 表示参与人集合; 表示参与者 进行训练的数据大小;训练的轮数,由模型收敛的时间决定;

步骤8:当完成所有的模型聚合后,合约执行最后一步,按照约定给众包训练的所有节点发放奖励。

2.如权利要求1所述的一种基于区块链和可信执行环境的联邦学习方法,其特征在于,步骤2中,首先,参与节点 启动本地可信执行环境并生成证明报告,以证明正确的执行环境设置;之后,参与节点 将验证信息提交至合约触发合约执行,通过合约执行来验证提交信息的正确性;在合规定执行时间内,设列表中参与节点数量为m,满足条件的参与者节点将通过验证加入列表。

3.如权利要求1所述的一种基于区块链和可信执行环境的联邦学习方法,其特征在于,步骤3中,当有训练任务产生,首先确定联邦学习任务需要众包学习的参与节点数目n;之后,任务发布节点调用任务征集合约,采用随机算法从参与节点列表的m个节点中随机选择能够参加学习的n个节点, ;当参与节点确定后,参与者将接受训练任务,使用持有的相关数据集开始在本地进行训练与更新。

4.如权利要求1所述的一种基于区块链和可信执行环境的联邦学习方法,其特征在于,步骤6中,设合约设置阈值为N,从N=1开始一直循环收取参数模型,直到收到第N=n个参与者后合约执行完毕,收到所有n个参与众包学习的结果。

5.一种实现权利要求1所述方法的基于区块链和可信执行环境的联邦学习系统,其特征在于,包括用户层、合约层、激励层和区块链网络层;

其中,系统的客户层包含数据消费者和数据拥有者;数据消费者通过系统征集数据拥有者,利用其数据完成所需模型的训练更新;数据拥有者使用自己的数据进行隐私计算,训练模型,并获得相应的报酬;

合约层包括任务发布合约和模型聚合合约;合约通过自执行的方式,实现分布式节点间的众包模型训练计算任务发布、计算结果的可信承诺验证与聚合;合约层完成数据消费者和数据拥有者的交互;

激励层包括聚合合约;聚合合约在完成相应的模型聚合任务后,根据约定将相应的报酬通过区块链网络转入所有参与该轮模型训练的数据拥有者的地址;数据拥有者在确定收到激励报酬后,完成激励分配;

区块链网络层作为基础网络架构,用于建立分布式用户节点间的可信计算环境,并采用共识算法对外提供一致的读写服务;

系统工作过程如下:

步骤1:初始化系统

首先,系统初始化区块链网络,构建一个p2p分布式网络;整个众包计算的联邦学习任务的发布、提交、聚合、激励过程,均依靠区块链网络完成;

步骤2:加入网络

任务发布者和参与众包学习的数据拥有者加入到区块链网络;首先,任务发布者和数据拥有者在本地生成自己的公私钥对,然后保存自己的私钥,以公钥来作为自己作为区块链中节点的唯一标识符加入网络;

步骤3:任务合约发布

任务发布节点制定关于训练任务的基本信息,并将信息以脚本代码的形式形成合约内容,部署在区块链网络中;

步骤4:训练任务执行

符合合约内容的参与者节点接受任务,然后在本地进行模型更新;在本地数据模型训练时,系统通过随机数发生器生成随机轮次的检查点,并将这些轮次的检查点更新的模型进行哈希运算产生摘要;同时,本地可信执行环境TEE从外部接收相同的训练数据和模型,在内部进行相同计算后对内部计算结果进行相同的哈希值运算;比对两个哈希摘要之后,TEE以签名的方式给出可信承诺证明;

步骤5:模型聚合

每一个参与节点在完成各自的子任务后,将最终更新模型和每一轮训练结果的超参数,连同可信证明一起发送给聚合合约;聚合合约首先对承诺证明进行验证,验证通过后,向相应的参与者发放奖励;最后,合约将对所有子模型进行聚合,直到最终模型收敛。

6.一种实现权利要求1所述方法的医疗辅助诊断系统,其特征在于,包括医疗用户注册模块、承诺生成模块、承诺验证模块、诊断模型聚合模块、激励支付模块;

其中,医疗用户注册模块、承诺生成模块构成系统用户层,承诺验证模块、诊断模型聚合模块构成合约层,激励支付模块构成激励层;

医疗用户注册模块:拥有医疗相关特征数据的用户实体,通过注册成为联邦学习中的候选参与方;需要进行医疗诊断模型更新的数据消费者,能够从相关注册用户中进行选择;

承诺生成模块:医疗数据拥有者使用自己的数据和算法进行模型训练,完成后在本地可信执行环境中进行可信验证,并生成一个承诺方案,以证明训练参与者诚实参与模型更新;

承诺验证模块:利用智能合约自执行的特性,收到训练参与方发送的模型更新数据和正确性承诺后,合约将对承诺签名进行验证;如果返回值为1,则验证通过,否则判定为不可信模型,不进行激励支付;

诊断模型聚合模块:通过承诺验证,合约将合法的模型更新参数进行聚合以得到最终的医疗病症诊断模型;

激励支付模块:在模型验证通过后,合约将根据规则向提供正确数据并提供模型更新服务的参与节点支付相应的激励;

上述模块之间的关系为:

医疗用户注册模块和承诺生成模块构成用户层,由系统中用户参与节点作为实体在本地执行的操作;这两个模块之间存在先后顺序,参与者节点首先必须执行医疗用户注册模块,经过身份验证、环境检查后,才能进行承诺生成模块的操作;在承诺生成模块完成计算并给出可信证明,作为输出供合约层调用;

承诺验证模块和诊断模型聚合模块构成合约层;在合约层内,首先执行承诺验证模块,验证通过后才能进行诊断模型的聚合;在合约层外部,承诺验证模块的输入是用户层承诺生成模块中输出的证明;诊断模型聚合模块的输入是承诺生成模块中输出的证明的每一轮训练产生的超参数和最终的模型更新;最后,承诺证明的结果输出是激励支付模块是否可以触发的条件;

激励支付模块作为激励层;该模块调用承诺证明模块输出的结果,作为验证条件,如果输出为1,则进行激励支付,否则不执行激励支付。

说明书 :

一种基于区块链和可信执行环境的联邦学习方法及系统

技术领域

[0001] 本发明涉及一种基于区块链和可信执行环境的联邦学习方法及系统,属于人工智能机器学习技术领域。

背景技术

[0002] 机器学习作为一种极具前景的技术,已经成为计算机领域研究的热点,其理论和方法在工程应用和科学领域得到了广泛的应用。
[0003] 联邦学习(Federated Learning)是一种新兴的人工智能技术,原本用于解决安卓手机终端用户在本地更新模型的问题,其设计目标是在保障大数据交换时的信息安全、保
护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展
高效率的机器学习。联邦学习能够有效帮助多个机构在满足用户隐私保护、数据安全和政
府法规的要求下进行数据使用和机器学习建模,可以避免非授权的数据扩散和解决数据孤
岛问题,被广泛应用在金融、物流、供应链等领域。
[0004] 作为一种具有隐私保护特性的机器学习框架,联邦学习为分布式合作机器学习提供了新的方法。联邦学习将训练任务进行拆分并分配给训练数据所有者进行模型更新,最
后聚合所有的模型更新来完成训练任务并获得准确的联合模型。联邦学习的优势在于:
[0005] 1.数据隔离,数据不会泄露到外部,满足用户隐私保护和数据安全的需求。
[0006] 2.能够保证模型质量无损,不会出现负迁移,保证联邦模型比割裂的独立模型效果好。
[0007] 3.参与者地位对等,能够实现公平合作。
[0008] 4.能够保证参与各方在保持独立性的情况下,进行信息与模型参数的加密交换,并同时获得成长。
[0009] 但是,在不受信任的分布式系统环境中,如何进行安全多方合作学习,是联邦学习中一个亟待解决的问题。
[0010] 由于失去了对参与者训练过程的直接控制,现有技术无法验证训练参与者是否按要求执行训练任务。如果懒惰或恶意参与者不进行模型更新,甚至使用错误数据进行更新,
将会导致最终聚合模型的准确率降低。

发明内容

[0011] 本发明的目的是为了解决联邦学习在不受信任的分布式环境中如何实现安全多方合作学习的技术问题,创造性地提出一种基于区块链和可信执行环境的联邦学习方法及
系统。
[0012] 本发明基于分布式区块链架构,其中,实体用户作为区块链节点参与,包括两类节点:
[0013] 任务发布节点:节点在区块链网络中进行广播,从而发起众包学习任务,并给予激励。节点通过发布智能合约来征集符合条件的训练参与者,并指定训练算法、奖励和其它要
求说明。当训练完成后,节点通过聚合合约收集模型更新并验证训练模型的正确性。
[0014] 参与者节点:作为拥有训练数据资源的参与者,通过接受任务发布节点公布的模型训练任务获得相应奖励(例如,获得奖金报酬)。为满足发布者节点的模型训练结果验证
需要,参与者节点本地要具有TEE(Trusted Execution Environment,可信执行环境,常用
于数字版权管理、移动支付、敏感数据保护等)的硬件可信环境(例如SGX)来生成验证消息。
[0015] 在联邦学习中,任务发布节点和参与者节点通过智能合约,能够自执行完成众包学习任务并进行模型聚合。其中,智能合约包括任务征集合约和模型聚合合约。
[0016] 任务征集合约:由任务发布节点进行制定,任务是发起众包学习任务,设置符合的参与者条件和参与人数阈值。申请加入众包任务的参与者节点,通过向合约发送加入申请
注册,从而获得资格。
[0017] 模型聚合合约:任务发布节点从任务征集合约中注册的节点中进行随机选择,选出完成训练任务所需要的节点数目后发放训练任务。节点在本地完成模型训练后,模型聚
合负责对各节点提交的正确性证明进行验证。验证通过后,对更新模型进行聚合,从而完成
模型训练任务。
[0018] 如图1所示,本发明所述方法包括任务征集、加入申请、参与者选择、本地模型训练、证明生成、训练结果提交、模型验证聚合、激励分配等步骤。
[0019] 在任务征集阶段,希望获得准确模型的任务所有者在区块链网络广播发起众包模型训练任务。
[0020] 当收到任务后,满足要求的节点申请加入参与者合约,任务发布者从所有申请者中随机选择满足训练要求数目的实际参与者并下发任务。
[0021] 被选中的参与者在本地使用自己的数据集对模型进行训练,同时,在自己的TEE环境中,通过对比模型更新的哈希值是否一致,生成模型训练的正确性证明。此处,保留哈希
摘要而非直接保存原始的模型训练参数,是因为训练参数数据量过大会占用很大的存储空
间。
[0022] 当完成所有模型训练更新后,参与者将更新的模型和证明发送至聚合合约进行模型聚合和验证,验证通过后向参与节点发放相应奖励。
[0023] 有益效果
[0024] 本发明,对比现有技术,具有以下优点:
[0025] 本发明结合区块链和可信执行环境TEE技术,实现了高置信度验证,防止非诚实参与者模型训练,解决了对训练参与者的不可信问题。

附图说明

[0026] 图1为本发明所述联邦学习过程示意图。
[0027] 图2为本发明方法的流程图。
[0028] 图3为本发明实施例的系统组成图。

具体实施方式

[0029] 下面结合附图对本发明方法做进一步详细说明。
[0030] 如图2所示,一种基于区块链和可信执行环境的联邦学习方法,包括以下步骤:
[0031] 步骤1:征集任务。
[0032] 任务发布节点希望获得准确的模型,但其自身缺乏模型训练所需的数据集,因此,需要通过众包方式合作完成训练任务。
[0033] 在任务开始前,任务发布节点首先拟定任务征集合约(内容包括训练算法、奖励、训练流程等),并设置对合格参与者的具体要求。
[0034] 之后,任务发布节点发布合约征集参与者,希望参与任务的节点能够在区块链上查看相关信息。
[0035] 步骤2:参与节点申请加入。
[0036] 拥有合适模型训练数据和支持可信硬件执行环境(如SGX平台)的感兴趣参与节点,将必要信息(如持有数据相关描述和SGX平台标识)发送至任务征集合约。
[0037] 首先,参与节点 启动本地可信执行环境并生成证明报告,以证明正确的执行环境设置。之后,参与节点 将验证信息提交至合约触发合约执行,通过合约执行来验证提交
信息的正确性。
[0038]  在本具体实施方式中,SGX平台支持远程证明,以证明软件的正确运行。每个SGX平台产生一个证明密钥对 ,其中, 表示平台私钥秘密保存,
表示平台公钥公开。设  是不可伪造的签名方案,SGX平台通过计算数字签名
生成证明,其中, 表示签名, 为运行的程序,out表示输出。输出
out是在SGX中运行程序 产生的证明。合约通过验证 输出是否为1来
验证用户的可信硬件执行环境SGX平台是否符合要求。
[0039] 满足条件的参与者节点,将通过验证加入列表。在合规定执行时间内,设列表中参与节点数量为m。
[0040] 步骤3:选择参与者。
[0041] 当有训练任务产生,首先确定联邦学习任务需要众包学习的参与节点数目n,。
[0042] 之后,任务发布节点调用任务征集合约,采用随机算法,从参与节点列表的m个节点中随机选择能够参加学习的n个节点。此处采用随机方式,能够一定程度地防止恶意低质
量参与节点反复参与训练来赚取奖励。
[0043] 当参与节点确定后,参与者将接受训练任务,使用持有的相关数据集开始在本地进行训练与更新。
[0044] 步骤4:训练本地模型。
[0045] 参与节点 下载获取最新的全局模型 ,在当前模型上采用深度神经网络模型和训练数据data,在本地GPU中执行局部训练。通过迭代运算和多轮模型更新,最终完成模型
训练,生成模型更新 。其中,t表示学习的轮数。
[0046] 步骤5:证明生成。
[0047] 参与节点 完成模型更新后,调用TEE(可信执行环境,Trusted execution environment)内的程序,生成证明 。
[0048] 具体地,参与节点 在本地的TEE环境中运行算法 ,算法随机选择训练轮次,验证这些轮次的模型更新训练执行正确性。
[0049] 参与者在每轮训练结束时,对所有模型参数 进行哈希运算得到消息 ,并在所有训练轮结束时向TEE提交消息 。
[0050] 当TEE随机请求检查一轮训练结果时,首先输入模型参数、哈希值和相应训练数据。然后,TEE检查这些参数是否与承诺一致,并使用相应数据和输入参数执行训练,将其输
出模型参数的哈希值与传入的哈希值 进行比较。
[0051] 如果 ,则验证通过,TEE给出正确性证明。如果所有随机选择的训练轮次均验证成功,则认为参与者诚实地执行了所有训练轮次,否则判定训练参与者未诚实进行
训练,生成模型不可信,不能用于模型聚合。
[0052] 最后,节点进行最后一轮模型参数验证,检查承诺消息,计算模型更新(即,最后一个输出模型和全局模型之间所有参数变化的向量)。
[0053] 其中,在生成证明过程中,TEE生成随机函数集 以生成检查点,以 代表要检查的训练轮次, 为本地训练数据, 为训练模型,
, 表示模型训练输入函数, 表示前一轮训练的结果,哈希函
数 。当获得 轮次的 、 和 后,TEE环境用训练数据 对模型
进行训练,得到模型更新 。之后,判断 是否成立, 表示在TEE
中进行学习时的模型输入,也就是需要进行更新的前一轮模型。若成立,则验证成功,否则
验证失败。最后,TEE验证最后的模型更新 ,其中 表示最后一轮的模型更新、
表示开始学习时的输入模型,并对验证信息进行签名
[0054] 步骤6:提交训练结果。
[0055] 任务发布节点通过部署模型聚合合约,收集参与者在本地训练完成更新的模型参数。参与者将训练得到的模型和TEE环境给出的证明一起发送至合约,执行合约内容将模型
和正确性证明σ存储在合约中。
[0056] 设合约设置阈值为N,从N=1开始一直循环收取参数模型,直到收到第N=n个参与者后合约执行完毕,收到所有n个参与众包学习的结果。
[0057] 步骤7:聚合模型验证。
[0058] 当聚合合约完成模型参数和可信证明模型更新时,合约执行函数,其中, 表示TEE对承诺进行的签名,以确认参与者
是否诚实地进行了预期的训练。如果函数 返回1,则聚合合约将汇
总这些更新聚合成为新的全局模型,否则表示TEE验证承诺和参与者发送的聚合模型不符,
验证失败,认为参与者存在不诚实行为,模型更新将不再作为正确结果被聚合。
[0059] 若验证通过,则认为所有参与节点都诚实地进行了模型训练并得到了正确的模型参数。之后,聚合合约对所有参与者提交的局部模型进行聚合,收敛生成最终的训练模型。
[0060] 进一步地,为获得收敛的全局模型,要进行反复迭代训练,最终的全局模型 表示为: 表示参与人  第t+1轮模型更新, 表示参与人 第t+1轮模型更
新。
[0061] 对于所有收到的更新,合约通过执行加权平均,得到新的全局模型 :
[0062]
[0063] 其中, 是全局学习率,表示模型的更新轮数;n是训练总数据的大小,用表示, 表示参与人集合; 表示参与者 进行训练的数据大小;训练的轮
数,由模型收敛的时间决定。
[0064] 步骤9:激励分配。
[0065] 当完成所有的模型聚合后,合约执行最后一步,按照先前约定给众包训练的所有节点发放奖励。
[0066] 合约执行聚合合约执行完成,标志着整个联邦学习流程结束。
[0067] 同时,本发明提出了一种基于区块链和可信执行环境的联邦学习方法及系统,包括用户层、合约层、激励层和区块链网络层。
[0068] 其中,系统的客户层包含数据消费者和数据拥有者。数据消费者通过系统征集数据拥有者,利用其数据完成所需模型的训练更新;数据拥有者使用自己的数据进行隐私计
算,训练模型,并获得相应的报酬。
[0069] 合约层包括任务发布合约和模型聚合合约。合约通过自执行的方式,实现分布式节点间的众包模型训练计算任务发布、计算结果的可信承诺验证与聚合。合约层完成数据
消费者和数据拥有者的交互。
[0070] 激励层包括聚合合约。聚合合约在完成相应的模型聚合任务后,根据约定将相应的报酬通过区块链网络转入所有参与该轮模型训练的数据拥有者的地址。数据拥有者在确
定收到激励报酬后,完成激励分配。
[0071] 区块链网络层作为基础网络架构,用于建立分布式用户节点间的可信计算环境,并采用共识算法对外提供一致的读写服务。
[0072] 系统工作过程如下:
[0073] 步骤1:初始化系统
[0074] 首先,系统初始化区块链网络,构建一个p2p分布式网络。整个众包计算的联邦学习任务的发布、提交、聚合、激励过程,均依靠区块链网络完成。
[0075] 步骤2:加入网络
[0076] 任务发布者和参与众包学习的数据拥有者加入到区块链网络(例如以太坊平台)中。首先,任务发布者和数据拥有者在本地生成自己的公私钥对,然后保存自己的私钥,以
公钥来作为自己作为区块链中节点的唯一标识符加入网络。
[0077] 步骤3:任务合约发布
[0078] 任务发布节点制定关于训练任务的基本信息(如数据描述、训练算法、类型描述等),并将信息以脚本代码的形式形成合约内容,部署在区块链网络中。
[0079] 步骤4:训练任务执行
[0080] 符合合约内容的参与者节点接受任务,然后在本地进行模型更新。在本地数据模型训练时,系统通过随机数发生器生成随机轮次的检查点,并将这些轮次的检查点更新的
模型进行哈希运算产生摘要。同时,本地可信执行环境TEE从外部接收相同的训练数据和模
型,在内部进行相同计算后对内部计算结果进行相同的哈希值运算。比对两个哈希摘要之
后TEE以签名的方式给出可信承诺证明。
[0081] 步骤5:模型聚合
[0082] 每一个参与节点在完成各自的子任务后,将最终更新模型和每一轮训练结果的超参数,连同可信证明一起发送给聚合合约。聚合合约首先对承诺证明进行验证,验证通过
后,向相应的参与者发放奖励。最后,合约将对所有子模型进行聚合,直到最终模型收敛。
[0083] 应用实例
[0084] 为了让本发明的目的、技术方案、应用性、创新性和优点更加清楚,通过提出一种应用本发明方法的应用系统实例,对本发明作进一步地详细描述。
[0085] 目前,人工智能技术在计算机辅助医疗诊断领域有着广泛的应用。通过机器学习,可以令计算机辅助诊断系统对不同的疾病进行特征学习,从而得到一个可靠的模型,实现
自动化辅助诊断。由于医疗数据作为病人的隐私数据,其难以在没有隐私保护的情况下通
过中心化的方式进行大规模数据学习。应用联邦学习技术,能够解决因无法共享数据所带
来的医疗数据孤岛问题。同时,数据的可信度对于医疗模型训练的准确性也同样至关重要。
因此,本实施例依靠可信执行环境TEE采用“承诺‑验证”方式,保证医疗模型更新的正确性。
[0086] 如图3所示,一种基于本发明所述区块链和可信执行环境的联邦学习方法的医疗辅助诊断系统,包括:医疗用户注册模块、承诺生成模块、承诺验证模块、诊断模型聚合模
块、激励支付模块,其中,医疗用户注册模块、承诺生成模块构成系统用户层,承诺验证模
块、诊断模型聚合模块构成合约层,激励支付模块构成激励层。
[0087] 医疗用户注册模块:拥有医疗相关特征数据的用户实体(医院、卫生中心等医疗机构),通过注册成为联邦学习中的候选参与方。需要进行医疗诊断模型更新的数据消费者,
能够从相关注册用户中进行选择。
[0088] 承诺生成模块:医疗数据拥有者使用自己的数据和算法进行模型训练,完成后在本地可信执行环境(如因特尔SGX处理器)中进行可信验证,并生成一个承诺方案,以证明训
练参与者诚实参与模型更新。
[0089] 承诺验证模块:利用智能合约自执行的特性,收到训练参与方发送的模型更新数据和正确性承诺后,合约将对承诺签名进行验证。如果返回值为1,则验证通过,否则判定为
不可信模型,不进行激励支付。
[0090] 诊断模型聚合模块:通过承诺验证,合约将合法的模型更新参数进行聚合以得到最终的医疗病症诊断模型。
[0091] 激励支付模块:在模型验证通过后,合约将根据先前制定的规则向提供正确数据并提供模型更新服务的参与节点支付相应的激励。
[0092] 上述模块之间的连接关系为:
[0093] 医疗用户注册模块和承诺生成模块构成用户层,由系统中用户参与节点作为实体在本地执行的操作。这两个模块之间存在先后顺序,参与者节点首先必须执行医疗用户注
册模块,经过身份验证、环境检查后,才能进行承诺生成模块的操作。在承诺生成模块完成
计算并给出可信证明,作为输出供合约层调用。
[0094] 承诺验证模块和诊断模型聚合模块构成合约层。在合约层内,首先执行承诺验证模块,验证通过后才能进行诊断模型的聚合。在合约层外部,承诺验证模块的输入是用户层
承诺生成模块中输出的证明。诊断模型聚合模块的输入是承诺生成模块中输出的证明的每
一轮训练产生的超参数和最终的模型更新。最后,承诺证明的结果输出是激励支付模块是
否可以触发的条件。
[0095] 激励支付模块作为激励层。该模块调用承诺证明模块输出的结果,作为验证条件,如果输出为1,则进行激励支付,否则不执行激励支付。
[0096] 上述系统应用本发明联邦学习方法进行医疗辅助诊断的过程如下:
[0097] 步骤1:用户(如医院、医学研究中心等)作为任务发布节点,在区块链系统中发布医疗诊断模型的众包学习请求。
[0098] 步骤2:拥有相关疾病诊疗判断数据的医学机构作为医疗大数据所有者作为参与者节点在区块链系统中寻找符合要求的任务参与。
[0099] 步骤3:利用自己的医疗数据在本地进行模型更新训练并通过可信执行环境TEE(因特尔 SGX)生成可信证明——承诺。
[0100] 步骤4:任务发布者通过验证“承诺”的正确性判定参与者节点提交的模型更新是否可信。
[0101] 步骤5:验证通过后根据合约规定给疾病诊断数据提供者支付相应的激励。
[0102] 步骤6:在通过验证后,任务发布节点对提交的疾病诊断子模型进行模型聚合以实现最终模型的收敛。