首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 安全建模方法、装置、电子设备及存储介质

安全建模方法、装置、电子设备及存储介质

阅读:0发布:2020-05-31

专利汇可以提供安全建模方法、装置、电子设备及存储介质专利检索,专利查询,专利分析的服务。并且本 说明书 实施例 公开一种安全建模方法、装置、存储介质即 电子 设备,该电子设备可以是基于SGX(Software Guard Extensions, 软件 保护扩展)的服务端设备,所电子备上包括不可信内存以及基于可信 执行环境 的安全内存,不可信内存中保存有用于训练目标模型的训练样本密文。以流式解密方式,从不可信内存中逐个读取并解密训练样本密文至安全内存,在安全内存中完成对模型参数的 迭代 ,得到模型参数经迭代后的模型参数值,其中,解密出的当前训练样本明文 覆盖 上一训练样本明文对安全内存的占用空间。经过M轮次以上的迭代后若满足预设收敛条件,得到经训练的目标模型。,下面是安全建模方法、装置、电子设备及存储介质专利的具体信息内容。

1.一种安全建模方法,应用于电子设备,所述电子设备上包括不可信内存以及基于可信执行环境的安全内存,所述不可信内存中保存有用于训练目标模型的M批训练样本密文,M为正整数,所述方法包括:
以流式解密方式,从所述不可信内存中逐个读取并解密所述M批训练样本密文中的每个训练样本密文至所述安全内存,在所述安全内存中完成对所述目标模型的模型参数的M轮次迭代,得到所述模型参数经M轮次迭代后的模型参数值,其中,解密出的当前训练样本明文覆盖上一训练样本明文对所述安全内存的占用空间,所述模型参数保存在所述安全内存中;
如果经所述M轮次迭代后满足预设收敛条件,则基于所述M轮次迭代后的模型参数值得到经训练的目标模型。
2.如权利要求1所述的方法,所述以流式解密方式,从所述不可信内存中逐个读取并解密所述M批训练样本密文中的每个训练样本密文至所述安全内存,在所述安全内存中完成对所述模型参数的M轮次迭代,得到所述模型参数经M轮次迭代后的模型参数值,包括:
针对所述M批训练样本密文中的当前批训练样本密文,通过所述安全内存中的代码,逐个读取并解密所述当前批训练样本密文中的每个训练样本密文至所述安全内存,用以对保存在所述安全内存中的更新参数进行N次更新,得到所述更新参数经N次更新后的参数值,其中,N为所述当前批训练样本密文的样本数,N为正整数;
通过所述安全内存中的代码,将所述更新参数经N次更新后的参数值赋值给所述模型参数,得到所述模型参数经当前轮次迭代后的模型参数值。
3.如权利要求2所述的方法,所述逐个读取并解密所述当前批训练样本密文中的每个训练样本密文至所述安全内存,用以对保存在所述安全内存中的更新参数进行N次更新,包括:
在所述安全内存中解密所述当前批训练样本密文中的第i个训练样本密文,得到与所述第i个训练样本密文对应的第i个训练样本明文,i依次取小于或等于N的正整数;
通过覆盖第i-1个训练样本明文对所述安全内存的占用空间,将所述第i个训练样本明文保存至所述安全内存中;
根据所述第i个训练样本明文,在所述安全内存中对所述更新参数进行一次更新,得到所述更新参数经第i次更新后的参数值。
4.如权利要求3所述的方法,所述当前批训练样本密文中的每个训练样本密文包含建模样本密文以及对应的标签值密文;
所述根据所述第i个训练样本明文,在所述安全内存中对所述更新参数进行一次更新,包括:
在所述安全内存中,根据所述模型参数经上一轮次迭代得到的模型参数值,确定出所述目标模型针对第i个建模样本明文的输出值,所述第i个建模样本明文从所述当前批训练样本密文中解密得到;
根据所述第i个建模样本明文的输出值、所述第i个建模样本明文以及对应的标签值明文、当前学习率和所述当前批训练样本密文的样本数,对所述更新参数进行一次更新。
5.如权利要求1-4中任一所述的方法,所述目标模型为线性回归模型或者逻辑回归模型。
6.如权利要求1-4中任一所述的方法,通过如下步骤,在所述安全内存中判断每轮次迭代后是否满足预设收敛条件:
在所述安全内存中记录当前迭代轮次,在所述安全内存中判断所述当前迭代轮次是否达到预设的迭代次数阈值,如果达到,则表征当前轮次迭代后满足所述预设收敛条件。
7.一种安全建模装置,应用于电子设备,所述电子设备上包括不可信内存以及基于可信执行环境的安全内存,所述不可信内存中保存有用于训练目标模型的M批训练样本密文,M为正整数,所述装置包括:
参数更新单元,用于以流式解密方式,从所述不可信内存中逐个读取并解密所述M批训练样本密文中的每个训练样本密文至所述安全内存,在所述安全内存中完成对所述目标模型的模型参数的M轮次迭代,得到所述模型参数经M轮次迭代后的模型参数值,其中,解密出的当前训练样本明文覆盖上一训练样本明文对所述安全内存的占用空间,所述模型参数保存在所述安全内存中;
判断单元,用于如果经所述M轮次迭代后满足预设收敛条件,则基于所述M轮次迭代后的模型参数值得到经训练的目标模型。
8.如权利要求7所述的装置,所述参数更新单元,包括:
参数更新子单元,用于针对所述M批训练样本密文中的当前批训练样本密文,通过所述安全内存中的代码,逐个读取并解密所述当前批训练样本密文中的每个训练样本密文至所述安全内存,用以对保存在所述安全内存中的更新参数进行N次更新,得到所述更新参数经N次更新后的参数值,其中,N为所述当前批训练样本密文的样本数,N为正整数;
赋值子单元,用于通过所述安全内存中的代码,将所述更新参数经N次更新后的参数值赋值给所述模型参数,得到所述模型参数经当前轮次迭代后的模型参数值。
9.如权利要求8所述的装置,所述参数更新子单元,具体用于:
在所述安全内存中解密所述当前批训练样本密文中的第i个训练样本密文,得到与所述第i个训练样本密文对应的第i个训练样本明文,i依次取小于或等于N的正整数;
通过覆盖第i-1个训练样本明文对所述安全内存的占用空间,将所述第i个训练样本明文保存至所述安全内存中;
根据所述第i个训练样本明文,在所述安全内存中对所述更新参数进行一次更新,得到所述更新参数经第i次更新后的参数值。
10.如权利要求9所述的装置,所述当前批训练样本密文中的每个训练样本密文包含建模样本密文以及对应的标签值密文;
所述参数更新子单元,包括:
在所述安全内存中,根据所述模型参数经上一轮次迭代得到的模型参数值,确定出所述目标模型针对第i个建模样本明文的输出值,所述第i个建模样本明文从所述当前批训练样本密文中解密得到;
根据所述第i个建模样本明文的输出值、所述第i个建模样本明文以及对应的标签值明文、当前学习率和所述当前批训练样本密文的样本数,对所述更新参数进行一次更新。
11.如权利要求7-10中任一所述的装置,所述目标模型为线性回归模型或者逻辑回归模型。
12.如权利要求7-10中任一所述的装置,判断单元,用于通过如下步骤,在所述安全内存中判断每轮次迭代后是否满足预设收敛条件:
在所述安全内存中记录当前迭代轮次,在所述安全内存中判断所述当前迭代轮次是否达到预设的迭代次数阈值,如果达到,则表征当前轮次迭代后满足所述预设收敛条件。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-6中任一所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-6中任一所述方法的步骤。

说明书全文

安全建模方法、装置、电子设备及存储介质

技术领域

[0001] 本说明书实施例涉及计算机技术领域,尤其涉及一种安全建模方法、装置、电子设备及存储介质。

背景技术

[0002] 随着计算的快速发展,越来越多的关键性服务和高价值数据被迁移到了云端。云安全也因此成为学术界和工业界关注的一个焦点。云安全领域最重要的一项技术进展名为机密计算(Confidential Computing),保证使用中数据和代码的安全。而TEE(Trusted Execution Environment,可信执行环境)技术是进行机密计算的有工具,在可信执行环境下进行外包计算或多方安全计算,从而保护使用中数据的机密性和完整性。
[0003] 其中,Intel的SGX(Software Guard Extensions,软件保护扩展)是一种TEE技术,从内存中划出的一段特殊内存区域--EPC,被内存加密引擎(MEE)加密,CPU处于Enclave模式才能访问该段EPC内存。EPC内存最大设置为128MB,由于内存加密单元MEE要保证EPC内存的机密性和完整性,可用于存储数据和代码的EPC内存最大只有96MB。发明内容
[0004] 本说明书实施例提供一种安全建模方法、装置、电子设备及存储介质,以提高建模安全性。
[0005] 第一方面,本说明书实施例提供一种安全建模方法,应用于电子设备,所述电子设备上包括不可信内存以及基于可信执行环境的安全内存,所述不可信内存中保存有用于训练目标模型的M批训练样本密文,M为正整数,所述方法包括:以流式解密方式,从所述不可信内存中逐个读取并解密所述M批训练样本密文中的每个训练样本密文至所述安全内存,在所述安全内存中完成对所述目标模型的模型参数的M轮次迭代,得到所述模型参数经M轮次迭代后的模型参数值,其中,解密出的当前训练样本明文覆盖上一训练样本明文对所述安全内存的占用空间,所述模型参数保存在所述安全内存中;
[0006] 如果经所述M轮次迭代后满足预设收敛条件,则基于所述M轮次迭代后的模型参数值得到经训练的目标模型。
[0007] 第二方面,本说明书实施例提供一种安全建模装置,应用于电子设备,所述电子设备上包括不可信内存以及基于可信执行环境的安全内存,所述不可信内存中保存有用于训练目标模型的M批训练样本密文,M为正整数,所述装置包括:参数更新单元,用于以流式解密方式,从所述不可信内存中逐个读取并解密所述M批训练样本密文中的每个训练样本密文至所述安全内存,在所述安全内存中完成对所述目标模型的模型参数的M轮次迭代,得到所述模型参数经M轮次迭代后的模型参数值,其中,解密出的当前训练样本明文覆盖上一训练样本明文对所述安全内存的占用空间,所述模型参数保存在所述安全内存中;判断单元,用于如果经所述M轮次迭代后满足预设收敛条件,则基于所述M轮次迭代后的模型参数值得到经训练的目标模型。
[0008] 第三方面,本说明书实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述任一所述方法的步骤。
[0009] 第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一所述方法的步骤。
[0010] 本说明书实施例提供的一个或者多个技术方案,至少具有如下有益技术效果:
[0011] 建模的数据量在百万样本、几千维,最大数据可达20GB。这个数据量远超EPC内存最大可用空间96MB。而本说明书实施例通过以流式解密方式,在安全内存逐个从不可信内存中获取并解密训练样本密文至安全内存中,解密出的当前训练样本明文覆盖上一训练样本明文对安全内存的占用空间,在安全内存进行对保存在安全内存中的模型参数的迭代,使得占用安全内存的数据始终只有模型参数和单个样本,大大减少了对安全内存的占用,又保证了建模过程中数据(包含样本数据,模型参数值等数据)的安全性,从而能够有效利用有限的EPC内存完成大数据量的建模,进而实现了基于EPC内存的安全建模,提高了建模安全性。附图说明
[0012] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本说明书的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0013] 图1为本说明书实施例中安全建模方法的系统架构图;
[0014] 图2为本说明书实施例中安全建模方法的流程示意图;
[0015] 图3为本说明书实施例中建模过程数据在不可信内存与安全内存中的示意图;
[0016] 图4为本说明书实施例例中安全建模装置的模示意图;
[0017] 图5为本说明书实施例中电子设备的结构示意图。

具体实施方式

[0018] 为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
[0019] 本说明书实施例提供的安全建模方法,可以应用于如图1所示的系统架构:
[0020] 服务端,服务端包括可信部分和不可信部分,可信部分对应一段被保护的物理内存区域,该物理内存区域叫做enclave page cache(EPC)。在可信部分可以创建一个以上可信组件,即:一个以上安全内存(enclave)。并将每个安全内存的地址空间映射到EPC中。安全内存(enclave)中的代码允许去访问EPC以及EPC外的内存区域,而不可信部分的代码不允许访问EPC。图1中示意出两个安全内存:安全内存1、安全内存2。不可信部分对应除EPC之外的不可信内存,每个安全内存与不可信部分之间通过跨Enclave的函数调用通信,安全内存不能执行IO(输入/输出,Input/Output)操作和访问网络,通过服务端的不可信部分执行对安全内存内隐私数据的密文的发送、接收。
[0021] 用户端与服务端通信连接,用户端在自己的可信域,基于协商的共享密钥对自己的隐私数据加密,加密后的密文发送至服务端,在服务端的安全内存,基于与用户端协商的共享密钥,对用户端发来的密文进行解密并计算,在本说明书实施例中,服务端对用户端发来的密文进行解密并计算,具体是对样本密文进行解密后,用以对目标模型的模型参数进行迭代更新。
[0022] 下面,参考图1、图2和图3所示,对本说明书实施例提供的安全建模方法进行详细描述:
[0023] 本说明书实施例提供的安全建模方法应用于电子设备,电子设备上包括不可信内存以及基于可信执行环境的安全内存。具体的,该电子设备上可以是基于intel SGX的服务端,基于可信执行环境的安全内存是enclave,该enclave对应映射EPC的一段物理内存。当然,该电子设备上基于可信执行环境的安全内存区域也可以基于其他技术实现。而不可信内存中保存有用于训练目标模型的M批训练样本密文,M为正整数。M批训练样本密文构成了全集训练样本密文。参考图2所示,安全建模方法包括如下步骤:
[0024] 步骤S200、以流式解密方式,从不可信内存中逐个读取并解密M批训练样本密文中的每个训练样本密文至安全内存,在安全内存中完成对目标模型的模型参数的M轮次迭代,得到模型参数经M轮次迭代后的模型参数值,其中,解密出的当前训练样本明文覆盖上一训练样本明文对安全内存的占用空间,目标模型的模型参数保存在安全内存中。
[0025] 为了从不可信内存逐个获取并解密每批训练样本密文中的每个训练样本密文,不可信部分向可信内存传递读取训练样本密文的起始地址,触发可信内存中的代码从起始地址开始逐个读取训练样本密文至安全内存中,在安全内存中对当前读取的训练样本密文进行解密,得到对应的当前训练样本明文,得到的当前训练样本明文,通过覆盖上一训练样本明文在安全内存的占用空间,在安全内存中进行保存。
[0026] 具体来讲,本说明书实施例中的目标模型可以是线性回归模型或者逻辑回归模型,线性回归建模和逻辑回归建模是常用的线性模型机器学习算法,能够解决特征多维,结果是一维多离散值或一维连续值的问题。线性回归模型和逻辑回归模型在建模过程中都要计算hθ(X);线性回归模型中,hθ(X)=θTX;逻辑回归建模中, 其中,X表示样本,θ表示模型参数。
[0027] 在本说明书实施例中,用户端基于预先与服务端的安全内存协商的共享密钥对训练样本明文进行加密,得到与该训练样本明文对应的训练样本密文。用户端将加密得到的训练样本密文发送给服务端,保存在服务端的不可信内存中,使得在电子设备的不可信内存中保存M批训练样本密文,M为正整数。
[0028] 其中,训练样本明文可以是带标签的训练样本明文,也可以是不带标签的训练样本明文。就带标签的训练样本明文而言,每个训练样本明文包含建模样本明文以及与该建模样本明文对应的标签值明文。建模样本明文包含多维特征,每维特征用一个浮点数表示,因此,每维特征只占用4B的内存空间。一个建模样本明文的特征维数用DIM表示,每个建模样本明文在安全内存中占用DIM*4B的内存空间。而每个建模样本明文对应的标签值明文可以为“0”或“1”。
[0029] 需要说明的是,本说明书实施例提供的模型构建方法所应用的实际场景不同,训练样本明文的具体类型则相应不同,本说明书实施例中不进行限定。
[0030] 具体的,本说明书实施例中的流式解密方式,具体是指:逐个从不可信内存中读取训练样本密文至安全内存中,每次只读取一个训练样本密文至安全内存中,在安全内存中进行解密。解密得到对应的当前训练样本明文,通过覆盖上一训练样本明文在安全内存中的内存空间,进行在安全内存中保存当前训练样本明文,使得始终只有单个训练样本会占用安全内存的内存空间,以此减少了对安全内存的空间占用。
[0031] 而单个建模样本明文的每维特征会占用1个浮点数的大小,则每个建模样本只占用DIM*4B的EPC内存,标签值明文如果是浮点数类型,就只占用一个浮点数的大小,即只占用EPC内存中的4B内存空间。因此,一个训练样本文明只会占用EPC内存的4*(DIM+1)B内存空间。其中,DIM是表示每个建模样本明文的特征维数。每维特征用1个浮点数表示,1个浮点数是4B,则当前训练样本明文占用内存大小是:特(DIM+1)*4B。
[0032] 举例来讲,当前训练样本明文覆盖上一训练样本明文对安全内存的占用空间,具体是:上一训练样本明文占用安全内存中的A段地址空间,则当前训练样本明文也存储至安全内存的A段地址空间,直接覆盖上一训练样本明文,使得不需要再对已经使用过的上一训练样本明文进行加密计算,而现有技术中,由于是在非安全区域进行模型训练,因此,需要对使用过的训练样本明文进行再加密保存,因此,相对而言,本说明书实施例的技术手段能够减少计算量和计算复杂度。
[0033] 在步骤S200中,从当前批训练样本密文逐个解密出训练样本明文,在安全内存区域完成对保存在安全内存中的模型参数的当前次迭代,从而基于M批训练样本密文解密出的训练样本明文,对应能够完成对模型参数的M轮次迭代更新。
[0034] 下面,针对M批训练样本密文中的当前批训练样本密文,完成对保存在安全内存中的模型参数的当前次迭代更新的过程进行详细描述,具体如下步骤1~2:
[0035] 步骤1、通过安全内存中的代码,从不可信内存中逐个读取并解密当前批训练样本密文中的每个训练样本密文至安全内存,用以对保存在安全内存中的更新参数进行N次更新,得到更新参数经N次更新后的参数值,其中,N为当前批训练样本密文的样本数,N为正整数。
[0036] 更新参数经过N次更新后得到的参数值,作为待赋值给模型参数的值。
[0037] 在具体实施过程中,根据参数优化方式的不同,对模型参数进行一次迭代使用的样本数(即一批训练样本密文中的样本数)会相应有所不同。具体来讲,参数优化方式如果是full-batch Gradient Descent(全量梯度下降法),则每次迭代使用的一批训练样本密文中的样本数等于全集训练样本数;如果参数优化方式是MBGD(Mini-batch Gradient Descent,小批量梯度下降法)或者BGD(Batch Gradient Descent,批量梯度下降法),则每次迭代使用的一批训练样本密文中的样本数少于全集训练样本数,即全集训练样本会形成对应多批训练样本密文;如果参数优化方式是SGD(stochastic gradient descent,随机梯度下降法),则每次迭代使用的一批训练样本密文中样本数为1,即单个训练样本,实现对模型参数的一轮次迭代。
[0038] 具体来讲,每次从不可信内存中解密出当前批训练样本密文中的一个训练样本明文至安全内存,就基于该训练样本明文对保存在安全内存中的更新参数进行一次更新。因此,样本数是N的当前批训练样本密文,能够对更新参数进行N次更新。举例来讲,当前批训练样本密文的样本数为500,则对更新参数进行500次更新。
[0039] 在具体实施过程中,对于当前批训练样本密文中每个训练样本密文,根据该训练样本密文对更新参数进行更新的过程,可以参考如下实施方式:
[0040] 通过安全内存中的代码,从不可信内存中获取并解密当前批训练样本密文中的第i个训练样本密文,得到与第i个训练样本密文对应的第i个训练样本明文,i依次取小于或等于N的正整数;第i个训练样本明文覆盖第i-1个训练样本明文占用的安全内存的内存空间,以将第i个训练样本明文保存至安全内存中;根据第i个训练样本明文,在安全内存中对更新参数进行一次更新,得到更新参数经第i次更新后的参数值。
[0041] 其中,在每轮次迭代中,会对保存在安全内存中的更新参数进行多次更新,而在每轮次迭代中对更新参数进行首次更新之前,还包括:在安全内存中计算出更新参数的初始值。根据第一个训练样本明文对更新参数的初始值进行更新,得到更新参数经第一次更新后的参数值;接着,从当前批训练样本密文中解密出第二个训练样本明文,覆盖第一个训练样本明文占用的安全内存的内存空间,根据第二个训练样本明文对更新参数的第一次更新后的参数值进行更新,得到更新参数经第二次更新后的参数值……;依次循环,直至从当前批训练样本密文中解密出最后一个训练样本明文时,覆盖上一训练样本明文占用的安全内存的内存空间,根据最后一个训练样本明文对更新参数进行最后一次更新,得到更新参数的参数值,即作为待赋值给模型参数的参数值。
[0042] 具体来讲,在安全内存中计算更新参数θ'的初始值,可以是:根据当前学习率、当前批训练样本密文的样本数、模型参数的当前模型参数值θ。如果非第一轮次迭代,则模型参数的当前模型参数值θ是通过上一轮迭代所得到的模型参数值,如果是首轮次迭代,则当前模型参数值是初始化的模型参数值。具体的,可以根据如下公式计算出更新参数θ'的初始值:
[0043]
[0044] 其中,θ为模型参数的当前模型参数值,α为当前学习率,λ为正则化参数。
[0045] 需要说明的是,每轮次迭代开始时,即基于任一批训练样本密文中第一个训练样本明文对保存在安全内存中的更新参数进行首次更新之前,都要进行计算更新参数的初始值。
[0046] 如果训练样本密文包括建模样本密文和对应的标签值密文,在对当前批训练样本密文中的第i个训练样本密文进行解密时,同时需要解密第i个训练样本密文的解密建模样本密文和标签值密文,解密得到的第i个训练样本明文包括建模样本明文和与该建模样本明文对应的标签值明文。基于此,根据第i个训练样本明文,在安全内存中对更新参数进行一次更新,具体包括如下两个步骤:
[0047] 步骤11、通过安全内存中的代码,在安全内存中根据经上一轮次迭代得到的模型参数值,确定出目标模型针对第i个建模样本明文的输出值,第i个建模样本明文从当前批训练样本密文中解密得到。以第i个训练样本明文的建模样本明文是Xi,标签值明文是Yi进行举例来讲:
[0048] 如果目标模型是线性回归模型,则线性回归模型针对第i个训练样本明文的建模样本明文的输出值,是:
[0049] hθ(Xi)=θTXi
[0050] 其中,θ为目标模型的当前模型参数值,Xi为第i个训练样本明文中的建模样本明文。
[0051] 如果目标模型是逻辑回归模型,则逻辑回归模型针对第i个训练样本明文中建模样本明文的输出值,是:
[0052]
[0053] 其中,θ为目标模型的当前模型参数值,Xi为第i个训练样本明文中的建模样本明文。
[0054] 步骤12、通过安全内存中的代码,在安全内存中根据第i个建模样本明文的输出值、第i个建模样本明文以及对应的标签值明文、当前学习率和当前批训练样本密文的样本数,对更新参数进行一次更新。具体的,可以参考如下更新公式进行更新:
[0055]
[0056] 其中,α为当前学习率,m为当前批训练样本密文的样本数,Xi为从当前批训练样本密文中解密出的第i个训练样本明文中的建模样本明文,Yi是从当前批训练样本密文中解i i密出的第i个训练样本明文中的标签值明文,hθ(X)是目标模型对建模样本明文X 的输出值。
[0057] 具体的,当前学习率可以是在不同迭代轮次中变化的(即第k轮次迭代与第K-1轮次迭代是,学习率可能是不相同的),也可以是在不同次轮次迭代中固定的。
[0058] 在通过步骤1得到更新参数经N次更新后的参数值之后,执行步骤2、通过安全内存中的代码,将更新参数的当前参数值赋值给模型参数,得到模型参数经当前轮次迭代后的模型参数值。
[0059] 具体来讲,参考图3所示,DIM表示特征维数,MUM表示全集训练样本数。在安全内存中保存的数据只有:更新参数θ’、目标模型的模型参数θ、单个建模样本明文以及该建模样本明文对应的标签值明文。而标签值明文占用EPC内存的内存大小是一定的,只占用1个浮点数(即占4B)的大小,而更新参数θ’和模型参数θ的维数均为特征维数,参数每一维的值用float表示,更新参数θ’和模型参数θ各自只需占用DIM*4B的EPC内存。而每次又只需要解密出一个建模样本明文,因此,建模样本只占用DIM*4B的EPC内存,可见,对安全内存(即EPC内存)的占用,仅仅与样本的特征维数相关,且对EPC内存的占用非常之少。
[0060] 步骤S202、如果经M轮次迭代后满足预设收敛条件,则基于M轮次迭代后的模型参数值得到经训练的目标模型。
[0061] 在具体实施过程中,预设收敛条件可以根据需要设置一个或者多个。为了保证建模的安全性,通过安全内存中的代码,在安全内存中执行判断是否满足预设收敛条件的步骤,如果满足,得到经训练的目标模型。
[0062] 比如,预设收敛条件可以是:模型参数值达到稳定状态或者达到预设的迭代轮次阈值
[0063] 在安全内存中记录当前迭代轮次,以及保存预设的迭代次数阈值,在安全内存中判断当前迭代轮次是否达到预设的迭代次数阈值,如果达到,则表征经当前轮次迭代后满足预设收敛条件,得到经训练的目标模型。
[0064] 具体的,在安全内存中预设有收敛条件,自动对每轮次迭代进行记录,直至迭代轮次达到预设的收敛条件时,不再读取下一批训练样本密文。如果未达到预设收敛条件,则读取下一批训练样本密文。而具体实施方式参考步骤S200所描述的,因此,为了完成对目标模型的构建,同一批训练样本密文,可能会被读取一次或者多次。为了说明书简洁,在此不再赘述。
[0065] 第二方面,基于与前述安全建模方法的同样发明构思,本说明书实施例一种安全建模装置,应用于电子设备,电子设备上包括不可信内存以及基于可信执行环境的安全内存,不可信内存中保存有用于训练目标模型的M批训练样本密文,M为正整数,参考图4所示,该装置包括:
[0066] 参数更新单元401,用于以流式解密方式,从不可信内存中逐个读取并解密M批训练样本密文中的每个训练样本密文至安全内存,在安全内存中完成对目标模型的模型参数的M轮次迭代,得到模型参数经M轮次迭代后的模型参数值,其中,解密出的当前训练样本明文覆盖上一训练样本明文对安全内存的占用空间,模型参数保存在安全内存中;
[0067] 判断单元402,用于如果经M轮次迭代后满足预设收敛条件,则基于M轮次迭代后的模型参数值得到经训练的目标模型。
[0068] 在一可选的实施方式下,参数更新单元401,包括:
[0069] 参数更新子单元,用于针对M批训练样本密文中的当前批训练样本密文,通过安全内存中的代码,逐个读取并解密当前批训练样本密文中的每个训练样本密文至安全内存,用以对保存在安全内存中的更新参数进行N次更新,得到更新参数经N次更新后的参数值,其中,N为当前批训练样本密文的样本数,N为正整数;
[0070] 赋值子单元,用于通过安全内存中的代码,将更新参数经N次更新后的参数值赋值给模型参数,得到模型参数经当前轮次迭代后的模型参数值。
[0071] 在一可选的实施方式下,参数更新子单元,具体用于:
[0072] 在安全内存中解密当前批训练样本密文中的第i个训练样本密文,得到与第i个训练样本密文对应的第i个训练样本明文,i依次取小于或等于N的正整数;
[0073] 通过覆盖第i-1个训练样本明文对安全内存的占用空间,将第i个训练样本明文保存至安全内存中;
[0074] 根据第i个训练样本明文,在安全内存中对更新参数进行一次更新,得到更新参数经第i次更新后的参数值。
[0075] 在一可选的实施方式下,当前批训练样本密文中的每个训练样本密文包含建模样本密文以及对应的标签值密文;
[0076] 参数更新子单元,包括:
[0077] 在安全内存中,根据模型参数经上一轮次迭代得到的模型参数值,确定出目标模型针对第i个建模样本明文的输出值,第i个建模样本明文从当前批训练样本密文中解密得到;
[0078] 根据第i个建模样本明文的输出值、第i个建模样本明文以及对应的标签值明文、当前学习率和当前批训练样本密文的样本数,对更新参数进行一次更新。
[0079] 在一可选的实施方式下,目标模型为线性回归模型或者逻辑回归模型。
[0080] 关于上述方法,其中各个模块的具体功能已经在本说明书实施例提供的安全建模方法实施例中进行了详细描述,此处将不做详细阐述说明。
[0081] 第三方面,基于与前述实施例中安全建模方法同样的发明构思,本说明书还提供一种电子设备,如图5所示,包括存储器504、处理器502及存储在存储器504上并可在处理器502上运行的计算机程序,处理器502执行程序时实现前文安全建模方法的任一可能的实现方式下的步骤。
[0082] 其中,在图5中,总线架构(用总线500来代表),总线500可以包括任意数量的互联的总线和桥,总线500将包括由处理器502代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口506在总线500和接收器501和发送器503之间提供接口。接收器501和发送器503可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器502负责管理总线500和通常的处理,而存储器504可以被用于存储处理器502在执行操作时所使用的数据。
[0083] 第四方面,基于与前述安全建模方法同样的发明构思,本说明书还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述安全建模方法任一可选实施方式的步骤。
[0084] 本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
[0085] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0086] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0087] 尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
[0088] 显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈