基于区块链的安全协作深度学习方法及装置.pdf

上传人:n****g 文档编号:11292545 上传时间:2021-09-16 格式:PDF 页数:24 大小:1.16MB
收藏 版权申诉 举报 下载
基于区块链的安全协作深度学习方法及装置.pdf_第1页
第1页 / 共24页
基于区块链的安全协作深度学习方法及装置.pdf_第2页
第2页 / 共24页
基于区块链的安全协作深度学习方法及装置.pdf_第3页
第3页 / 共24页
文档描述:

《基于区块链的安全协作深度学习方法及装置.pdf》由会员分享,可在线阅读,更多相关《基于区块链的安全协作深度学习方法及装置.pdf(24页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910375181.9 (22)申请日 2019.05.07 (71)申请人 清华大学 地址 100084 北京市海淀区清华园 (72)发明人 徐恪张智超吴波李琦 徐松松 (74)专利代理机构 北京清亦华知识产权代理事 务所(普通合伙) 11201 代理人 张润 (51)Int.Cl. G06N 20/00(2019.01) G06F 21/64(2013.01) G06F 21/62(2013.01) (54)发明名称 基于区块链的安全协作深度学习方法及装 置 (57)摘。

2、要 本发明公开了一种基于区块链的安全协作 深度学习方法及装置, 其中, 该方法包括: 允许一 个全局参数服务器收集每轮训练中用户提交的 模型参数并维护全局模型, 同时每个用户利用自 身拥有的验证数据集评估上传参数, 并通过智能 合约实现最优参数共识, 最终由全局参数服务器 聚合每轮训练中的最优参数, 得到最终协作训练 出的全局模型。 由此, 在允许用户之间在不公开 隐私数据集的前提下进行协作训练, 保护了彼此 数据的隐私性, 通过参数共享的方式让全局模型 能够学习到所有数据源的特征, 提高全局模型的 准确率以及泛化能力。 权利要求书3页 说明书14页 附图6页 CN 110197285 A 2。

3、019.09.03 CN 110197285 A 1.一种基于区块链的安全协作深度学习方法, 其特征在于, 包括以下步骤: S1, 获取全局模型、 最优参数改变量集合和评价矩阵, 对所述全局模型的参数、 所述最 优参数改变量集合和所述评价矩阵进行初始化; S2, 获取所述全局模型的下载指令, 将所述下载指令发送至多个用户端以使所述多个 用户端下载所述全局模型, 每个用户端根据训练数据集对全局模型进行训练生成参数改变 量集合, 并按照预设的方法对所述参数改变量集合进行筛选; S3, 将所述每个用户端筛选后的参数改变量集合的哈希值存入至区块链, 生成对应的 存储交易号码, 将所述筛选后的参数改变量。

4、集合和对应的所述存储交易号码发送至所述每 个用户端, 以使所述每个用户端根据验证数据集对接收到的所述筛选后的参数改变量集合 和对应的所述存储交易号码进行验证和评估后生成用户端之间的多个评价值, 将所述多个 评价值存入所述区块链; S4, 根据所述多个评价值对所述评价矩阵进行更新, 根据更新后的评价矩阵和预设的 区块链共识合约优选出所述最优参数改变量集合, 根据所述最优参数改变量集合对所述全 局模型进行更新; S5, 迭代S2、 S3和S4对所述全局模型进行更新, 直至所述全局模型满足预设条件, 结束 迭代过程。 2.根据权利要求1所述的方法, 其特征在于, 所述每个用户端根据训练数据集对所述全。

5、 局模型进行训练生成参数改变量集合, 并按照预设的方法对所述参数改变量集合进行筛 选, 包括: 所述每个用户端根据本地的训练数据集对所述全局模型进行训练, 并计算出所述参数 改变量集合, 公式为: i i- i 其中, i为所述全局模型训练后的参数值, i为所述全局模型训练前的参数值, i为 所述全局模型参数改变量; 将所述参数改变量按照降序排列, 筛选出变化量最大的一组参数, 生成所述筛选后的 参数改变量集合, 公式为: 其中,为参数改变量集合, 为筛选参数比例, g为所述全局模型的参数集合。 3.根据权利要求1所述的方法, 其特征在于, 所述S2, 还包括: 所述每个用户端对所述筛选后的参。

6、数改变量集合附加时间戳并进行签名。 4.根据权利要求1所述的方法, 其特征在于, 所述S3, 还包括: 所述每个用户端对接收到的所述筛选后的参数改变量集合进行验证; 根据接收到的所述存储交易号码验证所述区块链上对应存储的所述筛选后的参数改 变量集合的哈希值与接收到的所述筛选后的参数改变量集合是否一致。 5.根据权利要求1所述的方法, 其特征在于, S4进一步包括: 权利要求书 1/3 页 2 CN 110197285 A 2 根据用户端之间的所述多个评价值更新所述评价矩阵M; 根据所述评价矩阵M和所述预设的区块链共识合约优选出最优参数的用户端集合 获取所述最优参数的用户端集合对应的所述最优参数。

7、改变量集合, 根据所述最 优参数改变量集合对所述全局模型进行更新, 具体步骤为: 记Mi, :为第i个用户端对其它用户端的所有评价值, 降序排列Mi, :, 记为 根据在中的排列位置, 第j个用户端的得分为: 其中, m为总参与用户端个数, pj为第j个用户端在中的位置, 第j个用户端的总分为: 其中, ui为第i个用户端, 为所有用户端集合, s(j; ui)为第j个用户端在ui的评价下所 得分数, 基于总得分, 所述最优参数的用户端集合: 6.一种基于区块链的安全协作深度学习装置, 其特征在于, 包括: 初始化模块, 用于获取全局模型、 最优参数改变量集合和评价矩阵, 对所述全局模型的 参。

8、数、 所述最优参数改变量集合和所述评价矩阵进行初始化; 训练模块, 用于所述获取全局模型的下载指令, 将所述下载指令发送至多个用户端以 使所述多个用户端下载所述全局模型, 每个用户端根据训练数据集对所述全局模型进行训 练生成参数改变量集合, 并按照预设的方法对所述参数改变量集合进行筛选; 评估模块, 用于将所述每个用户端筛选后的参数改变量集合的哈希值存入至区块链, 生成对应的存储交易号码, 将所述筛选后的参数改变量集合和对应的所述存储交易号码发 送至所述每个用户端, 以使所述每个用户端根据验证数据集对接收到的所述筛选后的参数 改变量集合和对应的所述存储交易号码进行验证和评估后生成用户端之间的多。

9、个评价值, 将所述多个评价值存入所述区块链; 更新模块, 用于根据所述多个评价值对所述评价矩阵进行更新, 根据更新后的评价矩 阵和预设的区块链共识合约优选出所述最优参数改变量集合, 根据所述最优参数改变量集 合对所述全局模型进行更新; 迭代模块, 用于通过迭代直至所述全局模型满足预设条件。 7.根据权利要求6所述的装置, 其特征在于, 所述每个用户端根据训练数据集对所述全 局模型进行训练生成参数改变量集合, 并按照预设的方法对所述参数改变量集合进行筛 选, 包括: 所述每个用户端根据本地的训练数据集对所述全局模型进行训练, 并计算出所述参数 改变量集合, 公式为: 权利要求书 2/3 页 3 。

10、CN 110197285 A 3 i i- i 其中, i为所述全局模型训练后的参数值, i为所述全局模型训练前的参数值, i为 所述全局模型参数改变量; 将所述参数改变量按照降序排列, 筛选出变化量最大的一组参数, 生成所述筛选后的 参数改变量集合, 公式为: 其中,为参数改变量集合, 为筛选参数比例, g为所述全局模型的参数集合。 8.根据权利要求6所述的装置, 其特征在于, 所述训练模块, 还用于, 所述每个用户端对所述筛选后的参数改变量集合附加时间戳并进行签名。 9.根据权利要求6所述的装置, 其特征在于, 所述评估模块, 包括: 验证单元, 所述验证单元, 用于所述每个用户端对接收到。

11、的所述筛选后的参数改变量集合进行验 证; 所述验证单元, 具体用于根据接收到的所述存储交易号码验证所述区块链上对应存储 的所述筛选后的参数改变量集合的哈希值与接收到的所述筛选后的参数改变量集合是否 一致。 10.根据权利要求6所述的装置, 其特征在于, 所述更新模块, 具体用于, 根据用户端之间的所述多个评价值更新所述评价矩阵M; 根据所述评价矩阵M和所述预设的区块链共识合约优选出最优参数的用户端集合 获取所述最优参数的用户端集合对应的所述最优参数改变量集合, 根据所述最 优参数改变量集合对所述全局模型进行更新, 具体步骤为: 记Mi, :为第i个用户端对其它用户端的所有评价值, 降序排列Mi。

12、, :, 记为 根据在中的排列位置, 第j个用户端的得分为: 其中, m为总参与用户端个数, pj为第j个用户端在中的位置, 第j个用户端的总分为: 其中, ui为第i个用户端, 为所有用户端集合, s(j; ui)为第j个用户端在ui的评价下所 得分数, 基于总得分, 所述最优参数的用户端集合: 权利要求书 3/3 页 4 CN 110197285 A 4 基于区块链的安全协作深度学习方法及装置 技术领域 0001 本发明涉及分布式机器学习技术领域, 特别涉及一种基于区块链的安全协作深度 学习方法及装置。 背景技术 0002 深度学习作为机器学习的一个重要分支, 在近十年的时间内发展迅速, 。

13、但是受限 于计算机的计算能力和算法本身存在梯度消失等问题, 虽然深度学习在图像识别、 声音识 别和推荐系统等研究领域取得了巨大突破, 但是深度学习训练过程中往往需要投入大量的 训练数据, 才能得到理想的训练结果。 一些小型研究机构或者普通的研究人员, 在特定的研 究课题中, 往往只拥有有限的训练数据, 而数据集问题往往是限制其算法研究和模型设计 的重要障碍之一。 研究表明, 深度模型的训练中, 数据的特征反映在模型的参数改变量上, 因此协作深度学习让不同用户之间通过参数共享的方式共享数据源特征, 而不用直接将数 据集公开。 但是, 协作深度学习中需要有合适的机制保障参数更新的最优化, 防止恶意。

14、用户 或者低质量数据源对全局模型产生负面影响。 0003 区块链可视为一个公开可信的分布式账本(或数据库), 许多区块依次连接构成链 式的存储结构, 并通过共识机制保证数据记录的一致性和不可篡改特性。 区块链上的智能 合约是存储在区块链上的一段自动执行的电子合同代码, 而智能合约的编程语言具有图灵 完备性, 可以根据需求编写对应功能的合约代码。 外部应用可以通过调用合约代码的接口 函数实现与区块链数据的交互, 完成在协作深度学习中的最优参数共识等功能。 发明内容 0004 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。 0005 为此, 本发明的一个目的在于提出一种基于区块链的安全协。

15、作深度学习方法, 该 方法保证参与协作训练进程中, 所有用户数据源的隐私特性、 训练过程的安全性以及最终 训练模型的高泛化和高准确率。 0006 本发明的另一个目的在于提出一种基于区块链的安全协作深度学习装置。 0007 为达到上述目的, 本发明一方面实施例提出了一种基于区块链的安全协作深度学 习方法, 包括: 0008 S1, 获取全局模型、 最优参数改变量集合和评价矩阵, 对所述全局模型的参数、 所 述最优参数改变量集合和所述评价矩阵进行初始化; 0009 S2, 获取所述全局模型的下载指令, 将所述下载指令发送至多个用户端以使所述 多个用户端下载所述全局模型, 每个用户端根据训练数据集对。

16、全局模型进行训练生成参数 改变量集合, 并按照预设的方法对所述参数改变量集合进行筛选; 0010 S3, 将所述每个用户端筛选后的参数改变量集合的哈希值存入至区块链, 生成对 应的存储交易号码, 将所述筛选后的参数改变量集合和对应的所述存储交易号码发送至所 述每个用户端, 以使所述每个用户端根据验证数据集对接收到的所述筛选后的参数改变量 说明书 1/14 页 5 CN 110197285 A 5 集合和对应的所述存储交易号码进行验证和评估后生成用户端之间的多个评价值, 将所述 多个评价值存入所述区块链; 0011 S4, 根据所述多个评价值对所述评价矩阵进行更新, 根据更新后的评价矩阵和预 设。

17、的区块链共识合约优选出所述最优参数改变量集合, 根据所述最优参数改变量集合对所 述全局模型进行更新; 0012 S5, 迭代S2、 S3和S4对所述全局模型进行更新, 直至所述全局模型满足预设条件, 结束迭代过程。 0013 本发明实施例的基于区块链的安全协作深度学习方法, 通过利用区块链作为可信 基础设施实现关键数据的存储, 利用智能合约的可信执行结果实现最优参数的共识选举, 所有参与用户通过一个全局参数服务器作为中间桥梁交互模型参数的改变。 用户通过参数 共享的方式进行协作训练, 不仅可以让模型学习到所有数据源的特征, 还保护了数据隐私 性, 用户通过共识合约的选举最优参数, 可以保证模型。

18、平稳收敛。 0014 另外, 根据本发明上述实施例的基于区块链的安全协作深度学习方法还可以具有 以下附加的技术特征: 0015 进一步地, 所述每个用户端根据训练数据集对所述全局模型进行训练生成参数改 变量集合, 并按照预设的方法对所述参数改变量集合进行筛选, 包括: 0016 所述每个用户端根据本地的训练数据集对所述全局模型进行训练, 并计算出所述 参数改变量集合, 公式为: 0017 0018 i i- i 0019 其中, i为所述全局模型训练后的参数值, i为所述全局模型训练前的参数值, i为所述全局模型参数改变量; 0020 将所述参数改变量按照降序排列, 筛选出变化量最大的一组参数。

19、, 生成所述筛选 后的参数改变量集合, 公式为: 0021 0022其中,为参数改变量集合, 为筛选参数比例, g为所述全局模型的参数集 合。 0023 进一步地, 所述S2, 还包括: 0024 所述每个用户端对所述筛选后的参数改变量集合附加时间戳并进行签名。 0025 进一步地, 所述S3, 还包括: 0026 所述每个用户端对接收到的所述筛选后的参数改变量集合进行验证; 0027 根据接收到的所述存储交易号码验证所述区块链上对应存储的所述筛选后的参 数改变量集合的哈希值与接收到的所述筛选后的参数改变量集合是否一致。 0028 进一步地, S4进一步包括: 0029 根据用户端之间的所述多。

20、个评价值更新所述评价矩阵M; 0030 根据所述评价矩阵M和所述预设的区块链共识合约优选出最优参数的用户端集合 说明书 2/14 页 6 CN 110197285 A 6 获取所述最优参数的用户端集合对应的所述最优参数改变量集合, 根据所述最 优参数改变量集合对所述全局模型进行更新, 0031 具体步骤为: 记Mi,:为第i个用户端对其它用户端的所有评价值, 降序排列Mi,:, 记 为根据在中的排列位置, 第j个用户端的得分为: 0032 0033其中, m为总参与用户端个数, pj为第j个用户端在中的位置, 第j个用户端的总 分为: 0034 0035其中, ui为第i个用户端, 为所有用户。

21、端集合, s(j; ui)为第j个用户端在ui的评价 下所得分数, 基于总得分, 所述最优参数的用户端集合: 0036 0037 为达到上述目的, 本发明另一方面实施例提出了一种基于区块链的安全协作深度 学习装置, 包括: 0038 初始化模块, 用于获取全局模型、 最优参数改变量集合和评价矩阵, 对所述全局模 型的参数、 所述最优参数改变量集合和所述评价矩阵进行初始化; 0039 训练模块, 用于所述获取全局模型的下载指令, 将所述下载指令发送至多个用户 端以使所述多个用户端下载所述全局模型, 每个用户端根据训练数据集对所述全局模型进 行训练生成参数改变量集合, 并按照预设的方法对所述参数改。

22、变量集合进行筛选; 0040 评估模块, 用于将所述每个用户端筛选后的参数改变量集合的哈希值存入至区块 链, 生成对应的存储交易号码, 将所述筛选后的参数改变量集合和对应的所述存储交易号 码发送至所述每个用户端, 以使所述每个用户端根据验证数据集对接收到的所述筛选后的 参数改变量集合和对应的所述存储交易号码进行验证和评估后生成用户端之间的多个评 价值, 将所述多个评价值存入所述区块链; 0041 更新模块, 用于根据所述多个评价值对所述评价矩阵进行更新, 根据更新后的评 价矩阵和预设的区块链共识合约优选出所述最优参数改变量集合, 根据所述最优参数改变 量集合对所述全局模型进行更新; 0042 。

23、迭代模块, 用于通过迭代直至所述全局模型满足预设条件。 0043 本发明实施例的基于区块链的安全协作深度学习装置, 通过利用区块链作为可信 基础设施实现关键数据的存储, 利用智能合约的可信执行结果实现最优参数的共识选举, 所有参与用户通过一个全局参数服务器作为中间桥梁交互模型参数的改变。 用户通过参数 共享的方式进行协作训练, 不仅可以让模型学习到所有数据源的特征, 还保护了数据隐私 性, 用户通过共识合约的选举最优参数, 可以保证模型平稳收敛。 0044 另外, 根据本发明上述实施例的基于区块链的安全协作深度学习装置还可以具有 以下附加的技术特征: 说明书 3/14 页 7 CN 11019。

24、7285 A 7 0045 进一步地, 所述每个用户端根据训练数据集对所述全局模型进行训练生成参数改 变量集合, 并按照预设的方法对所述参数改变量集合进行筛选, 包括: 0046 所述每个用户端根据本地的训练数据集对所述全局模型进行训练, 并计算出所述 参数改变量集合, 公式为: 0047 0048 i i- i 0049 其中, i为所述全局模型训练后的参数值, i为所述全局模型训练前的参数值, i为所述全局模型参数改变量; 0050 将所述参数改变量按照降序排列, 筛选出变化量最大的一组参数, 生成所述筛选 后的参数改变量集合, 公式为: 0051 0052其中,为参数改变量集合, 为筛选。

25、参数比例, g为所述全局模型的参数集 合。 0053 进一步地, 所述训练模块, 还用于, 0054 所述每个用户端对所述筛选后的参数改变量集合附加时间戳并进行签名。 0055 进一步地, 所述评估模块, 包括: 验证单元, 0056 所述验证单元, 用于所述每个用户端对接收到的所述筛选后的参数改变量集合进 行验证; 0057 所述验证单元, 具体用于根据接收到的所述存储交易号码验证所述区块链上对应 存储的所述筛选后的参数改变量集合的哈希值与接收到的所述筛选后的参数改变量集合 是否一致。 0058 进一步地, 所述更新模块, 具体用于, 0059 根据用户端之间的所述多个评价值更新所述评价矩阵。

26、M; 0060 根据所述评价矩阵M和所述预设的区块链共识合约优选出最优参数的用户端集合 获取所述最优参数的用户端集合对应的所述最优参数改变量集合, 根据所述最 优参数改变量集合对所述全局模型进行更新, 0061 具体步骤为: 记Mi,:为第i个用户端对其它用户端的所有评价值, 降序排列Mi,:, 记 为根据在中的排列位置, 第j个用户端的得分为: 0062 0063其中, m为总参与用户端个数, pj为第j个用户端在中的位置, 第j个用户端的总 分为: 0064 说明书 4/14 页 8 CN 110197285 A 8 0065其中, ui为第i个用户端, 为所有用户端集合, s(j; ui。

27、)为第j个用户端在ui的评价 下所得分数, 基于总得分, 所述最优参数的用户端集合: 0066 0067 本发明附加的方面和优点将在下面的描述中部分给出, 部分将从下面的描述中变 得明显, 或通过本发明的实践了解到。 附图说明 0068 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得 明显和容易理解, 其中: 0069 图1为根据本发明一个实施例的基于区块链的安全协作深度学习方法流程图; 0070 图2为根据本发明另一个实施例的基于区块链的安全协作深度学习方法流程图; 0071 图3为根据本发明一个实施例的协作学习实体及之间连接关系示意图; 0072 图4为根据本发明一。

28、个实施例的用户参与协作时的操作时序图; 0073 图5为根据本发明一个实施例的参数服务器与区块链之间的交互示意图; 0074 图6为根据本发明一个实施例的智能合约内容逻辑流程图; 0075 图7为根据本发明一个实施例的基于区块链的安全协作深度学习装置结构示意 图。 具体实施方式 0076 下面详细描述本发明的实施例, 所述实施例的示例在附图中示出, 其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。 下面通过参考附 图描述的实施例是示例性的, 旨在用于解释本发明, 而不能理解为对本发明的限制。 0077 在目前深度学习发展的大背景下, 深度模型的结构、 规模不断增加。

29、, 而对应训练过 程需要的数据需求也与日俱增。 对于同一训练目标, 往往单一数据源的训练无法得到泛化 能力强、 准确率高的深度模型。 但是, 由于数据源数据隐私性等问题, 交换隐私数据集的行 为将受到法律的惩罚。 本发明提出的一种基于区块链的协作深度学习方法, 针对在实际中 各种业务场景, 利用不同用户的训练目标以及训练数据集之间的相关特性, 设计出了一套 在彼此无需公开数据集的前提下, 能够协作训练同一深度模型的技术机制。 该机制不仅可 以让具有相同训练目标的用户之间能够共同协同训练得到泛化能力强、 准确率高的深度模 型, 并且允许用户无需公开数据集, 保护了数据集的隐私性。 同时, 基于区。

30、块链的可信存储 特性, 保证协作学习过程中任何一个参与实体无法恶意篡改协作进程中的中间参数, 利用 链上合约的共识机制, 在训练用户之间达成最优参数的共识选择, 保证训练进程中只有所 有用户共识出的最优参数能够更新全局模型, 即本技术方案能够容忍部分拥有低质数据集 参与者的存在, 保证了全局深度模型的稳定收敛。 0078 下面参照附图描述根据本发明实施例提出的基于区块链的安全协作深度学习方 法及装置。 0079 首先将参照附图描述根据本发明实施例提出的基于区块链的安全协作深度学习 方法。 0080 图1为根据本发明一个实施例的基于区块链的安全协作深度学习方法流程图。 说明书 5/14 页 9 。

31、CN 110197285 A 9 0081 如图1所示, 该基于区块链的安全协作深度学习方法包括以下步骤: 0082 步骤S1, 获取全局模型、 最优参数改变量集合和评价矩阵, 对全局模型的参数、 最 优参数改变量集合和评价矩阵进行初始化。 0083 具体地, 通过协作学习的方式训练一个全局模型, 首先对全局模型的参数进行初 始化化, 同时初始化后续用到的最优参数改变量集合。 0084 可以理解的是, 通过一个全局参数服务器作为中间桥梁实现用户端与区块链之间 的信息交互, 以协作学习的方式实现全局模型的训练更新。 0085 具体地, 全局参数服务器根据参与用户的设定初始化全局模型, 并将最优参。

32、数量 聚合到全局模型。 假定有m个用户, 选举其中n(nm)个用户的参数作为每轮训练的最优集 合, 用于更新全局模型, 其中全局模型共有k个参数。 0086 初始化最优参数的用户列表(可以为空或者任意集合), 以及随机初始化全局模型 参数。 0087 0088 0089 步骤S2, 获取全局模型的下载指令, 将下载指令发送至多个用户端以使多个用户 端下载全局模型, 每个用户端根据训练数据集对全局模型进行训练生成参数改变量集合, 并按照预设的方法对参数改变量集合进行筛选。 0090 具体地, 通过全局参数服务器向所有的用户端发出下载指令, 所有的用户端下载 初始化后的全局模型, 开始第一轮的协作。

33、训练进程。 0091 所有的用户端在下载全局模型后, 每个客户端利用自身本地存储的训练数据集对 全局模型进行训练生成参数改变量集合, 其中, 全局模型包含多个参数, 多个参数在训练后 会发生改变。 每个用户端还会按照预设的方法对生成的参数改变量集合进行筛选。 0092 需要说明的是, 对全局模型进行训练可以使用随机梯度下降SGD的方法, 也可以使 用其它方法进行训练, 根据实际需要选择训练方法进行训练。 0093 进一步地, 每个用户端根据训练数据集对全局模型进行训练生成参数改变量集 合, 并按照预设的方法对参数改变量集合进行筛选, 包括: 0094 每个用户端根据本地的训练数据集对全局模型进。

34、行训练, 并计算出参数改变量集 合, 公式为: 0095 0096 i i- i 0097 其中, i为全局模型训练后的参数值, i为全局模型训练前的参数值, i为全局 模型参数改变量; 0098 将参数改变量按照降序排列, 筛选出变化量最大的一组参数, 生成筛选后的参数 改变量集合, 公式为: 0099 说明书 6/14 页 10 CN 110197285 A 10 0100其中,为参数改变量集合, 为筛选参数比例, g为全局模型的参数集合。 0101 由述可知, 在筛选参数改变量时采用的是降序排列, 选择变化量最大的一组参数 的方法, 也可以根据实际需要选择其它的方法进行筛选。 0102 。

35、步骤S3, 将每个用户端筛选后的参数改变量集合的哈希值存入至区块链, 生成对 应的存储交易号码, 将筛选后的参数改变量集合和对应的存储交易号码发送至每个用户 端, 以使每个用户端根据验证数据集对接收到的筛选后的参数改变量集合和对应的存储交 易号码进行验证和评估后生成用户端之间的多个评价值, 将多个评价值存入区块链。 0103 进一步地, S3, 还包括: 0104 每个用户端对接收到的筛选后的参数改变量集合进行验证; 0105 根据接收到的存储交易号码验证区块链上对应存储的筛选后的参数改变量集合 的哈希值与接收到的筛选后的参数改变量集合是否一致。 0106 可以理解的是, 所有的用户端在筛选出。

36、参数改变集合后, 将筛选出参数改变集合 的上传至全局参数服务器, 并对上传的参数进行时间戳签名, 通过全局参数服务器将上传 的参数改变量集合的哈希值存入区块链中, 并得到一个对应的存储交易号码, 通过存储交 易号码可以查询区块链上存储的数据预上传至全局参数服务器的数据是否一致, 保证全局 参数服务器真实上传了每个用户筛选出的参数改变量集合。 0107 全局参数服务器接收用户上传的训练得到的参数改变量集合, 并存储在本地, 并 将参数改变量集合的哈希值Hash_para记录到区块链, 得到对应的存储交易号码, 记做Tx- ID。 其中, H为哈希函数。 0108 0109 0110 进一步地, 。

37、在确定所有的用户端全部上传了筛选的参数改变量集合到区块链并生 成对应的存储交易号码后, 全局参数服务器再将所有用户端上传的参数改变量集合和对应 的存储交易号码发送给所有的用户端, 所有的用户端利用本地存储的验证数据集对接收到 的参数改变量集合和对应的存储交易号码进行验证和打分得到评价值, 其中, 每一个客户 端对其它的客户端进行打分, 得到一一对应的评价值, 并存储在区块链中。 0111 需要说明的是, 在用户端上传参数改变量集合时, 若存在用户端没有上传参数改 变量集合时, 则等待未上传的用户端上传完成后, 再将所有用户端上传的参数改变量集合 和对应的存储交易号码发送给所有的用户端。 011。

38、2 具体地, 利用本地验证数据集计算参数更新对应的F1-score值, 调用智能合约的 函数, 记录至区块链, 作为最佳参数选择的依据。 0113 步骤S4, 根据多个评价值对评价矩阵进行更新, 根据更新后的评价矩阵和预设的 区块链共识合约优选出最优参数改变量集合, 根据最优参数改变量集合对全局模型进行更 新。 0114 进一步地, S4进一步包括: 0115 根据用户端之间的多个评价值更新评价矩阵M; 0116根据评价矩阵M和预设的区块链共识合约优选出最优参数的用户端集合获 说明书 7/14 页 11 CN 110197285 A 11 取最优参数的用户端集合对应的最优参数改变量集合, 根据。

39、最优参数改变量集合对全 局模型进行更新。 0117 基于多赢选举规则和用户上传的F1-score值, 为每个用户的参数改变量投票打 分, 分数最高的n个用户被记为最优参数集合, 然后服务器用其对应上传的参数改变量更新 模型。 0118 具体地, 协作学习进程开始时, 初始化评价矩阵M0m*m。 0119 接收用户之间的评价值, 并更新评价矩阵M。 Mij则表示第i个用户对第j个用户的评 价值。 0120 当所有用户进行完彼此参数改变量的评价之后, 根据M选择出最优参数的用户集 合并通告参数服务器进行模型更新。 具体选择方法如下: 0121记Mi,:为第i个用户对其他用户的所有评价值, 首先降序。

40、排列Mi,:, 记为根据在 中的排列位置, 第j个用户的得分为: 0122 0123其中, m为总参与用户数, pj为第j个用户在中的位置。 根据上式, 第j个用户的 总分为: 0124 0125其中ui为第i个用户, 为所有用户集合, s(j; ui)为第j个用户在ui的评价下所得 分数。 基于总得分, 最优参数的用户集合: 0126 0127其中即选出在所有 中得分最高的n个最优用户集合。 0128 可以理解的是, 在得到最优参数改变量集合时, 首先得到最优参数的用户集合, 再 根据最优参数用户集合对应的参数改变量集合得到最优参数改变量集合, 利用最优参数改 变量集合更新全局模型。 012。

41、9当收到智能合约最终的共识结果后, 更新最优参数的用户集合, 并聚合所有 对应用户的参数改变量。 0130 0131 0132其中,是模型对应的一个参数,是每个最优用户上传对应参数 的改变量。 全局参数服务器首先平均所有用户模型对 i的改变量, 得到的值加到对应参数 上, 并循环执行该操作遍历所有的模型参数, 最终实现对模型的更新。 0133 步骤S5, 迭代S2、 S3和S4对全局模型进行更新, 直至全局模型满足预设条件, 结束 说明书 8/14 页 12 CN 110197285 A 12 迭代过程。 0134 具体地, 在完成一次全局模型的训练更新后, 全局参数服务器再向用户端发送下 载。

42、最新全局模型的指令, 再进行训练更新, 通过多次的迭代过程, 直至全局模型满足预设条 件, 比如当模型准确率达到用户的预期值, 或者当训练轮数足够多时, 结束迭代, 结束协作 训练的标志可以根据实际需要进行设定。 0135 本发明的协作学习方法, 建立一个隐私友好的分布式协作学习机制。 参与者将自 身数据集保存本地, 通过参数共享的方式与其他参与者协作。 参与者在协作过程中并不公 开自己的数据集。 同时, 在实际应用场景下, 数据集的质量优劣问题是普遍存在的, 本发明 的方法, 不仅能够保证参数交互的一致性、 数据集的隐私性, 还能改通过共识合约的选举, 保证全局模型的平稳收敛。 0136 如。

43、图2所示, 展示了系统实例初始化部署的流程图, 主要包括5个步骤: 0137 步骤1, 参与协作学习训练的m个用户, 协商出一个共同的深度模型结构。 该模型由 参数服务器全局维护。 0138 步骤2, 参数服务器进行初始化。 主要包括两个部分, 首先初始化最优参数用户列 表, 然后随机初始化深度模型, 并通告所有参与用户进行下载。 0139 步骤3, 部署共识合约。 合约首先初始化评价矩阵M, 其次, 共识合约内需要设定一 些重要参数, 例如选择每轮训练中的最优参数用户的个数n。 0140 步骤4, 所有参与协作训练的用户, 从参数服务器下载初始化的深度模型。 注意, 应 该保证所有用户起始训。

44、练的模型结构保持一致, 因此需要有全局参数服务器对模型进行随 机初始化, 所有用户在同一随机初始模型基础上进行训练。 0141 步骤5, 每个用户准备好训练数据集和验证数据集, 并利用训练数据集训练初始化 的深度模型, 启动协作学习进程。 0142 本发明的方法让具有相同训练目标的用户之间能够共同协同训练目标模型, 并不 失对隐私数据的保护, 允许一个全局参数服务器收集每轮训练中用户提交的模型参数并维 护全局模型, 同时每个用户利用自身拥有的验证数据集评估上传参数, 并通过智能合约实 现最优参数共识, 最终由全局参数服务器聚合每轮训练中的最优参数, 得到最终协作训练 出的全局模型。 0143 。

45、如图3所示, 展示了涉及的3个实体以及在协作学习进程中各自的交互流程, 其中 每个实体的具体实施职能概要如下: 0144 第一部分为用户群组(多个用户端)。 每个用户拥有各自的训练数据集以及验证数 据集, 并通过随机梯度下降等方式进行本地训练。 当本地训练结束后, 用户选择相应的参数 改变列表, 附加时间戳并签名后上传至参数服务器, 防止他人复制(或重放)对应的参数。 同 时, 每当有新的参数改变列表上传时, 所有用户都应下载最新的参数改变量, 并用自身拥有 的验证数据集, 计算出评价值F1-score(或其他验证方法得到对应的评价值), 然后将对应 的评价结果同步至区块链智能合约。 需要注意。

46、的是, 在本发明的协作学习方法中, 每个用户 应该具有相同的训练目标, 例如相同的深度模型。 0145 第二部分为参数服务器。 参数服务器与用户和区块链进行数据交互, 如模型参数 的上传下载、 参数对应哈希值的交易广播等。 此外, 参数服务器还维护全局模型, 并使用最 优参数集合中的用户上传的参数改变量来更新全局模型。 同时, 参数服务器应存储每个用 说明书 9/14 页 13 CN 110197285 A 13 户的公钥, 用于验证用户的签名数据。 为防止参数服务器被攻击, 从而出现参数的恶意篡改 等现象, 所有用户上传的参数改变哈希需要附加到区块链交易的数据字段中, 并返回给每 个用户对应。

47、下载参数的交易号码, 即Tx-ID, 用于验证参数的一致性, 防止上述恶意行为的 出现。 0146 第三部分为区块链及链上智能合约。 每个用户上传的参数改变量哈希值, 需要附 加到交易的数据段中, 并广播至区块链网络, 以保证记录的哈希值不能被服务器篡改。 其 中, 由于现有的公有链网络的性能受限, 成本较高, 因此本实施方案建议使用的是性能较好 的联盟链, 例如使用超级账本fabric等开源联盟链项目。 同时, 所搭建的区块链必须支持智 能合约的运行, 比如以太坊支持solidity合约, fabric则支持Golang, java等高级编程语 言。 智能合约是一种计算机协议, 旨在对合同的。

48、协商或履行进行数字化, 从而便于验证或强 制执行。 智能合约允许在没有第三方的情况下进行可信的交易。 这些交易是可跟踪和不可 逆转的。 方案中的智能合约必须运行与区块链之上, 区块链为智能合约提供一个可信的执 行环境。 因此, 本发明方法中的共识合约基于上述特性, 保证用户群组内能够形成对最优参 数的共识, 从而保证全局模型平稳收敛, 而避免受到恶意用户或者低质量参数的影响。 0147 如图4所示, 展示了用户群组中每个用户在本实施例中所需要的操作时序流程图, 主要包括两个阶段, 每个阶段包括6个步骤: 0148 训练阶段: 0149 步骤1, 在每轮训练开始时, 用户需要从服务器下载最新的全。

49、局模型, 用于本轮训 练。 0150 步骤2, 用户利用自身的验证数据集进行本地训练。 所有用户的训练方法需要保持 一致, 例如利用随机梯度下降的方法。 利用本地的验证数据集对模型进行训练后, 需要并计 算出每个参数改变量 0151步骤3, 将降序排列, 挑选出变化量最大的一组参数改变进行上传。 注意, 此时挑选的比例会影响系统运行的效率, 挑选比例记做,即比例越大, 上传模型的更新程度越高, 可以稍微提高全局模型收敛的速率, 但是, 相应的通信带宽也就 越大, 因为每个客户端需要与服务器交互更多的参数。 因此, 建议可以位于区间0.01, 0.2内, 根据实际模型参数整体的大小调整上传比例,。

50、 综合考虑通信效率和收敛速率两个 重要因素。 0152步骤4, 将以及对应时间戳签名后, 上传至服务器, 防止简单的重放攻击等恶 意行为。 0153 步骤5, 服务器反馈记录上链的交易Tx-ID, 用户收到Tx-ID后, 验证链上存储是否 与上传参数保持一致, 这样防止服务器篡改参数后下发给其他用户。 0154 步骤6, 服务器通告其他用户下载最新的参数更新。 0155 验证阶段: 0156 步骤1, 当有其它用户上传新的参数更新后, 服务器通告当前用户下载并评估上传 参数。 0157 步骤2, 用户下载参数更新以及对应的区块链交易Tx-ID。 0158 步骤3, 查询链上存储的参数哈希Has。

展开阅读全文
内容关键字: 基于 区块 安全 协作 深度 学习方法 装置
关于本文
本文标题:基于区块链的安全协作深度学习方法及装置.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/11292545.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1