计算机执行的集成模型的确定方法及装置
技术领域
本说明书一个或多个实施例涉及机器学习领域,尤其涉及利用计算机执行的集成模型的自动确定方法及装置。
背景技术
集成学习是使用一系列的个体学习器,或称为子模型,进行学习,然后把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。通常在集成学习中,会先选取一个“弱学习器”,然后通过样本集扰动、输入特征扰动、输出表示扰动、算法参数扰动等方式生成多个学习器,再进行集成后获得一个精度较好的"强学习器",或称为集成模型。
然而,目前集成学习对专家经验,人工调试的依赖较大。因此,迫切需要一种改进方案,可以减少集成学习对人工的依赖性,同时,可以在集成学习中获得性能更优的集成模型。
发明内容
本说明书一个或多个实施例描述了一种计算机执行的集成模型的确定方法及装置,可以基于一些基础的候选子模型,自动实现对子模型的选择,形成一个高性能的集成模型,同时,大大减轻了对专家经验和人工干预的依赖性。
根据第一方面,提供了一种计算机执行的集成模型的确定方法,所述方法包括:获取当前集成模型以及未经训练的多个候选子模型;将所述多个候选子模型中的各个子模型分别集成到所述当前集成模型中,得到多个第一候选集成模型;至少对所述多个第一候选集成模型进行训练,得到本次训练后的多个第二候选集成模型;分别对所述多个第二候选集成模型中的各个第二候选集成模型进行性能评估,得到对应的性能评估结果;基于所述性能评估结果,从所述多个第二候选集成模型中确定性能最优的最优候选集成模型;在所述最优候选集成模型的性能满足预定条件的情况下,利用所述最优候选集成模型更新所述当前集成模型。
在一个实施例中,所述多个候选子模型中任意两个候选子模型所基于的神经网络的类型相同或者不同。
在一个实施例中,所述多个候选子模型中包括第一候选子模型和第二候选子模型,所述第一候选子模型和第二候选子模型基于相同类型的神经网络,并且,具有针对所述神经网络设定的不完全相同的超参数。
进一步地,在一个具体的实施例中,所述相同类型的神经网络为深度神经网络DNN,所述超参数包括DNN网络结构中多个隐层的层数,所述多个隐层中各个隐层所具有的神经单元数,以及,所述多个隐层中任意相邻的两个隐层之间的连接方式。
在一个实施例中,在所述当前集成模型不为空的情况下,所述至少对所述多个第一候选集成模型进行训练,还包括:对所述当前集成模型进行所述本次训练。
在一个实施例中,所述性能评估结果包括所述多个第二候选集成模型中的各个第二候选集成模型所对应损失函数的函数值;所述基于所述性能评估结果,从所述多个第二候选集成模型中确定性能最优的最优候选集成模型,包括:将所述损失函数的函数值中的最小值所对应的第二候选集成模型,确定为所述最优候选集成模型。
在一个实施例中,所述性能评估结果包括所述多个第二候选集成模型中的各个第二候选集成模型所对应接收者操作特征ROC曲线下的面积AUC值;所述基于所述性能评估结果,从所述多个第二候选集成模型中确定性能最优的最优候选集成模型,包括:将所述AUC值中的最大值所对应的第二候选集成模型,确定为所述最优候选集成模型。
在一个实施例中,在所述最优候选集成模型的性能满足预定条件的情况下,利用所述最优候选集成模型更新当前集成模型,包括:在所述最优候选集成模型的性能优于所述当前集成模型的性能的情况下,利用所述最优候选集成模型更新所述当前集成模型。
在一个实施例中,在所述从所述多个第二候选集成模型中确定性能最优的最优候选集成模型之后,所述方法还包括:在所述最优候选集成模型的性能不满足预定条件的情况下,将所述当前集成模型确定为最终集成模型。
在一个实施例中,在所述利用所述最优候选集成模型更新当前集成模型之后,还包括:判断针对当前集成模型的更新所对应的更新次数是否达到预设更新次数;在所述更新次数达到所述预设更新次数的情况下,将所述更新后的当前集成模型确定为最终集成模型。
在一个实施例中,所述训练后的多个第二候选集成模型中包括对所述当前集成模型进行本次训练后得到的再训练模型;在所述利用所述最优候选集成模型更新当前集成模型之后,还包括:判断所述最优候选集成模型是否为所述再训练模型;在所述最优候选集成模型是所述再训练模型的情况下,将所述再训练模型确定为最终集成模型。
根据第二方面,提供了一种计算机执行的集成模型的确定装置,所述装置包括:获取单元,配置为获取当前集成模型以及未经训练的多个候选子模型;集成单元,配置为将所述多个候选子模型中的各个子模型分别集成到所述当前集成模型中,得到多个第一候选集成模型;训练单元,配置为至少对所述多个第一候选集成模型进行训练,得到本次训练后的多个第二候选集成模型;评估单元,配置为分别对所述多个第二候选集成模型中的各个第二候选集成模型进行性能评估,得到对应的性能评估结果;选取单元,配置为基于所述性能评估结果,从所述多个第二候选集成模型中确定性能最优的最优候选集成模型;更新单元,配置为在所述最优候选集成模型的性能满足预定条件的情况下,利用所述最优候选集成模型更新所述当前集成模型。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
采用本说明书实施例披露的计算机执行的集成模型的确定方法,以基于一些基础的候选子模型,自动实现对子模型的选择,进而形成一个高性能的集成模型,如此,大大减轻了对专家经验和人工干预的依赖性。特别地,将所述方法应用于确定DNN集成模型,可以大大降低人为设计DNN的复杂性,同时,通过实践证明,此种基于自动集成的DNN训练方法,可以使得DNN集成模型的性能超出人工调试的DNN模型的性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的集成模型确定的实施框图;
图2示出根据一个实施例的集成模型的确定方法流程图;
图3示出根据一个实施例的集成模型的确定方法流程框图;
图4示出根据一个实施例的集成模型的确定装置结构图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
本说明实施例披露一种计算机执行的集成模型的确定方法,下面,首先对所述方法的发明构思和应用场景进行介绍。
在许多技术场景中,需要利用机器学习的模型进行数据分析,例如,典型的,采用分类模型对用户进行分类。这样的分类可以包括,出于网络安全的考虑,将用户账号分为正常状态的用户账号以及异常状态的用户账号,或者,将用户的访问操作分类为安全操作、低风险操作、中等风险操作和高风险操作,以增加网络安全性。在又一示例中,对用户的分类还可以包括,出于服务优化定制的考虑,将用户划分为多个人群,从而针对性地为属于不同人群的用户提供个性化的服务,以提升用户体验。
为了达到较好的机器学习效果,可以利用集成学习的方式。目前,在集成学习中,需要通过人工反复调试来确定集成模型(或称为集成学习器)中集成的子模型(或称为个体学习器)的类型和数量。由此,发明人提出一种计算机执行的集成模型的确定方法,可以实现自动集成,即,在学习器集成过程中,通过自动对学习器的性能评估,从而实现自动对学习器的选择,进而形成一个高性能的学习器的组合,也就是形成一个高性能的集成模型。
在一个例子中,图1示出所述确定方法的实施框图,首先,将多个候选子模型依次结合到当前集成模型中,得到多个候选集成模型;接着,对多个候选集成模型进行训练,得到训练后的多个候选集成模型;然后,通过对训练后的多个候选集成模型进行性能评估,更新当前集成模型。初始地,当前集成模型为空,随着不断迭代,不断有候选子模型组合进来,使得当前集成模型在性能提升的方向不断更新。在迭代终止的情况下,将更新后的当前集成模型确定为最终集成模型。
此外,发明人还发现,随着大数据和深度学习的发展,越来越多的场景中使用深度神经网络(Deep Neural Network,简称DNN)作为训练模型的结构。例如在搜索、推荐和广告场景中,DNN模型扮演着重要的角色,并且也取得了较好的效果。但是随着数据越来越多,场景越来越复杂,DNN模型中的网络结构和其中的网络参数也越来越多。这样使得现在大部分的算法工程师都在设计DNN模型中的网络结构以及调试其中参数,这样耗费了大量的人力和物力,带来较大的成本。
基于以上,发明人进一步提出,在上述集成模型的确定方法中,通过将人工设定的一些基础的多个DNN网络结构作为上述多个候选子模型,再自动集成得到对应的DNN集成模型,由此,可以大大降低人为设计DNN的复杂性,同时,通过实践证明,此种基于自动集成的DNN训练方法,可以使得DNN集成模型的性能超出人工调试的DNN模型的性能。
下面,结合具体的实施例,对上述方法进行介绍。具体地,图2示出根据一个实施例的集成模型的确定方法流程图,所述方法的执行主体可以为任何具有计算、处理能力的装置或设备或平台或设备集群。如图2所示,该方法包括以下步骤:步骤S210,获取当前集成模型以及未经训练的多个候选子模型;步骤S220,将所述多个候选子模型中的各个子模型分别集成到所述当前集成模型中,得到多个第一候选集成模型;步骤S230,至少对所述多个第一候选集成模型进行训练,得到本次训练后的多个第二候选集成模型;步骤S240,分别对所述多个第二候选集成模型中的各个第二候选集成模型进行性能评估,得到对应的性能评估结果;步骤S250,基于所述性能评估结果,从所述多个第二候选集成模型中确定性能最优的最优候选集成模型;步骤S260,在所述最优候选集成模型的性能满足预定条件的情况下,利用所述最优候选集成模型更新当前集成模型。下面结合具体例子,描述以上各个步骤的具体执行方式。
为了更加清晰地介绍所述集成模型的确定方法,首先做出以下说明。具体而言,集成算法中需要解决的两个主要问题是,如何选择若干个体学习器,以及选择何种策略将这些个体学习器集成为一个强学习器。进一步地,在下述实施例中,偏重于对集成模型中多个子模型的确定,也就是对个体学习器的选择。而对于其中的结合策略,也就是对集成模型中各个子模型的输出结果进行结合的策略,可以由工作人员根据实际需要,预先设定为现有结合策略中的任意一种策略。
下面,对所述集成模型的确定方法,主要包括对集成模型中子模型的选取,进行介绍。所述方法的执行步骤具体如下:
首先,在步骤S210,获取当前集成模型以及未经训练的多个候选子模型。
需要说明的是,上述未经训练的多个候选子模型是有待集成到当前集成模型中的个体学习器。初始地,当前集成模型为空,通过采用本说明书实施例披露的方法不断进行集成迭代,不断有候选子模型被集成到当前集成模型中,使得当前集成模型在性能提升的方向不断更新,直到某次迭代满足迭代终止条件,则停止迭代,并将多次更新后得到的当前集成模型确定为最终集成模型。根据一个具体的例子,上述多个候选子模型可以是若干个体分类器(若干弱分类器),相应地,得到的最终集成模型为强分类器。
关于候选子模型的来源,可以理解,上述未经训练的多个候选子模型可以由工作人员利用专家经验预先设定,具体包括对候选子模型所基于的机器学习算法的选取,以及其中超参数的设定。
一方面,关于机器学习算法的选取,在一个实施例中,上述多个候选子模型可以基于多种机器学习算法,包括回归算法、决策树算法和贝叶斯算法,等等。在一个实施例中,上述多个候选子模型可以基于以下神经网络中的一种或多种:卷积神经网络(ConvolutionalNeural Networks,简称CNN),长短期记忆网络(Long Short-Term Memory,简称LSTM)和DNN,等等。在一个具体的实施例中,上述多个候选子模型中的任意两个可以基于相同类型的神经网络,也可以基于不同类型的神经网络。在一个例子中,上述多个候选子模型可以均基于相同类型的神经网络,如DNN。
另一方面,关于超参数的设定,在一个实施例中,候选子模型可以基于DNN网络,相应地,需要设定的超参数包括DNN网络结构中多个隐层的层数,所述多个隐层中各个隐层所具有的神经单元数,以及,所述多个隐层中任意相邻的两个隐层之间的连接方式,等等。在另一个实施例中,候选子模型可以采用CNN卷积神经网络,相应的,需要设定的超参数还可以包括,卷积核的大小,卷积步长等等。
需要说明的是,多个候选子模型中的各个候选子模型通常互不相同,在一个实施例中,对于其中两个基于相同类型的神经网络的候选子模型,通常设定有不完全相同的超参数。在一个具体的实施例中,多个候选子模型中包括基于DNN的第一候选子模型和第二候选子模型,进一步地,第一候选子模型可以为隐层单元为[16,16]的全连接网络,其中[16,16]表示该子模型有两个隐层,且两个隐层的神经单元数均为16,并且,第二候选子模型可以为隐层单元为[10,20,10]的神经网络,其中[10,20,10]表示该子模型有3个隐层,且各个隐层的神经单元数依次为10、20和10。
以上,可以通过选取机器学习算法以及设定超参数,完成对候选子模型的设定。
候选子模型可以逐步组合到集成模型中,作为当前集成模型。当本次迭代为首轮迭代时,相应地,在本步骤中获取的当前集成模型的为空。当本次迭代为非首轮迭代时,相应地,在本步骤中获取的当前集成模型不为空,也就是其中包括若干个子模型。
由上,可以获取到当前集成模型和预先设定的多个候选子模型。接着,在步骤S220,将所述多个候选子模型中的各个子模型分别集成到所述当前集成模型中,得到多个第一候选集成模型。
需要说明的是,基于前述对集成学习的介绍,可以从以下两个方面理解本步骤中集成操作的含义:第一方面,将上述各个候选子模型分别添加到当前集成模型中,使得该候选子模型和当前集成模型中已经包括的若干子模型组合在一起,共同作为对应的第一候选集成模型中的多个子模型。第二方面,基于预设的结合策略,对第一方面中得到的多个子模型中各个子模型的输出结果进行结合,将得到的结合结果作为第一候选集成模型的输出结果。此外需要理解的是,在当前集成模型为空的情况下,集成得到的第一候选集成模型中包括单个的候选子模型,相应地,单个候选子模型的输出结果即为第一候选集成模型的输出结果。
具体地,关于上述第一方面,在一种情况下,当前集成模型为空,此时集成得到的第一候选集成模型中包括单个的候选子模型。在一个具体的实施例中,用Si表示第i个候选子模型,用L表示多个候选子模型对应的子模型总数,则i的取值为1至L。相应地,将Si集成到为空的当前集成模型中,对应得到第一候选集成模型Si,由此可以得到L个第一候选集成模型。
在另一种情况下,当前集成模型是经过n轮迭代和训练后得到的模型,其中已包括若干经过训练的子模型所构成的集合R。具体地,可以用Si表示第i个候选子模型(这些候选子模型均为未经训练的原始子模型),另外,集合R中包括若干经过训练的子模型其中表示在第n轮迭代中得到的对应于原始子模型Sj的训练后子模型。在一个具体的实施例中,假定本轮迭代为第二次迭代,并且,当前集成模型对应的模型集合R为第一轮迭代中对S1进行训练后得到的相应地,在第二轮迭代中将Si集成到当前集成模型后,对应得到的第一候选集成模型中包括子模型和Si,由此可以得到L个第一候选集成模型。
关于上述第二方面,其中结合策略可以由工作人员根据实际需要预先设定,包括从现有的多种结合策略进行选取。具体地,在一个实施例中,集成模型中包括的各个子模型的输出结果为连续型数据,相应地,可以选取平均法作为结合策略。在一个具体的实施例中,可以选取算术平均法,也就是先对集成模型中各个子模型的输出结果进行算术平均,再将得到的算术平均结果作为集成模型的输出结果。在另一个具体的实施例中,可以选取加权平均法,也就是对集成模型中各个子模型输出结果进行加权平均,再将得到的加权平均结果作为集成模型的输出结果。在另一个实施例中,各个子模型的输出结果为离散型数据,相应地,可以选取投票法作为结合策略。在一个具体的实施例中,可以选取绝对多数投票法、或相对多数投票法、或加权投票法,等等。根据一个具体的例子,在选取的结合策略为上述加权平均法或加权投票法的情况下,集成模型中各个子模型对应于最终输出结果的加权系数可以在集成模型的训练过程中进行确定。
通过以上集成操作,可以得到多个第一候选集成模型。然后,在步骤S230,至少对所述多个第一候选集成模型进行训练,得到本次训练后的多个第二候选集成模型。
首先需要说明的是,所述“本次训练”中的“本次”对应于本轮迭代,用于区分其他迭代轮次中涉及的训练。
在一个实施例中,本轮迭代为首轮迭代,当前集成模型为初始值空。相应地,在本步骤中,只需对多个第一候选集成模型进行训练。在一个具体的实施例中,可以采用同样的训练数据,对其中的各个第一候选集成模型进行训练,确定其模型参数。在一个例子中,如前所述,用Si表示候选子模型,用表示在第n轮迭代中对应于Sj的训练后子模型,相应地,在本轮迭代为首轮迭代的情况下,第一候选集成模型中包括子模型Si,对应得到的第二候选集成模型中包括训练后子模型
在另一个实施例中,本轮迭代并非首轮迭代,当前集成模型包括在上一轮迭代中经过训练而得到的子模型集合R。在这样的情况下,对应集成得到的第一候选集成模型中包括新加入的候选子模型和集合R中已有的子模型的组合。在一个实施例中,在本次训练中,对新加入的子模型和集合R中的子模型进行联合训练。在另一实施例中,在对第一候选集成模型进行训练时,固定集合R中包含的训练后子模型中的模型参数,仅调整和确定新加入的候选子模型的模型参数。在一个具体的实施例中,如前所述,假定本轮迭代为第二轮,且第一候选集成模型中包括子模型和Si,此时,本轮训练过程中,可以固定中的参数,仅训练Si中的参数,由此得到第二候选集成模型其中与上一轮的相同。
根据一种实施方式,在步骤S230,在非首轮迭代的情况下,除了对上述第一候选集成模型进行训练之外,还可以对当前集成模型也进行本次训练,或称为再训练,对应得到本次训练后的再训练模型。在一个例子中,在对当前集成模型进行本次训练时,所使用的训练数据可以不同于上一轮迭代中所采用的训练数据,以实现对当前集成模型的再训练。另一方面,在一个例子中,可以采用同样的训练数据,对参与本次训练的各个模型进行训练。在另一个例子中,可以从原始数据集中随机抽取不同的训练数据,对参与本次训练的各个模型进行训练。
另外,在对当前集成模型进行本次训练时,在一个实施例中,可以对其中包括的所有训练后子模型中的参数再次进行调整。在另一个实施例中,可以对其中包括的部分训练后子模型中的参数进行调整,而其他训练后子模型的参数保持不变。在一个具体的实施例中,如前所述,假定本轮迭代为第三轮,且当前集成模型中包括训练后子模型和进一步地,在一个例子中,可以同时调整和中的参数,由此,在得到的再训练模型中,与上一轮的不同,也与上一轮的不同。在另一个例子中,可以仅对中的参数进行调整,而中的参数保持不变,由此,在得到的再训练模型中,与上一轮的相同,而与上一轮的不同。
再者,在针对集成模型设定的结合策略为前述加权平均法或加权投票法的情况下,当对第一候选集成模型和/或当前集成模型进行训练时,需要调整的参数将包括新集成的候选子模型中用于确定子模型输出结果的学习参数,以及,第一候选集成模型和/或当前集成模型中各个子模型所对应的用于确定集成模型最终输出结果的加权系数。
在集成模型应用于用户分类的场景下,上述步骤S230中对各个子模型的训练可以采用有标签的用户样本数据进行。例如,可以将用户标注为多种类别作为样本标签,例如将用户账号分为正常账号和异常账号作为二分类标签,样本特征为用户特征,具体可以包括用户属性特征(如性别、年龄、职业等)和历史行为特征(如,转账成功的次数和转账失败的次数等),等等。利用这样的用户样本数据进行训练,得到的集成模型即可作为分类模型,对用户进行分类。
由上,可以得到本次训练后的多个第二候选集成模型。接着在步骤S240,分别对所述多个第二候选集成模型中的各个第二候选集成模型进行性能评估,得到对应的性能评估结果。再接着在步骤S250,基于所述性能评估结果,从所述多个第二候选集成模型中确定性能最优的最优候选集成模型。
具体地,可以选取多种评估函数实现性能评估,包括将第二候选集成模型针对评估数据(或者评估样本)的评估函数值作为对应的性能评估结果。
进一步地,在一个实施例中,可以选取损失函数作为评估函数,相应地,对多个第二候选集成模型进行性能评估得到的评估结果包括对应于损失函数的多个函数值。基于此,在步骤S250中可以包括:将得到的多个函数值中的最小值所对应的第二候选集成模型,确定为上述最优候选集成模型。
在一个具体的实施例中,上述损失函数具体包括以下公式:
其中,表示第i个第二候选集成模型的损失函数值,k表示评估样本的编号,K表示评估样本的总数,xk表示第k个评估样本中的样本特征,yk表示第k个评估样本中的样本标签,Sj表示当前集成模型的模型集合R中第j个训练后子模型,αj表示第j个训练后子模型对应于结合策略的权重系数,Si表示第i个第二候选集成模型中新集成的候选子模型,β表示所述新集成的候选子模型对应于结合策略的权重系数,R(∑Sj,Si)表示正则化函数,用于控制模型的大小,避免模型过于复杂而导致过拟合。
在另一个实施例中,可以选取接收者操作特征(Receiver OperatingCharacteristic,简称ROC)曲线下的面积(Area under Curve,简称AUC)作为评估函数,相应地,对多个第二候选集成模型进行性能评估得到的评估结果包括多个AUC值。基于此,在步骤S250中可以包括:将多个AUC值中的最大值所对应的第二候选集成模型,确定为上述最优候选集成模型。
另一方面,关于上述评估样本。在一个实施例中,如上所述,当集成模型应用于用户分类的场景下,例如,具体对应于将用户账号分为正常账号和异常账号的场景,评估样本中包括的样本特征为用户特征,具体可以包括用户属性特征(如性别、年龄、职业等)和历史行为特征(如,转账成功的次数和转账失败的次数等),等等,同时,其中包括的样本标签为具体的类别标签,例如,可以包括正常账号和异常账号。
以上,可以通过性能评估确定出最优候选集成模型。进一步地,一方面,在所述最优候选集成模型的性能满足预定条件的情况下,执行步骤S260,利用所述最优候选集成模型更新当前集成模型。
在一个实施例中,上述预定条件可以由工作人员根据实际需要进行预先设定。在一个具体的实施例中,其中最优候选集成模型的性能满足预定条件,可以包括:最优候选集成模型的性能优于所述当前集成模型的性能。在一个例子中,具体包括:最优候选集成模型在评估样本上的损失函数的函数值,小于所述当前集成模型在相同的评估样本上的损失函数的函数值。在另一个例子中,具体包括:最优候选集成模型在评估样本上的AUC值,大于所述当前集成模型在相同的评估样本上的AUC值。
在另一个具体的实施例中,其中最优候选集成模型的性能满足预定条件,可以包括:最优候选集成模型的性能评估结果优于预定的性能标准。在一个例子中,具体可以包括:最优候选集成模型在评估样本上的损失函数的函数值小于对应的预定阈值。在另一个例子中,具体可以包括:最优候选集成模型在评估样本上的AUC值大于对应的预定阈值。
以上,通过步骤S210-步骤S260,可以实现对当前集成模型的更新。
进一步地,在一个实施例中,在执行上述步骤S260之后,所述方法还可以包括:判断本轮迭代是否符合迭代终止条件。在一个具体的实施例中,可以判断针对当前集成模型的更新所对应的更新次数是否达到预设更新次数,如5次或6次,等等。在另一个具体的实施例中,上述步骤S230中得到的多个第二候选集成模型中包括对步骤S210中获取的当前集成模型进行本次训练后得到的再训练模型。基于此,判断本轮迭代是否符合迭代终止条件可以包括:判断所述最优候选集成模型是否为所述再训练模型。
更进一步地,一方面,在不符合迭代终止条件的情况下,基于本轮更新后的当前集成模型进行下一轮迭代。在一个具体的实施例中,上述不符合迭代终止条件,对应于上述更新次数未达到预设更新次数。在一个例子中,本轮迭代中的更新对应的更新次数为2,预设更新次数为5,由此可以判定出未达到预设更新次数。在另一个具体的实施例中,上述不符合迭代终止条件,对应于上述最优候选集成模型不是所述再训练模型。
另一方面,在符合迭代终止条件的情况下,将更新后的当前集成模型确定为最终集成模型。在一个具体的实施例中,上述符合迭代终止条件,对应于上述更新次数达到预设更新次数。在一个例子中,本轮迭代中的更新对应的更新次数为5,预设更新次数为5,由此可以判定出达到预设更新次数。在另一个具体的实施例中,上述符合迭代终止条件,对应于上述最优候选集成模型是所述再训练模型。
此外,需要说明的是,在通过以上步骤S250确定出最优集成模型后,在所述最优候选集成模型的性能不满足预定条件的情况下,将所述当前集成模型确定为最终集成模型。在一个具体的实施例中,在最优候选集成模型的性能不优于所述当前集成模型的性能的情况下,将所述当前集成模型确定为最终集成模型。在另一个具体的实施例中,在最优候选集成模型的性能未达到预定的性能标准的情况下,将所述当前集成模型确定为最终集成模型。
由上,可以通过自动集成,确定出最终集成模型。
下面,再结合一个具体的例子,对所述方法进行进一步说明。具体地,在下述例子中,通过上述集成模型的确定方法确定DNN集成模型。图3示出根据一个实施例的DNN集成模型的确定方法流程框图,如图3所示,所述方法包括以下步骤:
步骤S310,定义神经网络类型为DNN的子网络集合N,设置其中每个子网络Ni中对应于网络结构的超参数。
步骤S320,将当前集成模型P设置为初始值空,设置迭代终止条件,准备好原始数据集以及评估函数,其中原始数据集用于抽取训练数据和评估数据。
在一个实施例中,上述迭代终止条件中包括上述预定的更新次数。
步骤S330,将子网络集合N中的每个子网络Ni分别集成到当前集成模型P中,得到第一候选集成模型Mi。
步骤S340,用训练数据训练模型Mi,然后在评估数据上得到模型性能Ei,得到性能最优的最优候选集成模型Mj,利用Mj更新当前集成模型P。
步骤S350,判断是否满足迭代终止条件。
进一步地,如果不满足,跳转至步骤S330。如果满足,则执行步骤S360,将最后一次更新的当前集成模型P输出为最终的DNN集成模型。此外,在一个例子中,还可输出对最终的DNN集成模型的性能评估结果。
以上,可以实现DNN集成模型的自动集成。
综上可知,采用本说明书实施例披露的集成模型的确定方法,可以基于一些基础的候选子模型,自动实现对子模型的选择,进而形成一个高性能的集成模型,如此,大大减轻了对专家经验和人工干预的依赖性。特别地,将所述方法应用于确定DNN集成模型,可以大大降低人为设计DNN的复杂性,同时,通过实践证明,此种基于自动集成的DNN训练方法,可以使得DNN集成模型的性能超出人工调试的DNN模型的性能。
根据另一方面的实施例,提供了一种集成模型的确定装置,该装置可以部署在任何具有计算、处理能力的设备、平台或设备集群中。图4示出根据一个实施例的集成模型的确定装置结构图。如图4所示,该装置400包括:
获取单元410,配置为获取当前集成模型以及未经训练的多个候选子模型。集成单元420,配置为将所述多个候选子模型中的各个子模型分别集成到所述当前集成模型中,得到多个第一候选集成模型。训练单元430,配置为至少对所述多个第一候选集成模型进行训练,得到本次训练后的多个第二候选集成模型。评估单元440,配置为分别对所述多个第二候选集成模型中的各个第二候选集成模型进行性能评估,得到对应的性能评估结果。选取单元450,配置为基于所述性能评估结果,从所述多个第二候选集成模型中确定性能最优的最优候选集成模型。更新单元460,配置为在所述最优候选集成模型的性能满足预定条件的情况下,利用所述最优候选集成模型更新所述当前集成模型。
在一个实施例中,所述多个候选子模型中任意两个候选子模型所基于的神经网络的类型相同或者不同。
在一个实施例中,所述多个候选子模型中包括第一候选子模型和第二候选子模型,所述第一候选子模型和第二候选子模型基于相同类型的神经网络,并且,具有针对所述神经网络设定的不完全相同的超参数。
进一步地,在一个具体的实施例中,所述相同类型的神经网络为深度神经网络DNN,所述超参数包括DNN网络结构中多个隐层的层数,所述多个隐层中各个隐层所具有的神经单元数,以及,所述多个隐层中任意相邻的两个隐层之间的连接方式。
在一个实施例中,所述训练单元430具体配置为:在所述当前集成模型不为空的情况下,对所述当前集成模型和所述多个第一候选集成模型进行所述本次训练。
在一个实施例中,所述性能评估结果包括所述多个第二候选集成模型中的各个第二候选集成模型所对应损失函数的函数值;所述选取单元450具体配置为:将所述损失函数的函数值中的最小值所对应的第二候选集成模型,确定为所述最优候选集成模型。
在一个实施例中,所述性能评估结果包括所述多个第二候选集成模型中的各个第二候选集成模型所对应接收者操作特征ROC曲线下的面积AUC值;所述选取单元450具体配置为:将所述AUC值中的最大值所对应的第二候选集成模型,确定为所述最优候选集成模型。
在一个实施例中,所述更新单元460具体配置为:在所述最优候选集成模型的性能优于所述当前集成模型的性能的情况下,利用所述最优候选集成模型更新所述当前集成模型。
在一个实施例中,所述装置还包括:第一确定单元470,配置为在所述最优候选集成模型的性能不满足预定条件的情况下,将所述当前集成模型确定为最终集成模型。
在一个实施例中,所述装置还包括:第一判断单元480,配置为判断针对当前集成模型的更新所对应的更新次数是否达到预设更新次数;第二确定单元485,配置为在所述更新次数达到所述预设更新次数的情况下,将所述更新后的当前集成模型确定为最终集成模型。
在一个实施例中,所述训练后的多个第二候选集成模型中包括对所述当前集成模型进行本次训练后得到的再训练模型;所述装置还包括:第二判断单元490,配置为判断所述最优候选集成模型是否为所述再训练模型;第三确定单元495,配置为在所述最优候选集成模型是所述再训练模型的情况下,将所述再训练模型确定为最终集成模型。
综上可知,采用本说明书实施例披露的集成模型的确定装置,可以基于一些基础的候选子模型,自动实现对子模型的选择,进而形成一个高性能的集成模型,如此,大大减轻了对专家经验和人工干预的依赖性。特别地,将所述方法应用于确定DNN集成模型,可以大大降低人为设计DNN的复杂性,同时,通过实践证明,此种基于自动集成的DNN训练方法,可以使得DNN集成模型的性能超出人工调试的DNN模型的性能。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图1或图2或图3所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图1或图2或图3所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。