具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
首先对本说明书实施例中涉及的一些术语进行解释。
线性运算例如可以包括加法运算、减法运算、乘法运算和除法运算等。非线性运算例如可以包括对数运算、开方运算、指数运算和三角函数运算等。
安全多方计算(SMC,Secure Multi-Party Computation),用于解决一组互不信任的参与方之间保护隐私的协作计算问题。在分布式网络中,多个参与方可以分别拥有业务数据。使用安全多方计算技术,所述多个参与方可以在不泄漏自身业务数据的前提下进行协作计算,得到秘密信息。例如,参与方P1,…,Pn可以协作计算函数f(x1,…,xn)=(y1,…,yn)=y。其中,n≥2;x1,...,xn分别为参与方P1,…,Pn拥有的业务数据;y为计算得到的秘密信息;y1,…,yn分别为参与方P1,…,Pn在计算后所拥有的秘密信息y的份额。
秘密分享(SS,Secret Sharing),是一种用于实现安全多方计算的算法。秘密分享算法的思想是:将秘密信息以适当的方式进行拆分;拆分后的份额由不同的参与方管理;单个参与方无法恢复秘密信息;只有若干个参与方一同协作才能恢复秘密信息。请参阅图1。例如,假设存在参与方P1、参与方P2和可信任的第三方(TTP,Trusted Third Party)。参与方P1拥有业务数据x1,参与方P2拥有业务数据x2。采用秘密分享算法,参与方P1和参与方P2可以进行协作计算,得到秘密信息y=y1+y2=f(x1,x2)=x1x2。参与方P1在计算后所拥有的秘密信息y的份额为y1,参与方P2在计算后所拥有的秘密信息y的份额为y2。具体地,可信任的第三方可以向参与方P1下发参数U和参数Z1;可以向参与方P2下发参数V和参数Z2;参数U、参数Z1、参数V和参数Z2满足关系式Z1+Z2=UV。参与方P1可以接收参数U和参数Z1;可以计算E=x1-U;可以向参与方P2发送参数E。参与方P2可以接收参数V和参数Z2;可以计算F=x2-V;可以向参与方P1发送参数F。参与方P1可以接收参数F;可以计算秘密信息y的份额y1=UF+Z1。参与方P2可以接收参数E;可以计算秘密信息y的份额y2=Ex2+Z2。需要说明的是,由上述示例可知,在秘密分享算法中,函数f(x1,…,xn)涉及的运算包括乘法运算等线性运算,即,秘密信息的计算过程中涉及的运算为线性运算。换言之,若一个信息的计算过程中涉及的运算为非线性运算,则该信息通常无法通过秘密分享算法计算得到。
激活函数,又称为激励函数,可以用于构建机器学习模型。在所述机器学习模型中,激活函数定义了在给定输入下的输出。所述激活函数例如可以包括Sigmoid函数、Tanh函数和ReLU函数等。所述Sigmoid函数、所述Tanh函数和所述ReLU函数均为超越函数。所述机器学习模型例如可以包括逻辑回归模型和神经网络模型等。
多项式拟合是指利用多项式来近似代替邻域范围内的某一函数(例如激活函数),以使得多项式能够近似表示该函数的输入和输出之间的关系。
请参阅图2。下面结合实际应用场景对本说明书实施例的应用环境进行说明。
本场景示例涉及的主体可以包括平台方服务器和多个数据提供方服务器。
所述平台方服务器可以构建机器学习模型;可以向所述多个数据提供方服务器下发构建的机器学习模型。具体地,所述平台方服务器可以生成多项式,所述多项式能够拟合激活函数。所述平台方服务器可以使用所述多项式来构建机器学习模型,例如构建逻辑回归模型。
所述多个数据提供方服务器中的每个数据提供方服务器可以具有业务数据。不同数据提供方服务器具有的业务数据是不同的。例如,所述多个数据提供方服务器可以包括数据提供方服务器P1、数据提供方服务器P2、数据提供方服务器P3。数据提供方服务器P1可以具有张三的银行卡余额数据;数据提供方服务器P2可以具有张三的房屋价值数据;数据提供方服务器P3可以具有张三的股票价值数据。张三的银行卡余额数据、房屋价值数据和股票价值数据共同构成了张三的资产数据。如此所述多个数据提供方服务器可以接收下发的机器学习模型;可以对所述机器学习模型进行协作训练;以便于使用训练的机器学习模型来识别业务数据的类型。具体地,所述多个数据提供方服务器可以采用秘密分享算法对所述机器学习模型进行训练,以便于在训练过程中能够对业务数据进行隐私保护。
请参阅图3。下面介绍本说明书实施例提供的一种数据处理方法。所述数据处理方法可以用于生成能够拟合激活函数的多项式。所述多项式可以用于代替激活函数构建机器学习模型。所述数据处理方法以所述平台方服务器为执行主体,可以包括以下步骤。
步骤S10:根据业务数据的特征信息,确定多项式的次数和拟合区间。
在一些实施例中,所述业务数据可以是任意类型的数据,例如可以为交易数据或资产数据等。所述业务数据可以包括至少一个子数据,每个子数据可以对应一个业务维度。例如,张三的资产数据可以包括银行卡余额、房屋价值、股票价值等子数据。所述银行卡余额子数据可以对应流动资产维度;所述房屋价值子数据可以对应固定资产维度;所述股票价值子数据可以对应投资资产维度。
所述业务数据的特征信息可以包括业务数据的维度数。延续前例,资产数据的业务维度可以包括流动资产维度、固定资产维度和投资资产维度。那么,资产数据的维度数可以为3。当然,所述业务数据的特征信息还可以包括其它信息,例如业务数据的数量等。
所述业务数据的特征信息可以是开发人员在所述平台方服务器输入的,或者,也可以是所述多个数据提供方服务器中的一个或多个数据提供方服务器发来的,又或者,还可以是其它电子设备发来的。
在一些实施例中,所述多项式可以为由多个单项式相加形成的代数式。所述多项式的次数可以为所述多个单项式中最高项的次数。
在所述拟合区间上,所述多项式能够近似表示激活函数的输入和输出之间的关系。所述拟合区间可以包括多个子区间。所述多个子区间的并集可以形式所述拟合区间。每个子区间可以对应有权重系数。例如,所述拟合区间可以为[a,c]。所述拟合区间可以包括子区间[bj,bj+1]。其中,j=1,2,…,m;b1=a;bm+1=c;子区间[bj,bj+1]对应的权重系数可以为wj。
在一些实施例中,所述平台方服务器可以采用任意方式确定多项式的次数和拟合区间。
具体地,开发人员可以预先构建确定规则。所述确定规则可以包括业务数据的特征信息与多项式的次数、拟合区间、该拟合区间所包括的子区间、子区间的权重系数的对应关系。
在构建确定规则时,开发人员可以考虑以下因素:
(1)业务数据的维度数可以影响多项式的次数和拟合区间。具体地,业务数据的维度数越大,多项式的次数越大,拟合区间越大。
(2)多项式的次数可以影响工程实现的复杂度。具体地,多项式的次数越大,工程实现的复杂度越大。
(3)拟合区间的大小可以影响拟合效果。具体地,拟合区间越大,拟合效果越差。
(4)子区间对应的权重系数可以影响多项式在该子区间的拟合效果。具体地,子区间对应的权重系数越大,多项式在该子区间的拟合效果越好。
如此所述平台方服务器可以根据所述确定规则,确定多项式的次数和拟合区间。
例如,当业务数据的维度数为30左右时,根据所述确定规则,所述平台方服务器可以确定多项式的次数为7次;可以确定拟合区间为[-8,8];可以确定拟合区间的子区间包括[-8,-4]、[-4,4]和[4,8];可以确定子区间[-8,-4]、[-4,4]和[4,8]对应的权重系数均为1/3。
另举一例,当业务数据的维度数为100左右时,根据所述确定规则,所述平台方服务器可以确定多项式的次数为11次;可以确定拟合区间为[-40,40];可以确定拟合区间的子区间包括[-40,-10]、[-10,-4][-4,4]、[4,10]和[10,40];可以确定子区间[-40,-10]、[-10,-4]、[-4,4]、[4,10]和[10,40]对应的权重系数分别为1/80、3/80、72/80、3/80、1/80。子区间[-4,4]对应的权重系数大于其它子区间,这样可以使得多项式在子区间[-4,4]的拟合效果达到最好。
或者,所述平台方服务器还可以采用其它方式确定多项式的次数和拟合区间,本说明书实施例对此并不做具体限定。例如,根据业务数据的特征信息,所述平台方服务器还可以使用数学模型来确定多项式的次数和拟合区间。
步骤S12:根据所述子区间和所述权重系数,构建度量函数。
在本实施例中,所述度量函数可以用于表示所述多项式和所述激活函数在所述拟合区间上的差异程度。具体地,针对每个子区间,所述平台方服务器可以构建该子区间对应的子度量函数。所述子度量函数可以用于表示所述多项式和所述激活函数在该子区间上的差异程度,例如可以包括均方误差函数、均方根误差函数、平均绝对误差函数等。所述平台方服务器可以将每个子区间对应的子度量函数和该子区间对应的权重系数进行乘法运算,得到该子区间对应的子度量函数和权重系数的乘积;可以将各个子区间对应的子度量函数和权重系数的乘积进行累加,得到所述度量函数。需要说明的是,这里的多项式可以包括待定系数,所述度量函数可以认为是关于所述待定系数的函数。
在一个场景示例中,所述子度量函数可以为均方误差函数。所述拟合区间可以为[a,c]。所述拟合区间可以包括子区间[bj,bj+1]。其中,j=1,2,…,m;b1=a;bm+1=c;子区间[bj,bj+1]对应的权重系数可以为wj。那么,所述度量函数其中,g(x)表示多项式;q(x)表示激活函数;/>表示子度量函数。本领域技术人员应当能够理解,上述度量函数e的表达式仅为示例,在实际中度量函数e还可以有其它的变形或变化。需要说明的是,例如,激活函数q(x)可以为Sigmoid函数,具体地,g(x)=0.5+a1x+a3x3+a5x5+...+a2k-1x2k-1。k为自然数,a1、a3、a5、a2k-1分别为待定系数。那么,度量函数e可以认为是关于待定系数a1、a3、a5、a2k-1的函数。
步骤S14:根据所述度量函数,计算所述多项式中待定系数的取值。
在一些实施例中,所述平台方服务器可以根据所述度量函数,计算多项式中待定系数的取值;以使得所述度量函数满足预设条件。所述预设条件可以包括:度量函数的取值达到最小值。当然,所述预设条件还可以包括其它的内容,例如度量函数的取值小于某一阈值。
在一些实施例中,所述平台方服务器可以采用任意方式计算所述多项式中待定系数的取值,本说明书实施例对此并不做具体限定。例如,所述平台方服务器可以采用求导的方式或查表的方式计算所述多项式中待定系数的取值。
步骤S16:根据待定系数的取值,生成所述多项式的表达式。
在一些实施例中,所述平台方服务器可以将所述取值代入所述多项式,得到所述多项式的表达式。
在一个场景示例中,激活函数q(x)可以为Sigmoid函数,具体地,业务数据的维度数可以为100。所述平台方服务器可以确定多项式的次数为11次;可以确定拟合区间为[-40,40];可以确定拟合区间的子区间包括[-40,-10]、[-10,-4][-4,4]、[4,10]和[10,40];可以确定子区间[-40,-10]、[-10,-4]、[-4,4]、[4,10]和[10,40]对应的权重系数分别为1/80、3/80、72/80、3/80、1/80。所述平台方服务器可以构建多项式g(x)=0.5+a1x+a3x3+a5x5+a7x7+a9x9+a11x11。可以采用步骤S12和步骤S14所述方法,得到多项式的表达式该表达式的拟合效果可以如图4所示。
在本说明书实施例中,所述平台方服务器可以根据拟合区间的子区间和子区间对应的权重系数,构建度量函数;可以根据所述度量函数,得到多项式的表达式。这样一方面,通过将拟合区间划分为多个子区间,每个子区间设定权重系数,进而根据子区间和子区间对应的权重系数生成多项式的表达式,可以提高多项式的拟合效果。另一方面,所述多项式由多个单项式相加形成,涉及的运算为线性运算。这样在使用多项式代替激活函数构建机器学习模型以后,便可以采用秘密分享算法对所述机器学习模型进行协作训练。
请参阅图5。本说明书实施例还提供一种数据处理装置。所述装置用于生成能够拟合激活函数的多项式。所述多项式用于代替所述激活函数构建机器学习模型。所述装置包括:
确定单元20,用于根据业务数据的特征信息,确定多项式的次数和拟合区间;所述拟合区间包括多个子区间;每个子区间对应有权重系数;
构建单元22,用于根据所述子区间和所述权重系数,构建度量函数;所述度量函数用于表示所述多项式和所述激活函数在所述拟合区间上的差异程度;
计算单元24,用于根据所述度量函数,计算所述多项式中待定系数的取值;
生成单元26,用于根据待定系数的取值,生成所述多项式的表达式。
请参阅图6。本说明书实施例还提供一种数据处理设备,所述设备用于生成能够拟合激活函数的多项式;所述多项式用于代替所述激活函数构建机器学习模型;所述设备包括存储器和处理器。
在一些实施例中,所述存储器可以按任何适当的方式实现。例如,所述存储器可以为只读存储器、机械硬盘、固态硬盘、或U盘等。所述存储器可以用于存储计算机指令。
在一些实施例中,所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以执行所述计算机指令实现以下步骤:根据业务数据的特征信息,确定多项式的次数和拟合区间;所述拟合区间包括多个子区间;每个子区间对应有权重系数;根据所述子区间和所述权重系数,构建度量函数;所述度量函数用于表示所述多项式和所述激活函数在所述拟合区间上的差异程度;根据所述度量函数,计算所述多项式中待定系数的取值;根据待定系数的取值,生成所述多项式的表达式。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。