首页 / 专利库 / 门,大门和窗户 / / 一种基于区块链的安全SVM训练方法

一种基于链的安全SVM训练方法

阅读:1078发布:2020-05-16

专利汇可以提供一种基于链的安全SVM训练方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 区 块 链 的安全SVM训练方法,能够有效解决在区块链平台下 机器学习 模型训练时面临的用户数据隐私泄露的问题,属于 人工智能 机器学习技术领域。本发明方法,在不引入可信第三方的条件下,基于区块链技术,建立安全的数据共享平台;各数据提供方在共享计算中间值时,将待共享的计算中间值通过 门 限同态加密 算法 进行加密,之后再共享到平台上,保证了用户数据在共享过程中的安全性;大部分模型训练工作在数据提供方本地进行,计算输入基于明文数据,从而保证了模型训练的高效性。本发明尤其适用于面向竖切数据集多方协作训练模型的场景。,下面是一种基于链的安全SVM训练方法专利的具体信息内容。

1.一种基于链的安全SVM训练方法,其特征在于:
所述SVM训练系统中,仅存在数据提供方一种色,数据提供方同时也充当模型训练方和最终模型的共享方;每一个数据提供方运行一个联盟链节点,集合中的全部节点共同组成一个联盟链,各节点参与联盟链运行过程中的共识;共享到联盟链上的数据,将被永久记录在联盟链的共享账本中;
将参与模型训练的数据提供方用P代表,P={P1,...,PN},其中N代表数据提供方的数量;将数据提供方Pi拥有的数据集表示为Di,则全部数据提供方P拥有的数据集集合为
1 |N| i i
{D,…,D },数据集D的维度为d;所有数据集包含的数据数量均为m;
步骤1:所有数据提供方协同完成初始化模型参数,具体如下:
步骤1.1:管理者生成限Paillier算法的公私钥,并分配给各个数据提供方Pi,Pi具备一对公私钥(PK,SKi),其中公钥相同、私钥不同;将门限Paillier算法的门限值,设为数据提供方的数量N,只有全部数据提供方共同解密,才能恢复密态数据的明文;
步骤1.2:数据提供方将各自数据集中的用户数据,按照相同的顺序排列,同时协商好每一条用户数据的标签值;
步骤2:各数据提供方根据自身的数据集,完成本地局部模型训练,每一次训练过程为一次迭代
步骤3:重复执行步骤2,当迭代次数达到最大时,结束模型训练工作;每个数据提供方将部分模型参数上传到区块链共享账本上,最终模型在各数据提供方之间共享。
2.如权利要求1所述的一种基于区块链的安全SVM训练方法,其特征在于,步骤2所述迭代的实现方法为:
步骤2.1:多个数据提供方协商从自身的数据集中随机挑选一条用户数据;首先,为获取指示函数I[(wxi<1)]的值,计算 其中di为数据提供方Pi的数据集维度的数目,y为标签值,wi为第t轮模型参数,xi为数据集中的一条数据;如果 则I[(wxi<1)]值为1,否则为0;
步骤2.2:根据步骤2.1的计算结果,数据提供方之间交换计算中间值,更新梯度;
步骤2.3:根据步骤2.2的交互计算结果,各个数据提供方在本地更新部分模型参数:
wt+1=wt-λΔt   (1)
3.如权利要求2所述的一种基于区块链的安全SVM训练方法,其特征在于,步骤2.2的实现方法为:
步骤2.2.1:对于每个数据提供方Pi来讲,均经过步骤2.1计算出相应的 记作ai;此时,各数据提供方随机选取三个随机正整数 且三个随机数满足
每个数据提供方Pi使用门限同态加密公钥加密随机数 得到密态结果
i i
步骤2.2.2:各数据提供方使用公钥PK加密a得到[[a]];
步骤2.2.3:各数据提供方将当前训练轮次,数据提供方ID值,密态中间值[[ai]],随机数 以及随机生成的下一轮选取的数据编号,共7个字段,以交易的形式通过链码上传到区块链上;
步骤2.2.4:各数据提供方从区块链上读取其它数据提供方的上链数据;之后,根据这些数据,利用同态加密的加法同态性质和数乘同态性质,计算
[[a]]、[[r2]]、[[ar1+r2]],a由 计算得到,用于计算
指示函数;其中:
步骤2.2.5:各数据提供方使用自身的子私钥SKi解密[[ar1+r2]],同时,将解密结果、训练轮次、数据提供方ID,以交易的形式通过链码上传到联盟链上;
步骤2.2.6:各数据提供方从联盟链平台上获取其它数据提供方的解密结果,同时,通过门限同态方案还原ar1+r2;同时比较ar1+r2和r1+r3;如果ar1+r2大于r1+r3,则a>1,否则a<
1;
步骤2.2.7:根据比较结果,各个数据提供方在本地更新梯度:
其中,λ为学习率。

说明书全文

一种基于链的安全SVM训练方法

技术领域

[0001] 本发明涉及一种面向多个用户数据集的基于区块链的安全SVM(Support Vector Machine,支持向量机)训练方法,属于人工智能机器学习技术领域。

背景技术

[0002] 随着信息技术在各行各业的发展与应用,每天都有大量的数据生成,例如医疗、车联网等。机器学习作为有效的数据分析方式,被广泛应用于这些场景中。在各类机器学习方法中,SVM(Support Vector Machine,支持向量机)是一种常见高效的方法。例如,在车辆社交网络(Vehicular Social Networks,VSNs)中,SVM被用于训练推荐系统。在医疗场景中,SVM被用于疾病预测。除了有效的数据分析手段之外,模型训练所使用训练集与模型的效果紧密相关。在车联网场景中,数据由不同的车联网机构收集,包括车辆管理机构、社交应用提供方等。在医疗场景中,不同医院拥有的病人的属性数据存在区别。不同机构收集到的数据属性一般存在区别。当使用SVM训练模型时,一条训练集中的数据的维度通常来自于不同的机构,因而需要多家机构共享数据,用于训练机器学习模型。
[0003] 然而,这种基于直接共享数据训练模型的方式存在诸多问题。一方面,共享出的训练数据包含大量有价值的隐私数据,例如车辆地理位置、病人身体状况信息等。因此,对于数据拥有者而言,数据直接共享将会导致隐私泄露,进一步导致数据价值降低等问题。另一方面,由于数据包含用户的个人隐私数据,当前各国均重视这件事,同时也颁布了相关的条约限制数据拥有方之间的数据共享。因此,提出一种安全的SVM模型训练方法,很有必要。
[0004] 当前,机器学习过程中的隐私保护方案,一般基于同态加密和差分隐私保护。然而,上述两种方法均存在一些问题。需要引入可信第三方,但在真实场景中,可信第三方很难找到,所以,这些方案在实用性方面存在欠缺。
[0005] 区块链技术,依靠其去中心化、去信任化、可追踪、不可篡改等特性,解决了互不信任的数据提供方之间协同工作问题。区块链按照开放程度、节点数量等特征,可以分成三类:公有链、联盟链和私有链。其中,由于联盟链的开放程度适中,具备一定的访问控制策略,同时效率上相比于公有链更高。
[0006] 同态加密,具备安全性高、计算结果可靠等特性。但是,多数方案需要引入可信第三方。同时,同态加密存在一些问题需要解决,同态加密在效率上没有优势。

发明内容

[0007] 本发明的目的在于克服现有技术缺陷,为有效解决在区块链平台下机器学习模型训练时面临的用户数据隐私泄露的技术问题,面向多个数据提供方,提出一种基于区块链和限同态加密的、基于维度不同的数据集安全的协作SVM模型训练方法。
[0008] 本发明所述方法,一是为有效解决用户数据隐私泄露问题,在不引入可信第三方的条件下,基于区块链技术,建立安全的数据共享平台。二是各数据提供方在共享计算中间值时,将待共享的计算中间值通过门限同态加密算法进行加密,之后再共享到平台上,保证了用户数据在共享过程中的安全性。三是解决了模型训练效率问题,大部分模型训练工作在数据提供方本地进行,计算输入基于明文数据,从而保证了模型训练的高效性。
[0009] 本发明使用的适用于大规模数据集情况下的基于随机梯度下降的SVM算法,该算法求解最优解时的目标函数如公式(1)所示:
[0010]
[0011] 其中,w表示模型参数,T代表矩阵的转置,xi表示数据集中的一条数据,C表示惩罚参数。
[0012] 在第一轮迭代前,随机设置初始模型参数,随后的每一轮迭代均使用公式(2)更新梯度:
[0013]
[0014] 其中,λ表示学习率,wt表示第t轮模型参数,I表示指示函数,yi表示数据xi的标签值。
[0015] 通过公式(3)更新模型:
[0016] wt+1=wt-λΔt   (3)
[0017] 经过迭代次数到达最大迭代次数之后,完成训练。
[0018] 一种基于区块链的安全SVM训练方法,其技术方案如下:
[0019] 所述SVM训练系统中,仅存在数据提供方一种色,数据提供方同时也充当模型训练方和最终模型的共享方。每一个数据提供方运行一个联盟链节点,集合中的全部节点共同组成一个联盟链,各节点参与联盟链运行过程中的共识。共享到联盟链上的数据,将被永久记录在联盟链的共享账本中。
[0020] 参与模型训练的数据提供方用P代表,P={P1,...,PN},其中N代表数据提供方的数量。将数据提供方Pi拥有的数据集表示为Di,则全部数据提供方P拥有的数据集集合为{D1,…,D|N|},数据集Di的维度为di。所有数据集包含的数据数量均为m。
[0021] 步骤1:所有数据提供方协同完成初始化模型参数。具体如下:
[0022] 步骤1.1:管理者(curator)生成门限Paillier算法的公私钥,并分配给各个数据提供方Pi,Pi具备一对公私钥(PK,SKi),其中公钥相同、私钥不同。将门限Paillier算法的门限值,设为数据提供方的数量N,只有全部数据提供方共同解密,才能恢复密态数据的明文。
[0023] 通过该步骤,对于任意一个数据提供者来说,整个模型训练过程中的待加密中间值可以使用同一个公钥进行加密,同时,解密工作需要超过门限值数量的数据提供方共同完成。如此,任何一个数据提供方均无法直接解密密态数据。
[0024] 步骤1.2:数据提供方将各自数据集中的用户数据,按照相同的顺序排列,同时协商好每一条用户数据的标签值。
[0025] 一条完整的训练数据包含属性数据和标签值。每个数据提供方拥有训练数据的部分属性数据,都拥有这条训练数据的标签值,这个标签值由数据提供方彼此协商得到。在医疗场景中,对于同一个用户,每一个数据提供方(医疗机构)具备该用户的一些身体状况相关的属性数据,它们之间彼此通过协商确定该用户的身体状况,即数据的标签值。因此,各个数据提供方均知道数据集中用户数据的标签值。
[0026] 步骤2:各数据提供方根据自身的数据集,完成本地局部模型训练。每一次训练过程为一次迭代,具体如下:
[0027] 步骤2.1:多个数据提供方协商从自身的数据集中随机挑选一条用户数据。首先,为获取指示函数I[(wxi<1)]的值,计算 其中di为数据提供方Pi的数据集维度的数目,y为标签值,wi为第t轮模型参数,xi为数据集中的一条数据。如果则I[(wxi<1)]值为1,否则为0。
[0028] 在该步骤中,由于各个数据提供方均在本地用自己持有的用户数据进行计算,因此各自的用户数据不会被泄露给其他数据提供方。
[0029] 步骤2.2:根据步骤2.1的计算结果,数据提供方之间交换计算中间值,更新梯度。
[0030] 由于该步骤涉及到数据共享,因此在该步骤中采用联盟链数据共享平台和门限同态加密来保护数据隐私,具体包括:
[0031] 步骤2.2.1:对于每个数据提供方Pi来讲,都经过步骤2.1计算出相应的记作ai。此时,各数据提供方随机选取三个随机正整数 且三个随机数满足 为保证后续步骤的中间结果的隐私不泄露,每个数据提供方
Pi使用门限同态加密公钥加密随机数 得到密态结果
[0032] 步骤2.2.2:各数据提供方使用公钥PK加密ai得到[[ai]]。
[0033] 步骤2.2.3:各数据提供方将当前训练轮次,数据提供方ID值,密态中间值[[ai]],随机数 以及随机生成的下一轮选取的数据编号,共7个字段,以交易的形式通过链码上传到区块链上。一方面,由于密态数据使用门限同态加密算法加密得到,因此共享的数据无法被其他数据提供方解密。另一方面,我们采用联盟链作为数据共享平台,因此只有联盟链中的各个数据提供方能够获取到共享的数据。
[0034] 步骤2.2.4:各数据提供方从区块链上读取其它数据提供方的上链数据。之后,根据这 些数 据 ,利用同 态 加密 的 加法同 态 性 质和 数乘 同 态性 质 ,计 算[[a]]、[[r2]]、[[ar1+r2]],a由 计算得到,用于计算指示函数。其中:
[0035]
[0036]
[0037]
[0038] 步骤2.2.5:各数据提供方使用自身的子私钥SKi解密[[ar1+r2]],同时,将解密结果、训练轮次、数据提供方ID,以交易的形式通过链码上传到联盟链上。
[0039] 步骤2.2.6:各数据提供方从联盟链平台上获取其它数据提供方的解密结果,同时,通过门限同态方案还原ar1+r2。同时比较ar1+r2和r1+r3。如果ar1+r2大于r1+r3,则a>1,否则a<1。由于最终解密的对象是[[ar1+r2]],解密结果ar1+r2不会泄露任何关于计算中间值a以及原始用户数据的信息,因此该步骤,用户数据隐私不会被泄露。
[0040] 步骤2.2.7:根据比较结果,各个数据提供方在本地更新梯度:
[0041]
[0042] 其中,λ为学习率。
[0043] 步骤2.3:根据步骤2.2的交互计算结果,各个数据提供方在本地更新部分模型参数:
[0044] wt+1=wt-λΔt   (8)
[0045] 步骤3:重复执行步骤2,当迭代次数达到最大时,结束模型训练工作。每个数据提供方将部分模型参数上传到区块链共享账本上,最终模型在各数据提供方之间共享。
[0046] 每个数据提供方拥有的数据维度是完整维度的一部分。例如:一条数据(x1,x2,x3,x4)对应的模型参数是(w1,w2,w3,w4),数据提供方A拥有的数据维度是(x1,x2)。在训练过程中,数据提供方A更新的是对应的(w1,w2),最终得到的也是(w1,w2)。因此,数据提供方A拥有的是部分模型参数(完整模型的部分参数)。
[0047] 有益效果
[0048] (1)本发明适用于面向竖切数据集多方协作训练模型的场景,在数据隐私不泄露的条件下,多个数据拥有者协同训练SVM模型。其中各方的竖切数据集的维度不同。
[0049] (2)去中心化:本发明从实际应用角度出发,通过区块链和门限同态加密方案保证训练过程中无需可信第三方的参与,一方面避免在实际场景中难以找到合适的第三方的条件,另外一方面也避免由于引入第三方带来的隐私泄露问题。
[0050] (3)安全性:在多方协作进行模型训练时,训练模型所需要的训练数据以及模型训练过程的中间参数均不会泄露给其他的数据提供方,保证了数据的隐私安全。
[0051] (4)效率:本发明能够避免了大量的加密解密工作,仅将需要共享的中间数据需要进行加密。因此整个训练过程能够保证高效率。附图说明
[0052] 图1是本发明所述SVM的协同训练模型。
[0053] 图2是本发明方法中每个数据提供方在一轮迭代过程中的训练过程示意图。

具体实施方式

[0054] 下面结合附图和实施例对本发明做具体说明。
[0055] 实施例1
[0056] 一种基于区块链的安全SVM训练方法,如图1所示。图1描述了安全的SVM协同训练场景。参与训练的数据提供方有3个,即|N|=3。数据提供方负责收集、处理后建立自己的数据集。不同数据提供方之间的数据集所包含的属性存在差别,因而3个数据提供方共享数据之后,可以形成1个属性全面的数据集。3个数据提供方同时也是模型的训练方,在原始训练数据以及中间计算结果不泄露的情况下,基于各自属性不同的数据集,协作完成SVM模型的训练。训练过程中,基于区块链构建的数据平台连接各个数据提供方,提供去中心化的协同训练环境。
[0057] 数据提供方在模型训练过程中,属于半诚实参与者,即会按照规则完成计算,但是会窥探其他数据提供方的数据。因此,在训练过程中,对数据隐私需要加以保护,满足对隐私安全的需求。在每一轮的迭代过程中,大部分的训练工作在数据提供方本地,基于各自的明文数据集完成,在计算梯度时需要多方协作完成,在该步骤引入隐私保护方案。
[0058] 本实施例中,数据提供方所持有的数据来自的数据集Breast Cancer Wisconsin Data(BCWD)。该数据集包含699条用户数据,每一条用户数据包含9个维度。数据集被竖切成三份,每一个部分数据集包含三个维度,三个部分数据集分别由三个数据提供方拥有。
[0059] 步骤1、数据提供方之间协同初始化模型参数,完整的模型包含9个参数,其中每个数据提供方初始化自己持有的数据所对应的三个参数。初始化公私钥对,设置门限同态加密的门限值为3;分配并预处理数据集;运行联盟链节点,与其他数据提供方运行的节点共同组成联盟链。
[0060] 步骤2、在第t轮模型训练时,在梯度更新之前,各数据提供方基于本地局部数据集以及上一轮的局部参数,完成本轮计算。训练模型,基于随机梯度下降的SVM算法,3个数据提供方分别计算出
[0061] 在梯度判断时,在不泄露 的条件下比较 和1的大小。同时由于无可信第三方,需要借助区块链平台共享中间结果,借助门限同态加密方法保证用户数据的安全性和可用性。该过程每一个参与者仅需要数据上链两次,读取两次,同时加密两次,解密一次。同时同态加法和数乘次数有限,因此在计算开销以及时间开销上均不大。
[0062] 步骤2.1、各数据提供方使用公钥PK加密中间结果 和随机数 其中,i∈{1,2,3}。
[0063] 步骤2.2、第一次上链及读取:每一个参与者将整理好的用户数据按照统一的上链需求完成数据上链。同时当3个参与者全部完成上链工作时,每一个参与者从链上读取其他参与者的数据,数据最后一个字段的平均数将决定下一次迭代所选取的用户数据编号。
[0064] 步骤2.3、同态加法及解密:通过同态加法和同态数乘计算出关键的值,由于采用了同态加密方案,在密文上进行的计算可以通过解密还原出正确的结果。计算之后,三个参与者分别使用子私钥SKi解密。
[0065] 步骤2.4、第二次上链及读取:三个数据提供方将解密结果上链,当全部上链之后,每一个参与者从链上获取其他两个参与者的解密结果,通过解密结果还原出最终的明文结果。完成比较。由于门限值设为3,所以必须通过三个部分解密结果才能够解密成功。
[0066] 步骤2.5、更新模型。每一个参与者根据比较结果,更新梯度。如果大于1,那么I[(wxi<1)]=1,否则I[(wxi<1)]=0。最终根据梯度值计算各自拥有的部分模型的参数。同时在上一步的结果挑选下一轮迭代所选取数据,开始下一轮迭代过程。
[0067] 步骤3、当迭代次数达到最大时,结束模型训练工作。每个数据提供方将部分模型参数上传到区块链共享账本上,最终模型在数据提供方之间共享。
[0068] 实施例2
[0069] 本实施例是将本发明的数据提供方的数量从3个扩展之后场景下的结果对比,验证本发明在不同数据提供方数量上时,发明中采用的方法的准确率的变化。同时增加数据集Australian Credit Approval Data(ACAD)下的模型训练情况。假设数据提供方的个数分别为3,4,5。即数据集按照属性竖切成3,4,5个部分。按照步骤1到步骤4训练模型,统计模型的分类准确率。当年数据提供方数量为3时的运行时间统计结果如表1所示,模型的准确率如表2所示;当数据提供方的数量扩展时,模型的准确率如表3所示。
[0070] 表1运行时间统计表
[0071]
[0072]
[0073] 表2准确率对比结果表
[0074]
[0075] 表3方法扩展性统计结果表
[0076]
[0077] 从表格1可以看出,本发明所使用的方法总体时间开销主要由两部分组成:计算时间开销和通信时间开销,其中计算时间开销还包括本地训练时间开销(基于明文的计算)和梯度更新判断时间开销(基于密文的计算)两部分。在三个数据提供方的实例场景中,总体运行时间开销不高,其中计算时间很短,通信时间也在可接受的范围之内,因而该方法具备高效性。
[0078] 表格2展示了本发明所使用的方法在准确率上的结果。结果从精确度和召回率两个方面展示了本发明的高准确率,即相比于常规的训练条件(无隐私保护),引入隐私保护的安全的SVM训练方法在准确率上没有损失。
[0079] 表格3展示了本发明在数据提供方数量增加时的扩展性。当数据提供方的数量由三个增加到5个的过程中,训练得出的模型精确度和召回率没有明显变化。由此表明,在数据提供方数量不同的实例场景中,本发明依旧能够保持高扩展性。
[0080] 应当指出,本发明的实施不限于以下实施例,对于本领域技术人员来说,在不脱离本专利原理的前提下,还能够做出若干改进,这些均属于本专利的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈