一种机器学习程序的训练方法、装置及设备与流程

文档序号:25264666发布日期:2021-06-01 15:32阅读:74来源:国知局
一种机器学习程序的训练方法、装置及设备与流程

本申请涉及机器学习技术领域,尤其是涉及一种机器学习程序的训练方法、装置及设备。



背景技术:

机器学习是实现人工智能的一种途径,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习用于研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习更加注重算法设计,使计算机能够自动地从数据中学习规律,并利用规律对未知数据进行预测。

机器学习已经有了十分广泛的应用,如深度学习、数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、dna序列测序、语音和手写识别、战略游戏和机器人运用等等。

机器学习程序是基于机器学习技术训练得到的程序,在机器学习程序的训练过程中,需要人工搜集数据集,并人工对数据集中的数据进行标定。

但是,由于训练过程需要使用大量数据,因此,数据集的搜集过程的工作量较大,耗时很长。而且,数据的标定过程的工作量较大,耗时很长。



技术实现要素:

有鉴于此,本申请提供一种机器学习程序的训练方法,所述方法包括:

获取训练数据集合,所述训练数据集合包括第一类训练数据,所述第一类训练数据的置信度位于指定置信度范围;其中,所述置信度是利用机器学习程序识别出的第一类训练数据中的目标属于指定标签的置信度;

根据所述指定标签为所述第一类训练数据添加标注信息;

根据所述训练数据集合中的第一类训练数据的特征信息和标注信息训练新机器学习程序,新机器学习程序用于识别输入数据中的目标属于指定标签的置信度。

本申请提供一种机器学习程序的训练方法,所述方法包括:

利用已部署的机器学习程序识别输入数据中的目标属于指定标签的置信度;

若所述置信度位于指定置信度范围,则将所述输入数据确定为第一类训练数据,并将所述第一类训练数据添加到训练数据集合;

其中,所述训练数据集合中的第一类训练数据用于训练新机器学习程序。

本申请提供一种机器学习程序的训练装置,所述装置包括:

获取模块,用于获取训练数据集合,所述训练数据集合包括第一类训练数据,所述第一类训练数据的置信度位于指定置信度范围;其中,所述置信度是利用机器学习程序识别出的第一类训练数据中的目标属于指定标签的置信度;

添加模块,用于根据所述指定标签为所述第一类训练数据添加标注信息;

训练模块,用于根据所述训练数据集合中的第一类训练数据的特征信息和标注信息训练新机器学习程序,新机器学习程序用于识别输入数据中的目标属于指定标签的置信度。

本申请提供一种机器学习程序的训练装置,所述装置包括:

识别模块,用于利用已部署的机器学习程序识别输入数据中的目标属于指定标签的置信度;

处理模块,用于若所述置信度位于指定置信度范围,则将所述输入数据确定为第一类训练数据,并将所述第一类训练数据添加到训练数据集合;

其中,所述训练数据集合中的第一类训练数据用于训练新机器学习程序。

本申请提供一种管理设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:

获取训练数据集合,所述训练数据集合包括第一类训练数据,所述第一类训练数据的置信度位于指定置信度范围;其中,所述置信度是利用机器学习程序识别出的第一类训练数据中的目标属于指定标签的置信度;

根据所述指定标签为所述第一类训练数据添加标注信息;

根据所述训练数据集合中的第一类训练数据的特征信息和标注信息训练新机器学习程序,新机器学习程序用于识别输入数据中的目标属于指定标签的置信度。

本申请提供一种智能设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:

利用已部署的机器学习程序识别输入数据中的目标属于指定标签的置信度;

若所述置信度位于指定置信度范围,则将所述输入数据确定为第一类训练数据,并将所述第一类训练数据添加到训练数据集合;

其中,所述训练数据集合中的第一类训练数据用于训练新机器学习程序。

由以上技术方案可见,本申请实施例中,由于训练数据集合中的第一类训练数据的置信度位于指定置信度范围,因此,可以根据指定标签为第一类训练数据添加标注信息,从而减少用户人工对数据的标定操作,减少用户工作量,节省用户人工标定的时间。由于第一类训练数据是利用机器学习程序得到的,从而减少用户人工搜集数据的操作,减少用户工作量,节省用户人工搜集数据的时间。而且,机器学习程序可以不断迭代更新,不断提升机器学习程序的性能,使得机器学习程序的性能更优,机器学习程序的机器学习结果更准确。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1是本申请一种实施方式中的机器学习程序的训练方法的流程图;

图2是本申请另一种实施方式中的机器学习程序的训练方法的流程图;

图3是本申请一种实施方式中的应用场景示意图;

图4是本申请另一种实施方式中的机器学习程序的训练方法的流程图;

图5是本申请一种实施方式中的应用场景示意图;

图6是本申请另一种实施方式中的机器学习程序的训练方法的流程图;

图7a是本申请一种实施方式中的机器学习程序的训练装置的结构图;

图7b是本申请一种实施方式中的管理设备的结构图;

图8a是本申请一种实施方式中的机器学习程序的训练装置的结构图;

图8b是本申请一种实施方式中的智能设备的结构图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

机器学习是实现人工智能的一种途径,用于研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。深度学习属于机器学习的子类,且神经网络是深度学习的一种实现方式。为了方便描述,以神经网络为例,简单介绍神经网络的结构和功能,对于机器学习的其它子类,与神经网络的结构和功能类似,在此不再赘述。

示例性的,神经网络可以包括但不限于:卷积神经网络(简称cnn)、循环神经网络(简称rnn)、全连接网络等。神经网络的结构单元可以包括但不限于:卷积层(conv)、池化层(pool)、激励层、全连接层(fc)等,对此不做限制。

在卷积层中,通过使用卷积核对数据进行卷积运算,使数据特征增强,卷积层在空间范围内使用卷积核进行卷积运算,该卷积核可以是一个m*n大小的矩阵,卷积层的输入与卷积核进行卷积,可得到卷积层的输出。卷积运算实际是一个滤波过程,在卷积运算中,是将数据上点(x,y)的像素值f(x,y)与卷积核w(x,y)进行卷积。例如,提供4*4的卷积核,该4*4的卷积核包含16个数值,这16个数值的大小可以根据需要配置。按照4*4的大小在数据上依次滑动,得到多个4*4的滑动窗口,将该4*4的卷积核与每个滑动窗口进行卷积,得到多个卷积特征,这些卷积特征就是卷积层的输出,且被提供给池化层。

在池化层中,实际上就是一个降采样的过程,通过对多个卷积特征(即卷积层的输出)进行取最大值、取最小值、取平均值等操作,从而可以减少计算量,并保持特征不变性。在池化层中,可以利用数据局部相关性的原理,对数据进行子抽样,从而可以减少数据处理量,并保留数据中的有用信息。

在池化层之后的激励层,可以使用激活函数(如非线性函数)对池化层输出的特征进行映射,从而引入非线性因素,使得神经网络通过非线性的组合而增强表达能力。其中,激励层的激活函数可以包括但不限于relu(rectifiedlinearunits,整流线性单元)函数,以relu函数为例,则该relu函数可以将池化层输出的所有特征中,小于0的特征置0,而大于0的特征保持不变。

在全连接层中,该全连接层用于将输入给本全连接层的所有特征进行全连接处理,从而得到一个特征向量,且该特征向量中可以包括多个特征。进一步的,全连接层还可以采用1*1的卷积层,从而可以构成全卷积的网络。

在实际应用中,可以根据不同需求,将一个或多个卷积层、一个或多个池化层、一个或多个激励层和一个或多个全连接层进行组合构建神经网络。

当然,上述只是神经网络的示例,对此神经网络的结构不做限制。

为了使用神经网络实现目标识别(如人脸检测、人体检测、车辆检测,对此目标识别场景不做限制),涉及神经网络的训练过程、神经网络的使用过程。

在神经网络的训练过程中,可以利用训练数据训练神经网络内的各神经网络参数,如卷积层参数(如卷积核参数)、池化层参数、激励层参数、全连接层参数等,对此不做限制,可以训练神经网络内的所有神经网络参数。通过训练神经网络内各神经网络参数,可以使神经网络拟合出输入和输出的映射关系。

在神经网络的使用过程中,可以将输入数据提供给神经网络,由神经网络对输入数据进行处理,如利用所有神经网络参数对输入数据进行处理,得到输出数据,且输入数据与输出数据满足神经网络拟合出的输入和输出的映射关系。最终,利用神经网络实现目标识别,如人脸检测、人体检测、车辆检测等。

在上述过程中,以神经网络的结构和功能为例,介绍了机器学习的结构和功能,也就是说,在机器学习的训练过程中,利用训练数据训练机器学习内的各机器学习参数,最终得到机器学习程序。在机器学习的使用过程中,将输入数据提供给机器学习程序,由机器学习程序对输入数据进行处理,如利用所有机器学习参数对输入数据进行处理,得到输出数据,最终实现目标识别。

示例性的,机器学习程序可以是机器学习模型,也可以是机器学习算法,还可以是机器学习模型和机器学习算法的结合,对此机器学习程序不做限制,只要能够实现机器学习功能即可,本文以机器学习程序为例进行说明。

示例性的,可以利用训练数据训练机器学习程序内的各种机器学习参数,得到机器学习程序(如机器学习类型的app),并利用机器学习程序实现目标识别。例如,将输入数据输入给机器学习程序,由机器学习程序对输入数据进行目标识别,例如,机器学习程序实现人脸检测、人体检测、车辆检测等。

在相关技术中,为了训练机器学习程序内的各种机器学习参数,需要人工搜集数据集,并人工对数据集中的数据进行标定,数据集的搜集过程的工作量较大,耗时很长。而且,数据的标定过程的工作量较大,耗时很长。

针对上述发现,本申请实施例中提出一种机器学习程序的训练方法,能够减少用户人工对数据的标定操作,减少用户工作量。能够减少用户人工搜集数据的操作,减少用户工作量。而且,机器学习程序能够不断的迭代更新,使得机器学习程序的性能更优,机器学习程序的机器学习结果更准确。

以下结合具体实施例,对本申请实施例的技术方案进行说明。

参见图1所示,为机器学习程序的训练方法的流程示意图,该方法可以应用于任意类型的设备,对此不做限制,该方法可以包括:

步骤101,获取训练数据集合,该训练数据集合包括第一类训练数据,该第一类训练数据的置信度位于指定置信度范围,示例性的,该置信度是利用机器学习程序识别出的第一类训练数据中的目标属于指定标签的置信度。

示例性的,训练数据集合可以包括多个训练数据,为了区分方便,可以将训练数据集合中的训练数据区分为第一类训练数据和第二类训练数据。第一类训练数据是置信度位于指定置信度范围的训练数据。该训练数据集合还可以包括第二类训练数据,第二类训练数据是已被用户添加标注信息的训练数据。当然,训练数据集合也可以包括其它类型的训练数据,对此不做限制。

示例性的,针对输入数据,可以利用已部署的机器学习程序识别该输入数据中的目标属于指定标签的置信度。若该置信度位于指定置信度范围,则可以将该输入数据确定为第一类训练数据,并将该第一类训练数据添加到训练数据集合,该训练数据集合中的训练数据用于训练新机器学习程序。若该置信度不位于指定置信度范围,则该输入数据可以不是第一类训练数据。

示例性的,获取训练数据集合,可以包括但不限于:获取第一类训练数据和机器学习程序的程序标识;确定该程序标识对应的数据集标识;然后,将该第一类训练数据添加到该数据集标识对应的训练数据集合。

本实施例中,需要利用训练数据集合训练机器学习程序,并利用机器学习程序对输入图像进行目标识别。基于此,可以将用于利用训练数据集合训练机器学习程序的功能模块记为模块a,将用于利用机器学习程序对输入图像进行目标识别的功能模块记为模块b,模块a和模块b可以部署在任意设备上。

例如,模块a和模块b可以部署在同一个设备上,作为该设备的两个功能模块。或者,模块a和模块b可以部署在不同的设备上,作为两个独立设备。为了方便描述,后续以模块a和模块b部署在不同的设备为例进行说明。

示例性的,将模块a所在的设备称为管理设备,即,管理设备用于利用训练数据集合训练机器学习程序,该管理设备可以如pc(personalcomputer,个人计算机)、服务器、训练平台(如机器学习训练平台、深度学习训练平台等)、应用平台、终端设备、笔记本电脑等,对此管理设备的类型不做限制。

示例性的,将模块b所在的设备称为智能设备,即,智能设备用于利用机器学习程序对输入图像进行目标识别,该智能设备可以如中心端的智能服务器,或边缘端的ipc(ipcamera,网络摄像机),或边缘端的nvr(networkvideorecorder,即网络视频录像机)设备等,对此智能设备的类型不做限制。

当然,上述管理设备和智能设备的实现方式,只是本申请的一个示例,对此不做限制,只要能够实现模块a的功能和模块b的功能即可。

在一种可能的实施方式中,智能设备可以部署机器学习程序,机器学习程序是不断更新。即,管理设备不断生成新机器学习程序,智能设备获取新机器学习程序,并部署新机器学习程序。例如,管理设备生成机器学习程序a1后,智能设备得到机器学习程序a1,利用机器学习程序a1进行目标识别。管理设备生成机器学习程序a2后,智能设备得到机器学习程序a2,利用机器学习程序a2替换机器学习程序a1,利用机器学习程序a2进行目标识别,以此类推。

智能设备可以利用已部署的机器学习程序识别输入数据中的目标属于指定标签的置信度。若所述置信度位于指定置信度范围,则智能设备可以将该输入数据确定为第一类训练数据,并将该第一类训练数据发送给管理设备。若所述置信度不位于指定置信度范围,则该输入数据不是第一类训练数据。

例如,智能设备可以获取输入数据1,并将该输入数据1提供给机器学习程序。假设机器学习程序用于实现人脸检测,则机器学习程序可以从输入数据1中选出目标区域,这个目标区域就是输入数据1中的目标。然后,机器学习程序确定该目标区域属于人脸(当机器学习程序用于实现人脸检测时,指定标签可以是人脸)的置信度。如置信度是80%时,则表示目标区域属于人脸的概率比较大,置信度是20%时,表示目标区域属于人脸的概率比较小。

又例如,假设机器学习程序用于实现数据分类(如区分出包含人体的数据和包含动物的数据),则机器学习程序可以从输入数据1中选出目标区域,这个目标区域就是输入数据1中的目标。然后,机器学习程序确定该目标区域包含动物(当机器学习程序用于实现数据分类时,指定标签可以是包含动物或者包含人体)的置信度。如置信度是80%时,则表示目标区域包含动物的概率比较大,如置信度是20%时,则表示目标区域包含动物的概率比较小。

当然,上述只是“利用机器学习程序识别输入数据中的目标属于指定标签的置信度”的示例,对此不做限制,指定标签与机器学习程序的类型有关。

示例性的,指定置信度范围可以根据经验配置,如指定置信度范围为[a%,b%],a的取值可以大于50,b的取值可以小于100,且b大于a。当然,a大于50和b小于100只是示例,对此不做限制,如指定置信度范围可以为[70%,95%]。

例如,当识别输入数据1中的目标属于指定标签的置信度是100%时,表示输入数据1中的目标一定属于指定标签,机器学习程序针对输入数据1的识别效果是最佳的,不再需要利用输入数据1进行训练,即b的取值可以小于100。当然,针对96%-99%等其它置信度,也可以表示机器学习程序针对输入数据1的识别效果较佳,因此,b的取值可以为95,当然,上述只是示例。

例如,当识别输入数据1中的目标属于指定标签的置信度小于50%时,表示输入数据1中的目标属于指定标签的概率比较小,还不到50%,即输入数据1不会提高机器学习程序的性能,不再需要利用输入数据1进行训练,因此,b的取值可以大于50,如以b的取值为70为例,当然,上述只是示例。

综上所述,可以预先配置指定置信度范围为[70%,95%],智能设备利用机器学习程序识别输入数据1中的目标属于指定标签的置信度后,若置信度位于[70%,95%],则将输入数据1作为第一类训练数据,将第一类训练数据发送给管理设备。若置信度不位于[70%,95%],则输入数据1不是第一类训练数据。

管理设备接收到智能设备发送的第一类训练数据(如输入数据1)后,将第一类训练数据添加到训练数据集合,即管理设备可以不断更新训练数据集合。

在一种可能的实施方式中,智能设备可以将第一类训练数据和机器学习程序的程序标识发送给管理设备。管理设备获取到第一类训练数据和机器学习程序的程序标识后,可以确定与该程序标识对应的数据集标识,并将该第一类训练数据添加到该数据集标识对应的训练数据集合。示例性的,该训练数据集合中的训练数据用于训练与该程序标识对应的机器学习程序。

例如,管理设备用于训练多个类型的机器学习程序,且不同的机器学习程序使用不同的训练数据集合进行训练。如使用训练数据集合a中的训练数据训练机器学习程序a、使用训练数据集合b中的训练数据训练机器学习程序b、使用训练数据集合c中的训练数据训练机器学习程序c,以此类推。

假设智能设备利用机器学习程序a对输入数据进行目标识别,则智能设备将第一类训练数据和机器学习程序a的程序标识发送给管理设备。管理设备确定与该程序标识对应的是训练数据集合a的数据集标识,并将第一类训练数据添加到训练数据集合a,且利用训练数据集合a训练机器学习程序a。

示例性的,管理设备可以维护程序标识与数据集标识的对应关系,基于所述对应关系,管理设备接收到第一类训练数据和机器学习程序的程序标识后,可以确定与该程序标识对应的数据集标识,对此过程不做限制。

步骤102,根据指定标签为第一类训练数据添加标注信息。

示例性的,由于第一类训练数据的置信度位于指定置信度范围,置信度位于指定置信度范围(如[70%,95%]),表示第一类训练数据中的目标属于指定标签的概率较大,因此,管理设备根据指定标签为第一类训练数据添加标注信息,该标注信息表示第一类训练数据中的目标属于指定标签,如标注信息为1或0。当然,上述只是为第一类训练数据添加标注信息的示例,对此不做限制。

步骤103,根据训练数据集合中的训练数据(如第一类训练数据和第二类训练数据)的特征信息和标注信息训练新机器学习程序。示例性的,新机器学习程序用于识别输入数据中的目标属于指定标签的置信度。

示例性的,管理设备可以根据训练数据集合中的每个训练数据的特征信息和标注信息训练新机器学习程序,如训练机器学习程序内的各机器学习参数,从而得到新机器学习程序。其中,通过新机器学习程序内的各机器学习参数,可以拟合出输入和输出的映射关系,对此训练过程不做限制。

示例性的,管理设备训练新机器学习程序后,智能设备可以获取到该新机器学习程序。例如,管理设备将该新机器学习程序发送给智能设备,或,智能设备从管理设备读取该新机器学习程序,或,管理设备将该新机器学习程序存储到某个地址,智能设备从该地址下载该新机器学习程序,对此不做限制。智能设备得到新机器学习程序后,将新机器学习程序更新为已部署的机器学习程序,根据已部署的机器学习程序识别输入数据中的目标属于指定标签的置信度。

显然,管理设备能够不断生成新机器学习程序,智能设备可以得到该新机器学习程序,并使用该新机器学习程序更新本地的机器学习程序。

在一种可能的实施方式中,若训练数据集合中的未训练使用的训练数据数量达到预设阈值(可以根据经验配置,对此不做限制),则可以根据训练数据集合中的训练数据的特征信息和标注信息训练新机器学习程序。或者,若当前时间与上次训练机器学习程序的时间之间的间隔,达到预设时长(可以根据经验配置,对此不做限制),则可以根据训练数据集合中的训练数据的特征信息和标注信息训练新机器学习程序。当然,上述触发条件只是训练新机器学习程序的两个示例,对此触发条件不做限制,可以根据实际需要进行配置。

在一种可能的实施方式中,在需要根据训练数据集合中的训练数据的特征信息和标注信息训练新机器学习程序时,还可以为机器学习程序的训练任务申请gpu(graphicsprocessingunit,图形处理器)资源。基于申请的该gpu资源,可以根据训练数据集合中的训练数据的特征信息和标注信息训练新机器学习程序。在训练得到该新机器学习程序后,还可以释放该gpu资源。

示例性的,在需要训练机器学习程序时,可以创建机器学习程序的训练任务,并为机器学习程序的训练任务申请gpu资源。若当前存在可用的gpu资源,如指定数量个空闲gpu,则将机器学习程序的训练任务提供给这些gpu,由这些gpu根据训练数据集合中的训练数据的特征信息和标注信息训练新机器学习程序。在训练得到新机器学习程序后,还可以释放gpu资源。

示例性的,若当前不存在可用的gpu资源,则可以将机器学习程序的训练任务存储到任务队列中,一直到存在可用的gpu资源时,才从任务队列中选取机器学习程序的训练任务,并将机器学习程序的训练任务提供给gpu。

当然,上述采用gpu资源训练新机器学习程序的方式,只是本申请的示例,管理设备还可以采用其它计算资源(如cpu资源等)训练新机器学习程序。

在一种可能的实施方式中,机器学习程序可以包括但不限于:机器学习分类程序;或者,机器学习检测程序;或者,机器学习分类检测混合程序。当然,上述只是机器学习程序的几个示例,对此机器学习程序的类型不做限制。

示例性的,机器学习分类程序可以是指:基于机器学习分类程序能够区分数据的类型,即用于实现数据分类,例如,区分出包含人体的数据和包含动物的数据。机器学习检测程序可以是指:基于机器学习检测程序能够实现数据目标区域的检测,即用于实现数据检测,例如,检测数据目标区域是否为人脸。机器学习分类检测混合程序可以是指:基于机器学习分类检测混合程序能够区分数据的类型,并实现数据目标区域的检测,即用于实现数据分类和数据检测。例如,先区分出包含人体的数据和包含动物的数据,针对包含人体的数据,再检测数据目标区域是否为人脸。当然,上述只是机器学习分类程序、机器学习检测程序、机器学习分类检测混合程序的示例,对此不做限制。

在一种可能的实施方式中,上述实施例中的数据,可以为图像数据,或者语音数据,或者文本数据,对此数据的类型不做限制。

由以上技术方案可见,本申请实施例中,由于训练数据集合中的第一类训练数据的置信度位于指定置信度范围,因此,可以根据指定标签为第一类训练数据添加标注信息,从而减少用户人工对数据的标定操作,减少用户工作量,节省用户人工标定的时间。由于第一类训练数据是利用机器学习程序得到的,从而减少用户人工搜集数据的操作,减少用户工作量,节省用户人工搜集数据的时间。而且,机器学习程序可以不断迭代更新,不断提升机器学习程序的性能,使得机器学习程序的性能更优,机器学习程序的机器学习结果更准确。

基于与上述方法同样的构思,本申请实施例中还提出另一种机器学习程序的训练方法,参见图2所示,该方法可以包括:

步骤201,利用已部署的机器学习程序识别输入数据中的目标属于指定标签的置信度,该置信度用于表示输入数据中的目标属于指定标签的概率。

步骤202,若该置信度位于指定置信度范围,则将该输入数据确定为第一类训练数据,并将该第一类训练数据添加到训练数据集合。

示例性的,该训练数据集合中的训练数据用于训练新机器学习程序。

在一种可能的实施方式中,可以确定机器学习程序的程序标识对应的数据集标识,并将第一类训练数据添加到该数据集标识对应的训练数据集合。

示例性的,若将机器学习程序部署在智能设备,则由智能设备执行步骤201和步骤202。智能设备将输入数据确定为第一类训练数据后,第一类训练数据和机器学习程序的程序标识发送给管理设备,以使管理设备确定该程序标识对应的数据集标识,将该第一类训练数据添加到该数据集标识对应的训练数据集合。该训练数据集合中的训练数据用于训练与该程序标识对应的机器学习程序。

针对步骤201-步骤202的具体实现,参见上述实施例,在此不再赘述。

由以上技术方案可见,本申请实施例中,由于训练数据集合中的第一类训练数据的置信度位于指定置信度范围,因此,可以根据指定标签为第一类训练数据添加标注信息,从而减少用户人工对数据的标定操作,减少用户工作量,节省用户人工标定的时间。由于第一类训练数据是利用机器学习程序得到的,从而减少用户人工搜集数据的操作,减少用户工作量,节省用户人工搜集数据的时间。而且,机器学习程序可以不断迭代更新,不断提升机器学习程序的性能,使得机器学习程序的性能更优,机器学习程序的机器学习结果更准确。

以下结合具体的应用场景,对上述机器学习程序的训练过程进行说明。

参见图3所示,为本申请实施例的应用场景示意图,训练平台和应用平台用于实现管理设备的功能,训练平台和应用平台可以是软件系统,训练平台和应用平台可以分别部署在不同设备,或部署在相同设备,对此不做限制。训练平台和应用平台可以通过api(applicationprogramminginterface,应用程序编程接口)接口通信。智能设备是使用机器学习程序实现目标识别的设备,可以是中心端的智能服务器,或边缘端的ipc,或边缘端的nvr设备,对此不做限制。示例性的,管理设备和智能设备可以是同一个设备,也可以是不同设备。

训练平台支持数据管理,程序管理,程序训练,设备管理,数据标定,模型验证等功能。应用平台支持程序管理,设备管理,数据管理等功能。

在一种可能的实施方式中,训练平台用于训练多个类型的机器学习程序,且不同的机器学习程序使用不同的训练数据集合进行训练。例如,使用训练数据集合a训练机器学习程序a,使用训练数据集合b训练机器学习程序b,以此类推。综上所述,训练平台可以维护训练数据集合a和训练数据集合b,且不同的训练数据集合对应不同的数据集标识。例如,训练数据集合a对应数据集标识a1,训练数据集合b对应数据集标识b1。为了方便描述,在后续实施例中,以利用训练数据集合a训练机器学习程序a为例进行说明。

在一种可能的实施方式中,训练平台支持机器学习程序的训练功能,如支持机器学习分类程序的训练功能,支持机器学习检测程序的训练功能,支持机器学习分类检测混合程序的训练功能,当然,上述只是示例,对此不做限制。

在上述应用场景下,参见图4所示,机器学习程序的训练方法可以包括:

步骤401,训练平台根据训练数据集合a训练机器学习程序a1。

示例性的,训练平台在首次训练机器学习程序a时,训练数据集合a中可以包括第二类训练数据,第二类训练数据是已被用户添加标注信息的训练数据。基于训练数据集合a中的训练数据的特征信息和标注信息,训练平台可以训练机器学习程序a,将首次训练的机器学习程序a记为机器学习程序a1。

例如,训练平台支持训练数据的上传功能(如批量上传或非批量上传功能),用户可以将训练数据上传到训练数据集合a中。针对用户上传的训练数据,可以是已添加标注信息的训练数据,也可以是未添加标注信息的训练数据。

针对已添加标注信息的训练数据,可以作为第二类训练数据,在机器学习程序a1的训练过程中使用。针对未添加标注信息的训练数据,训练平台采用某种方式为该训练数据添加标注信息,对此标注方式不做限制;例如,向用户显示界面,由用户在界面为训练数据添加标注信息。为训练数据添加标注信息后,训练数据作为第二类训练数据,在机器学习程序a1的训练过程中使用。

综上所述,训练数据集合a中可以包括已被用户添加标注信息的第二类训练数据,且训练平台可以基于训练数据集合a中的第二类训练数据的特征信息和标注信息,训练机器学习程序a1,对此训练过程不做限制。

示例性的,可以由用户触发训练平台何时训练机器学习程序a1,例如,训练平台在接收到用户输入的启动命令后,开始训练机器学习程序a1。

示例性的,可以在训练平台配置触发条件,当满足该触发条件时,训练平台开始训练机器学习程序a1。例如,触发条件可以是训练数据数量的预设阈值(可以根据经验配置,对此不做限制),若训练数据集合a中的未训练使用的训练数据数量达到该预设阈值时,训练平台开始训练机器学习程序a1。当然,上述触发条件只是训练机器学习程序a1的示例,对此触发条件不做限制。

示例性的,训练平台可以提供多个gpu,通过这些gpu实现机器学习程序a1的训练。当然,训练平台也可以通过其它类型的计算资源,实现机器学习程序a1的训练,对此不做限制,后续以通过gpu实现训练过程为例。

在需要训练机器学习程序a1时,训练平台可以创建机器学习程序a1的训练任务,并为机器学习程序a1的训练任务申请gpu资源,如指定数量个gpu。

若当前存在可用的gpu资源,如指定数量个gpu,则训练平台将机器学习程序a1的训练任务提供给这些gpu,由这些gpu根据训练数据集合a训练机器学习程序a1。在训练得到机器学习程序a1后,还可以释放gpu资源。

若当前不存在可用的gpu资源,则可以将机器学习程序a1的训练任务存储到任务队列中,一直到存在可用的gpu资源时,才从任务队列中选取机器学习程序a1的训练任务,并将机器学习程序a1的训练任务提供给gpu。

综上所述,在需要训练机器学习程序a1时,训练平台支持gpu资源的动态申请和释放,支持任务的排队机制,提高了gpu资源的利用率。

示例性的,上述gpu可以是任意类型的gpu,对此不做限制。

步骤402,应用平台从训练平台获取机器学习程序a1。

示例性的,训练平台在得到机器学习程序a1后,可以将机器学习程序a1发送给应用平台。或者,训练平台在得到机器学习程序a1后,可以向应用平台发送通知消息,该通知消息表示训练平台已得到机器学习程序a1,应用平台接收到通知消息后,从训练平台获取机器学习程序a1。或者,应用平台可以周期性的查询训练平台是否存在新的机器学习程序,如果是,则从训练平台获取机器学习程序a1。当然,上述只是几个示例,对此不做限制。

示例性的,训练平台支持程序导出的api接口,应用平台通过该api接口从训练平台获取机器学习程序a1。当然,api接口的实现方式只是一个示例,对此不做限制,只要应用平台能够从训练平台获取机器学习程序a1即可。

示例性的,应用平台还可以建立机器学习程序a1的程序标识与训练数据集合a的数据集标识a1之间的映射关系。例如,预先在应用平台配置机器学习程序a1的程序标识与数据集标识a1之间的映射关系。或者,应用平台在从训练平台获取机器学习程序a1时,还可以从训练平台获取数据集标识a1,并建立机器学习程序a1的程序标识与数据集标识a1之间的映射关系。

步骤403,应用平台将机器学习程序a1发送给智能设备。

示例性的,智能设备支持程序导入的api接口,应用平台得到机器学习程序a1后,可以通过该api接口将机器学习程序a1发送给智能设备(由应用平台管理的智能设备,可以为多个)。当然,api接口的实现方式只是一个示例,对此不做限制,只要应用平台能够将机器学习程序a1发送给智能设备即可。

步骤404,智能设备部署机器学习程序a1,并利用机器学习程序a1识别输入数据中的目标属于指定标签的置信度,该置信度用于表示输入数据中的目标属于指定标签的概率。例如,智能设备可以将该输入数据提供给机器学习程序a1,由机器学习程序a1识别输入数据中的目标属于指定标签的置信度。

步骤405,若该置信度位于指定置信度范围,则智能设备将该输入数据(即输入数据作为第一类训练数据)和机器学习程序a1的程序标识发送给应用平台。

示例性的,指定置信度范围可以根据经验进行配置,如指定置信度范围为[a%,b%],a的取值可以大于50,b的取值可以小于100,且b大于a。

示例性的,若该置信度不位于指定置信度范围,则智能设备不需要将该输入数据发送给应用平台,即该输入数据不作为第一类训练数据。

步骤406,应用平台接收到智能设备发送的第一类训练数据和机器学习程序a1的程序标识后,确定与该程序标识对应的数据集标识a1,并将该第一类训练数据添加到该数据集标识a1对应的训练数据集合a中。

示例性的,由于应用平台建立机器学习程序a1的程序标识与训练数据集合a的数据集标识a1之间的映射关系,因此,基于所述映射关系,应用平台可以确定与机器学习程序a1的程序标识对应的是数据集标识a1。

示例性的,训练平台支持模型验证api接口,基于此,应用平台可以通过模型验证api接口将第一类训练数据添加到训练数据集合a中。

当然,模型验证api接口的实现方式只是一个示例,对此不做限制,只要应用平台能够将第一类训练数据添加到训练数据集合a中即可。

步骤407,训练平台获取训练数据集合a,训练数据集合a可以包括第一类训练数据(即置信度位于指定置信度范围的训练数据,当前还没有被添加标注信息)和第二类训练数据(已被用户添加标注信息的训练数据)。

示例性的,训练平台支持未标定训练数据导入的api接口,已标定训练数据导入的api接口和模型验证api接口。未标定训练数据导入的api接口用于导入未标定的训练数据,即用户将训练数据上传到训练数据集合a中,且训练数据是未添加标注信息的训练数据,参见步骤401,训练平台可以为该训练数据添加标注信息,添加标注信息后的训练数据作为第二类训练数据。已标定训练数据导入的api接口用于导入已标定的训练数据,即用户将训练数据上传到训练数据集合a中,且训练数据是已添加标注信息的训练数据,即第二类训练数据。模型验证api接口用于导入第一类训练数据,导入过程参见步骤406。

当然,上述几个api接口只是示例,对此不做限制,只要能够将第一类训练数据和第二类训练数据添加到训练数据集合a中即可。

步骤408,训练平台根据指定标签为第一类训练数据添加标注信息。

示例性的,由于第一类训练数据的置信度位于指定置信度范围,如[70%,95%]),该置信度能够表示第一类训练数据中的目标属于指定标签的概率较大,因此,训练平台可以为第一类训练数据添加标注信息,该标注信息用于表示第一类训练数据中的目标属于指定标签,如标注信息可以为1或0。

示例性的,训练平台支持人工校验第一类训练数据的准确性,比如说,针对每个第一类训练数据,用户校验第一类训练数据的置信度是否位于指定置信度范围。如果是,在训练数据集合a中保留第一类训练数据,训练平台为第一类训练数据添加标注信息。如果否,从训练数据集合a中删除第一类训练数据。

步骤409,训练平台根据训练数据集合a中的训练数据(如第一类训练数据和第二类训练数据)的特征信息和标注信息训练机器学习程序a2。

示例性的,训练平台在第二次训练机器学习程序a时,训练数据集合a中可以包括第一类训练数据和第二类训练数据,基于训练数据集合a中的训练数据的特征信息和标注信息,训练平台可以训练机器学习程序a,对此训练方式不做限制,将第二次训练的机器学习程序a记为机器学习程序a2。

示例性的,可以在训练平台配置触发条件,当满足该触发条件时,训练平台开始训练机器学习程序a1。例如,触发条件可以是训练数据数量的预设阈值(可以根据经验配置,对此不做限制),若训练数据集合a中的未训练使用的训练数据数量达到该预设阈值,则训练平台开始训练机器学习程序a2。或者,触发条件可以是预设时长(可以根据经验配置,对此不做限制),若当前时间与上次训练机器学习程序a的时间之间的间隔,达到预设时长,则训练平台开始训练机器学习程序a2。当然,上述触发条件只是示例,对此不做限制。

示例性的,训练平台可以通过多个gpu训练机器学习程序a2,具体过程参见步骤401,只是训练数据集合a中的训练数据发生变化,在此不再赘述。

训练平台训练机器学习程序a2之后,应用平台从训练平台获取机器学习程序a2,并将机器学习程序a2发送给智能设备。智能设备部署机器学习程序a2(即使用机器学习程序a2替换本地使用的机器学习程序a1),并利用机器学习程序a2识别输入数据中的目标属于指定标签的置信度。若该置信度位于指定置信度范围,则智能设备将该输入数据(即第一类训练数据)发送给应用平台,应用平台将该第一类训练数据添加到训练数据集合a中。训练平台根据训练数据集合a中的训练数据的特征信息和标注信息训练机器学习程序a2。

依次类推,训练平台能够不断生成新的机器学习程序a,应用平台可以将新的机器学习程序a发送给智能设备,以使智能设备使用该机器学习程序a更新本地的机器学习程序a,实现机器学习程序a的优化训练。

参见图5所示,为本申请实施例的应用场景示意图,管理设备用于实现训练平台和应用平台的功能,智能设备是使用机器学习程序实现目标识别的设备。

在一种可能的实施方式中,管理设备用于训练多个类型的机器学习程序,且不同的机器学习程序使用不同的训练数据集合进行训练。在后续实施例中,以管理设备利用训练数据集合a训练机器学习程序a为例进行说明。

在上述应用场景下,参见图6所示,机器学习程序的训练方法可以包括:

步骤601,管理设备根据训练数据集合a训练机器学习程序a1。

示例性的,训练数据集合a中可以包括第二类训练数据,第二类训练数据是已被用户添加标注信息的训练数据。基于训练数据集合a中的训练数据的特征信息和标注信息,管理设备可以训练机器学习程序a1。

步骤602,管理设备将机器学习程序a1发送给智能设备。

步骤603,智能设备部署机器学习程序a1,并利用机器学习程序a1识别输入数据中的目标属于指定标签的置信度,即目标属于指定标签的概率。

步骤604,若该置信度位于指定置信度范围,则智能设备将该输入数据(即输入数据作为第一类训练数据)和机器学习程序a1的程序标识发送给管理设备。

步骤605,管理设备接收到智能设备发送的第一类训练数据和机器学习程序a1的程序标识后,确定与该程序标识对应的数据集标识,并将该第一类训练数据添加到该数据集标识对应的训练数据集合(如训练数据集合a)中。

步骤606,管理设备获取训练数据集合a,训练数据集合a可以包括第一类训练数据(即置信度位于指定置信度范围的训练数据,当前还没有被添加标注信息)和第二类训练数据(已被用户添加标注信息的训练数据)。

步骤607,管理设备根据指定标签为第一类训练数据添加标注信息。

步骤608,管理设备根据训练数据集合a中的训练数据(如第一类训练数据和第二类训练数据)的特征信息和标注信息训练机器学习程序a2。

步骤609,管理设备将机器学习程序a2发送给智能设备,智能设备利用机器学习程序a2识别输入数据中的目标属于指定标签的置信度,以此类推。

示例性的,步骤601-步骤609可以参见步骤401-步骤409,在此不再赘述。

基于与上述方法同样的申请构思,本申请实施例中还提出一种机器学习程序的训练装置,如图7a所示,为所述装置的结构图,所述装置包括:

获取模块711,用于获取训练数据集合,所述训练数据集合包括第一类训练数据,所述第一类训练数据的置信度位于指定置信度范围;其中,所述置信度是利用机器学习程序识别出的第一类训练数据中的目标属于指定标签的置信度;添加模块712,用于根据所述指定标签为所述第一类训练数据添加标注信息;训练模块713,用于根据所述训练数据集合中的第一类训练数据的特征信息和标注信息训练新机器学习程序,新机器学习程序用于识别输入数据中的目标属于指定标签的置信度。

所述获取模块711获取训练数据集合时具体用于:获取第一类训练数据和所述机器学习程序的程序标识;确定所述程序标识对应的数据集标识;将所述第一类训练数据添加到所述数据集标识对应的训练数据集合。

所述训练模块713根据所述训练数据集合中的第一类训练数据的特征信息和标注信息训练新机器学习程序时具体用于:若所述训练数据集合中的未训练使用的训练数据数量达到预设阈值,根据所述训练数据集合中的第一类训练数据的特征信息和标注信息训练新机器学习程序。

所述训练模块713根据所述训练数据集合中的第一类训练数据的特征信息和标注信息训练新机器学习程序时具体用于:

为机器学习程序的训练任务申请gpu资源;基于所述gpu资源,根据所述训练数据集合中的第一类训练数据的特征信息和标注信息训练新机器学习程序;在训练得到所述新机器学习程序后,释放所述gpu资源。

基于与上述方法同样的申请构思,本申请实施例中还提出一种管理设备,本申请实施例提供的管理设备,从硬件层面而言,硬件架构示意图可以参见图7b所示。管理设备可以包括:处理器721和机器可读存储介质722,所述机器可读存储介质722存储有能够被所述处理器721执行的机器可执行指令;所述处理器721用于执行机器可执行指令,以实现本申请上述示例公开的方法。

例如,处理器721用于执行机器可执行指令,以实现如下步骤:

获取训练数据集合,所述训练数据集合包括第一类训练数据,所述第一类训练数据的置信度位于指定置信度范围;其中,所述置信度是利用机器学习程序识别出的第一类训练数据中的目标属于指定标签的置信度;

根据所述指定标签为所述第一类训练数据添加标注信息;根据所述训练数据集合中的第一类训练数据的特征信息和标注信息训练新机器学习程序,新机器学习程序用于识别输入数据中的目标属于指定标签的置信度。

基于与上述方法同样的申请构思,本申请实施例中还提出一种机器学习程序的训练装置,如图8a所示,为所述装置的结构图,所述装置包括:识别模块811,用于利用已部署的机器学习程序识别输入数据中的目标属于指定标签的置信度;处理模块812,用于若所述置信度位于指定置信度范围,则将所述输入数据确定为第一类训练数据,并将所述第一类训练数据添加到训练数据集合;其中,所述训练数据集合中的第一类训练数据用于训练新机器学习程序。

所述处理模块812将所述第一类训练数据添加到训练数据集合时具体用于:

确定所述机器学习程序的程序标识对应的数据集标识;将所述第一类训练数据添加到所述数据集标识对应的训练数据集合。

基于与上述方法同样的申请构思,本申请实施例中还提出一种智能设备,本申请实施例提供的智能设备,从硬件层面而言,硬件架构示意图可以参见图8b所示。智能设备可以包括:处理器821和机器可读存储介质822,所述机器可读存储介质822存储有能够被所述处理器821执行的机器可执行指令;所述处理器821用于执行机器可执行指令,以实现本申请上述示例公开的方法。

例如,处理器821用于执行机器可执行指令,以实现如下步骤:

利用已部署的机器学习程序识别输入数据中的目标属于指定标签的置信度;

若所述置信度位于指定置信度范围,则将所述输入数据确定为第一类训练数据,并将所述第一类训练数据添加到训练数据集合;

其中,所述训练数据集合中的第一类训练数据用于训练新机器学习程序。

基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,其中,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。

示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1