一种机器学习模型的编码解码方法与装置与流程

文档序号:17132059发布日期:2019-03-16 01:24阅读:160来源:国知局
一种机器学习模型的编码解码方法与装置与流程
本发明涉及机器学习领域,并且更具体地,特别是涉及一种机器学习模型的编码解码方法与装置。
背景技术
:目前机器学习的应用并不广泛。首先,建模过程繁琐。算法建模及调参是一个非常繁琐的过程,需要数据预处理、特征工程、模型调参、模型评估等环节不断循环反复才能完成复杂的建模过程,一个3-6人的数据建模团队通常需要花费数月时间才能完成复杂的建模。其次,人工智能人才匮乏。机器学习涉及大量的工程和算法,依赖科学家的资源,然而目前中国人工智能的人才缺口超过500万,供求比例仅为1:10,并且人工智能专业人才普遍薪水较高,带来了巨大的人力成本。再次,算法设计周期长。一个互联网公司典型的人工智能项目开发需要30人·月,传统行业需要花费更多的人力和时间。最后,系统实施维护困难。生产环境不断发生变化,模型准确度下降,数据管理困难,算法模型更新周期长。一种推广机器学习的方式是使用automl。automl使用了google的learn2learn和转移学习等先进技术,帮助那些只有有限机器学习知识的企业构建高品质的自定义模型。automl也将使ai(人工智能)专家们更加高效地工作,拓展新的ai领域,并帮助那些技术娴熟的工程师构建强大的ai系统,这也是ai研究人员一直以来所追求的目标。将训练数据集传入后,automl会自动形成训练模型,这样即使不具备机器学习方面深入的专业知识也可以进行机器学习方面的工作。由于automl的本质工作是将各个过程的方法进行选择、组合、优化,所以存在如下问题:我们通常并不知道所优化的参数和预期效果之间是什么样的显示表达,所以目标函数形式未知;可能的组合方式太多,所以搜索空间巨大;组合方式太多,而且每一个组合都需要从头做数据预处理、特征处理、模型训练等操作,所以函数计算代价巨大。针对现有技术中的建立模型的计算复杂度过大,难以实现的问题,目前尚未有有效的解决方案。技术实现要素:有鉴于此,本发明实施例的目的在于提出一种机器学习模型的编码解码方法与装置,能够针对不同机器学习模型或不同类型的机器学习模型进行编码解码,降低计算复杂度,快速生成机器学习模型。基于上述目的,本发明实施例的一方面提供了一种机器学习模型的编码解码方法,包括以下步骤:采集原始数据并对原始数据进行抽样;使用模型生成器将原始数据的抽样结果编码为模型编码;使用模型解码器将模型编码解码为有效模型;使用原始数据训练有效模型。在一些实施方式中,将模型编码解码为有效模型包括:对模型编码使用cell结构搜索,生成第一编码结果;根据原始数据对第一编码结果使用nasnet结构搜索,生成第二编码结果;解码第二编码结果获得有效模型。在一些实施方式中,第一编码结果和第二编码结果均为搜索空间矩阵。在一些实施方式中,cell结构包括通常cell和规约cell,每个cell包括多个数据块,每个数据块各自包括约束条件信息、深度学习操作信息、和拼接操作信息。在一些实施方式中,第一编码结果为10*40的搜索空间矩阵,每个cell包括5个数据块,每个数据块为1*40的矩阵,其中约束条件信息占据两个1*6,深度学习操作信息占据两个1*13,拼接操作信息占据一个1*2。在一些实施方式中,规约cell的维度小于通常cell,规约cell的通道数大于通常cell。在一些实施方式中,第二编码结果为模型层数*3的搜索空间矩阵,第二编码结果的三列分别表示通常cell、规约cell、和不存在。在一些实施方式中,根据原始数据对第一编码结果使用nasnet结构搜索包括:根据原始数据的图像形式对第一编码结果使用nasnet结构搜索。本发明实施例的另一方面,还提供了一种机器学习模型的编码解码装置,包括:至少一个处理器;和存储器,存储有处理器可运行的程序代码,其中程序代码在由处理器运行时执行上述的方法。本发明实施例的另一方面,还提供了一种机器学习方法,包括以下步骤:使用上述的方法生成多个有效模型;确定每个有效模型的精度指标和模型复杂度;根据每个有效模型的精度指标和模型复杂度确定一个最优模型;使用最优模型作为学习对象进行机器学习。本发明具有以下有益技术效果:本发明实施例提供的机器学习模型的编码解码方法与装置,通过采集原始数据并对原始数据进行抽样,使用模型生成器将原始数据的抽样结果编码为模型编码,使用模型解码器将模型编码解码为有效模型,使用原始数据训练有效模型的技术方案,能够针对不同机器学习模型或不同类型的机器学习模型进行编码解码,降低计算复杂度,快速生成机器学习模型。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。图1为本发明提供的机器学习模型的编码解码方法的流程示意图;图2为本发明提供的机器学习模型的编码解码方法的cell结构示意图;图3为本发明提供的机器学习模型的编码解码方法的神经架构搜索的原理图;图4为本发明提供的机器学习模型的编码解码方法的nasnet结构示意图;图5为本发明提供的机器学习方法的整体构架示意图;图6为本发明提供的机器学习方法的整体流程示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”、“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。基于上述目的,本发明实施例的第一个方面,提出了一种能够针对不同机器学习模型或不同类型的机器学习模型进行编码解码的方法的实施例。图1示出的是本发明提供的机器学习模型的编码解码方法的实施例的流程示意图。所述机器学习模型的编码解码方法,包括以下步骤:步骤s101,采集原始数据并对原始数据进行抽样;步骤s103,使用模型生成器将原始数据的抽样结果编码为模型编码;步骤s105,使用模型解码器将模型编码解码为有效模型;步骤s107,使用原始数据训练有效模型。在一些实施方式中,将模型编码解码为有效模型包括:对模型编码使用cell结构搜索,生成第一编码结果;根据原始数据对第一编码结果使用nasnet结构搜索,生成第二编码结果;解码第二编码结果获得有效模型。本发明实施例提出的编码解码方法将原搜索空间转换为cell结构搜索和nasnet结构搜索两个空间,降低了原搜索空间维度,进而达到快速生成模型结构参数、建立模型的目标。在一些实施方式中,第一编码结果和第二编码结果均为搜索空间矩阵。在一些实施方式中,cell结构包括通常cell和规约cell,每个cell包括多个数据块,每个数据块各自包括约束条件信息、深度学习操作信息、和拼接操作信息。在一些实施方式中,第一编码结果为10*40的搜索空间矩阵,每个cell包括5个数据块,每个数据块为1*40的矩阵,其中约束条件信息占据两个1*6,深度学习操作信息占据两个1*13,拼接操作信息占据一个1*2。在一些实施方式中,规约cell的维度小于通常cell,规约cell的通道数大于通常cell。具体地,在cell结构搜索中,输入项为net(h[i-1]),这是模型编码的数学表述形式;输出为cell结构,在本发明实施例中具体表述为cell的第一编码结果矩阵(10*40)。图2示出的是cell结构示意图。如图2所示,cell编码矩阵两种通常cell和规约cell(normalcell和reducecell),cell搜索最后输出10*40矩阵。每个cell具有5个块(block),占5*40。每个block的前6列对应6中约束条件的选择;中间13列对应13种深度学习操作的选择。每个block有两个操作的2*19矩阵,在拼接操作选择1*2的作用下,将2*19变为1*38,接1*2共计1*40。前6列的约束条件选择对应h0,h1,b1,b2,b3,b4。第一个block(b1)的输入只能从h0,h1中选择(即只有h0,h0,h1,h1,h0,h1,h1,h0),第二个block(b2)的输入只能从h0,h1,b1中选择,以此类推,直到第五个block(b5)的输入可选择范围为h0,h1,b1,b2,b3,b4,未被选择的block最后进行拼接输出。其中,0表示不使用,1表示使用,该6列只能有一个1(使用)出现。13种深度学习操作的选择范围为:layers_dic={0:'1x7_conv',1:'3x3_avepl',2:'5x5_maxpl',3:'1x1_conv',4:'3x3_dep_conv',5:'7x7dep_conv',6:'1x3_conv',7:'3x3_dil_conv',8:'3x3_maxpl',9:'7x7_maxpl',10:'3x3_conv',11:'5x5_dep_conv',12:'identity'};同样0表示不使用,1表示使用,该13列只能有一个1出现。拼接操作的选择范围operation_dic={0:'ele_add',1:'ch_concat'};同样0表示不使用,1表示使用,该2列只能有一个1出现。因此,reducecell和normalcell相比维度下降,通道数增加。然后,使用神经架构搜索以找到合适的网络结构参数。图3示出的是神经架构搜索的原理图。如图3所示,rnn控制器生成模型的描述符,然后根据描述符得到模型,进而得到该模型在数据集batch上的准确度。接着将该准确度作为奖励信号(rewardsignal)对控制器进行更新。如此不断迭代,找到合适的cell网络结构。在一些实施方式中,第二编码结果为模型层数*3的搜索空间矩阵,第二编码结果的三列分别表示通常cell、规约cell、和不存在。在一些实施方式中,根据原始数据对第一编码结果使用nasnet结构搜索包括:根据原始数据的图像形式对第一编码结果使用nasnet结构搜索。具体地,在nasnet结构搜索中,输入项为imagesbatch(图像化的数据集)和cell的第一编码结果矩阵(10*40);输出为nasnet的第二编码结果矩阵(layer_num*3),layer_num为模型层数。图4示出的是nasnet结构示意图。如图4所示,imagesbatch依次经过reducecell和normalcell处理最终获得如下表所示的第二编码结果矩阵。下述示例中的模型层数为10。normalcellreducecellnone100001010………在一个详细实施方式中,cell搜索编码的每个block:第一列对应h0,h1,b1,b2,b3,b4选择(取值范围0-5);第二列对应13种深度学习操作的选择(取值范围0-12);由于每个block有两个操作的2*2矩阵;最后列对应拼接操作选择(取值范围0-1)。nasnet搜索编码的每层采用0、1、2分别表示该层连接normalcell、reducecell、none,最后得num*3矩阵。由此可见,原搜索空间维度=cell空间维度*net空间维度;现搜索空间维度=cell空间维度+net空间维度。由于cell空间维度远超过上亿,而net空间维度大约3^(layer_num),所以原搜索空间维度远远大于现搜索空间维度,而且原方式需多花大约3^(layer_num)倍时间。随着net层数的增加,本发明实施例的编解码方式优势将越发明显。从上述实施例可以看出,本发明实施例提供的机器学习模型的编码解码方法,通过采集原始数据,使用模型生成器将原始数据编码为模型编码,使用模型解码器将模型编码解码为有效模型,使用原始数据训练有效模型的技术方案,能够针对不同机器学习模型或不同类型的机器学习模型进行编码解码,降低计算复杂度,快速生成机器学习模型。需要特别指出的是,上述机器学习模型的编码解码方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于机器学习模型的编码解码方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。基于上述目的,本发明实施例的第二个方面,提出了一种能够针对不同机器学习模型或不同类型的机器学习模型进行编码解码的装置的实施例。所述装置包括:至少一个处理器;和存储器,存储有处理器可运行的程序代码,其中程序代码在由处理器运行时执行上述的方法。本发明实施例公开所述的装置、设备等可为各种电子终端设备,例如手机、个人数字助理(pda)、平板电脑(pad)、智能电视等,也可以是大型终端设备,如服务器等,因此本发明实施例公开的保护范围不应限定为某种特定类型的装置、设备。本发明实施例公开所述的客户端可以是以电子硬件、计算机软件或两者的组合形式应用于上述任意一种电子终端设备中。本文所述的计算机可读存储介质(例如存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambusram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。基于上述目的,本发明实施例的第三个方面,提出了一种机器学习方法的实施例。机器学习方法包括以下步骤:使用上述的方法生成多个有效模型;确定每个有效模型的精度指标和模型复杂度;根据每个有效模型的精度指标和模型复杂度确定一个最优模型;使用最优模型作为学习对象进行机器学习。如图5所示,机器学习方法首先从样本数据集中抽取m个batch数据,将数据分别送入m个modelgenerator(模型生成器,以下简称mg)中,每个mg输出一个modelcode(模型编码)。modeldecoder(模型解码器)接收modelcode后按照解码规则将其解析为一个utilitymodel(有效模型),用采样模块生成的m*batch的数据训练每一个utilitymodel。为了保证mg模块的学习收敛性,我们将当前utilitymodel中loss(失真)值最小的一个模型(hbmodel)保留到下一代中,与之后生成的模型做比较。当数据经过所有的utilitymodel后,会产生m个loss值,由于每个模型每次仅采用了一批采样数据进行训练,为了保持模型对整体样本集的适用性,我们需要对模型的loss值进行累计,已得到totalloss(累计失真)。于每一次采样后,mg生成的utilitymodel是不一样的,因此这个totalloss值表征的并不是utilitymodel到目前为止的性能表现,而是生成该模型所对应的mg的性能。通过综合计算utilitymodel的loss值和totalloss,我们可以得到具有最好精度性能的mg。精度指标采用如下公式计算:acc=λ·loss+(1-λ)losstotal为了平衡计算精度和计算负载,这里我们将模型的复杂度作为惩罚函数,列入模型选择的考虑范畴。模型复杂度包含以下两个部分:f=fcomp+fcost其中,fcomp表示当前mg所生成utilitymodel的计算量,fcost表示如果采用其他utilitymodel,所需要额外付出的计算量。综合上述精度和计算性能指标,每个mg在给定的样本和参数条件下,都可以得到一个评分。为了方便表述,我们对任意一个mg,令st:(xsample,θmg),a:utilitymodel,rt+1表示采用utilitymodel所得到的收益,数值上与各个模型的loss和totalloss成反比。则fcost=fcomp(at+1)-fcomp。基于上述符号系统,我们定义当前样本和mg模型参数下,向任意utilitymodel学习(即下一次生成所选的utilitymodel)的q值为:q(st+1,at)=rt+1(at)-f(at)qnew(st,at)=(1-α)·qold(st,at)+α[rt+1+γ·maxaq(st+1,a)]对第i个mg,最终作为学习对象的参考模型在对应的样本输入下,每个mg分别学习自己对应的参考模型,mg对每一组batch的学习次数epoch_mg可根据utilitymodel的训练时间来设定,从而最大限度保证模型训练时间重叠。当所有样本数据都经过automl完成处理时,认为完成了一次搜索。当搜索次数达到用户指定的次数上限,或最后一批数据经过mg所产生的modelcode在指定的学习代数内不发生改变时,automl学习结束,并输出经过解码和预训练后的γ值最高的utilitymodel,如图6所示。用户可选择继续完整训练所返回的utilitymodel。应当注意,utilitymodel计算出了很多loss值,有当前这个batch(数据集)的loss值,也有累计的loss_total,根据这些loss值,以及计算代价f_cost,确定q-learning中的q矩阵和r值,选择能使得下一次生成的模型的r值最大的模型a*作为mg的参考模型。为了保证mg模块的学习收敛性,m个batch的样本被送入utilitymodel,每个utility模型都会得到一个loss值,然后有一个utilitymodel的loss值最小,就把这个模型存下来,命名为hb_model。然后下一次m个batch的数据经过mg又会生成10个utilitymodel,加上hb_model,一共m+1个utilitymodel,然后m个batch的样本送入这m+1个utilitymodel,又会得到m+1个loss,然后把最小的loss值对应的模型再存到hb_model中,覆盖掉原来的hb_model。从上述实施例可以看出,本发明实施例提供的机器学习模型的编码解码装置和机器学习方法,通过采集原始数据,使用模型生成器将原始数据编码为模型编码,使用模型解码器将模型编码解码为有效模型,使用原始数据训练有效模型的技术方案,能够针对不同机器学习模型或不同类型的机器学习模型进行编码解码,降低计算复杂度,快速生成机器学习模型。需要特别指出的是,上述机器学习模型的编码解码装置和机器学习方法的实施例采用了所述机器学习模型的编码解码方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述机器学习模型的编码解码方法的其他实施例中。当然,由于所述机器学习模型的编码解码方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述机器学习模型的编码解码装置和机器学习方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1