具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在机器学习技术领域,预测效果较好的模型往往网络结构比较复杂,模型参数也比较多,在运行时会占用大量的计算资源和存储资源,这类模型很难部署到嵌入式设备等功耗、性能有限的设备中。而可以部署到功耗、性能有限设备中的模型往往预测效果较差,无法满足预测需求。
针对上述问题,本申请提供一种模型训练方案,可采用预测效果较好的模型对样本数据进行标注,然后对可应用在功耗、性能有限的设备中的模型进行迁移,并采用标注后的样本数据对迁移的模型进行训练,从而提高迁移模型的预测准确度,在资源占用和预测准确度之间取得平衡,提高迁移模型在功耗、性能有限设备中的适用性。
图1是本说明书一示例性实施例示出的一种模型训练方法的流程示意图。
请参考图1,所述模型训练方法可包括以下步骤:
步骤102,获取用于训练目标模型的样本数据。
步骤104,采用第一类模型对所述样本数据进行标注。
在本实施例中,所述第一类模型通常是已训练的预测效果较好的模型,所述第一类模型的模型参数往往较多,网络结构也较为复杂。
采用第一类模型对样本数据进行标注,标注准确度往往较高。
步骤106,采用标注后的样本数据对第二类模型进行训练,得到目标模型。
在本实施例中,与上述第一类模型相比,所述第二类模型的预测准确度较低。相应的,所述第二类模型的模型参数往往少于上述第一类模型,所述第二类模型的网络结构往往也比上述第一类模型简单。
在对第二类模型进行迁移时,采用标注结果准确的样本数据对所述第二类模型进行训练,可有效提高所述第二类模型的预测准确度。
下面分别从样本数据的获取、样本数据的标注、模型的训练三个方面来描述本申请的具体实现过程。
一、样本数据的获取
在本实施例中,可将要训练得到的模型称为目标模型,所述目标模型所应用场景的称为目标场景。
在一个例子中,当目标场景中的样本数据量充足时,可从所述目标场景中提取样本数据。
在另一个例子中,当目标场景中的样本数据量不充足时,可从相似场景中提取数据作为样本数据,以对目标场景中的样本数据进行补充。
例如,基于隐私的考虑,不允许采集目标场景中的数据再回传到服务端进行处理,这就会导致目标场景中的样本数据量不充足,无法满足模型训练的需求。
假设,目标模型是行人检测模型,目标场景是某公路,样本数据可以是图片,也可以是视频。当该公路场景中的样本数据量不充足时,可从其他公路、桥梁、火车站等相似场景中提取数据进行补充。
在实际应用中,可选取一些业界公开的与所述目标场景相似的场景所对应的数据集,每个数据集中都包括有若干数据。例如,Caltech数据集、Duke数据集、Kitti数据集等。
当业界公开的数据集中的数据量仍然不充足时,还可手动采集数据,得到手动采集数据集,本说明书对此不作特殊限制。
在本实施例中,为便于描述,可将上述业界公开的数据集以及手动采集的数据集统称为候选数据集。
在确定若干个候选数据集之后,可计算每个候选数据集与目标场景中样本数据的相似度,然后将相似度满足预定条件的候选数据集确定为目标数据集,并从各目标数据集中提取数据以对目标场景中的样本数据进行补充。
在进行候选数据集的相似度计算时,可分别从目标场景和所述候选数据集中提取出相同数量的数据。
以数据是图片为例,可从目标场景中提取出1000张图片,还可从候选数据集中提取出1000张图片。然后基于笛卡尔乘积将候选数据集中提取出的每张图片与目标场景中提取出的各张图片一一对应,并计算相对应的两张图片的相似度,作为个体相似度。即计算从所述候选数据集提取出的每张图片与目标场景中提取出的每张图片的相似度,作为所述个体相似度。所述个体相似度的计算方法可参照相关技术,本说明书在此不再一一赘述。
在计算得到1000×1000的个体相似度之后,可以计算个体相似度的平均值,并将该平均值作为所述候选数据集与目标场景中样本数据的相似度,简称为候选数据集的相似度。
在计算得到各个候选数据集的相似度之后,选取相似度排列在前N位的候选数据集作为目标数据集,N的取值可预先设置,例如3等。
候选数据集 |
相似度 |
1 |
78% |
2 |
56% |
3 |
24% |
4 |
67% |
5 |
88% |
表1
请参考表1的示例,假设选取了5个候选数据集,分别为候选数据集1至候选数据集5,各个候选数据集的相似度如表1所示,假设N等于3,则可将候选数据集1、候选数据集4和候选数据集5确定为目标数据集。
在本实施例中,在确定目标数据集之后,可从每个目标数据集中提取图片作为样本。
例如,可提取每个目标数据集中的所有图片作为样本。
再例如,可从每个目标数据集中提取一定比例的图片作为样本。
又例如,还可根据目标数据集的相似度从所述目标数据集中提取一定数量的图片作为样本。一般而言,提取的图片数量与目标数据集的相似度正相关,即相似度越高的目标数据集所提取的图片量越多。
仍以表1的示例为例,可从相似度最高的候选数据集5中提取80%的图片作为样本,从相似度次高的候选数据集1中提取70%的图片作为样本,从相似度最低的候选数据集4中提取55%的图片作为样本。
当然,还可采用其他方式从目标数据集中提取图片作为样本,本说明书对此不作特殊限制。
在其他例子中,若目标场景中没有样本数据,则可直接从相似场景中获取数据作为样本数据使用。
至此,样本数据获取完毕。
二、样本数据的标注
在本实施例中,为提高模型的准确度,在获取到样本数据后,可采用准确度较高的已训练的第一类模型对各样本数据进行标注。
仍以行人检测为例,可将准确度较高的Detectron、YOLO V3等模型作为第一类模型,并在后台服务器上运行所述第一类模型,以对样本数据进行标注。
在本实施例中,在对样本数据标注完毕后,还可根据标注结果对样本数据进行过滤,例如过滤掉行人数量少于阈值的样本、过滤掉目标尺寸低于阈值的样本等。
三、模型的训练
在本实施例中,可选取适用在嵌入式设备等功耗、性能有限设备中的模型作为第二类模型,并将所述第二类模型迁移到目标场景中。所述第二类模型的模型参数往往少于所述第一类模型,所述第二类模型的网络结构往往也要比所述第一类模型简单。
例如,针对行人检测,可选取MobileNet-SSD模型作为第二类模型。
在本实施例中,在对所述第二类模型进行训练之前,可先优化所述第二类模型的超参数,例如降低所述第二类模型的学习率,降低所述第二类模型的batch_size(批尺寸)等。
举例来说,可将所述第二类模型的学习率降低到原来的1/10,将batch_size也降低到原来的1/10等。
在本实施例中,在对所述第二类模型进行训练之前,还可冻结所述第二类模型的部分网络单元。例如,行人检测模型多由卷积网络组成,卷积网络是基础的网络组成单元。
在一个例子中,可根据样本数量进行网络单元的冻结,冻结的网络单元数量往往与样本数量负相关。换言之,样本数量越少,冻结的网络单元数量越多;样本数量越多,则冻结的网络单元数量越少;当样本数量多达一定程度时,可不冻结任何网络单元。
仍以行人检测为例,当样本数量在1万以内时,可冻结卷积网络输出层的softmax;当样本数量在1万至10万时,可冻结1/2的卷积网络单元;当样本数量在10万以上时,可不冻结任何网络单元。
在另一个例子中,还可根据第二类模型的结构进行网络单元的冻结,例如,当第二类模型包括有分类器和检测器时,可以冻结属于分类器的网络单元。
本实施例通过对部分网络单元的冻结,可缩短模型训练时间,并提高模型的泛化能力。
在本实施例中,可采用上述过滤后的已标注样本数据对第二类模型进行训练,即采用所述样本数据训练第二类模型中未被冻结的网络单元,直至模型收敛,完成训练,得到目标模型。
在本实施例中,目标模型在运行时不会占用设备大量的计算资源和存储资源,且准确度较高,适用于嵌入式设备等功耗、性能有限的设备。
由以上描述可以看出,本说明书可采用预测效果较好的模型对样本数据进行标注,然后对可应用在功耗、性能有限的设备中的模型进行迁移,并采用标注后的样本数据对迁移的模型进行训练,从而提高迁移模型的预测准确度,在资源占用和预测准确度之间取得平衡,提高迁移模型在功耗、性能有限设备中的适用性。
与前述模型训练方法的实施例相对应,本说明书还提供了模型训练装置的实施例。
本说明书模型训练装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书模型训练装置所在服务器的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的服务器通常根据该服务器的实际功能,还可以包括其他硬件,对此不再赘述。
图3是本说明书一示例性实施例示出的一种模型训练装置的框图。
请参考图3,所述模型训练装置200可以应用在前述图2所示的服务器中,包括有:样本获取单元201、样本标注单元202和模型训练单元203。
其中,样本获取单元201,获取用于训练目标模型的样本数据;
样本标注单元202,采用第一类模型对所述样本数据进行标注;
模型训练单元203,采用标注后的样本数据对第二类模型进行训练,得到目标模型。
可选的,所述样本获取单元201,在所述目标模型所应用的目标场景中的样本数据量充足时,从所述目标场景中获取所述样本数据。
可选的,所述样本获取单元201,在所述目标模型所应用的目标场景中的样本数据量不充足时,从与所述目标场景相似的场景中获取数据作为所述样本数据,以对目标场景中的样本数据进行补充。
可选的,所述样本获取单元201:
针对每个相似场景,获取所述相似场景对应的数据集,所述数据集中包括若干数据;
分别计算每个数据集与所述目标场景中的样本数据的相似度;
将相似度满足预定条件的数据集确定为目标数据集;
对所述目标数据集中的数据进行提取,并将提取到的数据确定为样本数据。
可选的,所述样本获取单元201:
针对每个数据集,分别从所述数据集和所述目标场景中提取出相同数量的数据;
基于笛卡尔乘积计算所述数据集中提取出的每个数据与所述目标场景中提取出的每个数据的相似度作为个体相似度;
计算所述个体相似度的平均值作为所述数据集与所述目标场景中的样本数据的相似度。
可选的,从所述目标数据集中提取出的样本数据的数量与所述目标数据集的相似度正相关。
可选的,所述模型训练单元203,在采用标注后的样本数据对第二类模型进行训练之前,对标注后的样本数据进行过滤。
可选的,所述模型训练单元203,在采用标注后的样本数据对第二类模型进行训练之前,优化所述第二类模型的超参数。
可选的,所述模型训练单元203,对所述第二类模型的部分网络单元进行冻结;采用标注后的样本数据对所述第二类模型中未冻结的网络单元进行训练。
可选的,冻结的网络单元数量与样本数据量负相关。
可选的,所述第二类模型的模型参数少于所述第一类模型的模型参数,和/或
所述第二类模型的网络结构比所述第一类模型的网络结构简单。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述模型训练方法的实施例相对应,本说明书还提供一种模型训练装置,该装置包括:处理器以及用于存储机器可执行指令的存储器。其中,处理器和存储器通常借由内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与模型训练逻辑对应的机器可执行指令,所述处理器被促使:
获取用于训练目标模型的样本数据;
采用第一类模型对所述样本数据进行标注;
采用标注后的样本数据对第二类模型进行训练,得到目标模型。
可选的,在获取用于训练目标模型的样本数据时,所述处理器被促使:
当所述目标模型所应用的目标场景中的样本数据量充足时,从所述目标场景中获取所述样本数据。
可选的,在获取用于训练目标模型的样本数据时,所述处理器被促使:
当所述目标模型所应用的目标场景中的样本数据量不充足时,从与所述目标场景相似的场景中获取数据作为所述样本数据,以对目标场景中的样本数据进行补充。
可选的,当从与所述目标场景相似的场景中获取数据作为所述样本数据时,所述处理器被促使:
针对每个相似场景,获取所述相似场景对应的数据集,所述数据集中包括若干数据;
分别计算每个数据集与所述目标场景中的样本数据的相似度;
将相似度满足预定条件的数据集确定为目标数据集;
对所述目标数据集中的数据进行提取,并将提取到的数据确定为样本数据。
可选的,当分别计算每个数据集与所述目标场景中的样本数据的相似度时,所述处理器被促使:
针对每个数据集,分别从所述数据集和所述目标场景中提取出相同数量的数据;
基于笛卡尔乘积计算所述数据集中提取出的每个数据与所述目标场景中提取出的每个数据的相似度作为个体相似度;
计算所述个体相似度的平均值作为所述数据集与所述目标场景中的样本数据的相似度。
可选的,从所述目标数据集中提取出的样本数据的数量与所述目标数据集的相似度正相关。
可选的,在采用标注后的样本数据对第二类模型进行训练之前,所述处理器还被促使:
对标注后的样本数据进行过滤。
可选的,在采用标注后的样本数据对第二类模型进行训练之前,所述处理器还被促使:
优化所述第二类模型的超参数。
可选的,在采用标注后的样本数据对第二类模型进行训练时,所述处理器被促使:
对所述第二类模型的部分网络单元进行冻结;
采用标注后的样本数据对所述第二类模型中未冻结的网络单元进行训练。
可选的,冻结的网络单元数量与样本数据量负相关。
可选的,所述第二类模型的模型参数少于所述第一类模型的模型参数,和/或
所述第二类模型的网络结构比所述第一类模型的网络结构简单。
与前述模型训练方法的实施例相对应,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获取用于训练目标模型的样本数据;
采用第一类模型对所述样本数据进行标注;
采用标注后的样本数据对第二类模型进行训练,得到目标模型。
可选的,所述获取用于训练目标模型的样本数据包括:
当所述目标模型所应用的目标场景中的样本数据量充足时,从所述目标场景中获取所述样本数据。
可选的,所述获取用于训练目标模型的样本数据包括:
当所述目标模型所应用的目标场景中的样本数据量不充足时,从与所述目标场景相似的场景中获取数据作为所述样本数据,以对目标场景中的样本数据进行补充。
可选的,所述从与所述目标场景相似的场景中获取数据作为所述样本数据,包括:
针对每个相似场景,获取所述相似场景对应的数据集,所述数据集中包括若干数据;
分别计算每个数据集与所述目标场景中的样本数据的相似度;
将相似度满足预定条件的数据集确定为目标数据集;
对所述目标数据集中的数据进行提取,并将提取到的数据确定为样本数据。
可选的,所述分别计算每个数据集与所述目标场景中的样本数据的相似度,包括:
针对每个数据集,分别从所述数据集和所述目标场景中提取出相同数量的数据;
基于笛卡尔乘积计算所述数据集中提取出的每个数据与所述目标场景中提取出的每个数据的相似度作为个体相似度;
计算所述个体相似度的平均值作为所述数据集与所述目标场景中的样本数据的相似度。
可选的,从所述目标数据集中提取出的样本数据的数量与所述目标数据集的相似度正相关。
可选的,在采用标注后的样本数据对第二类模型进行训练之前,还包括:
对标注后的样本数据进行过滤。
可选的,在采用标注后的样本数据对第二类模型进行训练之前,还包括:
优化所述第二类模型的超参数。
可选的,所述采用标注后的样本数据对第二类模型进行训练,包括:
对所述第二类模型的部分网络单元进行冻结;
采用标注后的样本数据对所述第二类模型中未冻结的网络单元进行训练。
可选的,冻结的网络单元数量与样本数据量负相关。
可选的,所述第二类模型的模型参数少于所述第一类模型的模型参数,和/或
所述第二类模型的网络结构比所述第一类模型的网络结构简单。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。